Documentation

CompPoly.Univariate.Raw.Context

Raw Univariate Algorithm Contexts #

Array-level execution dictionaries for reusable raw univariate polynomial kernels.

structure CompPoly.CPolynomial.Raw.MulContext (R : Type u_2) [Semiring R] [BEq R] [LawfulBEq R] :
Type u_2

Internal raw multiplication backend for array-level polynomial kernels.

  • mul : Raw RRaw RRaw R

    Multiply two raw polynomials, returning the trimmed raw product.

  • mul_eq_mul (p q : Raw R) : self.mul p q = p * q

    The backend agrees with raw polynomial multiplication.

Instances For
    structure CompPoly.CPolynomial.Raw.ModContext (R : Type u_2) [Field R] [BEq R] [LawfulBEq R] :
    Type u_2

    Internal raw monic-remainder backend for array-level polynomial kernels.

    • modByMonic : Raw RRaw RRaw R

      Reduce the first raw polynomial modulo the second raw monic divisor.

    • modByMonic_eq_modByMonic (p q : Raw R) : p.trim = pq.trim = qself.modByMonic p q = p.modByMonic q

      The backend agrees with raw monic remainders for canonical raw inputs.

    Instances For

      The default raw multiplication context, backed by raw polynomial multiplication.

      Instances For
        def CompPoly.CPolynomial.Raw.MulContext.ntt {R : Type u_1} [Field R] [BEq R] [LawfulBEq R] (bestDomainForLength? : (requiredLen : ) → Option (NTT.FittingDomain R requiredLen)) :

        NTT-backed raw multiplication context with raw multiplication for unsupported lengths.

        Instances For
          def CompPoly.CPolynomial.Raw.MulContext.nttFast {R : Type u_1} [Field R] [BEq R] [LawfulBEq R] (bestDomainForLength? : (requiredLen : ) → Option (NTT.FittingDomain R requiredLen)) :

          NTTFast-backed raw multiplication context with raw multiplication for unsupported lengths.

          Instances For

            The default raw monic-remainder context, backed by raw modByMonic.

            Instances For

              Raw remainder-only monic-remainder context.

              Instances For

                Raw reversal-based monic-remainder context parameterized by low-product multiplication.

                Instances For
                  def CompPoly.CPolynomial.Raw.ModContext.reversalNtt {R : Type u_1} [Field R] [BEq R] [LawfulBEq R] (bestDomainForLength? : (requiredLen : ) → Option (NTT.FittingDomain R requiredLen)) :

                  Raw monic remainders by reversal, using an NTT low-product backend.

                  Instances For
                    def CompPoly.CPolynomial.Raw.ModContext.reversalNttFast {R : Type u_1} [Field R] [BEq R] [LawfulBEq R] (bestDomainForLength? : (requiredLen : ) → Option (NTT.FittingDomain R requiredLen)) :

                    Raw monic remainders by reversal, using an NTTFast low-product backend.

                    Instances For