Clearmatics Libff
0.1
C++ library for Finite Fields and Elliptic Curves
|
#include "libff/algebra/curves/alt_bn128/alt_bn128_pp.hpp"
#include "libff/algebra/curves/curve_serialization.hpp"
#include "libff/algebra/scalar_multiplication/multiexp.hpp"
#include "libff/algebra/scalar_multiplication/multiexp_stream.hpp"
#include "libff/common/profiling.hpp"
#include "libff/common/rng.hpp"
#include <cstdio>
#include <fstream>
#include <sys/stat.h>
#include <vector>
Go to the source code of this file.
Typedefs | |
template<typename GroupT > | |
using | run_result_t = std::pair< long long, GroupT > |
template<typename T > | |
using | test_instances_t = std::vector< T > |
Functions | |
template<typename GroupT > | |
test_instances_t< GroupT > | generate_group_elements (size_t num_elements) |
template<typename FieldT > | |
test_instances_t< FieldT > | generate_scalars (size_t num_elements) |
template<form_t Form, compression_t Comp> | |
std::string | base_elements_filename (const std::string &tag, const size_t num_elements, const size_t precompute_c=0) |
template<form_t Form, compression_t Comp, typename GroupT > | |
void | create_base_element_file_for_config (const std::string &tag, const test_instances_t< GroupT > &base_elements) |
template<form_t Form, compression_t Comp, typename GroupT > | |
void | create_precompute_file_for_config (const std::string &tag, const test_instances_t< GroupT > &base_elements) |
template<typename GroupT > | |
void | create_base_element_files (const std::string &tag, const size_t num_elements) |
template<typename GroupT > | |
test_instances_t< GroupT > | read_group_elements (const std::string &tag, const size_t num_elements) |
template<typename GroupT , typename FieldT , multi_exp_method Method, multi_exp_base_form BaseForm = multi_exp_base_form_normal> | |
run_result_t< GroupT > | profile_multiexp (test_instances_t< GroupT > group_elements, test_instances_t< FieldT > scalars) |
template<form_t Form, compression_t Comp, typename GroupT , typename FieldT > | |
run_result_t< GroupT > | profile_multiexp_stream (const std::string &tag, const std::vector< FieldT > &scalars) |
template<form_t Form, compression_t Comp, typename GroupT , typename FieldT > | |
run_result_t< GroupT > | profile_multiexp_stream_with_precompute (const std::string &tag, const std::vector< FieldT > &scalars) |
template<typename GroupT , typename FieldT > | |
void | print_performance_csv (const std::string &tag, size_t expn_start, size_t expn_end_fast, size_t expn_end_naive, bool compare_answers) |
int | main (void) |
Variables | |
constexpr size_t | NUM_ITERATIONS = 10 |
constexpr size_t | NUM_DIFFERENT_ELEMENTS = 32 |
constexpr form_t | FORM = form_montgomery |
constexpr compression_t | COMP = compression_off |
using run_result_t = std::pair<long long, GroupT> |
Definition at line 20 of file profile_multiexp.cpp.
using test_instances_t = std::vector<T> |
Definition at line 22 of file profile_multiexp.cpp.
std::string base_elements_filename | ( | const std::string & | tag, |
const size_t | num_elements, | ||
const size_t | precompute_c = 0 |
||
) |
Definition at line 87 of file profile_multiexp.cpp.
void create_base_element_file_for_config | ( | const std::string & | tag, |
const test_instances_t< GroupT > & | base_elements | ||
) |
Definition at line 101 of file profile_multiexp.cpp.
void create_base_element_files | ( | const std::string & | tag, |
const size_t | num_elements | ||
) |
Definition at line 153 of file profile_multiexp.cpp.
void create_precompute_file_for_config | ( | const std::string & | tag, |
const test_instances_t< GroupT > & | base_elements | ||
) |
Definition at line 121 of file profile_multiexp.cpp.
test_instances_t<GroupT> generate_group_elements | ( | size_t | num_elements | ) |
Definition at line 25 of file profile_multiexp.cpp.
test_instances_t<FieldT> generate_scalars | ( | size_t | num_elements | ) |
Definition at line 53 of file profile_multiexp.cpp.
int main | ( | void | ) |
void print_performance_csv | ( | const std::string & | tag, |
size_t | expn_start, | ||
size_t | expn_end_fast, | ||
size_t | expn_end_naive, | ||
bool | compare_answers | ||
) |
run_result_t<GroupT> profile_multiexp | ( | test_instances_t< GroupT > | group_elements, |
test_instances_t< FieldT > | scalars | ||
) |
Definition at line 189 of file profile_multiexp.cpp.
run_result_t<GroupT> profile_multiexp_stream | ( | const std::string & | tag, |
const std::vector< FieldT > & | scalars | ||
) |
run_result_t<GroupT> profile_multiexp_stream_with_precompute | ( | const std::string & | tag, |
const std::vector< FieldT > & | scalars | ||
) |
test_instances_t<GroupT> read_group_elements | ( | const std::string & | tag, |
const size_t | num_elements | ||
) |
Definition at line 163 of file profile_multiexp.cpp.
|
constexpr |
Definition at line 18 of file profile_multiexp.cpp.
|
constexpr |
Definition at line 17 of file profile_multiexp.cpp.
|
constexpr |
Definition at line 15 of file profile_multiexp.cpp.
|
constexpr |
Definition at line 14 of file profile_multiexp.cpp.