nil::crypto3::math::detail Namespace Reference

Functions

template<typename FieldType , typename Range >
void basic_parallel_radix2_fft (Range &a, const typename FieldType::value_type &omega)
 
template<typename FieldType , typename Range >
void basic_parallel_radix2_fft_inner (Range &a, const typename FieldType::value_type &omega, const std::size_t log_cpus)
 
template<typename FieldType >
std::vector< typename FieldType::value_type > basic_radix2_evaluate_all_lagrange_polynomials (const std::size_t m, const typename FieldType::value_type &t)
 
template<typename FieldType , typename Range >
void basic_serial_radix2_fft (Range &a, const typename FieldType::value_type &omega)
 
std::size_t bitreverse (std::size_t n, const std::size_t l)
 
template<typename FieldType >
FieldType::value_type coset_shift ()
 
template<typename FieldType >
bool is_arithmetic_sequence_domain (std::size_t m)
 
template<typename FieldType >
bool is_basic_radix2_domain (std::size_t m)
 
template<typename FieldType >
bool is_extended_radix2_domain (std::size_t m)
 
template<typename FieldType >
bool is_geometric_sequence_domain (std::size_t m)
 
template<typename FieldType >
bool is_step_radix2_domain (std::size_t m)
 
constexpr std::size_t power_of_two (std::size_t n)
 

Function Documentation

◆ basic_parallel_radix2_fft()

template<typename FieldType , typename Range >
void nil::crypto3::math::detail::basic_parallel_radix2_fft ( Range &  a,
const typename FieldType::value_type &  omega 
)

◆ basic_parallel_radix2_fft_inner()

template<typename FieldType , typename Range >
void nil::crypto3::math::detail::basic_parallel_radix2_fft_inner ( Range &  a,
const typename FieldType::value_type &  omega,
const std::size_t  log_cpus 
)

◆ basic_radix2_evaluate_all_lagrange_polynomials()

template<typename FieldType >
std::vector<typename FieldType::value_type> nil::crypto3::math::detail::basic_radix2_evaluate_all_lagrange_polynomials ( const std::size_t  m,
const typename FieldType::value_type &  t 
)

Compute the m Lagrange coefficients, relative to the set S={omega^{0},...,omega^{m-1}}, at the field element t.

◆ basic_serial_radix2_fft()

template<typename FieldType , typename Range >
void nil::crypto3::math::detail::basic_serial_radix2_fft ( Range &  a,
const typename FieldType::value_type &  omega 
)

◆ bitreverse()

std::size_t nil::crypto3::math::detail::bitreverse ( std::size_t  n,
const std::size_t  l 
)

◆ coset_shift()

template<typename FieldType >
FieldType::value_type nil::crypto3::math::detail::coset_shift ( )

◆ is_arithmetic_sequence_domain()

template<typename FieldType >
bool nil::crypto3::math::detail::is_arithmetic_sequence_domain ( std::size_t  m)

◆ is_basic_radix2_domain()

template<typename FieldType >
bool nil::crypto3::math::detail::is_basic_radix2_domain ( std::size_t  m)

◆ is_extended_radix2_domain()

template<typename FieldType >
bool nil::crypto3::math::detail::is_extended_radix2_domain ( std::size_t  m)

◆ is_geometric_sequence_domain()

template<typename FieldType >
bool nil::crypto3::math::detail::is_geometric_sequence_domain ( std::size_t  m)

◆ is_step_radix2_domain()

template<typename FieldType >
bool nil::crypto3::math::detail::is_step_radix2_domain ( std::size_t  m)

◆ power_of_two()

constexpr std::size_t nil::crypto3::math::detail::power_of_two ( std::size_t  n)
constexpr