Documentation

Complexitylib.Models.TuringMachine.Subroutines.BinaryPolynomial.Defs

Canonical binary evaluation of a fixed natural polynomial — definitions #

A fixed polynomial is compiled into finitely many Horner layers. Each layer multiplies the current accumulator by the preserved input, adds one hardwired coefficient, clears the old accumulator, and swaps the two accumulator roles. The initial orientation is chosen from coefficient-list parity so the designated result tape holds the final value and the other accumulator is zero.

structure Complexity.TM.BinaryPolynomialDistinct {n : } (inputIdx resultIdx scratchIdx mulCounterIdx addCounterIdx : Fin n) :

The five tape roles used by binary polynomial evaluation are pairwise distinct.

  • input_ne_result : inputIdx resultIdx
  • input_ne_scratch : inputIdx scratchIdx
  • input_ne_mulCounter : inputIdx mulCounterIdx
  • input_ne_addCounter : inputIdx addCounterIdx
  • result_ne_scratch : resultIdx scratchIdx
  • result_ne_mulCounter : resultIdx mulCounterIdx
  • result_ne_addCounter : resultIdx addCounterIdx
  • scratch_ne_mulCounter : scratchIdx mulCounterIdx
  • scratch_ne_addCounter : scratchIdx addCounterIdx
  • mulCounter_ne_addCounter : mulCounterIdx addCounterIdx
Instances For

    Coefficients of p, highest degree first.

    Equations
    Instances For

      Horner evaluation of a highest-degree-first coefficient list.

      Equations
      Instances For
        def Complexity.TM.binaryHornerLayerTM {n : } (inputIdx sourceIdx targetIdx mulCounterIdx addCounterIdx : Fin n) (coeff : ) :
        TM n

        One Horner layer: target := source * input + coeff, followed by clearing source to canonical zero.

        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          def Complexity.TM.binaryHornerLayersTM {n : } (inputIdx sourceIdx targetIdx mulCounterIdx addCounterIdx : Fin n) :
          List TM n

          Compile a coefficient list into finitely many alternating Horner layers.

          Equations
          Instances For
            def Complexity.TM.binaryPolynomialEvalTM {n : } (inputIdx resultIdx scratchIdx mulCounterIdx addCounterIdx : Fin n) (p : Polynomial ) :
            TM n

            Evaluate a fixed natural polynomial. Parity chooses which zero accumulator is the initial source so the designated result is final.

            Equations
            • One or more equations did not get rendered due to their size.
            Instances For
              def Complexity.TM.binaryHornerLayerTime (inputValue accValue coeff : ) :

              Runtime of one Horner layer.

              Equations
              • One or more equations did not get rendered due to their size.
              Instances For

                Runtime of a finite Horner layer list.

                Equations
                Instances For

                  Runtime of fixed-polynomial evaluation.

                  Equations
                  Instances For
                    def Complexity.TM.binaryHornerLayerSpace (initialSpace inputValue accValue coeff : ) :

                    Local all-prefix space bound for one Horner layer.

                    Equations
                    • One or more equations did not get rendered due to their size.
                    Instances For

                      Polynomial cap dominating every Horner prefix value.

                      Equations
                      Instances For

                        A natural polynomial whose value is exactly twice the Horner-prefix cap used by binaryPolynomialSpace.

                        Equations
                        • One or more equations did not get rendered due to their size.
                        Instances For
                          def Complexity.TM.binaryPolynomialSpace (initialSpace : ) (p : Polynomial ) (inputValue : ) :

                          Public width-based all-prefix space bound for polynomial evaluation.

                          Equations
                          Instances For