def decode.go
bend-lawful-stdlib@0.1.0.0 · src/float/sf32.bend:38
import bend-lawful-stdlib@0.1.0.0/src/float/sf32.bend as Sf32
import Base
import bend-lawful-stdlib@0.1.0.0/src/float/bin.bend as Bin
import bend-lawful-stdlib@0.1.0.0/src/float/format.bend as Fmt
38def decode.go(neg: Bool, e: Nat, f: Bin.Bin, top: Bool, low: Bool, fz: Bool) -> Fmt.Val:
39 match top low fz:
40 case True{} low True{}:
41 Fmt.Inf{neg}
42 case True{} low False{}:
43 Fmt.NaN{}
44 case False{} True{} True{}:
45 Fmt.Z{neg}
46 case False{} True{} False{}:
47 Fmt.Fin{neg, f, 151n}
48 case False{} False{} fz:
49 Fmt.Fin{neg, Bin.add(f, Bin.pow2(23n)), Nat.add(e, 150n)}