def build_max_normal(eb, sb, _, sign): rv = MPF(eb, sb) rv.pack(sign, 2**rv.w - 2, 2**rv.t - 1) return rv
def build_rnd_normal_small(eb, sb, rng, sign): rv = MPF(eb, sb) rv.pack(sign, rng.random_int(1, 2**(rv.w - 1)), rng.random_int(0, 2**rv.t - 1)) return rv
def build_rnd_normal_large(eb, sb, rng, sign): rv = MPF(eb, sb) rv.pack(sign, rng.random_int(2**(rv.w - 1), 2**rv.w - 2), rng.random_int(0, 2**rv.t - 1)) return rv
def build_min_normal(eb, sb, _, sign): rv = MPF(eb, sb) rv.pack(sign, 1, 0) return rv
def build_rnd_subnormal(eb, sb, rng, sign): rv = MPF(eb, sb) rv.pack(sign, 0, rng.random_int(2, 2**rv.t - 2)) return rv
def build_min_subnormal(eb, sb, _, sign): rv = MPF(eb, sb) rv.pack(sign, 0, 1) return rv
def build_nan(eb, sb, rng): rv = MPF(eb, sb) rv.pack(rng.random_int(0, 1), 2**rv.w - 1, rng.random_int(1, 2**rv.t - 1)) return rv
def build_inf(eb, sb, _, sign): rv = MPF(eb, sb) rv.pack(sign, 2**rv.w - 1, 0) return rv