|
| qap_instance (const std::shared_ptr< libfqfft::evaluation_domain< FieldT >> &domain, const size_t num_variables, const size_t degree, const size_t num_inputs, const std::vector< std::map< size_t, FieldT >> &A_in_Lagrange_basis, const std::vector< std::map< size_t, FieldT >> &B_in_Lagrange_basis, const std::vector< std::map< size_t, FieldT >> &C_in_Lagrange_basis) |
|
| qap_instance (const std::shared_ptr< libfqfft::evaluation_domain< FieldT >> &domain, const size_t num_variables, const size_t degree, const size_t num_inputs, std::vector< std::map< size_t, FieldT >> &&A_in_Lagrange_basis, std::vector< std::map< size_t, FieldT >> &&B_in_Lagrange_basis, std::vector< std::map< size_t, FieldT >> &&C_in_Lagrange_basis) |
|
| qap_instance (const qap_instance< FieldT > &other)=default |
|
| qap_instance (qap_instance< FieldT > &&other)=default |
|
qap_instance & | operator= (const qap_instance< FieldT > &other)=default |
|
qap_instance & | operator= (qap_instance< FieldT > &&other)=default |
|
size_t | num_variables () const |
|
size_t | degree () const |
|
size_t | num_inputs () const |
|
bool | is_satisfied (const qap_witness< FieldT > &witness) const |
|
template<typename FieldT>
class libsnark::qap_instance< FieldT >
A QAP instance.
Specifically, the datastructure stores:
- a choice of domain (corresponding to a certain subset of the field);
- the number of variables, the degree, and the number of inputs; and
- coefficients of the A,B,C polynomials in the Lagrange basis.
(Each entry in the vector corresponds to a single input, representing a map of condition idx to the coefficients of that input in the linear combination A/B/C for that condition - namely the coefficients of the Lagrange polynomials forming u_i(\cdot), where A = \sum_i a_i * u_i(t)).
There is no need to store the Z polynomial because it is uniquely determined by the domain (as Z is its vanishing polynomial).
Definition at line 51 of file qap.hpp.