TorchLean API

FloatLib.Floats.Formats.BinaryInterchange.Descriptor.Backends

Certified execution backends for binary descriptors #

Descriptor planning uses width-generic, native-word, and fixed-limb kernels with refinement theorems. Backend choice is separate: Descriptor.Plan constructs the candidate set and the universal selector makes that decision.

Width-generic kernels #

@[inline]

Width-generic proved addition.

Instances For
    @[inline]

    Width-generic proved subtraction.

    Instances For
      @[inline]

      Width-generic proved multiplication.

      Instances For
        @[inline]

        Width-generic proved division.

        Instances For
          @[inline]

          Width-generic proved square root.

          Instances For
            @[inline]

            Width-generic proved fused multiply-add.

            Instances For

              Width-generic addition agrees with the descriptor reference specification.

              Width-generic subtraction agrees with the descriptor reference specification.

              Width-generic multiplication agrees with the descriptor reference specification.

              Width-generic division agrees with the descriptor reference specification.

              Width-generic square root agrees with the descriptor reference specification.

              theorem FloatLib.Floats.Formats.BinaryInterchange.Descriptor.Backend.genericFma_eq_spec {format : FloatFormat} (left right addend : ExecFloat (Descriptor format)) :
              genericFma left right addend = Spec.fma left right addend

              Width-generic fused multiply-add agrees with the descriptor reference specification.

              Fixed-format and native-word routes #

              @[inline]

              Proved fixed-format/native-word addition route.

              The candidate planner offers this route when the descriptor satisfies its eligibility predicate. For closed descriptors, the compiler can specialize the format tests.

              Instances For
                @[inline]

                Proved fixed-format/native-word subtraction route.

                Instances For
                  @[inline]

                  Proved fixed-format/native-word/fixed-limb multiplication route.

                  Instances For
                    @[inline]

                    Proved fixed-format/native-word/fixed-limb division route.

                    Instances For
                      @[inline]

                      Proved fixed-format/native-word square-root route.

                      Instances For
                        @[inline]

                        Proved fixed-format/native-word fused multiply-add route.

                        Instances For
                          @[inline]

                          Square-root dispatcher, including eligible fixed-limb kernels.

                          Instances For
                            @[inline]

                            Fused multiply-add dispatcher, including eligible fixed-limb kernels.

                            Instances For

                              Native-word addition agrees with the descriptor reference specification.

                              Native-word subtraction agrees with the descriptor reference specification.

                              Native-word or fixed-limb multiplication agrees with the descriptor reference specification.

                              Native-word or fixed-limb division agrees with the descriptor reference specification.

                              Native-word square root agrees with the descriptor reference specification.

                              theorem FloatLib.Floats.Formats.BinaryInterchange.Descriptor.Backend.wordFma_eq_spec {format : FloatFormat} (left right addend : ExecFloat (Descriptor format)) :
                              wordFma left right addend = Spec.fma left right addend

                              Native-word fused multiply-add agrees with the descriptor reference specification.

                              The square-root dispatcher agrees with the reference specification.

                              theorem FloatLib.Floats.Formats.BinaryInterchange.Descriptor.Backend.fixedLimbFma_eq_spec {format : FloatFormat} (left right addend : ExecFloat (Descriptor format)) :
                              fixedLimbFma left right addend = Spec.fma left right addend

                              The fused multiply-add dispatcher agrees with the reference specification.