arnaucube
arnaucube/poulpyPublic Self-hosted repository
poulpy/poulpy-backend/src/cpu_spqlios/spqlios-arithmetic/spqlios/q120/q120_ntt.h
poulpy-backend/src/cpu_spqlios/spqlios-arithmetic/spqlios/q120/q120_ntt.hRaw
 1#ifndef SPQLIOS_Q120_NTT_H
 2#define SPQLIOS_Q120_NTT_H
 3
 4#include "../commons.h"
 5#include "q120_common.h"
 6
 7typedef struct _q120_ntt_precomp q120_ntt_precomp;
 8
 9EXPORT q120_ntt_precomp* q120_new_ntt_bb_precomp(const uint64_t n);
10EXPORT void q120_del_ntt_bb_precomp(q120_ntt_precomp* precomp);
11
12EXPORT q120_ntt_precomp* q120_new_intt_bb_precomp(const uint64_t n);
13EXPORT void q120_del_intt_bb_precomp(q120_ntt_precomp* precomp);
14
15/**
16 * @brief computes a direct ntt in-place over data.
17 */
18EXPORT void q120_ntt_bb_avx2(const q120_ntt_precomp* const precomp, q120b* const data);
19
20/**
21 * @brief computes an inverse ntt in-place over data.
22 */
23EXPORT void q120_intt_bb_avx2(const q120_ntt_precomp* const precomp, q120b* const data);
24
25#endif  // SPQLIOS_Q120_NTT_H