1// Copyright (C) 1988-1994 Sun Microsystems, Inc. 2550 Garcia Avenue 2// Mountain View, California 94043 All rights reserved. 3// 4// Any person is hereby authorized to download, copy, use, create bug fixes, 5// and distribute, subject to the following conditions: 6// 7// 1. the software may not be redistributed for a fee except as 8// reasonable to cover media costs; 9// 2. any copy of the software must include this notice, as well as 10// any other embedded copyright notices; and 11// 3. any distribution of this software or derivative works thereof 12// must comply with all applicable U.S. export control laws. 13// 14// THE SOFTWARE IS MADE AVAILABLE "AS IS" AND WITHOUT EXPRESS OR IMPLIED 15// WARRANTY OF ANY KIND, INCLUDING BUT NOT LIMITED TO THE IMPLIED 16// WARRANTIES OF DESIGN, MERCHANTIBILITY, FITNESS FOR A PARTICULAR 17// PURPOSE, NON-INFRINGEMENT, PERFORMANCE OR CONFORMANCE TO 18// SPECIFICATIONS. 19// 20// BY DOWNLOADING AND/OR USING THIS SOFTWARE, THE USER WAIVES ALL CLAIMS 21// AGAINST SUN MICROSYSTEMS, INC. AND ITS AFFILIATED COMPANIES IN ANY 22// JURISDICTION, INCLUDING BUT NOT LIMITED TO CLAIMS FOR DAMAGES OR 23// EQUITABLE RELIEF BASED ON LOSS OF DATA, AND SPECIFICALLY WAIVES EVEN 24// UNKNOWN OR UNANTICIPATED CLAIMS OR LOSSES, PRESENT AND FUTURE. 25// 26// IN NO EVENT WILL SUN MICROSYSTEMS, INC. OR ANY OF ITS AFFILIATED 27// COMPANIES BE LIABLE FOR ANY LOST REVENUE OR PROFITS OR OTHER SPECIAL, 28// INDIRECT AND CONSEQUENTIAL DAMAGES, EVEN IF IT HAS BEEN ADVISED OF THE 29// POSSIBILITY OF SUCH DAMAGES. 30// 31// This file is provided with no support and without any obligation on the 32// part of Sun Microsystems, Inc. ("Sun") or any of its affiliated 33// companies to assist in its use, correction, modification or 34// enhancement. Nevertheless, and without creating any obligation on its 35// part, Sun welcomes your comments concerning the software and requests 36// that they be sent to fdlibm-comments@sunpro.sun.com. 37// atans(+-max) is +-pi/2 38T(RN, 0x1.fffffep+127, 0x1.921fb6p+0, 0x1.777a5cp-2, INEXACT) 39T(RN,-0x1.fffffep+127, -0x1.921fb6p+0, -0x1.777a5cp-2, INEXACT) 40// atans(+-1) is +-pi/4 41T(RN, 0x1p+0, 0x1.921fb6p-1, 0x1.777a5cp-2, INEXACT) 42T(RN, -0x1p+0, -0x1.921fb6p-1, -0x1.777a5cp-2, INEXACT) 43// atans(tiny) is tiny 44T(RN, 0x1p-29, 0x1p-29, 0x1.555556p-37, INEXACT) 45T(RN, -0x1p-29, -0x1p-29, -0x1.555556p-37, INEXACT) 46T(RN, 0x1p-126, 0x1p-126, 0x0p+0, INEXACT) 47T(RN, -0x1p-126, -0x1p-126, 0x0p+0, INEXACT) 48T(RZ, 0x1p-29, 0x1.fffffep-30, -0x1p+0, INEXACT) 49T(RZ, -0x1p-29, -0x1.fffffep-30, 0x1p+0, INEXACT) 50T(RZ, 0x1p-126, 0x1.fffffcp-127, -0x1p+0, INEXACT|UNDERFLOW) 51T(RZ, -0x1p-126,-0x1.fffffcp-127, 0x1p+0, INEXACT|UNDERFLOW) 52T(RU, 0x1p-29, 0x1p-29, 0x1.555556p-37, INEXACT) 53T(RU, -0x1p-29, -0x1.fffffep-30, 0x1p+0, INEXACT) 54T(RU, 0x1p-126, 0x1p-126, 0x0p+0, INEXACT) 55T(RU, -0x1p-126,-0x1.fffffcp-127, 0x1p+0, INEXACT|UNDERFLOW) 56T(RD, 0x1p-29, 0x1.fffffep-30, -0x1p+0, INEXACT) 57T(RD, -0x1p-29, -0x1p-29, -0x1.555556p-37, INEXACT) 58T(RD, 0x1p-126, 0x1.fffffcp-127, -0x1p+0, INEXACT|UNDERFLOW) 59T(RD, -0x1p-126, -0x1p-126, 0x0p+0, INEXACT) 60// atans(+-0) is +-0 61T(RN, 0x0p+0, 0x0p+0, 0x0p+0, 0) 62T(RN, -0x0p+0, -0x0p+0, 0x0p+0, 0) 63T(RZ, 0x0p+0, 0x0p+0, 0x0p+0, 0) 64T(RZ, -0x0p+0, -0x0p+0, 0x0p+0, 0) 65T(RU, 0x0p+0, 0x0p+0, 0x0p+0, 0) 66T(RU, -0x0p+0, -0x0p+0, 0x0p+0, 0) 67T(RD, 0x0p+0, 0x0p+0, 0x0p+0, 0) 68T(RD, -0x0p+0, -0x0p+0, 0x0p+0, 0) 69// random arguments between -2 and 2 70T(RN, -0x1.13284cp-1, -0x1.f8f75ep-2, -0x1.ffeb8ap-2, INEXACT) 71T(RN, 0x1.6ca8ep+0, 0x1.eadc6ep-1, 0x1.cd861ap-2, INEXACT) 72T(RN, 0x1.c2ca6p+0, 0x1.0de7f8p+0, -0x1.c7422ap-2, INEXACT) 73T(RN, -0x1.55f12p+0, -0x1.db367cp-1, -0x1.c22522p-2, INEXACT) 74T(RN, -0x1.15679ep-1, -0x1.fc7284p-2, 0x1.82b19ep-3, INEXACT) 75T(RN, -0x1.41e132p-4, -0x1.413834p-4, -0x1.8b82b8p-2, INEXACT) 76T(RN, 0x1.281b0ep+0, 0x1.b74042p-1, 0x1.b8739ep-3, INEXACT) 77T(RN, 0x1.b5ce34p+0, 0x1.0aab58p+0, -0x1.2c3954p-2, INEXACT) 78T(RN, -0x1.583482p-2, -0x1.4c0e14p-2, -0x1.6847fap-3, INEXACT) 79T(RN, -0x1.ea8224p+0, -0x1.16fb9cp+0, -0x1.d09d38p-2, INEXACT) 80T(RZ, -0x1.13284cp-1, -0x1.f8f75cp-2, 0x1.000a3ap-1, INEXACT) 81T(RZ, 0x1.6ca8ep+0, 0x1.eadc6cp-1, -0x1.193cf2p-1, INEXACT) 82T(RZ, 0x1.c2ca6p+0, 0x1.0de7f8p+0, -0x1.c7422ap-2, INEXACT) 83T(RZ, -0x1.55f12p+0, -0x1.db367ap-1, 0x1.1eed6ep-1, INEXACT) 84T(RZ, -0x1.15679ep-1, -0x1.fc7284p-2, 0x1.82b19ep-3, INEXACT) 85T(RZ, -0x1.41e132p-4, -0x1.413832p-4, 0x1.3a3ea4p-1, INEXACT) 86T(RZ, 0x1.281b0ep+0, 0x1.b7404p-1, -0x1.91e318p-1, INEXACT) 87T(RZ, 0x1.b5ce34p+0, 0x1.0aab58p+0, -0x1.2c3954p-2, INEXACT) 88T(RZ, -0x1.583482p-2, -0x1.4c0e12p-2, 0x1.a5ee02p-1, INEXACT) 89T(RZ, -0x1.ea8224p+0, -0x1.16fb9ap+0, 0x1.17b164p-1, INEXACT) 90T(RU, -0x1.13284cp-1, -0x1.f8f75cp-2, 0x1.000a3ap-1, INEXACT) 91T(RU, 0x1.6ca8ep+0, 0x1.eadc6ep-1, 0x1.cd861ap-2, INEXACT) 92T(RU, 0x1.c2ca6p+0, 0x1.0de7fap+0, 0x1.1c5eecp-1, INEXACT) 93T(RU, -0x1.55f12p+0, -0x1.db367ap-1, 0x1.1eed6ep-1, INEXACT) 94T(RU, -0x1.15679ep-1, -0x1.fc7284p-2, 0x1.82b19ep-3, INEXACT) 95T(RU, -0x1.41e132p-4, -0x1.413832p-4, 0x1.3a3ea4p-1, INEXACT) 96T(RU, 0x1.281b0ep+0, 0x1.b74042p-1, 0x1.b8739ep-3, INEXACT) 97T(RU, 0x1.b5ce34p+0, 0x1.0aab5ap+0, 0x1.69e356p-1, INEXACT) 98T(RU, -0x1.583482p-2, -0x1.4c0e12p-2, 0x1.a5ee02p-1, INEXACT) 99T(RU, -0x1.ea8224p+0, -0x1.16fb9ap+0, 0x1.17b164p-1, INEXACT) 100T(RD, -0x1.13284cp-1, -0x1.f8f75ep-2, -0x1.ffeb8ap-2, INEXACT) 101T(RD, 0x1.6ca8ep+0, 0x1.eadc6cp-1, -0x1.193cf2p-1, INEXACT) 102T(RD, 0x1.c2ca6p+0, 0x1.0de7f8p+0, -0x1.c7422ap-2, INEXACT) 103T(RD, -0x1.55f12p+0, -0x1.db367cp-1, -0x1.c22522p-2, INEXACT) 104T(RD, -0x1.15679ep-1, -0x1.fc7286p-2, -0x1.9f5398p-1, INEXACT) 105T(RD, -0x1.41e132p-4, -0x1.413834p-4, -0x1.8b82b8p-2, INEXACT) 106T(RD, 0x1.281b0ep+0, 0x1.b7404p-1, -0x1.91e318p-1, INEXACT) 107T(RD, 0x1.b5ce34p+0, 0x1.0aab58p+0, -0x1.2c3954p-2, INEXACT) 108T(RD, -0x1.583482p-2, -0x1.4c0e14p-2, -0x1.6847fap-3, INEXACT) 109T(RD, -0x1.ea8224p+0, -0x1.16fb9cp+0, -0x1.d09d38p-2, INEXACT) 110// atans(+-inf) is +-pi/2 111T(RN, inf, 0x1.921fb6p+0, 0x1.777a5cp-2, INEXACT) 112T(RN, -inf, -0x1.921fb6p+0, -0x1.777a5cp-2, INEXACT) 113// atans(nan) is nan 114T(RN, nan, nan, 0x0p+0, 0) 115T(RN, nan, nan, 0x0p+0, 0) 116T(RZ, nan, nan, 0x0p+0, 0) 117T(RZ, nan, nan, 0x0p+0, 0) 118T(RU, nan, nan, 0x0p+0, 0) 119T(RU, nan, nan, 0x0p+0, 0) 120T(RD, nan, nan, 0x0p+0, 0) 121T(RD, nan, nan, 0x0p+0, 0) 122T(RD, 0x1.000002p-126, 0x1p-126, -0x1p+0, INEXACT) 123T(RD, 0x1.000004p-126, 0x1.000002p-126, -0x1p+0, INEXACT) 124T(RD, 0x1p-125, 0x1.fffffep-126, -0x1p+0, INEXACT) 125T(RD, 0x1p-124, 0x1.fffffep-125, -0x1p+0, INEXACT) 126T(RD,-0x1.000002p-126,-0x1.000002p-126, 0x0p+0, INEXACT) 127T(RD,-0x1.000004p-126,-0x1.000004p-126, 0x0p+0, INEXACT) 128T(RD,-0x1.fffff6p-126,-0x1.fffff6p-126, 0x0p+0, INEXACT) 129T(RD, -0x1p-125, -0x1p-125, 0x0p+0, INEXACT) 130T(RD,-0x1.000006p-125,-0x1.000006p-125, 0x0p+0, INEXACT) 131T(RD, -0x1p-124, -0x1p-124, 0x0p+0, INEXACT) 132T(RD, 0x1p-149, 0x0p+0, -0x1p+0, INEXACT|UNDERFLOW) 133T(RD, 0x1p-148, 0x1p-149, -0x1p+0, INEXACT|UNDERFLOW) 134T(RD, 0x1p-128, 0x1.fffffp-129, -0x1p+0, INEXACT|UNDERFLOW) 135T(RD, 0x1p-127, 0x1.fffff8p-128, -0x1p+0, INEXACT|UNDERFLOW) 136T(RD, 0x1.fffff8p-127, 0x1.fffff4p-127, -0x1p+0, INEXACT|UNDERFLOW) 137T(RD, 0x1.fffffcp-127, 0x1.fffff8p-127, -0x1p+0, INEXACT|UNDERFLOW) 138T(RD, -0x1p-149, -0x1p-149, 0x0p+0, INEXACT|UNDERFLOW) 139T(RD, -0x1p-148, -0x1p-148, 0x0p+0, INEXACT|UNDERFLOW) 140T(RD, -0x1.2p-146, -0x1.2p-146, 0x0p+0, INEXACT|UNDERFLOW) 141T(RD, -0x1p-128, -0x1p-128, 0x0p+0, INEXACT|UNDERFLOW) 142T(RD, -0x1p-127, -0x1p-127, 0x0p+0, INEXACT|UNDERFLOW) 143T(RD,-0x1.fffff8p-127,-0x1.fffff8p-127, 0x0p+0, INEXACT|UNDERFLOW) 144T(RD,-0x1.fffffcp-127,-0x1.fffffcp-127, 0x0p+0, INEXACT|UNDERFLOW) 145T(RD, 0x1.8p-27, 0x1.7ffffep-27, -0x1p+0, INEXACT) 146T(RD, 0x1p-12, 0x1.fffffep-13, -0x1.555556p-1, INEXACT) 147T(RD, -0x1.8p-27, -0x1.8p-27, -0x1.2p-31, INEXACT) 148T(RD, -0x1p-12, -0x1p-12, -0x1.555554p-3, INEXACT) 149T(RN, 0x1.000002p-126, 0x1.000002p-126, 0x0p+0, INEXACT) 150T(RN, 0x1.000004p-126, 0x1.000004p-126, 0x0p+0, INEXACT) 151T(RN, 0x1.fffff6p-126, 0x1.fffff6p-126, 0x0p+0, INEXACT) 152T(RN, 0x1p-125, 0x1p-125, 0x0p+0, INEXACT) 153T(RN, 0x1.000006p-125, 0x1.000006p-125, 0x0p+0, INEXACT) 154T(RN, 0x1p-124, 0x1p-124, 0x0p+0, INEXACT) 155T(RN, 0x1.8p-27, 0x1.8p-27, 0x1.2p-31, INEXACT) 156T(RN, 0x1p-12, 0x1p-12, 0x1.555554p-3, INEXACT) 157T(RN,-0x1.000002p-126,-0x1.000002p-126, 0x0p+0, INEXACT) 158T(RN,-0x1.000004p-126,-0x1.000004p-126, 0x0p+0, INEXACT) 159T(RN,-0x1.fffff6p-126,-0x1.fffff6p-126, 0x0p+0, INEXACT) 160T(RN, -0x1p-125, -0x1p-125, 0x0p+0, INEXACT) 161T(RN,-0x1.000006p-125,-0x1.000006p-125, 0x0p+0, INEXACT) 162T(RN, -0x1p-124, -0x1p-124, 0x0p+0, INEXACT) 163T(RN, -0x1.8p-27, -0x1.8p-27, -0x1.2p-31, INEXACT) 164T(RN, -0x1p-12, -0x1p-12, -0x1.555554p-3, INEXACT) 165T(RN, 0x1p-149, 0x1p-149, 0x0p+0, INEXACT|UNDERFLOW) 166T(RN, 0x1p-148, 0x1p-148, 0x0p+0, INEXACT|UNDERFLOW) 167T(RN, 0x1.2p-146, 0x1.2p-146, 0x0p+0, INEXACT|UNDERFLOW) 168T(RN, 0x1p-128, 0x1p-128, 0x0p+0, INEXACT|UNDERFLOW) 169T(RN, 0x1p-127, 0x1p-127, 0x0p+0, INEXACT|UNDERFLOW) 170T(RN, 0x1.fffff8p-127, 0x1.fffff8p-127, 0x0p+0, INEXACT|UNDERFLOW) 171T(RN, 0x1.fffffcp-127, 0x1.fffffcp-127, 0x0p+0, INEXACT|UNDERFLOW) 172T(RN, -0x1p-149, -0x1p-149, 0x0p+0, INEXACT|UNDERFLOW) 173T(RN, -0x1p-148, -0x1p-148, 0x0p+0, INEXACT|UNDERFLOW) 174T(RN, -0x1.2p-146, -0x1.2p-146, 0x0p+0, INEXACT|UNDERFLOW) 175T(RN, -0x1p-128, -0x1p-128, 0x0p+0, INEXACT|UNDERFLOW) 176T(RN, -0x1p-127, -0x1p-127, 0x0p+0, INEXACT|UNDERFLOW) 177T(RN,-0x1.fffff8p-127,-0x1.fffff8p-127, 0x0p+0, INEXACT|UNDERFLOW) 178T(RN,-0x1.fffffcp-127,-0x1.fffffcp-127, 0x0p+0, INEXACT|UNDERFLOW) 179T(RU, 0x1.000002p-126, 0x1.000002p-126, 0x0p+0, INEXACT) 180T(RU, 0x1.000004p-126, 0x1.000004p-126, 0x0p+0, INEXACT) 181T(RU, 0x1.fffff6p-126, 0x1.fffff6p-126, 0x0p+0, INEXACT) 182T(RU, 0x1p-125, 0x1p-125, 0x0p+0, INEXACT) 183T(RU, 0x1.000006p-125, 0x1.000006p-125, 0x0p+0, INEXACT) 184T(RU, 0x1p-124, 0x1p-124, 0x0p+0, INEXACT) 185T(RU,-0x1.000002p-126, -0x1p-126, 0x1p+0, INEXACT) 186T(RU,-0x1.000004p-126,-0x1.000002p-126, 0x1p+0, INEXACT) 187T(RU, -0x1p-125,-0x1.fffffep-126, 0x1p+0, INEXACT) 188T(RU, -0x1p-124,-0x1.fffffep-125, 0x1p+0, INEXACT) 189T(RU, 0x1p-149, 0x1p-149, 0x0p+0, INEXACT|UNDERFLOW) 190T(RU, 0x1p-148, 0x1p-148, 0x0p+0, INEXACT|UNDERFLOW) 191T(RU, 0x1.2p-146, 0x1.2p-146, 0x0p+0, INEXACT|UNDERFLOW) 192T(RU, 0x1p-128, 0x1p-128, 0x0p+0, INEXACT|UNDERFLOW) 193T(RU, 0x1p-127, 0x1p-127, 0x0p+0, INEXACT|UNDERFLOW) 194T(RU, 0x1.fffff8p-127, 0x1.fffff8p-127, 0x0p+0, INEXACT|UNDERFLOW) 195T(RU, 0x1.fffffcp-127, 0x1.fffffcp-127, 0x0p+0, INEXACT|UNDERFLOW) 196T(RU, -0x1p-149, -0x0p+0, 0x1p+0, INEXACT|UNDERFLOW) 197T(RU, -0x1p-148, -0x1p-149, 0x1p+0, INEXACT|UNDERFLOW) 198T(RU, -0x1p-128, -0x1.fffffp-129, 0x1p+0, INEXACT|UNDERFLOW) 199T(RU, -0x1p-127,-0x1.fffff8p-128, 0x1p+0, INEXACT|UNDERFLOW) 200T(RU,-0x1.fffff8p-127,-0x1.fffff4p-127, 0x1p+0, INEXACT|UNDERFLOW) 201T(RU,-0x1.fffffcp-127,-0x1.fffff8p-127, 0x1p+0, INEXACT|UNDERFLOW) 202T(RU, 0x1.8p-27, 0x1.8p-27, 0x1.2p-31, INEXACT) 203T(RU, 0x1p-12, 0x1p-12, 0x1.555554p-3, INEXACT) 204T(RU, -0x1.8p-27, -0x1.7ffffep-27, 0x1p+0, INEXACT) 205T(RU, -0x1p-12, -0x1.fffffep-13, 0x1.555556p-1, INEXACT) 206T(RZ, 0x1.000002p-126, 0x1p-126, -0x1p+0, INEXACT) 207T(RZ, 0x1.000004p-126, 0x1.000002p-126, -0x1p+0, INEXACT) 208T(RZ, 0x1p-125, 0x1.fffffep-126, -0x1p+0, INEXACT) 209T(RZ, 0x1p-124, 0x1.fffffep-125, -0x1p+0, INEXACT) 210T(RZ,-0x1.000002p-126, -0x1p-126, 0x1p+0, INEXACT) 211T(RZ,-0x1.000004p-126,-0x1.000002p-126, 0x1p+0, INEXACT) 212T(RZ, -0x1p-125,-0x1.fffffep-126, 0x1p+0, INEXACT) 213T(RZ, -0x1p-124,-0x1.fffffep-125, 0x1p+0, INEXACT) 214T(RZ, 0x1p-149, 0x0p+0, -0x1p+0, INEXACT|UNDERFLOW) 215T(RZ, 0x1p-148, 0x1p-149, -0x1p+0, INEXACT|UNDERFLOW) 216T(RZ, 0x1p-128, 0x1.fffffp-129, -0x1p+0, INEXACT|UNDERFLOW) 217T(RZ, 0x1p-127, 0x1.fffff8p-128, -0x1p+0, INEXACT|UNDERFLOW) 218T(RZ, 0x1.fffff8p-127, 0x1.fffff4p-127, -0x1p+0, INEXACT|UNDERFLOW) 219T(RZ, 0x1.fffffcp-127, 0x1.fffff8p-127, -0x1p+0, INEXACT|UNDERFLOW) 220T(RZ, -0x1p-149, -0x0p+0, 0x1p+0, INEXACT|UNDERFLOW) 221T(RZ, -0x1p-148, -0x1p-149, 0x1p+0, INEXACT|UNDERFLOW) 222T(RZ, -0x1p-128, -0x1.fffffp-129, 0x1p+0, INEXACT|UNDERFLOW) 223T(RZ, -0x1p-127,-0x1.fffff8p-128, 0x1p+0, INEXACT|UNDERFLOW) 224T(RZ,-0x1.fffff8p-127,-0x1.fffff4p-127, 0x1p+0, INEXACT|UNDERFLOW) 225T(RZ,-0x1.fffffcp-127,-0x1.fffff8p-127, 0x1p+0, INEXACT|UNDERFLOW) 226T(RZ, 0x1.8p-27, 0x1.7ffffep-27, -0x1p+0, INEXACT) 227T(RZ, 0x1p-12, 0x1.fffffep-13, -0x1.555556p-1, INEXACT) 228T(RZ, -0x1.8p-27, -0x1.7ffffep-27, 0x1p+0, INEXACT) 229T(RZ, -0x1p-12, -0x1.fffffep-13, 0x1.555556p-1, INEXACT) 230