Intel HEXL for FPGA
Intel Homomorphic Encryption FPGA Acceleration Library, accelerating the modular arithmetic operations used in homomorphic encryption.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
example_dyadic_multiply.h
Go to the documentation of this file.
1 // Copyright (C) 2020-2021 Intel Corporation
2 // SPDX-License-Identifier: Apache-2.0
3 #ifndef __EXAMPLE_DYADIC_MULTIPLY_H__
4 #define __EXAMPLE_DYADIC_MULTIPLY_H__
5 
6 #include <cstdint>
7 #include <vector>
8 
31 public:
32  void setup_dyadic_multiply(uint64_t n_dyadic_multiply, uint64_t num_moduli,
33  uint64_t coeff_count);
34  void execute_dyadic_multiply(std::vector<uint64_t>& out,
35  uint64_t n_dyadic_multiply,
36  uint64_t num_moduli, uint64_t coeff_count);
37  std::vector<uint64_t>& exp_output() { return exp_out; }
38 
39 private:
40  std::vector<uint64_t> moduli;
41  std::vector<uint64_t> op1;
42  std::vector<uint64_t> op2;
43  std::vector<uint64_t> exp_out;
44 };
45 #endif
uint64_t num_moduli
Definition: bench_dyadic_multiply.cpp:67
void execute_dyadic_multiply(std::vector< uint64_t > &out, uint64_t n_dyadic_multiply, uint64_t num_moduli, uint64_t coeff_count)
example_dyadic_multiply::execute_dyadic_multiply sets the work size for the multiplication calls n_dy...
Definition: example_dyadic_multiply.cpp:79
void setup_dyadic_multiply(uint64_t n_dyadic_multiply, uint64_t num_moduli, uint64_t coeff_count)
example_dyadic_multiply::setup_dyadic_multiply Initializes the multiplication two operands and the ve...
Definition: example_dyadic_multiply.cpp:13
uint64_t n_dyadic_multiply
Definition: bench_dyadic_multiply.cpp:68
Definition: example_dyadic_multiply.h:30
std::vector< uint64_t > & exp_output()
Definition: example_dyadic_multiply.h:37
std::vector< uint64_t > out(n_dyadic_multiply *3 *num_moduli *coeff_count, 0)