nil::crypto3::zk::snark::sap_instance< FieldType > Struct Template Reference
#include <sap.hpp>
Collaboration diagram for nil::crypto3::zk::snark::sap_instance< FieldType >:
Public Member Functions | |
bool | is_satisfied (const sap_witness< FieldType > &witness) const |
sap_instance & | operator= (const sap_instance< FieldType > &other)=default |
sap_instance & | operator= (sap_instance< FieldType > &&other)=default |
sap_instance (const sap_instance< FieldType > &other)=default | |
sap_instance (const std::shared_ptr< evaluation_domain< FieldType >> &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, typename FieldType::value_type >> &A_in_Lagrange_basis, const std::vector< std::map< std::size_t, typename FieldType::value_type >> &C_in_Lagrange_basis) | |
sap_instance (const std::shared_ptr< evaluation_domain< FieldType >> &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, typename FieldType::value_type >> &&A_in_Lagrange_basis, std::vector< std::map< std::size_t, typename FieldType::value_type >> &&C_in_Lagrange_basis) | |
sap_instance (sap_instance< FieldType > &&other)=default | |
Public Attributes | |
std::vector< std::map< std::size_t, typename FieldType::value_type > > | A_in_Lagrange_basis |
std::vector< std::map< std::size_t, typename FieldType::value_type > > | C_in_Lagrange_basis |
std::size_t | degree |
std::shared_ptr< evaluation_domain< FieldType > > | domain |
std::size_t | num_inputs |
std::size_t | num_variables |
Detailed Description
template<typename FieldType>
struct nil::crypto3::zk::snark::sap_instance< FieldType >
A SAP 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,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
◆ sap_instance() [1/4]
template<typename FieldType >
|
inline |
◆ sap_instance() [2/4]
template<typename FieldType >
|
inline |
◆ sap_instance() [3/4]
template<typename FieldType >
|
default |
◆ sap_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, typename FieldType::value_type> > nil::crypto3::zk::snark::sap_instance< FieldType >::A_in_Lagrange_basis |
◆ C_in_Lagrange_basis
template<typename FieldType >
std::vector<std::map<std::size_t, typename FieldType::value_type> > nil::crypto3::zk::snark::sap_instance< FieldType >::C_in_Lagrange_basis |
◆ degree
template<typename FieldType >
std::size_t nil::crypto3::zk::snark::sap_instance< FieldType >::degree |
◆ domain
template<typename FieldType >
std::shared_ptr<evaluation_domain<FieldType> > nil::crypto3::zk::snark::sap_instance< FieldType >::domain |
◆ num_inputs
template<typename FieldType >
std::size_t nil::crypto3::zk::snark::sap_instance< FieldType >::num_inputs |
◆ num_variables
template<typename FieldType >
std::size_t nil::crypto3::zk::snark::sap_instance< FieldType >::num_variables |
The documentation for this struct was generated from the following file: