/* 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. */ /* atand(+-max) is +-pi/2 */ atand n eq x 7fefffff ffffffff 3ff921fb 54442d18 atand n eq x ffefffff ffffffff bff921fb 54442d18 /* atand(+-1) is +-pi/4 */ atand n eq x 3ff00000 0 3fe921fb 54442d18 atand n eq x bff00000 0 bfe921fb 54442d18 /* atand(tiny) is tiny */ atand n eq x 3e100000 0 3e100000 0 atand n eq x be100000 0 be100000 0 atand n eq x 00100000 0 00100000 0 atand n eq x 80100000 0 80100000 0 atand z vn x 3e100000 0 3e100000 0 atand z vn x be100000 0 be100000 0 atand z vn x 00100000 0 00100000 0 atand z vn x 80100000 0 80100000 0 atand p vn x 3e100000 0 3e100000 0 atand p vn x be100000 0 be100000 0 atand p vn x 00100000 0 00100000 0 atand p vn x 80100000 0 80100000 0 atand m vn x 3e100000 0 3e100000 0 atand m vn x be100000 0 be100000 0 atand m vn x 00100000 0 00100000 0 atand m vn x 80100000 0 80100000 0 /* atand(+-0) is +-0 */ atand n eq - 0 0 0 0 atand n eq - 80000000 0 80000000 0 atand z eq - 0 0 0 0 atand z eq - 80000000 0 80000000 0 atand p eq - 0 0 0 0 atand p eq - 80000000 0 80000000 0 atand m eq - 0 0 0 0 atand m eq - 80000000 0 80000000 0 /* random arguments between -2 and 2 */ atand n vn x bfe13284 b2b5006d bfdf8f75 bb5fd451 atand n vn x 3ff6ca8d fb825911 3feeadc6 ce9cba6c atand n vn x 3ffc2ca6 09de7505 3ff0de7f 90a2292b atand n vn x bff55f11 fba96889 bfedb367 aed10930 atand n vn x bfe15679 e27084dd bfdfc728 49d05c90 atand n vn x bfb41e13 1b093c41 bfb41383 2eb4f31d atand n vn x 3ff281b0 d18455f5 3feb7404 0cba5c64 atand n vn x 3ffb5ce3 4a51b239 3ff0aab5 8c02e298 atand n vn x bfd58348 1079de4d bfd4c0e1 2c6c30bf atand n vn x bffea822 3103b871 bff16fb9 ae45d4fc atand z nb x bfe13284 b2b5006d bfdf8f75 bb5fd451 atand z nb x 3ff6ca8d fb825911 3feeadc6 ce9cba6c atand z nb x 3ffc2ca6 09de7505 3ff0de7f 90a2292b atand p nb x bff55f11 fba96889 bfedb367 aed10930 atand p nb x bfe15679 e27084dd bfdfc728 49d05c90 atand p nb x bfb41e13 1b093c41 bfb41383 2eb4f31d atand m nb x 3ff281b0 d18455f5 3feb7404 0cba5c64 atand m nb x 3ffb5ce3 4a51b239 3ff0aab5 8c02e298 atand m nb x bfd58348 1079de4d bfd4c0e1 2c6c30bf atand m nb x bffea822 3103b871 bff16fb9 ae45d4fc /* atand(+-inf) is +-pi/2 */ atand n eq x 7ff00000 0 3ff921fb 54442d18 atand n eq x fff00000 0 bff921fb 54442d18 /* atand(nan) is nan */ atand n uo v 7ff00000 1 0 0 atand n uo - fff80000 0 0 0 atand z uo v 7ff00000 1 0 0 atand z uo - fff80000 0 0 0 atand p uo v 7ff00000 1 0 0 atand p uo - fff80000 0 0 0 atand m uo v 7ff00000 1 0 0 atand m uo - fff80000 0 0 0 atand m eq x 00100000 00000000 00100000 00000000 atand m eq x 00100000 00000001 00100000 00000001 atand m eq x 00100000 00000002 00100000 00000002 atand m eq x 00200000 00000000 00200000 00000000 atand m eq x 00300000 00000000 00300000 00000000 atand m eq x 80100000 00000000 80100000 00000000 atand m eq x 80100000 00000001 80100000 00000001 atand m eq x 80100000 00000002 80100000 00000002 atand m eq x 801fffff fffffffb 801fffff fffffffb atand m eq x 80200000 00000000 80200000 00000000 atand m eq x 80200000 00000003 80200000 00000003 atand m eq x 80300000 00000000 80300000 00000000 atand m eq x?u 00000000 00000001 00000000 00000001 atand m eq x?u 00000000 00000002 00000000 00000002 atand m eq x?u 00040000 00000000 00040000 00000000 atand m eq x?u 00080000 00000000 00080000 00000000 atand m eq x?u 000fffff fffffffe 000fffff fffffffe atand m eq x?u 000fffff ffffffff 000fffff ffffffff atand m eq x?u 80000000 00000001 80000000 00000001 atand m eq x?u 80000000 00000002 80000000 00000002 atand m eq x?u 80000000 00000009 80000000 00000009 atand m eq x?u 80040000 00000000 80040000 00000000 atand m eq x?u 80080000 00000000 80080000 00000000 atand m eq x?u 800fffff fffffffe 800fffff fffffffe atand m eq x?u 800fffff ffffffff 800fffff ffffffff atand m uo - fff80000 00000000 00000000 00000000 atand m uo - ffffe000 00000000 ffffe000 00000000 atand m uo v 7ff00000 00000001 00000000 00000000 atand m uo v 7ff02000 00000000 7fffe000 00000000 atand m uo v fff02000 00000000 ffffe000 00000000 atand m vn x 3e480000 00000000 3e480000 00000000 atand m vn x be480000 00000000 be480000 00000000 atand n eq x 00100000 00000001 00100000 00000001 atand n eq x 00100000 00000002 00100000 00000002 atand n eq x 001fffff fffffffb 001fffff fffffffb atand n eq x 00200000 00000000 00200000 00000000 atand n eq x 00200000 00000003 00200000 00000003 atand n eq x 00300000 00000000 00300000 00000000 atand n eq x 3e480000 00000000 3e480000 00000000 atand n eq x 80100000 00000001 80100000 00000001 atand n eq x 80100000 00000002 80100000 00000002 atand n eq x 801fffff fffffffb 801fffff fffffffb atand n eq x 80200000 00000000 80200000 00000000 atand n eq x 80200000 00000003 80200000 00000003 atand n eq x 80300000 00000000 80300000 00000000 atand n eq x be480000 00000000 be480000 00000000 atand n eq x?u 00000000 00000001 00000000 00000001 atand n eq x?u 00000000 00000002 00000000 00000002 atand n eq x?u 00000000 00000009 00000000 00000009 atand n eq x?u 00040000 00000000 00040000 00000000 atand n eq x?u 00080000 00000000 00080000 00000000 atand n eq x?u 000fffff fffffffe 000fffff fffffffe atand n eq x?u 000fffff ffffffff 000fffff ffffffff atand n eq x?u 80000000 00000001 80000000 00000001 atand n eq x?u 80000000 00000002 80000000 00000002 atand n eq x?u 80000000 00000009 80000000 00000009 atand n eq x?u 80040000 00000000 80040000 00000000 atand n eq x?u 80080000 00000000 80080000 00000000 atand n eq x?u 800fffff fffffffe 800fffff fffffffe atand n eq x?u 800fffff ffffffff 800fffff ffffffff atand n uo - fff80000 00000000 00000000 00000000 atand n uo - ffffe000 00000000 ffffe000 00000000 atand n uo v 7ff00000 00000001 00000000 00000000 atand n uo v 7ff02000 00000000 7fffe000 00000000 atand n uo v fff02000 00000000 ffffe000 00000000 atand p eq x 00100000 00000000 00100000 00000000 atand p eq x 00100000 00000001 00100000 00000001 atand p eq x 00100000 00000002 00100000 00000002 atand p eq x 001fffff fffffffb 001fffff fffffffb atand p eq x 00200000 00000000 00200000 00000000 atand p eq x 00200000 00000003 00200000 00000003 atand p eq x 00300000 00000000 00300000 00000000 atand p eq x 80100000 00000000 80100000 00000000 atand p eq x 80100000 00000001 80100000 00000001 atand p eq x 80100000 00000002 80100000 00000002 atand p eq x 80200000 00000000 80200000 00000000 atand p eq x 80300000 00000000 80300000 00000000 atand p eq x?u 00000000 00000001 00000000 00000001 atand p eq x?u 00000000 00000002 00000000 00000002 atand p eq x?u 00000000 00000009 00000000 00000009 atand p eq x?u 00040000 00000000 00040000 00000000 atand p eq x?u 00080000 00000000 00080000 00000000 atand p eq x?u 000fffff fffffffe 000fffff fffffffe atand p eq x?u 000fffff ffffffff 000fffff ffffffff atand p eq x?u 80000000 00000001 80000000 00000001 atand p eq x?u 80000000 00000002 80000000 00000002 atand p eq x?u 80040000 00000000 80040000 00000000 atand p eq x?u 80080000 00000000 80080000 00000000 atand p eq x?u 800fffff fffffffe 800fffff fffffffe atand p eq x?u 800fffff ffffffff 800fffff ffffffff atand p uo - 7fffe000 00000000 7fffe000 00000000 atand p uo - fff80000 00000000 00000000 00000000 atand p uo - ffffe000 00000000 ffffe000 00000000 atand p uo v 7ff00000 00000001 00000000 00000000 atand p uo v 7ff02000 00000000 7fffe000 00000000 atand p uo v fff02000 00000000 ffffe000 00000000 atand p vn x 3e480000 00000000 3e480000 00000000 atand p vn x be480000 00000000 be480000 00000000 atand z eq x 00100000 00000000 00100000 00000000 atand z eq x 00100000 00000001 00100000 00000001 atand z eq x 00100000 00000002 00100000 00000002 atand z eq x 00200000 00000000 00200000 00000000 atand z eq x 00300000 00000000 00300000 00000000 atand z eq x 80100000 00000000 80100000 00000000 atand z eq x 80100000 00000001 80100000 00000001 atand z eq x 80100000 00000002 80100000 00000002 atand z eq x 80200000 00000000 80200000 00000000 atand z eq x 80300000 00000000 80300000 00000000 atand z eq x?u 00000000 00000001 00000000 00000001 atand z eq x?u 00000000 00000002 00000000 00000002 atand z eq x?u 00040000 00000000 00040000 00000000 atand z eq x?u 00080000 00000000 00080000 00000000 atand z eq x?u 000fffff fffffffe 000fffff fffffffe atand z eq x?u 000fffff ffffffff 000fffff ffffffff atand z eq x?u 80000000 00000001 80000000 00000001 atand z eq x?u 80000000 00000002 80000000 00000002 atand z eq x?u 80040000 00000000 80040000 00000000 atand z eq x?u 80080000 00000000 80080000 00000000 atand z eq x?u 800fffff fffffffe 800fffff fffffffe atand z eq x?u 800fffff ffffffff 800fffff ffffffff atand z uo - 7fffe000 00000000 7fffe000 00000000 atand z uo - fff80000 00000000 00000000 00000000 atand z uo - ffffe000 00000000 ffffe000 00000000 atand z uo v 7ff00000 00000001 00000000 00000000 atand z uo v 7ff02000 00000000 7fffe000 00000000 atand z uo v fff02000 00000000 ffffe000 00000000 atand z vn x 3e480000 00000000 3e480000 00000000 atand z vn x be480000 00000000 be480000 00000000