Source/Reference

FloatLiteralSpec

reference/numeric/FloatLiteralSpec.alpha

250 lines45 declarations13.7 KiBSHA-256 4d20087f71cc

def · lines 147–153

specBinadeOffsetWithLimit

Full file
the binade: e with 2^e <= N/M < 2^(e+1), as an offset exponent; the bit-length guess g = bitlen(N) - bitlen(M) is e or e + 1
147def specBinadeOffsetWithLimit =
148  (lambda unrestricted chunks : Nat . (lambda unrestricted numerator : Nat . (lambda unrestricted denominator : Nat .
149    (nat-eliminate (lambda unrestricted current : Nat . Nat)
150      (nat-subtract (nat-add (specBitLengthWithLimit chunks numerator) specOffset) (nat-add (specBitLengthWithLimit chunks denominator) 1))
151      (lambda unrestricted predecessor : Nat . (lambda unrestricted induction : Nat .
152        (nat-subtract (nat-add (specBitLengthWithLimit chunks numerator) specOffset) (specBitLengthWithLimit chunks denominator))))
153      (specPowerFits numerator denominator (nat-subtract (nat-add (specBitLengthWithLimit chunks numerator) specOffset) (specBitLengthWithLimit chunks denominator)))))))

The compiler supplied declaration spans and resolved links from this source snapshot. This page does not assert that this file belongs to a checked closure.