nil::crypto3::zk::snark::qap_instance< FieldType > Class Template Reference
#include <qap.hpp>
Collaboration diagram for nil::crypto3::zk::snark::qap_instance< FieldType >:
Public Member Functions | |
bool | is_satisfied (const qap_witness< field_type > &witness) const |
qap_instance & | operator= (const qap_instance< field_type > &other)=default |
qap_instance & | operator= (qap_instance< field_type > &&other)=default |
qap_instance (const qap_instance< field_type > &other)=default | |
qap_instance (const std::shared_ptr< evaluation_domain< field_type >> &domain, const std::size_t num_variables, const std::size_t degree, const std::size_t num_inputs, const std::vector< std::map< std::size_t, field_value_type >> &A_in_Lagrange_basis, const std::vector< std::map< std::size_t, field_value_type >> &B_in_Lagrange_basis, const std::vector< std::map< std::size_t, field_value_type >> &C_in_Lagrange_basis) | |
qap_instance (const std::shared_ptr< evaluation_domain< field_type >> &domain, const std::size_t num_variables, const std::size_t degree, const std::size_t num_inputs, std::vector< std::map< std::size_t, field_value_type >> &&A_in_Lagrange_basis, std::vector< std::map< std::size_t, field_value_type >> &&B_in_Lagrange_basis, std::vector< std::map< std::size_t, field_value_type >> &&C_in_Lagrange_basis) | |
qap_instance (qap_instance< field_type > &&other)=default | |
Public Attributes | |
std::vector< std::map< std::size_t, field_value_type > > | A_in_Lagrange_basis |
std::vector< std::map< std::size_t, field_value_type > > | B_in_Lagrange_basis |
std::vector< std::map< std::size_t, field_value_type > > | C_in_Lagrange_basis |
std::size_t | degree |
std::shared_ptr< evaluation_domain< field_type > > | domain |
std::size_t | num_inputs |
std::size_t | num_variables |
Detailed Description
template<typename FieldType>
class nil::crypto3::zk::snark::qap_instance< FieldType >
A QAP instance.
Specifically, the data structure 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.
There is no need to store the Z polynomial because it is uniquely determined by the domain (as Z is its vanishing polynomial).
Constructor & Destructor Documentation
◆ qap_instance() [1/4]
template<typename FieldType >
|
inline |
◆ qap_instance() [2/4]
template<typename FieldType >
|
inline |
◆ qap_instance() [3/4]
template<typename FieldType >
|
default |
◆ qap_instance() [4/4]
template<typename FieldType >
|
default |
Member Function Documentation
◆ is_satisfied()
template<typename FieldType >
|
inline |
◆ operator=() [1/2]
template<typename FieldType >
|
default |
◆ operator=() [2/2]
template<typename FieldType >
|
default |
Member Data Documentation
◆ A_in_Lagrange_basis
template<typename FieldType >
std::vector<std::map<std::size_t, field_value_type> > nil::crypto3::zk::snark::qap_instance< FieldType >::A_in_Lagrange_basis |
◆ B_in_Lagrange_basis
template<typename FieldType >
std::vector<std::map<std::size_t, field_value_type> > nil::crypto3::zk::snark::qap_instance< FieldType >::B_in_Lagrange_basis |
◆ C_in_Lagrange_basis
template<typename FieldType >
std::vector<std::map<std::size_t, field_value_type> > nil::crypto3::zk::snark::qap_instance< FieldType >::C_in_Lagrange_basis |
◆ degree
template<typename FieldType >
std::size_t nil::crypto3::zk::snark::qap_instance< FieldType >::degree |
◆ domain
template<typename FieldType >
std::shared_ptr<evaluation_domain<field_type> > nil::crypto3::zk::snark::qap_instance< FieldType >::domain |
◆ num_inputs
template<typename FieldType >
std::size_t nil::crypto3::zk::snark::qap_instance< FieldType >::num_inputs |
◆ num_variables
template<typename FieldType >
std::size_t nil::crypto3::zk::snark::qap_instance< FieldType >::num_variables |
The documentation for this class was generated from the following file: