TorchLean API

FloatLib.Floats.ExecFloat.Backends.Word.TwoWordMul.Runtime

Native two-word finite multiplication #

This is the executable 64 x 64 -> 128 normal-product tier for one-word IEEE formats whose significand product needs two words. Refinement proofs are in TwoWordMul.Proof.

Capacity contract for a one-storage-word format whose product needs two native words.

Instances For
    @[instance_reducible, inline]

    Two-word eligibility is decided from the descriptor fields. As for NativeSmallWord.StorageEligible, the conditional form is inlined and simplifies for a closed format.

    @[inline]

    Leading-bit position 2 * fracWidth or 2 * fracWidth + 1 of a normalized two-word product.

    Instances For
      @[inline]

      Round an exact two-word product of two normal finite significands, returning the packed storage word.

      Instances For
        @[inline]

        roundNormalProductWord? as a model value.

        Instances For
          @[inline]

          Decode two normal finite storage words and try the reusable two-word product path, returning the packed storage word of an accepted product. Carriers that store the encoding as a UInt64 call it on their words, so the product never becomes an exact-width model value.

          Instances For
            @[inline]

            mulNormalWord? as a model value, on the operands' storage words.

            Instances For