This is the mail archive of the 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 libc/15676] New: Benchtest inputs are not reprezentative.

            Bug ID: 15676
           Summary: Benchtest inputs are not reprezentative.
           Product: glibc
           Version: unspecified
            Status: NEW
          Severity: normal
          Priority: P2
         Component: libc
          Assignee: unassigned at sourceware dot org
          Reporter: neleai at seznam dot cz
                CC: drepper.fsp at gmail dot com

Now benchtest inputs vary only five values. These inputs are 0.1 0.2 0.3 0.4
0.5. and five worstcase ones.

When we look to math function implementation we see that this is nearly not
enough to cover all paths, from  sysdeps/x86_64/fpu/s_sinf.S below there are
following cases and as there are no inputs for cases 3 and 5 there may be
regression that benchtests cannot catch.

 *  1) if |x| == 0: return x.
 *  2) if |x| <  2^-27: return x-x*DP_SMALL, raise underflow only when needed.
 *  3) if |x| <  2^-5 : return x+x^3*DP_SIN2_0+x^5*DP_SIN2_1.
 *  4) if |x| <   Pi/4: return x+x^3*(S0+x^2*(S1+x^2*(S2+x^2*(S3+x^2*S4)))).
 *  5) if |x| < 9*Pi/4:

A proper way is use randomized inputs to ensure we cover all cases now and
everytime when case analysis changes.

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]