/* Copyright (C) 1988-1994 Sun Microsystems, Inc. 2550 Garcia Avenue */ /* Mountain View, California 94043 All rights reserved. */ /* */ /* Any person is hereby authorized to download, copy, use, create bug fixes, */ /* and distribute, subject to the following conditions: */ /* */ /* 1. the software may not be redistributed for a fee except as */ /* reasonable to cover media costs; */ /* 2. any copy of the software must include this notice, as well as */ /* any other embedded copyright notices; and */ /* 3. any distribution of this software or derivative works thereof */ /* must comply with all applicable U.S. export control laws. */ /* */ /* THE SOFTWARE IS MADE AVAILABLE "AS IS" AND WITHOUT EXPRESS OR IMPLIED */ /* WARRANTY OF ANY KIND, INCLUDING BUT NOT LIMITED TO THE IMPLIED */ /* WARRANTIES OF DESIGN, MERCHANTIBILITY, FITNESS FOR A PARTICULAR */ /* PURPOSE, NON-INFRINGEMENT, PERFORMANCE OR CONFORMANCE TO */ /* SPECIFICATIONS. */ /* */ /* BY DOWNLOADING AND/OR USING THIS SOFTWARE, THE USER WAIVES ALL CLAIMS */ /* AGAINST SUN MICROSYSTEMS, INC. AND ITS AFFILIATED COMPANIES IN ANY */ /* JURISDICTION, INCLUDING BUT NOT LIMITED TO CLAIMS FOR DAMAGES OR */ /* EQUITABLE RELIEF BASED ON LOSS OF DATA, AND SPECIFICALLY WAIVES EVEN */ /* UNKNOWN OR UNANTICIPATED CLAIMS OR LOSSES, PRESENT AND FUTURE. */ /* */ /* IN NO EVENT WILL SUN MICROSYSTEMS, INC. OR ANY OF ITS AFFILIATED */ /* COMPANIES BE LIABLE FOR ANY LOST REVENUE OR PROFITS OR OTHER SPECIAL, */ /* INDIRECT AND CONSEQUENTIAL DAMAGES, EVEN IF IT HAS BEEN ADVISED OF THE */ /* POSSIBILITY OF SUCH DAMAGES. */ /* */ /* This file is provided with no support and without any obligation on the */ /* part of Sun Microsystems, Inc. ("Sun") or any of its affiliated */ /* companies to assist in its use, correction, modification or */ /* enhancement. Nevertheless, and without creating any obligation on its */ /* part, Sun welcomes your comments concerning the software and requests */ /* that they be sent to fdlibm-comments@sunpro.sun.com. */ /* atans(+-max) is +-pi/2 */ atans n eq x 7f7fffff 3fc90fdb atans n eq x ff7fffff bfc90fdb /* atans(+-1) is +-pi/4 */ atans n eq x 3f800000 3f490fdb atans n eq x bf800000 bf490fdb /* atans(tiny) is tiny */ atans n eq x 31000000 31000000 atans n eq x b1000000 b1000000 atans n eq x 00800000 00800000 atans n eq x 80800000 80800000 atans z vn x 31000000 31000000 atans z vn x b1000000 b1000000 atans z vn x 00800000 00800000 atans z vn x 80800000 80800000 atans p vn x 31000000 31000000 atans p vn x b1000000 b1000000 atans p vn x 00800000 00800000 atans p vn x 80800000 80800000 atans m vn x 31000000 31000000 atans m vn x b1000000 b1000000 atans m vn x 00800000 00800000 atans m vn x 80800000 80800000 /* atans(+-0) is +-0 */ atans n eq - 0 0 atans n eq - 80000000 80000000 atans z eq - 0 0 atans z eq - 80000000 80000000 atans p eq - 0 0 atans p eq - 80000000 80000000 atans m eq - 0 0 atans m eq - 80000000 80000000 /* random arguments between -2 and 2 */ atans n vn x bf099426 befc7bae atans n vn x 3fb65470 3f756e37 atans n vn x 3fe16530 3f86f3fc atans n vn x bfaaf890 bf6d9b3e atans n vn x bf0ab3cf befe3942 atans n vn x bda0f099 bda09c1a atans n vn x 3f940d87 3f5ba021 atans n vn x 3fdae71a 3f8555ac atans n vn x beac1a41 bea6070a atans n vn x bff54112 bf8b7dce atans z nb x bf099426 befc7bae atans z nb x 3fb65470 3f756e37 atans z nb x 3fe16530 3f86f3fc atans z nb x bfaaf890 bf6d9b3e atans z nb x bf0ab3cf befe3942 atans z nb x bda0f099 bda09c1a atans z nb x 3f940d87 3f5ba021 atans z nb x 3fdae71a 3f8555ac atans z nb x beac1a41 bea6070a atans z nb x bff54112 bf8b7dce atans p nb x bf099426 befc7bae atans p nb x 3fb65470 3f756e37 atans p nb x 3fe16530 3f86f3fc atans p nb x bfaaf890 bf6d9b3e atans p nb x bf0ab3cf befe3942 atans p nb x bda0f099 bda09c1a atans p nb x 3f940d87 3f5ba021 atans p nb x 3fdae71a 3f8555ac atans p nb x beac1a41 bea6070a atans p nb x bff54112 bf8b7dce atans m nb x bf099426 befc7bae atans m nb x 3fb65470 3f756e37 atans m nb x 3fe16530 3f86f3fc atans m nb x bfaaf890 bf6d9b3e atans m nb x bf0ab3cf befe3942 atans m nb x bda0f099 bda09c1a atans m nb x 3f940d87 3f5ba021 atans m nb x 3fdae71a 3f8555ac atans m nb x beac1a41 bea6070a atans m nb x bff54112 bf8b7dce /* atans(+-inf) is +-pi/2 */ atans n eq x 7f800000 3fc90fdb atans n eq x ff800000 bfc90fdb /* atans(nan) is nan */ atans n uo v 7f800001 0 atans n uo - ffc00000 0 atans z uo v 7f800001 0 atans z uo - ffc00000 0 atans p uo v 7f800001 0 atans p uo - ffc00000 0 atans m uo v 7f800001 0 atans m uo - ffc00000 0 atans m eq x 00800000 00800000 atans m eq x 00800001 00800001 atans m eq x 00800002 00800002 atans m eq x 01000000 01000000 atans m eq x 01800000 01800000 atans m eq x 80800000 80800000 atans m eq x 80800001 80800001 atans m eq x 80800002 80800002 atans m eq x 80fffffb 80fffffb atans m eq x 81000000 81000000 atans m eq x 81000003 81000003 atans m eq x 81800000 81800000 atans m eq x?u 00000001 00000001 atans m eq x?u 00000002 00000002 atans m eq x?u 00200000 00200000 atans m eq x?u 00400000 00400000 atans m eq x?u 007ffffe 007ffffe atans m eq x?u 007fffff 007fffff atans m eq x?u 80000001 80000001 atans m eq x?u 80000002 80000002 atans m eq x?u 80000009 80000009 atans m eq x?u 80200000 80200000 atans m eq x?u 80400000 80400000 atans m eq x?u 807ffffe 807ffffe atans m eq x?u 807fffff 807fffff atans m uo - ffc00000 00000000 atans m uo - ffff0000 ffff0000 atans m uo v 7f800001 00000000 atans m uo v 7f810000 7fff0000 atans m uo v ff810000 ffff0000 atans m vn x 32400000 32400000 atans m vn x 39800000 39800000 atans m vn x b2400000 b2400000 atans m vn x b9800000 b9800000 atans n eq x 00800001 00800001 atans n eq x 00800002 00800002 atans n eq x 00fffffb 00fffffb atans n eq x 01000000 01000000 atans n eq x 01000003 01000003 atans n eq x 01800000 01800000 atans n eq x 32400000 32400000 atans n eq x 39800000 39800000 atans n eq x 80800001 80800001 atans n eq x 80800002 80800002 atans n eq x 80fffffb 80fffffb atans n eq x 81000000 81000000 atans n eq x 81000003 81000003 atans n eq x 81800000 81800000 atans n eq x b2400000 b2400000 atans n eq x b9800000 b9800000 atans n eq x?u 00000001 00000001 atans n eq x?u 00000002 00000002 atans n eq x?u 00000009 00000009 atans n eq x?u 00200000 00200000 atans n eq x?u 00400000 00400000 atans n eq x?u 007ffffe 007ffffe atans n eq x?u 007fffff 007fffff atans n eq x?u 80000001 80000001 atans n eq x?u 80000002 80000002 atans n eq x?u 80000009 80000009 atans n eq x?u 80200000 80200000 atans n eq x?u 80400000 80400000 atans n eq x?u 807ffffe 807ffffe atans n eq x?u 807fffff 807fffff atans n uo - ffc00000 00000000 atans n uo - ffff0000 ffff0000 atans n uo v 7f800001 00000000 atans n uo v 7f810000 7fff0000 atans n uo v ff810000 ffff0000 atans p eq x 00800000 00800000 atans p eq x 00800001 00800001 atans p eq x 00800002 00800002 atans p eq x 00fffffb 00fffffb atans p eq x 01000000 01000000 atans p eq x 01000003 01000003 atans p eq x 01800000 01800000 atans p eq x 80800000 80800000 atans p eq x 80800001 80800001 atans p eq x 80800002 80800002 atans p eq x 81000000 81000000 atans p eq x 81800000 81800000 atans p eq x?u 00000001 00000001 atans p eq x?u 00000002 00000002 atans p eq x?u 00000009 00000009 atans p eq x?u 00200000 00200000 atans p eq x?u 00400000 00400000 atans p eq x?u 007ffffe 007ffffe atans p eq x?u 007fffff 007fffff atans p eq x?u 80000001 80000001 atans p eq x?u 80000002 80000002 atans p eq x?u 80200000 80200000 atans p eq x?u 80400000 80400000 atans p eq x?u 807ffffe 807ffffe atans p eq x?u 807fffff 807fffff atans p uo - 7fff0000 7fff0000 atans p uo - ffc00000 00000000 atans p uo - ffff0000 ffff0000 atans p uo v 7f800001 00000000 atans p uo v 7f810000 7fff0000 atans p uo v ff810000 ffff0000 atans p vn x 32400000 32400000 atans p vn x 39800000 39800000 atans p vn x b2400000 b2400000 atans p vn x b9800000 b9800000 atans z eq x 00800000 00800000 atans z eq x 00800001 00800001 atans z eq x 00800002 00800002 atans z eq x 01000000 01000000 atans z eq x 01800000 01800000 atans z eq x 80800000 80800000 atans z eq x 80800001 80800001 atans z eq x 80800002 80800002 atans z eq x 81000000 81000000 atans z eq x 81800000 81800000 atans z eq x?u 00000001 00000001 atans z eq x?u 00000002 00000002 atans z eq x?u 00200000 00200000 atans z eq x?u 00400000 00400000 atans z eq x?u 007ffffe 007ffffe atans z eq x?u 007fffff 007fffff atans z eq x?u 80000001 80000001 atans z eq x?u 80000002 80000002 atans z eq x?u 80200000 80200000 atans z eq x?u 80400000 80400000 atans z eq x?u 807ffffe 807ffffe atans z eq x?u 807fffff 807fffff atans z uo - 7fff0000 7fff0000 atans z uo - ffc00000 00000000 atans z uo - ffff0000 ffff0000 atans z uo v 7f800001 00000000 atans z uo v 7f810000 7fff0000 atans z uo v ff810000 ffff0000 atans z vn x 32400000 32400000 atans z vn x 39800000 39800000 atans z vn x b2400000 b2400000 atans z vn x b9800000 b9800000