MCPcopy Create free account
hub / github.com/ablab/spades / mod

Method mod

ext/src/llvm/APFloat.cpp:1926–1944  ·  view source on GitHub ↗

Normalized llvm frem (C fmod). */

Source from the content-addressed store, hash-verified

1924
1925/* Normalized llvm frem (C fmod). */
1926IEEEFloat::opStatus IEEEFloat::mod(const IEEEFloat &rhs) {
1927 opStatus fs;
1928 fs = modSpecials(rhs);
1929 unsigned int origSign = sign;
1930
1931 while (isFiniteNonZero() && rhs.isFiniteNonZero() &&
1932 compareAbsoluteValue(rhs) != cmpLessThan) {
1933 IEEEFloat V = scalbn(rhs, ilogb(*this) - ilogb(rhs), rmNearestTiesToEven);
1934 if (compareAbsoluteValue(V) == cmpLessThan)
1935 V = scalbn(V, -1, rmNearestTiesToEven);
1936 V.sign = sign;
1937
1938 fs = subtract(V, rmNearestTiesToEven);
1939 assert(fs==opOK);
1940 }
1941 if (isZero())
1942 sign = origSign; // fmod requires this
1943 return fs;
1944}
1945
1946/* Normalized fused-multiply-add. */
1947IEEEFloat::opStatus IEEEFloat::fusedMultiplyAdd(const IEEEFloat &multiplicand,

Callers

nothing calls this directly

Calls 8

ilogbFunction · 0.85
assertClass · 0.85
APFloatClass · 0.85
DoubleAPFloatClass · 0.85
scalbnFunction · 0.70
isZeroFunction · 0.50
isFiniteNonZeroMethod · 0.45
bitcastToAPIntMethod · 0.45

Tested by

no test coverage detected