src/float/sf32.bend checks
raw source on the hub · import 0x5f97f469d15c04a181dae0e4e64e1d3d/src/float/sf32.bend as Sf32
4 imports
import Base import ./bin.bend as Bin import ./format.bend as Fmt import ./num.bend as Num
Definitions
def bits source · line 22 · raw
@x:F32 -> U32
def of_bits source · line 27 · raw
@x:U32 -> F32
def decode.go source · line 38 · raw
@neg:Bool -> @e:Nat -> @f:0x5f97f469d15c04a181dae0e4e64e1d3d/src/float/bin.Bin -> @top:Bool -> @low:Bool -> @fz:Bool -> 0x5f97f469d15c04a181dae0e4e64e1d3d/src/float/format.Val
def decode.cls source · line 51 · raw
@neg:Bool -> @+e:Nat -> @+f:0x5f97f469d15c04a181dae0e4e64e1d3d/src/float/bin.Bin -> 0x5f97f469d15c04a181dae0e4e64e1d3d/src/float/format.Val
def decode.sign source · line 54 · raw
@f:0x5f97f469d15c04a181dae0e4e64e1d3d/src/float/bin.Bin -> @e:0x5f97f469d15c04a181dae0e4e64e1d3d/src/float/bin.Bin -> @w:Word(1n) -> 0x5f97f469d15c04a181dae0e4e64e1d3d/src/float/format.Val
def decode.exp source · line 59 · raw
@f:0x5f97f469d15c04a181dae0e4e64e1d3d/src/float/bin.Bin -> @p:Pair(0x5f97f469d15c04a181dae0e4e64e1d3d/src/float/bin.Bin, Word(1n)) -> 0x5f97f469d15c04a181dae0e4e64e1d3d/src/float/format.Val
def decode.man source · line 63 · raw
@p:Pair(0x5f97f469d15c04a181dae0e4e64e1d3d/src/float/bin.Bin, Word(9n)) -> 0x5f97f469d15c04a181dae0e4e64e1d3d/src/float/format.Val
def decode source · line 68 · raw
@x:F32 -> 0x5f97f469d15c04a181dae0e4e64e1d3d/src/float/format.Val
the exact value of a float
def sign source · line 77 · raw
@neg:Bool -> 0x5f97f469d15c04a181dae0e4e64e1d3d/src/float/bin.Bin
the sign bit, as it sits above the 8 exponent bits
def word source · line 85 · raw
@frac:0x5f97f469d15c04a181dae0e4e64e1d3d/src/float/bin.Bin -> @exp:0x5f97f469d15c04a181dae0e4e64e1d3d/src/float/bin.Bin -> @neg:Bool -> F32
a word from its fields: 23 mantissa bits, then exponent and sign above
def first source · line 88 · raw
@r:Pair(0x5f97f469d15c04a181dae0e4e64e1d3d/src/float/bin.Bin, Pair(Bool, Bool)) -> 0x5f97f469d15c04a181dae0e4e64e1d3d/src/float/bin.Bin
def align source · line 93 · raw
@m:0x5f97f469d15c04a181dae0e4e64e1d3d/src/float/bin.Bin -> @+e:Nat -> @+t:Nat -> @right:Bool -> 0x5f97f469d15c04a181dae0e4e64e1d3d/src/float/bin.Bin
m moved to have its last bit at exponent t
def field source · line 100 · raw
@+t:Nat -> @normal:Bool -> 0x5f97f469d15c04a181dae0e4e64e1d3d/src/float/bin.Bin
def put source · line 107 · raw
@neg:Bool -> @t:Nat -> @+m:0x5f97f469d15c04a181dae0e4e64e1d3d/src/float/bin.Bin -> F32
def encode.fin source · line 112 · raw
@neg:Bool -> @+m:0x5f97f469d15c04a181dae0e4e64e1d3d/src/float/bin.Bin -> @+e:Nat -> F32
a finite value that fits binary32, as bits: 24 mantissa bits when normal, fewer at the smallest exponent when subnormal
def encode source · line 116 · raw
@v:0x5f97f469d15c04a181dae0e4e64e1d3d/src/float/format.Val -> F32
def add source · line 130 · raw
@a:F32 -> @b:F32 -> F32
def sub source · line 133 · raw
@a:F32 -> @b:F32 -> F32
def mul source · line 136 · raw
@a:F32 -> @b:F32 -> F32
def soft source · line 142 · raw
0x5f97f469d15c04a181dae0e4e64e1d3d/src/float/num.Impl<F32>
def hard source · line 145 · raw
0x5f97f469d15c04a181dae0e4e64e1d3d/src/float/num.Impl<F32>
def HardOk source · line 149 · raw
Type
the hardware assumption: Base's F32.add and F32.mul are correctly rounded