#pragma once #include "Params.h" #include "openfhe/core/lattice/hal/lat-backend.h" #include "openfhe/core/math/matrix.h" #include "openfhe/core/lattice/trapdoor.h" #include "DCRTPoly.h" namespace openfhe { using Matrix = lbcrypto::Matrix; using RLWETrapdoorPair = lbcrypto::RLWETrapdoorPair; struct TrapdoorOutput { Matrix m; RLWETrapdoorPair tp; }; // Generator functions [[nodiscard]] std::unique_ptr DCRTPolyTrapdoorGen( const ILDCRTParams& params, int64_t base, bool balanced); [[nodiscard]] std::unique_ptr DCRTPolyGaussSamp(size_t n, size_t k, const TrapdoorOutput& trapdoor, const DCRTPolyImpl& u, int64_t base); } // openfhe