This is the mail archive of the libc-hacker@sources.redhat.com mailing list for the glibc project.

Note that libc-hacker is a closed list. You may look at the archives of this list, but subscription and posting are not open.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

ldouble tests on sparc64



Running the testsuite on sparc64, I get lots of serious failures while
testing the long double functions (see below).  Are these known
problems or might this be a compiler bug in the handling of long
doubles (I've tried gcc 2.96 RH)?

Jakub, what are your results on sparc64?

Andreas

phex:/usr/src/packages/BUILD/glibc-2.2/cc # cat math/test-ldouble.out 
testing long double (without inline functions)
Failure: Test: acos (1) == 0
Result:
 is:          3.14159265358979323846e+00   0x1.921fb54442d18469898dp+1
 should be:   0.00000000000000000000e+00   0x0.00000000000000000000p+0
 difference:  3.14159265358979323846e+00   0x1.921fb54442d18469898dp+1
 ulp       :  16312081666030376401667486162748272.0000
 max.ulp   :  0.0000
Failure: Test: acos (-1) == pi
Result:
 is:          0.00000000000000000000e+00   0x0.00000000000000000000p+0
 should be:   3.14159265358979323846e+00   0x1.921fb54442d18469898dp+1
 difference:  3.14159265358979323846e+00   0x1.921fb54442d18469898dp+1
 ulp       :  8156040833015188200833743081374136.0000
 max.ulp   :  0.0000
Failure: Test: acos (0.7) == 0.79539883018414355549096833892476432
Result:
 is:          7.95398830184143555491e-01   0x1.973e83f5d5c9aaf84fcap-1
 should be:   7.95398830184143555491e-01   0x1.973e83f5d5c9aaf84fcap-1
 difference:  9.62964972193617926528e-35   0x1.00000000000000000000p-113
 ulp       :  1.0000
 max.ulp   :  0.0000
Maximal error of `acos'
 is      :  16312081666030376401667486162748272.0000 ulp
 accepted:  0.0000 ulp
Failure: Test: asinh (0.7) == 0.652666566082355786
Result:
 is:          6.52666566082355786809e-01   0x1.4e2a4fe9085dd731ba02p-1
 should be:   6.52666566082355786000e-01   0x1.4e2a4fe9085dd713e42ep-1
 difference:  8.08686344109675845571e-19   0x1.dd5d39a4c60190000000p-61
 ulp       :  8397879128121369.0000
 max.ulp   :  0.0000
Maximal error of `asinh'
 is      :  8397879128121369.0000 ulp
 accepted:  0.0000 ulp
Failure: Test: cosh (0.7) == 1.255169005630943018
Result:
 is:          1.25516900563094301816e+00   0x1.4152c1862342ef8e074bp+0
 should be:   1.25516900563094301800e+00   0x1.4152c1862342ef8afda4p+0
 difference:  1.64674740990296899314e-19   0x1.84d3c5ea963980000000p-63
 ulp       :  855040140323955.0000
 max.ulp   :  0.0000
Maximal error of `cosh'
 is      :  855040140323955.0000 ulp
 accepted:  0.0000 ulp
Failure: Test: sinh (0.7) == 0.75858370183953350346
Result:
 is:          7.58583701839533503460e-01   0x1.8465153d5bdbd0df16f9p-1
 should be:   7.58583701839533503460e-01   0x1.8465153d5bdbd0df1828p-1
 difference:  1.25352407231905242755e-22   0x1.2f1561c8900000000000p-73
 ulp       :  1301733820560.0000
 max.ulp   :  0.0000
Maximal error of `sinh'
 is      :  1301733820560.0000 ulp
 accepted:  0.0000 ulp
Failure: Test: tanh (0.7) == 0.60436777711716349631
Result:
 is:          6.04367777117163496309e-01   0x1.356fb17af2e9100a0837p-1
 should be:   6.04367777117163496310e-01   0x1.356fb17af2e9100a149dp-1
 difference:  1.31281689617357568517e-21   0x1.8cc64999b26000000000p-70
 ulp       :  13633070091667.0000
 max.ulp   :  0.0000
Failure: Test: tanh (-0.7) == -0.60436777711716349631
Result:
 is:         -6.04367777117163496309e-01  -0x1.356fb17af2e9100a0837p-1
 should be:  -6.04367777117163496310e-01  -0x1.356fb17af2e9100a149dp-1
 difference:  1.31281689617357568517e-21   0x1.8cc64999b26000000000p-70
 ulp       :  13633070091667.0000
 max.ulp   :  0.0000
Failure: Test: tanh (1.0) == 0.7615941559557648881194582826047935904
Result:
 is:          7.61594155955764888119e-01   0x1.85efab514f394558632cp-1
 should be:   7.61594155955764888119e-01   0x1.85efab514f394558632cp-1
 difference:  9.62964972193617926528e-35   0x1.00000000000000000000p-113
 ulp       :  1.0000
 max.ulp   :  0.0000
Failure: Test: tanh (-1.0) == -0.7615941559557648881194582826047935904
Result:
 is:         -7.61594155955764888119e-01  -0x1.85efab514f394558632cp-1
 should be:  -7.61594155955764888119e-01  -0x1.85efab514f394558632cp-1
 difference:  9.62964972193617926528e-35   0x1.00000000000000000000p-113
 ulp       :  1.0000
 max.ulp   :  0.0000
Maximal error of `tanh'
 is      :  13633070091667.0000 ulp
 accepted:  0.0000 ulp
Failure: Test: expm1 (-0) == -0
Result:
 is:          0.00000000000000000000e+00   0x0.00000000000000000000p+0
 should be:  -0.00000000000000000000e+00  -0x0.00000000000000000000p+0
 difference:  0.00000000000000000000e+00   0x0.00000000000000000000p+0
 ulp       :  0.0000
 max.ulp   :  0.0000
Failure: expm1 (NaN) == NaN: Exception "Invalid operation" set
Failure: Test: expm1 (1) == M_El - 1.0
Result:
 is:          1.71828182845904523536e+00   0x1.b7e151628aed2a6abf71p+0
 should be:   1.71828182845904523536e+00   0x1.b7e151628aed2a6abf71p+0
 difference:  1.92592994438723585306e-34   0x1.00000000000000000000p-112
 ulp       :  1.0000
 max.ulp   :  0.0000
Failure: Test: expm1 (0.7) == 1.0137527074704765216
Result:
 is:          1.01375270747047652162e+00   0x1.03854c24d130d7fd92c8p+0
 should be:   1.01375270747047652160e+00   0x1.03854c24d130d7fd1edap+0
 difference:  2.45493885830653538343e-20   0x1.cfb98f1123c400000000p-66
 ulp       :  127467713218801.0000
 max.ulp   :  0.0000
Maximal error of `expm1'
 is      :  127467713218801.0000 ulp
 accepted:  0.0000 ulp
Failure: Test: log1p (-0) == -0
Result:
 is:          0.00000000000000000000e+00   0x0.00000000000000000000p+0
 should be:  -0.00000000000000000000e+00  -0x0.00000000000000000000p+0
 difference:  0.00000000000000000000e+00   0x0.00000000000000000000p+0
 ulp       :  0.0000
 max.ulp   :  0.0000
Failure: log1p (-1) == -inf plus division by zero exception: Exception "Divide by zero" not set
Failure: log1p (NaN) == NaN: Exception "Invalid operation" set
Failure: Test: log1p (M_El - 1.0) == 1
Result:
 is:          1.00000000000000000000e-00   0x2.00000000000000000000p-1
 should be:   1.00000000000000000000e+00   0x1.00000000000000000000p+0
 difference:  9.62964972193617926528e-35   0x1.00000000000000000000p-113
 ulp       :  0.5000
 max.ulp   :  0.0000
Failure: Test: log1p (-0.3) == -0.35667494393873237891263871124118447
Result:
 is:         -3.56674943938732378913e-01  -0x1.6d3c324e13f4ec52cb1bp-2
 should be:  -3.56674943938732378913e-01  -0x1.6d3c324e13f4ec52cb1bp-2
 difference:  4.81482486096808963264e-35   0x1.00000000000000000000p-114
 ulp       :  1.0000
 max.ulp   :  0.0000
Maximal error of `log1p'
 is      :  1.0000 ulp
 accepted:  0.0000 ulp
Failure: Test: Real part of: ccos (0.7 + 1.2 i) == 1.3848657645312111080 - 0.97242170335830028619 i
Result:
 is:          1.38486576453121110799e+00   0x1.6286901002f7766f09ffp+0
 should be:   1.38486576453121110800e+00   0x1.6286901002f7766f2d4dp+0
 difference:  7.47636787767084019408e-21   0x1.1a72fe49d40800000000p-67
 ulp       :  38819521444481.0000
 max.ulp   :  0.0000
Failure: Test: Imaginary part of: ccos (0.7 + 1.2 i) == 1.3848657645312111080 - 0.97242170335830028619 i
Result:
 is:         -9.72421703358300286193e-01  -0x1.f1e141ebb064055d790ap-1
 should be:  -9.72421703358300286190e-01  -0x1.f1e141ebb064055d5ca4p-1
 difference:  3.00683508283153742657e-21   0x1.c6614c5313d000000000p-69
 ulp       :  31224760709437.0000
 max.ulp   :  0.0000
Failure: Test: Real part of: ccos (-2 - 3 i) == -4.1896256909688072301 - 9.1092278937553365979 i
Result:
 is:         -4.18962569096880723013e+00  -0x1.0c22d3cb4c50c447f284p+2
 should be:  -4.18962569096880723010e+00  -0x1.0c22d3cb4c50c447cc15p+2
 difference:  3.25550196159744832644e-20   0x1.33793521943800000000p-65
 ulp       :  42258831520391.0000
 max.ulp   :  0.0000
Failure: Test: Imaginary part of: ccos (-2 - 3 i) == -4.1896256909688072301 - 9.1092278937553365979 i
Result:
 is:         -9.10922789375533659798e+00  -0x1.237ecb7eefaf2c0f2d69p+3
 should be:  -9.10922789375533659790e+00  -0x1.237ecb7eefaf2c0efea9p+3
 difference:  7.91972627788630793578e-20   0x1.75ff9da620f000000000p-64
 ulp       :  51401962341406.0000
 max.ulp   :  0.0000
Maximal error of real part of: ccos
 is      :  42258831520391.0000 ulp
 accepted:  0.0000 ulp
Maximal error of imaginary part of: ccos
 is      :  51401962341406.0000 ulp
 accepted:  0.0000 ulp
Failure: Test: Real part of: ccosh (0.7 + 1.2 i) == 0.4548202223691477654 + 0.7070296600921537682 i
Result:
 is:          4.54820222369147765419e-01   0x1.d1bc64728a2d005e4e19p-2
 should be:   4.54820222369147765400e-01   0x1.d1bc64728a2d005ce68ep-2
 difference:  1.90339416362119856540e-20   0x1.678a7e74f69b00000000p-66
 ulp       :  395319501452955.0000
 max.ulp   :  0.0000
Failure: Test: Imaginary part of: ccosh (0.7 + 1.2 i) == 0.4548202223691477654 + 0.7070296600921537682 i
Result:
 is:          7.07029660092153768241e-01   0x1.69ffcaa6cbac0507f7fep-1
 should be:   7.07029660092153768200e-01   0x1.69ffcaa6cbac050673dcp-1
 difference:  4.10955359795455808950e-20   0x1.8422e8b6657f00000000p-65
 ulp       :  426760444732799.0000
 max.ulp   :  0.0000
Failure: Test: Real part of: ccosh (-2 - 3 i) == -3.7245455049153225654 + 0.5118225699873846088 i
Result:
 is:         -3.72454550491532256547e+00  -0x1.dcbde838099d74abb58cp+1
 should be:  -3.72454550491532256540e+00  -0x1.dcbde838099d74ab06e3p+1
 difference:  7.39707032559728934121e-20   0x1.5d5117d2dbd000000000p-64
 ulp       :  192038925069800.0000
 max.ulp   :  0.0000
Failure: Test: Imaginary part of: ccosh (-2 - 3 i) == -3.7245455049153225654 + 0.5118225699873846088 i
Result:
 is:          5.11822569987384608834e-01   0x1.060d9b9ee6a65de2db56p-1
 should be:   5.11822569987384608800e-01   0x1.060d9b9ee6a65de195d6p-1
 difference:  3.44638498018757310698e-20   0x1.458079c9f0bf00000000p-65
 ulp       :  357893078118591.0000
 max.ulp   :  0.0000
Maximal error of real part of: ccosh
 is      :  395319501452955.0000 ulp
 accepted:  0.0000 ulp
Maximal error of imaginary part of: ccosh
 is      :  426760444732799.0000 ulp
 accepted:  0.0000 ulp
Failure: Test: Real part of: csin (0.7 + 1.2 i) == 1.1664563419657581376 + 1.1544997246948547371 i
Result:
 is:          1.16645634196575813756e+00   0x1.2a9ce200f468c3436a7cp+0
 should be:   1.16645634196575813760e+00   0x1.2a9ce200f468c34428dap+0
 difference:  4.03112213244929697153e-20   0x1.7cba8d747da600000000p-65
 ulp       :  209307827846867.0000
 max.ulp   :  0.0000
Failure: Test: Imaginary part of: csin (0.7 + 1.2 i) == 1.1664563419657581376 + 1.1544997246948547371 i
Result:
 is:          1.15449972469485473706e+00   0x1.278d4b40ce2f0033ddafp+0
 should be:   1.15449972469485473710e+00   0x1.278d4b40ce2f00348631p+0
 difference:  3.56827762193615058161e-20   0x1.5103a8b2891000000000p-65
 ulp       :  185275566867592.0000
 max.ulp   :  0.0000
Failure: Test: Real part of: csin (-2 - 3 i) == -9.1544991469114295734 + 4.1689069599665643507 i
Result:
 is:         -9.15449914691142957347e+00  -0x1.24f1a831e7d2db7d75a5p+3
 should be:  -9.15449914691142957340e+00  -0x1.24f1a831e7d2db7d4debp+3
 difference:  6.72995446098336976393e-20   0x1.3dd028397be000000000p-64
 ulp       :  43679901757308.0000
 max.ulp   :  0.0000
Failure: Test: Imaginary part of: csin (-2 - 3 i) == -9.1544991469114295734 + 4.1689069599665643507 i
Result:
 is:          4.16890695996656435075e+00   0x1.0acf5f2347e219fb76dfp+2
 should be:   4.16890695996656435070e+00   0x1.0acf5f2347e219fb3629p+2
 difference:  5.48130588537556343472e-20   0x1.02d8ec0ec4f000000000p-64
 ulp       :  71151418323260.0000
 max.ulp   :  0.0000
Maximal error of real part of: csin
 is      :  209307827846867.0000 ulp
 accepted:  0.0000 ulp
Maximal error of imaginary part of: csin
 is      :  185275566867592.0000 ulp
 accepted:  0.0000 ulp
Failure: Test: Real part of: csinh (0.7 + 1.2 i) == 0.27487868678117583582 + 1.1698665727426565139 i
Result:
 is:          2.74878686781175835815e-01   0x1.1979cc685eccb1d6d6a7p-2
 should be:   2.74878686781175835820e-01   0x1.1979cc685eccb1d72bfap-2
 difference:  4.51705520690466925452e-21   0x1.554c8e004bf800000000p-68
 ulp       :  93815566242558.0000
 max.ulp   :  0.0000
Failure: Test: Imaginary part of: csinh (0.7 + 1.2 i) == 0.27487868678117583582 + 1.1698665727426565139 i
Result:
 is:          1.16986657274265651387e+00   0x1.2b7c602e9d02320ec0b7p+0
 should be:   1.16986657274265651390e+00   0x1.2b7c602e9d02320f40ecp+0
 difference:  2.71487451592385631293e-20   0x1.0069a35311aa00000000p-65
 ulp       :  140964344203477.0000
 max.ulp   :  0.0000
Failure: Test: Real part of: csinh (-2 - 3 i) == 3.5905645899857799520 - 0.5309210862485198052 i
Result:
 is:          3.59056458998577995201e+00   0x1.cb979ed81510c2c39f97p+1
 should be:   3.59056458998577995200e+00   0x1.cb979ed81510c2c381ecp+1
 difference:  1.25654477948170603913e-20   0x1.dab58ddf9e4000000000p-67
 ulp       :  32621767555556.0000
 max.ulp   :  0.0000
Failure: Test: Imaginary part of: csinh (-2 - 3 i) == 3.5905645899857799520 - 0.5309210862485198052 i
Result:
 is:         -5.30921086248519805267e-01  -0x1.0fd4e37c636c986b1916p-1
 should be:  -5.30921086248519805200e-01  -0x1.0fd4e37c636c98689fe9p-1
 difference:  6.70400906606765716814e-20   0x1.3c967f1dd5c900000000p-64
 ulp       :  696184104266642.0000
 max.ulp   :  0.0000
Maximal error of real part of: csinh
 is      :  93815566242558.0000 ulp
 accepted:  0.0000 ulp
Maximal error of imaginary part of: csinh
 is      :  696184104266642.0000 ulp
 accepted:  0.0000 ulp
Failure: Test: Real part of: ctan (0.7 + 1.2 i) == 0.1720734197630349001 + 0.9544807059989405538 i
Result:
 is:          1.72073419763034900130e-01   0x1.606807732519758c3801p-3
 should be:   1.72073419763034900100e-01   0x1.6068077325197587cd7ap-3
 difference:  2.99248446332855293596e-20   0x1.1aa1d5aba3de80000000p-65
 ulp       :  1243029414252410.0000
 max.ulp   :  0.0000
Failure: Test: Imaginary part of: ctan (0.7 + 1.2 i) == 0.1720734197630349001 + 0.9544807059989405538 i
Result:
 is:          9.54480705998940553818e-01   0x1.e8b1b1f1db5c93f997f7p-1
 should be:   9.54480705998940553800e-01   0x1.e8b1b1f1db5c93f8f197p-1
 difference:  1.76153916578609461805e-20   0x1.4cbecea415f000000000p-66
 ulp       :  182928685533944.0000
 max.ulp   :  0.0000
Failure: Test: Real part of: ctan (-2 - 3 i) == 0.0037640256415042482 - 1.0032386273536098014 i
Result:
 is:          3.76402564150424829275e-03   0x1.ed5bbe102970caf35086p-9
 should be:   3.76402564150424820000e-03   0x1.ed5bbe102970c7874dd5p-9
 difference:  9.27512211303226914083e-20   0x1.b60158951c13a2800000p-64
 ulp       :  246575039539324741.0000
 max.ulp   :  0.0000
Failure: Test: Imaginary part of: ctan (-2 - 3 i) == 0.0037640256415042482 - 1.0032386273536098014 i
Result:
 is:         -1.00323862735360980145e+00  -0x1.00d43f269153cff541f8p+0
 should be:  -1.00323862735360980140e+00  -0x1.00d43f269153cff4670cp+0
 difference:  4.63585978219273727559e-20   0x1.b5d83634569200000000p-65
 ulp       :  240707601836873.0000
 max.ulp   :  0.0000
Maximal error of real part of: ctan
 is      :  246575039539324741.0000 ulp
 accepted:  0.0000 ulp
Maximal error of imaginary part of: ctan
 is      :  240707601836873.0000 ulp
 accepted:  0.0000 ulp
Failure: Test: Real part of: ctanh (0.7 + 1.2 i) == 1.3472197399061191630 + 0.4778641038326365540 i
Result:
 is:          1.34721973990611916300e+00   0x1.58e364936c22ecd622f7p+0
 should be:   1.34721973990611916300e+00   0x1.58e364936c22ecd60f39p+0
 difference:  4.18064448364791006814e-21   0x1.3be16cc9098000000000p-68
 ulp       :  21707147219096.0000
 max.ulp   :  0.0000
Failure: Test: Imaginary part of: ctanh (0.7 + 1.2 i) == 1.3472197399061191630 + 0.4778641038326365540 i
Result:
 is:          4.77864103832636554031e-01   0x1.e955352792f77fa0888ep-2
 should be:   4.77864103832636554000e-01   0x1.e955352792f77f9e430ep-2
 difference:  3.07843344242600000865e-20   0x1.22bff415514580000000p-65
 ulp       :  639365611692683.0000
 max.ulp   :  0.0000
Failure: Test: Real part of: ctanh (-2 - 3 i) == -0.9653858790221331242 + 0.0098843750383224937 i
Result:
 is:         -9.65385879022133124278e-01  -0x1.ee470ed4d72e2f093fe1p-1
 should be:  -9.65385879022133124200e-01  -0x1.ee470ed4d72e2f065aa7p-1
 difference:  7.84802693945607960525e-20   0x1.729cd2f1c16900000000p-64
 ulp       :  814985712468690.0000
 max.ulp   :  0.0000
Failure: Test: Imaginary part of: ctanh (-2 - 3 i) == -0.9653858790221331242 + 0.0098843750383224937 i
Result:
 is:          9.88437503832249372031e-03   0x1.43e425c3f79b5196f5bep-7
 should be:   9.88437503832249370000e-03   0x1.43e425c3f79b5166fea9p-7
 difference:  2.03140343035012093862e-20   0x1.7fb8a46c78f838000000p-66
 ulp       :  13500991551774471.0000
 max.ulp   :  0.0000
Maximal error of real part of: ctanh
 is      :  814985712468690.0000 ulp
 accepted:  0.0000 ulp
Maximal error of imaginary part of: ctanh
 is      :  13500991551774471.0000 ulp
 accepted:  0.0000 ulp

Test suite completed:
  2052 test cases plus 1869 tests for exception flags executed.
  56 errors occurred.

-- 
 Andreas Jaeger
  SuSE Labs aj@suse.de
   private aj@arthur.inka.de
    http://www.suse.de/~aj


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]