#include <arithmetic_sequence_domain.hpp>


Public Types | |
typedef FieldType | field_type |
Public Member Functions | |
void | add_poly_z (const value_type &coeff, std::vector< value_type > &H) |
arithmetic_sequence_domain (const std::size_t m) | |
value_type | compute_vanishing_polynomial (const value_type &t) |
void | divide_by_z_on_coset (std::vector< value_type > &P) |
void | do_precomputation () |
std::vector< value_type > | evaluate_all_lagrange_polynomials (const value_type &t) |
void | fft (std::vector< value_type > &a) |
value_type | get_domain_element (const std::size_t idx) |
void | inverse_fft (std::vector< value_type > &a) |
Public Attributes | |
value_type | arithmetic_generator |
std::vector< value_type > | arithmetic_sequence |
value_type | domain |
value_type | domain_inverse |
value_type | generator |
value_type | generator_inverse |
std::size_t | generator_size |
std::size_t | log2_size |
std::size_t | m |
bool | precomputation_sentinel |
value_type | root |
value_type | root_inverse |
std::vector< std::vector< std::vector< value_type > > > | subproduct_tree |
Member Typedef Documentation
◆ field_type
typedef FieldType nil::crypto3::math::arithmetic_sequence_domain< FieldType >::field_type |
Constructor & Destructor Documentation
◆ arithmetic_sequence_domain()
|
inline |
Member Function Documentation
◆ add_poly_z()
|
inlinevirtual |
Add the coefficients of the vanishing polynomial of S to the coefficients of the polynomial H.
Implements nil::crypto3::math::evaluation_domain< FieldType >.
◆ compute_vanishing_polynomial()
|
inlinevirtual |
Evaluate the vanishing polynomial of S at the field element t.
Implements nil::crypto3::math::evaluation_domain< FieldType >.
◆ divide_by_z_on_coset()
|
inlinevirtual |
Multiply by the evaluation, on a coset of S, of the inverse of the vanishing polynomial of S.
Implements nil::crypto3::math::evaluation_domain< FieldType >.
◆ do_precomputation()
|
inline |
◆ evaluate_all_lagrange_polynomials()
|
inlinevirtual |
Evaluate all Lagrange polynomials.
The inputs are:
- an integer m
- an element t The output is a vector (b_{0},...,b_{m-1}) where b_{i} is the evaluation of L_{i,S}(z) at z = t.
If t equals one of the arithmetic progression values, then output 1 at the right place, and 0 elsewhere.
Otherwise, if t does not equal any of the arithmetic progression values, then compute each Lagrange coefficient.
Implements nil::crypto3::math::evaluation_domain< FieldType >.
◆ fft()
|
inlinevirtual |
Compute the FFT, over the domain S, of the vector a.
Implements nil::crypto3::math::evaluation_domain< FieldType >.
◆ get_domain_element()
|
inlinevirtual |
Get the idx-th element in S.
Implements nil::crypto3::math::evaluation_domain< FieldType >.
◆ inverse_fft()
|
inlinevirtual |
Compute the inverse FFT, over the domain S, of the vector a.
Implements nil::crypto3::math::evaluation_domain< FieldType >.
Member Data Documentation
◆ arithmetic_generator
value_type nil::crypto3::math::arithmetic_sequence_domain< FieldType >::arithmetic_generator |
◆ arithmetic_sequence
std::vector<value_type> nil::crypto3::math::arithmetic_sequence_domain< FieldType >::arithmetic_sequence |
◆ domain
|
inherited |
◆ domain_inverse
|
inherited |
◆ generator
|
inherited |
◆ generator_inverse
|
inherited |
◆ generator_size
|
inherited |
◆ log2_size
|
inherited |
◆ m
|
inherited |
◆ precomputation_sentinel
bool nil::crypto3::math::arithmetic_sequence_domain< FieldType >::precomputation_sentinel |
◆ root
|
inherited |
◆ root_inverse
|
inherited |
◆ subproduct_tree
std::vector<std::vector<std::vector<value_type> > > nil::crypto3::math::arithmetic_sequence_domain< FieldType >::subproduct_tree |
The documentation for this class was generated from the following file: