spqlios basic wrapper

This commit is contained in:
Jean-Philippe Bossuat
2025-01-26 12:26:44 +01:00
parent 7e9a9501b5
commit 06e4e58b2d
201 changed files with 30406 additions and 3 deletions

View File

@@ -0,0 +1,31 @@
#ifndef SPQLIOS_NTT120_DFT_H
#define SPQLIOS_NTT120_DFT_H
#include <vector>
#include "../../spqlios/q120/q120_arithmetic.h"
#include "mod_q120.h"
#include "negacyclic_polynomial.h"
#include "test_commons.h"
class q120_nttvec {
public:
std::vector<mod_q120> v;
q120_nttvec() = default;
explicit q120_nttvec(uint64_t n);
q120_nttvec(uint64_t n, const q120b* data);
q120_nttvec(uint64_t n, const q120c* data);
uint64_t nn() const;
static q120_nttvec zero(uint64_t n);
static q120_nttvec random(uint64_t n);
void save_as(q120a* dest) const;
void save_as(q120b* dest) const;
void save_as(q120c* dest) const;
mod_q120 get_blk(uint64_t blk) const;
};
q120_nttvec simple_ntt120(const znx_i64& polynomial);
znx_i128 simple_intt120(const q120_nttvec& fftvec);
bool operator==(const q120_nttvec& a, const q120_nttvec& b);
#endif // SPQLIOS_NTT120_DFT_H