Intel HE Acceleration Library for FPGAs
Intel Homomorphic Encryption Acceleration Library for FPGAs, accelerating the modular arithmetic operations used in homomorphic encryption on Intel FPGAs.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | List of all members
intel::hexl::fpga::Buffer Class Reference

Struct Buffer Structure containing information for the polynomial operations. More...

#include <fpga.h>

Public Member Functions

 Buffer (uint64_t capacity, uint64_t n_batch_dyadic_multiply, uint64_t n_batch_ntt, uint64_t n_batch_intt, uint64_t n_batch_KeySwitch)
 
void push (Object *obj)
 
Objectfront () const
 
Objectback () const
 
std::vector< Object * > pop ()
 
uint64_t size ()
 
uint64_t get_worksize_DyadicMultiply () const
 
uint64_t get_worksize_NTT () const
 
uint64_t get_worksize_INTT () const
 
uint64_t get_worksize_KeySwitch () const
 
void set_worksize_DyadicMultiply (uint64_t ws)
 
void set_worksize_NTT (uint64_t ws)
 
void set_worksize_INTT (uint64_t ws)
 
void set_worksize_KeySwitch (uint64_t ws)
 

Detailed Description

Struct Buffer Structure containing information for the polynomial operations.

Parameters
[in]capacityof the buffer
[in]n_batch_dyadic_multiplybatch size for the multiplication
[in]n_batch_nttbatch size for the Number Theoretical Transform
[in]n_batch_inttbatch size for the inverse Number Theoretical Transform
[in]n_batch_KeySwitchbatch size for the keyswitch
[in]total_worksize_DyadicMultiplystores the worksize for the multiplication
[in]num_DyadicMultiplystores the number of multiplications to be performed
[in]total_worksize_NTTstores the worksize for the NTT
[in]num_NTTstores the number of NTT to be performed
[in]total_worksize_INTTstores the worksize for the INTT
[in]num_INTTstores the number of INTT to be performed
[in]total_worksize_KeySwitchstores the worksize for the keyswitch
[in]num_KeySwitchstores the number of keyswitch to be performed push pushes an Object in the structure front returns the front Object of the structure back returns the last Object of the structure pop pops the front Object out of the structure size returns the size of the structure get_worksize_DyadicMultiply returns the worksize of DyadicMultiply get_worksize_NTT returns the worksize of NTT get_worksize_INTT returns the worksize of INTT get_worksize_KeySwitch returns the worksize of KeySwitch set_worksize_DyadicMultiply sets the worksize of DyadicMultiply set_worksize_NTT sets the worksize of NTT set_worksize_INTT sets the worksize of INTT set_worksize_KeySwitch sets the worksize of KeySwitch

Constructor & Destructor Documentation

intel::hexl::fpga::Buffer::Buffer ( uint64_t  capacity,
uint64_t  n_batch_dyadic_multiply,
uint64_t  n_batch_ntt,
uint64_t  n_batch_intt,
uint64_t  n_batch_KeySwitch 
)
inline

Member Function Documentation

Object* intel::hexl::fpga::Buffer::back ( ) const
Object* intel::hexl::fpga::Buffer::front ( ) const
uint64_t intel::hexl::fpga::Buffer::get_worksize_DyadicMultiply ( ) const
inline
uint64_t intel::hexl::fpga::Buffer::get_worksize_INTT ( ) const
inline
uint64_t intel::hexl::fpga::Buffer::get_worksize_KeySwitch ( ) const
inline
uint64_t intel::hexl::fpga::Buffer::get_worksize_NTT ( ) const
inline
std::vector<Object*> intel::hexl::fpga::Buffer::pop ( )
void intel::hexl::fpga::Buffer::push ( Object obj)
void intel::hexl::fpga::Buffer::set_worksize_DyadicMultiply ( uint64_t  ws)
inline
void intel::hexl::fpga::Buffer::set_worksize_INTT ( uint64_t  ws)
inline
void intel::hexl::fpga::Buffer::set_worksize_KeySwitch ( uint64_t  ws)
inline
void intel::hexl::fpga::Buffer::set_worksize_NTT ( uint64_t  ws)
inline
uint64_t intel::hexl::fpga::Buffer::size ( )

The documentation for this class was generated from the following file: