/* 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. */ /* acosd(+-1) is 0,pi */ acosd n eq - 3ff00000 0 0 0 acosd n eq x bff00000 0 400921fb 54442d18 /* acosd(+-(1 - tiny)) :=: sqrt(2*tiny) or pi-sqrt(2*tiny) */ acosd n nb x 3fefffff ffffffff 3e500000 00000000 acosd z nb x 3fefffff ffffffff 3e500000 00000000 acosd p nb x 3fefffff ffffffff 3e500000 00000000 acosd m nb x 3fefffff ffffffff 3e500000 00000000 acosd n nb x bfefffff ffffffff 400921fb 52442d18 acosd z nb x bfefffff ffffffff 400921fb 52442d18 acosd p nb x bfefffff ffffffff 400921fb 52442d18 acosd m nb x bfefffff ffffffff 400921fb 52442d18 /* acosd(tiny) = pi/2-tiny */ acosd n eq x 3d300000 0 3ff921fb 54442c18 acosd n eq x bd300000 0 3ff921fb 54442e18 acosd n eq x 3bc00000 0 3ff921fb 54442d18 acosd n eq x bbc00000 0 3ff921fb 54442d18 acosd n eq x 00100000 0 3ff921fb 54442d18 acosd n eq x 80100000 0 3ff921fb 54442d18 acosd n eq x 0 0 3ff921fb 54442d18 /* some random number between -1 and 1 */ acosd n nb x bfd13284 b2b5006d 3ffd7c4e 61020905 acosd n nb x 3fe6ca8d fb825911 3fe8e675 6e27c366 acosd n nb x 3fec2ca6 09de7505 3fdf9d74 8eaf9560 acosd n nb x bfe55f11 fba96889 40026abd c68d07aa acosd n nb x bfd15679 e27084dd 3ffd85a4 4ea44fe4 acosd n nb x bfa41e13 1b093c41 3ff9c2f6 88eee8ab acosd n nb x 3fe281b0 d18455f5 3fee881b 1d4eb2a1 acosd n nb x 3feb5ce3 4a51b239 3fe1713f 567a87ef acosd n nb x bfc58348 1079de4d 3ffbd5ac be8fcc59 acosd n nb x bfeea822 3103b871 4006ce7d 66f628e5 acosd z nb x bfd13284 b2b5006d 3ffd7c4e 61020905 acosd z nb x 3fe6ca8d fb825911 3fe8e675 6e27c366 acosd z nb x 3fec2ca6 09de7505 3fdf9d74 8eaf9560 acosd z nb x bfe55f11 fba96889 40026abd c68d07aa acosd z nb x bfd15679 e27084dd 3ffd85a4 4ea44fe4 acosd z nb x bfa41e13 1b093c41 3ff9c2f6 88eee8ab acosd z nb x 3fe281b0 d18455f5 3fee881b 1d4eb2a1 acosd z nb x 3feb5ce3 4a51b239 3fe1713f 567a87ef acosd z nb x bfc58348 1079de4d 3ffbd5ac be8fcc59 acosd z nb x bfeea822 3103b871 4006ce7d 66f628e5 acosd p nb x bfd13284 b2b5006d 3ffd7c4e 61020905 acosd p nb x 3fe6ca8d fb825911 3fe8e675 6e27c366 acosd p nb x 3fec2ca6 09de7505 3fdf9d74 8eaf9560 acosd p nb x bfe55f11 fba96889 40026abd c68d07aa acosd p nb x bfd15679 e27084dd 3ffd85a4 4ea44fe4 acosd p nb x bfa41e13 1b093c41 3ff9c2f6 88eee8ab acosd p nb x 3fe281b0 d18455f5 3fee881b 1d4eb2a1 acosd p nb x 3feb5ce3 4a51b239 3fe1713f 567a87ef acosd p nb x bfc58348 1079de4d 3ffbd5ac be8fcc59 acosd p nb x bfeea822 3103b871 4006ce7d 66f628e5 acosd m nb x bfd13284 b2b5006d 3ffd7c4e 61020905 acosd m nb x 3fe6ca8d fb825911 3fe8e675 6e27c366 acosd m nb x 3fec2ca6 09de7505 3fdf9d74 8eaf9560 acosd m nb x bfe55f11 fba96889 40026abd c68d07aa acosd m nb x bfd15679 e27084dd 3ffd85a4 4ea44fe4 acosd m nb x bfa41e13 1b093c41 3ff9c2f6 88eee8ab acosd m nb x 3fe281b0 d18455f5 3fee881b 1d4eb2a1 acosd m nb x 3feb5ce3 4a51b239 3fe1713f 567a87ef acosd m nb x bfc58348 1079de4d 3ffbd5ac be8fcc59 acosd m nb x bfeea822 3103b871 4006ce7d 66f628e5 /* exception cases */ acosd n uo v 3ff00000 1 0 0 acosd z uo v 3ff00000 1 0 0 acosd p uo v 3ff00000 1 0 0 acosd m uo v 3ff00000 1 0 0 acosd n uo v bff00000 1 0 0 acosd n uo v 40000000 0 0 0 acosd n uo v 40f00000 1 0 0 acosd n uo v c0ffffff ffffffff 0 0 acosd n uo v 7ff00000 1 0 0 acosd n uo v fff00000 1 0 0 acosd z uo v fff00000 1 0 0 acosd p uo v fff00000 1 0 0 acosd m uo v fff00000 1 0 0 acosd n uo - 7ff80000 1 0 0 acosd z uo - 7ff80000 1 0 0 acosd p uo - 7ff80000 1 0 0 acosd m uo - 7ff80000 1 0 0 acosd n uo - fff80000 1 0 0 acosd m eq - 3ff00000 00000000 00000000 00000000 acosd m uo - 7ff80000 00000001 00000000 00000000 acosd m uo - 7fffe000 00000000 7fffe000 00000000 acosd m uo - ffffe000 00000000 ffffe000 00000000 acosd m uo v 3ff00000 00000001 7fffe000 00000000 acosd m uo v 3ff00000 00000002 7fffe000 00000000 acosd m uo v 40000000 00000000 7fffe000 00000000 acosd m uo v 40100000 00000000 7fffe000 00000000 acosd m uo v 7fd00000 00000000 7fffe000 00000000 acosd m uo v 7fe00000 00000000 7fffe000 00000000 acosd m uo v 7fefffff fffffffe 7fffe000 00000000 acosd m uo v 7fefffff ffffffff 7fffe000 00000000 acosd m uo v 7ff00000 00000000 7fffe000 00000000 acosd m uo v 7ff02000 00000000 7fffe000 00000000 acosd m uo v bff00000 00000001 ffffe000 00000000 acosd m uo v bff00000 00000002 ffffe000 00000000 acosd m uo v c0000000 00000000 ffffe000 00000000 acosd m uo v c0100000 00000000 ffffe000 00000000 acosd m uo v ffd00000 00000000 ffffe000 00000000 acosd m uo v ffe00000 00000000 ffffe000 00000000 acosd m uo v ffefffff fffffffe ffffe000 00000000 acosd m uo v ffefffff ffffffff ffffe000 00000000 acosd m uo v fff00000 00000000 ffffe000 00000000 acosd m uo v fff00000 00000001 00000000 00000000 acosd m uo v fff02000 00000000 ffffe000 00000000 acosd m vn x 3fefffff fffffff0 3e700000 00000001 acosd n eq x 3fefffff fffffff0 3e700000 00000001 acosd n eq x 3fefffff ffffffff 3e500000 00000000 acosd n uo - 7ff80000 00000001 00000000 00000000 acosd n uo - 7fffe000 00000000 7fffe000 00000000 acosd n uo - fff80000 00000001 00000000 00000000 acosd n uo - ffffe000 00000000 ffffe000 00000000 acosd n uo v 3ff00000 00000001 7fffe000 00000000 acosd n uo v 3ff00000 00000002 7fffe000 00000000 acosd n uo v 40000000 00000000 7fffe000 00000000 acosd n uo v 40100000 00000000 7fffe000 00000000 acosd n uo v 40f00000 00000001 00000000 00000000 acosd n uo v 7fd00000 00000000 7fffe000 00000000 acosd n uo v 7fe00000 00000000 7fffe000 00000000 acosd n uo v 7fefffff fffffffe 7fffe000 00000000 acosd n uo v 7fefffff ffffffff 7fffe000 00000000 acosd n uo v 7ff00000 00000000 7fffe000 00000000 acosd n uo v 7ff00000 00000001 00000000 00000000 acosd n uo v 7ff02000 00000000 7fffe000 00000000 acosd n uo v bff00000 00000001 ffffe000 00000000 acosd n uo v bff00000 00000002 ffffe000 00000000 acosd n uo v c0000000 00000000 ffffe000 00000000 acosd n uo v c0100000 00000000 ffffe000 00000000 acosd n uo v c0ffffff ffffffff 00000000 00000000 acosd n uo v ffd00000 00000000 ffffe000 00000000 acosd n uo v ffe00000 00000000 ffffe000 00000000 acosd n uo v ffefffff fffffffe ffffe000 00000000 acosd n uo v ffefffff ffffffff ffffe000 00000000 acosd n uo v fff00000 00000000 ffffe000 00000000 acosd n uo v fff00000 00000001 00000000 00000000 acosd n uo v fff02000 00000000 ffffe000 00000000 acosd p eq - 3ff00000 00000000 00000000 00000000 acosd p uo - 7ff80000 00000001 00000000 00000000 acosd p uo - 7fffe000 00000000 7fffe000 00000000 acosd p uo - ffffe000 00000000 ffffe000 00000000 acosd p uo v 3ff00000 00000001 7fffe000 00000000 acosd p uo v 3ff00000 00000002 7fffe000 00000000 acosd p uo v 40000000 00000000 7fffe000 00000000 acosd p uo v 40100000 00000000 7fffe000 00000000 acosd p uo v 7fd00000 00000000 7fffe000 00000000 acosd p uo v 7fe00000 00000000 7fffe000 00000000 acosd p uo v 7fefffff fffffffe 7fffe000 00000000 acosd p uo v 7fefffff ffffffff 7fffe000 00000000 acosd p uo v 7ff00000 00000000 7fffe000 00000000 acosd p uo v 7ff02000 00000000 7fffe000 00000000 acosd p uo v bff00000 00000001 ffffe000 00000000 acosd p uo v bff00000 00000002 ffffe000 00000000 acosd p uo v c0000000 00000000 ffffe000 00000000 acosd p uo v c0100000 00000000 ffffe000 00000000 acosd p uo v ffd00000 00000000 ffffe000 00000000 acosd p uo v ffe00000 00000000 ffffe000 00000000 acosd p uo v ffefffff fffffffe ffffe000 00000000 acosd p uo v ffefffff ffffffff ffffe000 00000000 acosd p uo v fff00000 00000000 ffffe000 00000000 acosd p uo v fff00000 00000001 00000000 00000000 acosd p uo v fff02000 00000000 ffffe000 00000000 acosd p vn x 3fefffff ffffffe7 3e740000 00000001 acosd p vn x 3fefffff fffffff0 3e700000 00000001 acosd z eq - 3ff00000 00000000 00000000 00000000 acosd z uo - 7ff80000 00000001 00000000 00000000 acosd z uo - 7fffe000 00000000 7fffe000 00000000 acosd z uo - ffffe000 00000000 ffffe000 00000000 acosd z uo v 3ff00000 00000001 7fffe000 00000000 acosd z uo v 3ff00000 00000002 7fffe000 00000000 acosd z uo v 40000000 00000000 7fffe000 00000000 acosd z uo v 40100000 00000000 7fffe000 00000000 acosd z uo v 7fd00000 00000000 7fffe000 00000000 acosd z uo v 7fe00000 00000000 7fffe000 00000000 acosd z uo v 7fefffff fffffffe 7fffe000 00000000 acosd z uo v 7fefffff ffffffff 7fffe000 00000000 acosd z uo v 7ff00000 00000000 7fffe000 00000000 acosd z uo v 7ff02000 00000000 7fffe000 00000000 acosd z uo v bff00000 00000001 ffffe000 00000000 acosd z uo v bff00000 00000002 ffffe000 00000000 acosd z uo v c0000000 00000000 ffffe000 00000000 acosd z uo v c0100000 00000000 ffffe000 00000000 acosd z uo v ffd00000 00000000 ffffe000 00000000 acosd z uo v ffe00000 00000000 ffffe000 00000000 acosd z uo v ffefffff fffffffe ffffe000 00000000 acosd z uo v ffefffff ffffffff ffffe000 00000000 acosd z uo v fff00000 00000000 ffffe000 00000000 acosd z uo v fff00000 00000001 00000000 00000000 acosd z uo v fff02000 00000000 ffffe000 00000000 acosd z vn x 3fefffff ffffffe7 3e740000 00000001 acosd z vn x 3fefffff fffffff0 3e700000 00000001