This is the mail archive of the glibc-bugs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug math/17061] New: [ldbl-128/ldbl-128ibm] coshl inaccurate near 0


https://sourceware.org/bugzilla/show_bug.cgi?id=17061

            Bug ID: 17061
           Summary: [ldbl-128/ldbl-128ibm] coshl inaccurate near 0
           Product: glibc
           Version: 2.19
            Status: NEW
          Severity: normal
          Priority: P2
         Component: math
          Assignee: unassigned at sourceware dot org
          Reporter: jsm28 at gcc dot gnu.org

The ldbl-128 and ldbl-128ibm implementations of coshl have a threshold for
small arguments for which the result (to nearest) is 1.  However, in those
cases they return 1 + expm1(abs(x)) rather than 1, and while the threshold is
small enough for cosh(x) (1 + x^2/2 + ...) to be 1, it's not small enough for 1
+ abs(x) to be 1, resulting in large errors.  E.g., for ldbl-128:

Failure: Test: cosh (0x1p-72)
Result:
 is:          1.00000000000000000000e+00   0x1.00000000000000000100p+0
 should be:   1.00000000000000000000e+00   0x1.00000000000000000000p+0
 difference:  2.11758236813575084767e-22   0x1.00000000000000000000p-72
 ulp       :  1099511627776.0000
 max.ulp   :  1.0000

and for ldbl-128ibm:

Failure: Test: cosh (0x1p-56)
Result:
 is:          1.00000000000000001388e+00   0x1.00000000000001000000p+0
 should be:   1.00000000000000000000e+00   0x1.00000000000000000000p+0
 difference:  1.38777878078144567553e-17   0x1.00000000000000000000p-56
 ulp       :  562949953421312.0000
 max.ulp   :  3.0000

-- 
You are receiving this mail because:
You are on the CC list for the bug.


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