primitives.ntt#

Number Theoretic Transform for Goldilocks field.

Classes#

NTT

NTT engine for polynomial operations over Goldilocks field.

Module Contents#

class primitives.ntt.NTT(domain_size: int, extension: int = 1)[source]#

NTT engine for polynomial operations over Goldilocks field.

n[source]#
n_bits = 0[source]#
extension = 1[source]#
roots[source]#
pow_two_inv[source]#
r: numpy.ndarray | None = None[source]#
r_: numpy.ndarray | None = None[source]#
ntt(coeffs: numpy.ndarray, n_cols: int = 1) numpy.ndarray[source]#

Forward NTT: coefficients -> evaluations.

intt(evals: numpy.ndarray, n_cols: int = 1, extend: bool = False) numpy.ndarray[source]#

Inverse NTT: evaluations -> coefficients.

extend_pol(src: numpy.ndarray, n_extended: int, n: int, n_cols: int = 1) numpy.ndarray[source]#

Extend polynomial from domain N to N_extended via zero-padding.