Documentation

CompPoly.Univariate.NTTFast.Correctness.DIF

DIF NTTFast correctness #

Correctness proofs for the decimation-in-frequency stage loop used by NTTFast.

def CompPoly.CPolynomial.NTTFast.Plan.difMathValueAt {R : Type u_1} [Field R] (D : NTT.Domain R) (completed : ) (a : Array R) (idx : ) :
R
Instances For
    def CompPoly.CPolynomial.NTTFast.Plan.difMathStageSpec {R : Type u_1} [Field R] (D : NTT.Domain R) (completed : ) (a : Array R) :

    Mathematical state after completing completed descending DIF stages.

    Instances For

      The initial DIF mathematical state is the naturally ordered input.

      The final DIF mathematical state is the bit-reversed forward NTT output.

      theorem CompPoly.CPolynomial.NTTFast.Plan.butterflyStageDIFWithTwiddles_difMathStageSpec_succ {R : Type u_1} [Field R] (D : NTT.Domain R) (stage : ) (twiddles a : Array R) (hstage : stage < D.logN) (htw : j < 2 ^ stage, twiddles.getD j 0 = (D.omega ^ (D.n / 2 ^ (stage + 1))) ^ j) :
      butterflyStageDIFWithTwiddles D stage twiddles (difMathStageSpec D (D.logN - (stage + 1)) a) = difMathStageSpec D (D.logN - stage) a

      One executable DIF butterfly stage advances the mathematical DIF stage spec.