def normalize_checked
bendvy-ecs-core@0.1.0.3 · decode_data.bend:65
import bendvy-ecs-core@0.1.0.3/decode_data.bend as DecodeData
import Base
65def normalize_checked(fuel:Nat,+negative:Bool,+high:U32,+low:U32,+exponent:U32,zero:Bool,even:Bool) -> Numeric:
66 match fuel zero even:
67 case _ True{} _: Finite{False{},0,0,0}
68 case _ False{} False{}: Finite{negative,high,low,exponent}
69 case 0n False{} True{}: Finite{negative,high,low,exponent}
70 case 1n+more False{} True{}: normalize_checked(more,negative,U32.div(high,2),U32.add(U32.div(low,2),U32.mul(U32.mod(high,2),2147483648)),U32.add(exponent,1),False{},U32.is_eq(U32.mod(U32.div(low,2),2),0))