16#ifndef CX_MLDSA_POLYVEC_H
17#define CX_MLDSA_POLYVEC_H
void MLDSA_POLYVEC_ntt_k(mldsa_polyveck *v, uint8_t k)
Apply NTT to all polynomials in a K-vector.
void MLDSA_POLYVEC_add_k(mldsa_polyveck *a, const mldsa_polyveck *b, uint8_t k)
Add K-vector b to K-vector a.
void MLDSA_POLYVEC_pack_w1(uint8_t *r, const mldsa_polyveck *w1, int32_t gamma2, uint8_t k)
Pack w1 vector.
uint32_t MLDSA_POLYVEC_make_hint_k(mldsa_polyveck *h, const mldsa_polyveck *v0, const mldsa_polyveck *v1, int32_t gamma2, uint8_t k)
Make hint for K-vectors.
void MLDSA_POLYVEC_use_hint_k(mldsa_polyveck *w, const mldsa_polyveck *u, const mldsa_polyveck *h, int32_t gamma2, uint8_t k)
Use hint to correct high bits of K-vector.
void MLDSA_POLYVEC_pointwise_acc_montgomery(mldsa_poly *w, const mldsa_polyvecl *u, const mldsa_polyvecl *v, uint8_t l)
Inner product of L-vectors in NTT domain with accumulation.
void MLDSA_POLYVEC_decompose_k(mldsa_polyveck *v1, mldsa_polyveck *v0, const mldsa_polyveck *v, int32_t gamma2, uint8_t k)
Decompose all polynomials in K-vector.
void MLDSA_POLYVEC_power2round_k(mldsa_polyveck *v1, mldsa_polyveck *v0, const mldsa_polyveck *v, uint8_t k)
Power2round all polynomials in K-vector.
void MLDSA_POLYVEC_invntt_tomont_k(mldsa_polyveck *v, uint8_t k)
Apply inverse NTT to all polynomials in a K-vector.
int MLDSA_POLYVEC_chknorm_l(const mldsa_polyvecl *v, int32_t B, uint8_t l)
Check infinity norm of an L-vector.
void MLDSA_POLYVEC_sub_k(mldsa_polyveck *a, const mldsa_polyveck *b, uint8_t k)
Subtract K-vector b from K-vector a.
int MLDSA_POLYVEC_chknorm_k(const mldsa_polyveck *v, int32_t B, uint8_t k)
Check infinity norm of a K-vector.
void MLDSA_POLYVEC_shiftl_k(mldsa_polyveck *v, uint8_t k)
Shift left all polynomials in K-vector by D bits.
void MLDSA_POLYVEC_reduce_k(mldsa_polyveck *v, uint8_t k)
Apply reduce to all polynomials in a K-vector.
void MLDSA_POLYVEC_ntt_l(mldsa_polyvecl *v, uint8_t l)
Apply NTT to all polynomials in an L-vector.
void MLDSA_POLYVEC_caddq_k(mldsa_polyveck *v, uint8_t k)
Apply caddq to all polynomials in a K-vector.
ML-DSA (Module-Lattice Digital Signature Algorithm) public API.
Polynomial with MLDSA_N int32_t coefficients.
Polynomial vector of up to MLDSA_MAX_K polynomials.
Polynomial vector of up to MLDSA_MAX_L polynomials.