Clearmatics Libff
0.1
C++ library for Finite Fields and Elliptic Curves
|
Go to the documentation of this file.
8 #ifndef FIELD_UTILS_HPP_
9 #define FIELD_UTILS_HPP_
22 template<
typename FieldT>
23 typename std::enable_if<std::is_same<FieldT, Double>::value,
bool>::type
26 template<
typename FieldT>
27 typename std::enable_if<!std::is_same<FieldT, Double>::value,
bool>::type
31 template<
typename FieldT>
32 typename std::enable_if<std::is_same<FieldT, Double>::value, FieldT>::type
35 template<
typename FieldT>
36 typename std::enable_if<!std::is_same<FieldT, Double>::value, FieldT>::type
42 const bigint<n> &v,
const size_t digit_size,
const size_t digit_index);
47 const bigint<n> &v,
const size_t digit_size,
const size_t digit_index);
51 template<
typename FieldT>
53 std::vector<ssize_t> &digits,
55 const size_t digit_size,
56 const size_t num_digits);
58 template<
typename FieldT>
60 const std::vector<size_t> &v,
const size_t w);
62 template<
typename FieldT>
66 template<
typename FieldT>
70 template<
typename FieldT>
74 template<
typename FieldT>
76 const std::vector<FieldT> &v);
78 template<
typename FieldT>
81 template<
typename FieldT>
83 const FieldT &el,
const size_t bitcount);
85 template<
typename FieldT>
88 template<
typename FieldT>
void batch_invert(std::vector<FieldT> &vec);
92 template<
typename FieldT>
100 const bigint<wn> &wmodulus,
102 const bigint<nn> &nmodulus>
103 void fp_from_fp(Fp_model<wn, wmodulus> &wfp,
const Fp_model<nn, nmodulus> &nfp);
106 template<
typename FieldT>
void print_vector(
const std::vector<FieldT> &v);
112 #endif // FIELD_UTILS_HPP_
void fp_from_fp(Fp_model< wn, wmodulus > &wfp, const Fp_model< nn, nmodulus > &nfp)
FieldT convert_bit_vector_to_field_element(const bit_vector &v)
bit_vector convert_field_element_to_bit_vector(const FieldT &el)
std::enable_if< std::is_same< FieldT, Double >::value, FieldT >::type get_root_of_unity(const size_t n)
const FieldT::my_Fp & field_get_component_0(const FieldT &v)
ssize_t field_get_signed_digit(const bigint< n > &v, const size_t digit_size, const size_t digit_index)
Decompose v into fixed-size signed digits of digit_size bits each.
void batch_invert(std::vector< FieldT > &vec)
std::vector< bool > bit_vector
void field_get_signed_digits(std::vector< ssize_t > &digits, const FieldT &v, const size_t digit_size, const size_t num_digits)
std::vector< FieldT > pack_bit_vector_into_field_element_vector(const bit_vector &v, const size_t chunk_bits)
size_t field_get_digit(const bigint< n > &v, const size_t digit_size, const size_t digit_index)
Decompose v into fixed-size digits of digit_size bits each.
bit_vector convert_field_element_vector_to_bit_vector(const std::vector< FieldT > &v)
std::vector< FieldT > convert_bit_vector_to_field_element_vector(const bit_vector &v)
std::vector< FieldT > pack_int_vector_into_field_element_vector(const std::vector< size_t > &v, const size_t w)
void print_vector(const std::vector< FieldT > &v)
print the elements of a vector
std::enable_if< std::is_same< FieldT, Double >::value, bool >::type has_root_of_unity(const size_t n)