| 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)