#ifndef NTT_H
#define NTT_H

#include "params.h"
#include <stdint.h>
#include "poly.h"

int32_t montgomery_reduce(int64_t a);
void poly_ntt_o(int32_t *p);
void poly_invntt_o(int32_t * a);
void poly_pointwise_o(int32_t * c, int32_t * a, int32_t * b);
void poly_ntt(int32_t *p);
void poly_invntt(int32_t * a);
void kntt(int32_t *r);
void k_pointwise(int32_t *h, int32_t *f, int32_t *g);
void kinv_ntt(int32_t *r);

#endif