pub fn fp64_mul_make_round_base(
b: &CircuitBuilder,
m_a: Wire,
m_b: Wire,
) -> (Wire, Wire)Expand description
[Block M2] Compute round-base geometry from the 128-bit product.
We compute p = m_a * m_b (128-bit hi, lo) and detect whether the product ≥ 2
(i.e., top bit at index 105 set). If yes, we normalize by 1-bit right shift
(effective overall right shift s = 42), else s = 41.
Build a 64-bit “round-base” word sig_round_base = (p >> s).lo64 with:
- Integer bit at bit 63
- LSB-of-mantissa at bit 11
- Guard at bit 10, Round at bit 9
- Sticky folded into bit 0 (OR with bit0)
§Parameters
m_a,m_b: 53-bit multiplicands fromfp64_mul_prepare
§Returns
(sig_round_base, norm_shift1_bit01)where:sig_round_base: 64-bit value with round-base geometrynorm_shift1_bit01: 0/1 indicating whether normalization shift occurred (s==42)