MOTION  0.01
Framework for mixed-protocol multi-party computation
Classes | Typedefs | Functions
encrypto::motion::detail Namespace Reference

Classes

struct  get_expanded_type
 
struct  get_expanded_type< std::uint16_t >
 
struct  get_expanded_type< std::uint32_t >
 
struct  get_expanded_type< std::uint64_t >
 
struct  get_expanded_type< std::uint8_t >
 
class  ReusableSharedState
 

Typedefs

template<typename T >
using get_expanded_type_t = typename get_expanded_type< T >::type
 

Functions

template<typename T , typename = std::enable_if_t<std::is_unsigned_v<T>>>
sqrt (size_t k, T a)
 
template<typename T , typename = std::enable_if_t<std::is_unsigned_v<T>>>
invert (std::size_t k, T a)
 
template<typename T >
constexpr std::size_t GetBitSize ()
 
template<typename T , typename U = get_expanded_type_t<T>, typename = std::enable_if_t<std::is_same_v<U, get_expanded_type_t<T>>>>
constexpr U GetModMask ()
 
template<typename T , typename U = get_expanded_type_t<T>, typename = std::enable_if_t<std::is_same_v<U, get_expanded_type_t<T>>>>
static std::pair< std::vector< U >, std::vector< U > > compute_sbs_phase_1 (std::size_t number_of_sbs, std::size_t my_id, SpVector< U > &sps)
 
template<typename T , typename U = get_expanded_type_t<T>, typename = std::enable_if_t<std::is_same_v<U, get_expanded_type_t<T>>>>
static void compute_sbs_phase_2 (std::vector< U > &wb1, std::vector< U > &wb2, std::size_t my_id, SpVector< U > &sps)
 
template<typename T , typename U = get_expanded_type_t<T>, typename = std::enable_if_t<std::is_same_v<U, get_expanded_type_t<T>>>>
static void compute_sbs_phase_3 (std::vector< U > &wb1, std::vector< U > &wb2, std::vector< T > &sbs, std::size_t my_id)
 
template<template< typename > class Value, typename... Ts>
auto MakeTypeMap ()
 

Typedef Documentation

◆ get_expanded_type_t

template<typename T >
using encrypto::motion::detail::get_expanded_type_t = typedef typename get_expanded_type<T>::type

Function Documentation

◆ compute_sbs_phase_1()

template<typename T , typename U = get_expanded_type_t<T>, typename = std::enable_if_t<std::is_same_v<U, get_expanded_type_t<T>>>>
static std::pair<std::vector<U>, std::vector<U> > encrypto::motion::detail::compute_sbs_phase_1 ( std::size_t  number_of_sbs,
std::size_t  my_id,
SpVector< U > &  sps 
)
static

◆ compute_sbs_phase_2()

template<typename T , typename U = get_expanded_type_t<T>, typename = std::enable_if_t<std::is_same_v<U, get_expanded_type_t<T>>>>
static void encrypto::motion::detail::compute_sbs_phase_2 ( std::vector< U > &  wb1,
std::vector< U > &  wb2,
std::size_t  my_id,
SpVector< U > &  sps 
)
static

◆ compute_sbs_phase_3()

template<typename T , typename U = get_expanded_type_t<T>, typename = std::enable_if_t<std::is_same_v<U, get_expanded_type_t<T>>>>
static void encrypto::motion::detail::compute_sbs_phase_3 ( std::vector< U > &  wb1,
std::vector< U > &  wb2,
std::vector< T > &  sbs,
std::size_t  my_id 
)
static

◆ GetBitSize()

template<typename T >
constexpr std::size_t encrypto::motion::detail::GetBitSize ( )
constexpr

◆ GetModMask()

template<typename T , typename U = get_expanded_type_t<T>, typename = std::enable_if_t<std::is_same_v<U, get_expanded_type_t<T>>>>
constexpr U encrypto::motion::detail::GetModMask ( )
constexpr

◆ invert()

template<typename T , typename = std::enable_if_t<std::is_unsigned_v<T>>>
T encrypto::motion::detail::invert ( std::size_t  k,
a 
)
Here is the caller graph for this function:

◆ MakeTypeMap()

template<template< typename > class Value, typename... Ts>
auto encrypto::motion::detail::MakeTypeMap ( )

◆ sqrt()

template<typename T , typename = std::enable_if_t<std::is_unsigned_v<T>>>
T encrypto::motion::detail::sqrt ( size_t  k,
a 
)
Here is the call graph for this function:
Here is the caller graph for this function: