TorchLean API

FloatLib.Floats.ExecFloat.Backends.Word.Full.Fma.Runtime

Native binary64 fused multiply-add runtime #

The accepted paths align finite normal operands in two native limbs and round the exact sum or difference once. Declined cases retain the generic exact finite kernel. Correctness proofs are isolated in Fma.Proof.

@[inline]

Shift a normal binary64 significand into the product's two-word coordinate.

Instances For
    @[inline]

    Leading-bit position of a binary64 FMA magnitude, which needs at most 107 bits.

    Instances For
      @[inline]

      Try the aligned normal binary64 FMA path when the product and addend have the same sign.

      The accepted exact magnitude is xMantissa * yMantissa + zMantissa * 2^52. The final result is still rounded only once.

      Instances For
        @[inline]

        Try the aligned normal binary64 FMA path when the product and addend have opposite signs.

        Exact cancellation and differences with leading-bit position below 53 are declined. The product rounder checks the result exponent; declined cases use the generic finite kernel.

        Instances For
          @[inline]

          Use both native aligned paths before the existing exact finite FMA kernel.

          Instances For