Clearmatics Libff
0.1
C++ library for Finite Fields and Elliptic Curves
|
Go to the source code of this file.
Namespaces | |
libff | |
Typedefs | |
template<typename T > | |
using | libff::window_table = std::vector< std::vector< T > > |
Enumerations | |
enum | libff::multi_exp_method { libff::multi_exp_method_naive, libff::multi_exp_method_naive_plain, libff::multi_exp_method_bos_coster, libff::multi_exp_method_BDLO12, libff::multi_exp_method_BDLO12_signed } |
enum | libff::multi_exp_base_form { libff::multi_exp_base_form_normal, libff::multi_exp_base_form_special } |
Form of base elements passed to multi_exp routines. More... | |
Functions | |
template<typename T , typename FieldT , multi_exp_method Method, multi_exp_base_form BaseForm = multi_exp_base_form_normal> | |
T | libff::multi_exp (typename std::vector< T >::const_iterator vec_start, typename std::vector< T >::const_iterator vec_end, typename std::vector< FieldT >::const_iterator scalar_start, typename std::vector< FieldT >::const_iterator scalar_end, const size_t chunks) |
template<typename T , typename FieldT , multi_exp_method Method, multi_exp_base_form BaseForm = multi_exp_base_form_normal> | |
T | libff::multi_exp_filter_one_zero (typename std::vector< T >::const_iterator vec_start, typename std::vector< T >::const_iterator vec_end, typename std::vector< FieldT >::const_iterator scalar_start, typename std::vector< FieldT >::const_iterator scalar_end, const size_t chunks) |
template<typename T > | |
T | libff::inner_product (typename std::vector< T >::const_iterator a_start, typename std::vector< T >::const_iterator a_end, typename std::vector< T >::const_iterator b_start, typename std::vector< T >::const_iterator b_end) |
template<typename T > | |
size_t | libff::get_exp_window_size (const size_t num_scalars) |
Compute window size for the given number of scalars. More... | |
template<typename T > | |
window_table< T > | libff::get_window_table (const size_t scalar_size, const size_t window, const T &g) |
Compute table of window sizes. More... | |
template<typename T , typename FieldT > | |
T | libff::windowed_exp (const size_t scalar_size, const size_t window, const window_table< T > &powers_of_g, const FieldT &pow) |
template<typename T , typename FieldT > | |
std::vector< T > | libff::batch_exp (const size_t scalar_size, const size_t window, const window_table< T > &table, const std::vector< FieldT > &v) |
template<typename T , typename FieldT > | |
std::vector< T > | libff::batch_exp (const size_t scalar_size, const size_t window, const window_table< T > &table, const std::vector< FieldT > &v, size_t num_entries) |
template<typename T , typename FieldT > | |
std::vector< T > | libff::batch_exp_with_coeff (const size_t scalar_size, const size_t window, const window_table< T > &table, const FieldT &coeff, const std::vector< FieldT > &v) |
template<typename T > | |
void | libff::batch_to_special (std::vector< T > &vec) |
Declaration of interfaces for multi-exponentiation routines.
Definition in file multiexp.hpp.