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// log10s(+fmax) is finite 38T(RN, 0x1.fffffep+127, 0x1.344136p+5, 0x1.f3039ep-2, INEXACT) 39T(RZ, 0x1.fffffep+127, 0x1.344134p+5, -0x1.067e3p-1, INEXACT) 40T(RU, 0x1.fffffep+127, 0x1.344136p+5, 0x1.f3039ep-2, INEXACT) 41T(RD, 0x1.fffffep+127, 0x1.344134p+5, -0x1.067e3p-1, INEXACT) 42// log10s(10**n) == n (n=1,...,10) 43T(RN, 0x1.4p+3, 0x1p+0, 0x0p+0, 0) 44T(RN, 0x1.9p+6, 0x1p+1, 0x0p+0, 0) 45T(RN, 0x1.f4p+9, 0x1.8p+1, 0x0p+0, 0) 46T(RN, 0x1.388p+13, 0x1p+2, 0x0p+0, 0) 47T(RN, 0x1.86ap+16, 0x1.4p+2, 0x0p+0, 0) 48T(RN, 0x1.e848p+19, 0x1.8p+2, 0x0p+0, 0) 49T(RN, 0x1.312dp+23, 0x1.cp+2, 0x0p+0, 0) 50T(RN, 0x1.7d784p+26, 0x1p+3, 0x0p+0, 0) 51T(RN, 0x1.dcd65p+29, 0x1.2p+3, 0x0p+0, 0) 52T(RN, 0x1.2a05f2p+33, 0x1.4p+3, 0x0p+0, 0) 53// log10s(1+tiny) is (tiny - tiny*tiny)/log10 54T(RN, 0x1.00004p+0, 0x1.bcb77ap-20, 0x1.11fa56p-3, INEXACT) 55T(RN, 0x1p+0, 0x0p+0, 0x0p+0, 0) 56T(RN, 0x1.ffff8p-1, -0x1.bcb7e8p-20, 0x1.d2db7ep-2, INEXACT) 57T(RZ, 0x1.00004p+0, 0x1.bcb778p-20, -0x1.bb816ap-1, INEXACT) 58T(RZ, 0x1p+0, 0x0p+0, 0x0p+0, 0) 59T(RZ, 0x1.ffff8p-1, -0x1.bcb7e8p-20, 0x1.d2db7ep-2, INEXACT) 60T(RU, 0x1.00004p+0, 0x1.bcb77ap-20, 0x1.11fa56p-3, INEXACT) 61T(RU, 0x1p+0, 0x0p+0, 0x0p+0, 0) 62T(RU, 0x1.ffff8p-1, -0x1.bcb7e8p-20, 0x1.d2db7ep-2, INEXACT) 63T(RD, 0x1.00004p+0, 0x1.bcb778p-20, -0x1.bb816ap-1, INEXACT) 64T(RD, 0x1p+0, 0x0p+0, 0x0p+0, 0) 65T(RD, 0x1.ffff8p-1, -0x1.bcb7eap-20, -0x1.16924p-1, INEXACT) 66// log10s(min) is finite 67T(RN, 0x1p-126, -0x1.2f703p+5, 0x1.ae7e0cp-4, INEXACT) 68T(RN, 0x1p-149, -0x1.66d3e8p+5, -0x1.0997p-3, INEXACT) 69T(RZ, 0x1p-126, -0x1.2f703p+5, 0x1.ae7e0cp-4, INEXACT) 70T(RZ, 0x1p-149, -0x1.66d3e6p+5, 0x1.bd9a4p-1, INEXACT) 71T(RU, 0x1p-126, -0x1.2f703p+5, 0x1.ae7e0cp-4, INEXACT) 72T(RU, 0x1p-149, -0x1.66d3e6p+5, 0x1.bd9a4p-1, INEXACT) 73T(RD, 0x1p-126, -0x1.2f7032p+5, -0x1.ca303ep-1, INEXACT) 74T(RD, 0x1p-149, -0x1.66d3e8p+5, -0x1.0997p-3, INEXACT) 75// random arguments between 0 100 76T(RN, 0x1.24844cp+5, 0x1.9024cp+0, -0x1.7605eap-2, INEXACT) 77T(RN, 0x1.5672p+6, 0x1.eeba5ep+0, 0x1.aaa14cp-6, INEXACT) 78T(RN, 0x1.7817p+6, 0x1.f925b6p+0, 0x1.fb3242p-2, INEXACT) 79T(RN, 0x1.09b75p+4, 0x1.38657p+0, -0x1.0801cap-3, INEXACT) 80T(RN, 0x1.23a38ep+5, 0x1.8fcf34p+0, -0x1.9ea21p-3, INEXACT) 81T(RN, 0x1.804882p+5, 0x1.ae7adp+0, 0x1.60441p-3, INEXACT) 82T(RN, 0x1.3baa8ep+6, 0x1.e5acdp+0, 0x1.e6b71ep-3, INEXACT) 83T(RN, 0x1.730484p+6, 0x1.f7a33cp+0, -0x1.ecfb84p-2, INEXACT) 84T(RN, 0x1.4cc5b2p+5, 0x1.9e7a86p+0, -0x1.ca6cb4p-2, INEXACT) 85T(RN, 0x1.0ca4d4p+1, 0x1.49b1b4p-2, -0x1.9af518p-4, INEXACT) 86// log10s(nan) is nan 87T(RN, nan, nan, 0x0p+0, 0) 88// log10s(+inf) is inf 89T(RN, inf, inf, 0x0p+0, 0) 90// log10s(+-0) is -inf 91T(RN, 0x0p+0, -inf, 0x0p+0, DIVBYZERO) 92T(RN, -0x0p+0, -inf, 0x0p+0, DIVBYZERO) 93// log10s(-ve) is nan 94T(RN, -0x1p-149, nan, 0x0p+0, INVALID) 95T(RN, -0x1p-126, nan, 0x0p+0, INVALID) 96T(RN,-0x1.fffffep+127, nan, 0x0p+0, INVALID) 97T(RN, -inf, nan, 0x0p+0, INVALID) 98T(RD, inf, inf, 0x0p+0, 0) 99T(RD, 0x0p+0, -inf, 0x0p+0, DIVBYZERO) 100T(RD, -0x0p+0, -inf, 0x0p+0, DIVBYZERO) 101T(RD, nan, nan, 0x0p+0, 0) 102T(RD, nan, nan, 0x0p+0, 0) 103T(RD, -0x1p-149, nan, 0x0p+0, INVALID) 104T(RD, -0x1p-148, nan, 0x0p+0, INVALID) 105T(RD, -0x1.cp-147, nan, 0x0p+0, INVALID) 106T(RD, -0x1p-128, nan, 0x0p+0, INVALID) 107T(RD, -0x1p-127, nan, 0x0p+0, INVALID) 108T(RD,-0x1.fffff8p-127, nan, 0x0p+0, INVALID) 109T(RD,-0x1.fffffcp-127, nan, 0x0p+0, INVALID) 110T(RD, -0x1p-126, nan, 0x0p+0, INVALID) 111T(RD,-0x1.000002p-126, nan, 0x0p+0, INVALID) 112T(RD,-0x1.000004p-126, nan, 0x0p+0, INVALID) 113T(RD, -0x1p-125, nan, 0x0p+0, INVALID) 114T(RD, -0x1p-124, nan, 0x0p+0, INVALID) 115T(RD, -0x1p-23, nan, 0x0p+0, INVALID) 116T(RD, -0x1p-21, nan, 0x0p+0, INVALID) 117T(RD, -0x1p-2, nan, 0x0p+0, INVALID) 118T(RD, -0x1p-1, nan, 0x0p+0, INVALID) 119T(RD, -0x1.fffff4p-1, nan, 0x0p+0, INVALID) 120T(RD, -0x1.fffff8p-1, nan, 0x0p+0, INVALID) 121T(RD, -0x1.fffffcp-1, nan, 0x0p+0, INVALID) 122T(RD, -0x1.fffffep-1, nan, 0x0p+0, INVALID) 123T(RD, -0x1p+0, nan, 0x0p+0, INVALID) 124T(RD, -0x1.000002p+0, nan, 0x0p+0, INVALID) 125T(RD, -0x1.000004p+0, nan, 0x0p+0, INVALID) 126T(RD, -0x1.000008p+0, nan, 0x0p+0, INVALID) 127T(RD, -0x1p+1, nan, 0x0p+0, INVALID) 128T(RD, -0x1.000004p+1, nan, 0x0p+0, INVALID) 129T(RD, -0x1.fffff6p+1, nan, 0x0p+0, INVALID) 130T(RD, -0x1p+2, nan, 0x0p+0, INVALID) 131T(RD, -0x1p+126, nan, 0x0p+0, INVALID) 132T(RD,-0x1.000004p+126, nan, 0x0p+0, INVALID) 133T(RD,-0x1.000008p+126, nan, 0x0p+0, INVALID) 134T(RD, -0x1p+127, nan, 0x0p+0, INVALID) 135T(RD,-0x1.000004p+127, nan, 0x0p+0, INVALID) 136T(RD,-0x1.fffffcp+127, nan, 0x0p+0, INVALID) 137T(RD,-0x1.fffffep+127, nan, 0x0p+0, INVALID) 138T(RD, -inf, nan, 0x0p+0, INVALID) 139T(RD, 0x1.4p+3, 0x1p+0, 0x0p+0, 0) 140T(RD, 0x1.9p+6, 0x1p+1, 0x0p+0, 0) 141T(RD, 0x1.f4p+9, 0x1.8p+1, 0x0p+0, 0) 142T(RD, 0x1.388p+13, 0x1p+2, 0x0p+0, 0) 143T(RN, nan, nan, 0x0p+0, 0) 144T(RN, -0x1p-148, nan, 0x0p+0, INVALID) 145T(RN, -0x1.cp-147, nan, 0x0p+0, INVALID) 146T(RN, -0x1p-128, nan, 0x0p+0, INVALID) 147T(RN, -0x1p-127, nan, 0x0p+0, INVALID) 148T(RN,-0x1.fffff8p-127, nan, 0x0p+0, INVALID) 149T(RN,-0x1.fffffcp-127, nan, 0x0p+0, INVALID) 150T(RN,-0x1.000002p-126, nan, 0x0p+0, INVALID) 151T(RN,-0x1.000004p-126, nan, 0x0p+0, INVALID) 152T(RN, -0x1p-125, nan, 0x0p+0, INVALID) 153T(RN, -0x1p-124, nan, 0x0p+0, INVALID) 154T(RN, -0x1p-23, nan, 0x0p+0, INVALID) 155T(RN, -0x1p-21, nan, 0x0p+0, INVALID) 156T(RN, -0x1p-2, nan, 0x0p+0, INVALID) 157T(RN, -0x1p-1, nan, 0x0p+0, INVALID) 158T(RN, -0x1.fffff4p-1, nan, 0x0p+0, INVALID) 159T(RN, -0x1.fffff8p-1, nan, 0x0p+0, INVALID) 160T(RN, -0x1.fffffcp-1, nan, 0x0p+0, INVALID) 161T(RN, -0x1.fffffep-1, nan, 0x0p+0, INVALID) 162T(RN, -0x1p+0, nan, 0x0p+0, INVALID) 163T(RN, -0x1.000002p+0, nan, 0x0p+0, INVALID) 164T(RN, -0x1.000004p+0, nan, 0x0p+0, INVALID) 165T(RN, -0x1.000008p+0, nan, 0x0p+0, INVALID) 166T(RN, -0x1p+1, nan, 0x0p+0, INVALID) 167T(RN, -0x1.000004p+1, nan, 0x0p+0, INVALID) 168T(RN, -0x1.fffff6p+1, nan, 0x0p+0, INVALID) 169T(RN, -0x1p+2, nan, 0x0p+0, INVALID) 170T(RN, -0x1p+126, nan, 0x0p+0, INVALID) 171T(RN,-0x1.000004p+126, nan, 0x0p+0, INVALID) 172T(RN,-0x1.000008p+126, nan, 0x0p+0, INVALID) 173T(RN, -0x1p+127, nan, 0x0p+0, INVALID) 174T(RN,-0x1.000004p+127, nan, 0x0p+0, INVALID) 175T(RN,-0x1.fffffcp+127, nan, 0x0p+0, INVALID) 176T(RU, inf, inf, 0x0p+0, 0) 177T(RU, 0x0p+0, -inf, 0x0p+0, DIVBYZERO) 178T(RU, -0x0p+0, -inf, 0x0p+0, DIVBYZERO) 179T(RU, nan, nan, 0x0p+0, 0) 180T(RU, nan, nan, 0x0p+0, 0) 181T(RU, -0x1p-149, nan, 0x0p+0, INVALID) 182T(RU, -0x1p-148, nan, 0x0p+0, INVALID) 183T(RU, -0x1.cp-147, nan, 0x0p+0, INVALID) 184T(RU, -0x1p-128, nan, 0x0p+0, INVALID) 185T(RU, -0x1p-127, nan, 0x0p+0, INVALID) 186T(RU,-0x1.fffff8p-127, nan, 0x0p+0, INVALID) 187T(RU,-0x1.fffffcp-127, nan, 0x0p+0, INVALID) 188T(RU, -0x1p-126, nan, 0x0p+0, INVALID) 189T(RU,-0x1.000002p-126, nan, 0x0p+0, INVALID) 190T(RU,-0x1.000004p-126, nan, 0x0p+0, INVALID) 191T(RU, -0x1p-125, nan, 0x0p+0, INVALID) 192T(RU, -0x1p-124, nan, 0x0p+0, INVALID) 193T(RU, -0x1p-23, nan, 0x0p+0, INVALID) 194T(RU, -0x1p-21, nan, 0x0p+0, INVALID) 195T(RU, -0x1p-2, nan, 0x0p+0, INVALID) 196T(RU, -0x1p-1, nan, 0x0p+0, INVALID) 197T(RU, -0x1.fffff4p-1, nan, 0x0p+0, INVALID) 198T(RU, -0x1.fffff8p-1, nan, 0x0p+0, INVALID) 199T(RU, -0x1.fffffcp-1, nan, 0x0p+0, INVALID) 200T(RU, -0x1.fffffep-1, nan, 0x0p+0, INVALID) 201T(RU, -0x1p+0, nan, 0x0p+0, INVALID) 202T(RU, -0x1.000002p+0, nan, 0x0p+0, INVALID) 203T(RU, -0x1.000004p+0, nan, 0x0p+0, INVALID) 204T(RU, -0x1.000008p+0, nan, 0x0p+0, INVALID) 205T(RU, -0x1p+1, nan, 0x0p+0, INVALID) 206T(RU, -0x1.000004p+1, nan, 0x0p+0, INVALID) 207T(RU, -0x1.fffff6p+1, nan, 0x0p+0, INVALID) 208T(RU, -0x1p+2, nan, 0x0p+0, INVALID) 209T(RU, -0x1p+126, nan, 0x0p+0, INVALID) 210T(RU,-0x1.000004p+126, nan, 0x0p+0, INVALID) 211T(RU,-0x1.000008p+126, nan, 0x0p+0, INVALID) 212T(RU, -0x1p+127, nan, 0x0p+0, INVALID) 213T(RU,-0x1.000004p+127, nan, 0x0p+0, INVALID) 214T(RU,-0x1.fffffcp+127, nan, 0x0p+0, INVALID) 215T(RU,-0x1.fffffep+127, nan, 0x0p+0, INVALID) 216T(RU, -inf, nan, 0x0p+0, INVALID) 217T(RU, 0x1.4p+3, 0x1p+0, 0x0p+0, 0) 218T(RU, 0x1.9p+6, 0x1p+1, 0x0p+0, 0) 219T(RU, 0x1.f4p+9, 0x1.8p+1, 0x0p+0, 0) 220T(RU, 0x1.388p+13, 0x1p+2, 0x0p+0, 0) 221T(RZ, inf, inf, 0x0p+0, 0) 222T(RZ, 0x0p+0, -inf, 0x0p+0, DIVBYZERO) 223T(RZ, -0x0p+0, -inf, 0x0p+0, DIVBYZERO) 224T(RZ, nan, nan, 0x0p+0, 0) 225T(RZ, nan, nan, 0x0p+0, 0) 226T(RZ, -0x1p-149, nan, 0x0p+0, INVALID) 227T(RZ, -0x1p-148, nan, 0x0p+0, INVALID) 228T(RZ, -0x1.cp-147, nan, 0x0p+0, INVALID) 229T(RZ, -0x1p-128, nan, 0x0p+0, INVALID) 230T(RZ, -0x1p-127, nan, 0x0p+0, INVALID) 231T(RZ,-0x1.fffff8p-127, nan, 0x0p+0, INVALID) 232T(RZ,-0x1.fffffcp-127, nan, 0x0p+0, INVALID) 233T(RZ, -0x1p-126, nan, 0x0p+0, INVALID) 234T(RZ,-0x1.000002p-126, nan, 0x0p+0, INVALID) 235T(RZ,-0x1.000004p-126, nan, 0x0p+0, INVALID) 236T(RZ, -0x1p-125, nan, 0x0p+0, INVALID) 237T(RZ, -0x1p-124, nan, 0x0p+0, INVALID) 238T(RZ, -0x1p-23, nan, 0x0p+0, INVALID) 239T(RZ, -0x1p-21, nan, 0x0p+0, INVALID) 240T(RZ, -0x1p-2, nan, 0x0p+0, INVALID) 241T(RZ, -0x1p-1, nan, 0x0p+0, INVALID) 242T(RZ, -0x1.fffff4p-1, nan, 0x0p+0, INVALID) 243T(RZ, -0x1.fffff8p-1, nan, 0x0p+0, INVALID) 244T(RZ, -0x1.fffffcp-1, nan, 0x0p+0, INVALID) 245T(RZ, -0x1.fffffep-1, nan, 0x0p+0, INVALID) 246T(RZ, -0x1p+0, nan, 0x0p+0, INVALID) 247T(RZ, -0x1.000002p+0, nan, 0x0p+0, INVALID) 248T(RZ, -0x1.000004p+0, nan, 0x0p+0, INVALID) 249T(RZ, -0x1.000008p+0, nan, 0x0p+0, INVALID) 250T(RZ, -0x1p+1, nan, 0x0p+0, INVALID) 251T(RZ, -0x1.000004p+1, nan, 0x0p+0, INVALID) 252T(RZ, -0x1.fffff6p+1, nan, 0x0p+0, INVALID) 253T(RZ, -0x1p+2, nan, 0x0p+0, INVALID) 254T(RZ, -0x1p+126, nan, 0x0p+0, INVALID) 255T(RZ,-0x1.000004p+126, nan, 0x0p+0, INVALID) 256T(RZ,-0x1.000008p+126, nan, 0x0p+0, INVALID) 257T(RZ, -0x1p+127, nan, 0x0p+0, INVALID) 258T(RZ,-0x1.000004p+127, nan, 0x0p+0, INVALID) 259T(RZ,-0x1.fffffcp+127, nan, 0x0p+0, INVALID) 260T(RZ,-0x1.fffffep+127, nan, 0x0p+0, INVALID) 261T(RZ, -inf, nan, 0x0p+0, INVALID) 262T(RZ, 0x1.4p+3, 0x1p+0, 0x0p+0, 0) 263T(RZ, 0x1.9p+6, 0x1p+1, 0x0p+0, 0) 264T(RZ, 0x1.f4p+9, 0x1.8p+1, 0x0p+0, 0) 265T(RZ, 0x1.388p+13, 0x1p+2, 0x0p+0, 0) 266