Source-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

CVS commit: src/lib/libm/src



Module Name:    src
Committed By:   maya
Date:           Thu Feb  9 21:23:11 UTC 2017

Modified Files:
        src/lib/libm/src: e_j0.c e_j0f.c e_j1.c e_j1f.c

Log Message:
Appease static analyzers by making all code paths which assign
values into p,q sane. Get rid of redundant assignment. Indent
for legibility. NFC.

This doesn't create a functional difference, as all callers
test number >= 0x40000000 anyway.

To see this, note the following:
- consistently, hx is the high bits of x, lx is the low bits,
  x is the float.
- & 0x7fffffff zeroes the sign bit, as does fabs.

A case where it isn't easy to see that there's no functional
change is y1, which does:

ix = hx & 0x7fffffff (zero signbit of high bits of x)
y = fabs(x) (this has a zeroed signbit but otherwise same as x)
ix >= 0x40000000
  pone(y); qone(y)

qone(x) (also pone) do:
  ix = hx & 0x7fffffff

ix in qone and in the calling function are the same number,
and the comparison applies for both, and ix < 0x40000000 isn't
possible.

(Also, no explosions seem to happen when I feed it random numbers)


To generate a diff of this commit:
cvs rdiff -u -r1.12 -r1.13 src/lib/libm/src/e_j0.c src/lib/libm/src/e_j1.c
cvs rdiff -u -r1.10 -r1.11 src/lib/libm/src/e_j0f.c
cvs rdiff -u -r1.11 -r1.12 src/lib/libm/src/e_j1f.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.




Home | Main Index | Thread Index | Old Index