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
Classes | Namespaces | Macros | Typedefs | Enumerations | Functions | Variables
utils-test.hpp File Reference
#include <cmath>
#include <cstddef>
#include <cstdint>
#include <cstdlib>
#include <iostream>
#include <limits>
#include <memory>
#include <utility>
#include <vector>

Go to the source code of this file.

Classes

struct  hetest::utils::AllocatorBase
 
struct  hetest::utils::AllocatorInterface< AllocatorImpl >
 
struct  hetest::utils::details::MallocStrategy
 
struct  hetest::utils::details::CustomAllocStrategy
 
class  hetest::utils::AlignedAllocator< T, Alignment >
 
struct  hetest::utils::AlignedAllocator< T, Alignment >::rebind< U >
 

Namespaces

 hetest
 
 hetest::utils
 
 hetest::utils::details
 

Macros

#define UTILS_CHECK(cond, expr)   {}
 
#define UTILS_CHECK_BOUNDS(...)   {}
 

Typedefs

using hetest::utils::AllocatorStrategyPtr = std::shared_ptr< AllocatorBase >
 
template<typename T >
using hetest::utils::AlignedVector64 = std::vector< T, AlignedAllocator< T, 64 > >
 

Enumerations

enum  hetest::utils::CMPINT {
  hetest::utils::CMPINT::EQ = 0, hetest::utils::CMPINT::LT = 1, hetest::utils::CMPINT::LE = 2, hetest::utils::CMPINT::FALSE = 3,
  hetest::utils::CMPINT::NE = 4, hetest::utils::CMPINT::NLT = 5, hetest::utils::CMPINT::NLE = 6, hetest::utils::CMPINT::TRUE = 7
}
 Represents binary operations between two boolean values. More...
 

Functions

CMPINT hetest::utils::Not (CMPINT cmp)
 Returns the logical negation of a binary operation. More...
 
uint128_t hetest::utils::MultiplyUInt64 (uint64_t x, uint64_t y)
 
uint64_t hetest::utils::BarrettReduce128 (uint64_t input_hi, uint64_t input_lo, uint64_t modulus)
 
uint64_t hetest::utils::DivideUInt128UInt64Lo (uint64_t x1, uint64_t x0, uint64_t y)
 
void hetest::utils::MultiplyUInt64 (uint64_t x, uint64_t y, uint64_t *prod_hi, uint64_t *prod_lo)
 
template<int BitShift>
uint64_t hetest::utils::MultiplyUInt64Hi (uint64_t x, uint64_t y)
 
uint64_t hetest::utils::MSB (uint64_t input)
 
bool hetest::utils::Compare (CMPINT cmp, uint64_t lhs, uint64_t rhs)
 
bool hetest::utils::IsPowerOfTwo (uint64_t num)
 
uint64_t hetest::utils::Log2 (uint64_t x)
 
uint64_t hetest::utils::MaximumValue (uint64_t bits)
 

Variables

__extension__ typedef __int128 int128_t
 
__extension__ typedef unsigned
__int128 
uint128_t
 

Macro Definition Documentation

#define UTILS_CHECK (   cond,
  expr 
)    {}
#define UTILS_CHECK_BOUNDS (   ...)    {}

Variable Documentation

__extension__ typedef __int128 int128_t
__extension__ typedef unsigned __int128 uint128_t