nil::crypto3::zk::snark::qap_instance_evaluation< FieldType > Class Template Reference

#include <qap.hpp>

+ Collaboration diagram for nil::crypto3::zk::snark::qap_instance_evaluation< FieldType >:

Public Member Functions

bool is_satisfied (const qap_witness< field_type > &witness) const
 
qap_instance_evaluationoperator= (const qap_instance_evaluation< field_type > &other)=default
 
qap_instance_evaluationoperator= (qap_instance_evaluation< field_type > &&other)=default
 
 qap_instance_evaluation (const qap_instance_evaluation< field_type > &other)=default
 
 qap_instance_evaluation (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 field_value_type &t, const std::vector< field_value_type > &At, const std::vector< field_value_type > &Bt, const std::vector< field_value_type > &Ct, const std::vector< field_value_type > &Ht, const field_value_type &Zt)
 
 qap_instance_evaluation (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 field_value_type &t, std::vector< field_value_type > &&At, std::vector< field_value_type > &&Bt, std::vector< field_value_type > &&Ct, std::vector< field_value_type > &&Ht, const field_value_type &Zt)
 
 qap_instance_evaluation (qap_instance_evaluation< field_type > &&other)=default
 

Public Attributes

std::vector< field_value_type > At
 
std::vector< field_value_type > Bt
 
std::vector< field_value_type > Ct
 
std::size_t degree
 
std::shared_ptr< evaluation_domain< field_type > > domain
 
std::vector< field_value_type > Ht
 
std::size_t num_inputs
 
std::size_t num_variables
 
field_value_type t
 
field_value_type Zt
 

Detailed Description

template<typename FieldType>
class nil::crypto3::zk::snark::qap_instance_evaluation< FieldType >

A QAP instance evaluation is a QAP instance that is evaluated at a field element t.

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;
  • a field element t;
  • evaluations of the A,B,C (and Z) polynomials at t;
  • evaluations of all monomials of t;
  • counts about how many of the above evaluations are in fact non-zero.

Constructor & Destructor Documentation

◆ qap_instance_evaluation() [1/4]

template<typename FieldType >
nil::crypto3::zk::snark::qap_instance_evaluation< FieldType >::qap_instance_evaluation ( 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 field_value_type &  t,
const std::vector< field_value_type > &  At,
const std::vector< field_value_type > &  Bt,
const std::vector< field_value_type > &  Ct,
const std::vector< field_value_type > &  Ht,
const field_value_type &  Zt 
)
inline

◆ qap_instance_evaluation() [2/4]

template<typename FieldType >
nil::crypto3::zk::snark::qap_instance_evaluation< FieldType >::qap_instance_evaluation ( 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 field_value_type &  t,
std::vector< field_value_type > &&  At,
std::vector< field_value_type > &&  Bt,
std::vector< field_value_type > &&  Ct,
std::vector< field_value_type > &&  Ht,
const field_value_type &  Zt 
)
inline

◆ qap_instance_evaluation() [3/4]

template<typename FieldType >
nil::crypto3::zk::snark::qap_instance_evaluation< FieldType >::qap_instance_evaluation ( const qap_instance_evaluation< field_type > &  other)
default

◆ qap_instance_evaluation() [4/4]

template<typename FieldType >
nil::crypto3::zk::snark::qap_instance_evaluation< FieldType >::qap_instance_evaluation ( qap_instance_evaluation< field_type > &&  other)
default

Member Function Documentation

◆ is_satisfied()

template<typename FieldType >
bool nil::crypto3::zk::snark::qap_instance_evaluation< FieldType >::is_satisfied ( const qap_witness< field_type > &  witness) const
inline

◆ operator=() [1/2]

template<typename FieldType >
qap_instance_evaluation& nil::crypto3::zk::snark::qap_instance_evaluation< FieldType >::operator= ( const qap_instance_evaluation< field_type > &  other)
default

◆ operator=() [2/2]

template<typename FieldType >
qap_instance_evaluation& nil::crypto3::zk::snark::qap_instance_evaluation< FieldType >::operator= ( qap_instance_evaluation< field_type > &&  other)
default

Member Data Documentation

◆ At

template<typename FieldType >
std::vector<field_value_type> nil::crypto3::zk::snark::qap_instance_evaluation< FieldType >::At

◆ Bt

template<typename FieldType >
std::vector<field_value_type> nil::crypto3::zk::snark::qap_instance_evaluation< FieldType >::Bt

◆ Ct

template<typename FieldType >
std::vector<field_value_type> nil::crypto3::zk::snark::qap_instance_evaluation< FieldType >::Ct

◆ degree

template<typename FieldType >
std::size_t nil::crypto3::zk::snark::qap_instance_evaluation< FieldType >::degree

◆ domain

template<typename FieldType >
std::shared_ptr<evaluation_domain<field_type> > nil::crypto3::zk::snark::qap_instance_evaluation< FieldType >::domain

◆ Ht

template<typename FieldType >
std::vector<field_value_type> nil::crypto3::zk::snark::qap_instance_evaluation< FieldType >::Ht

◆ num_inputs

template<typename FieldType >
std::size_t nil::crypto3::zk::snark::qap_instance_evaluation< FieldType >::num_inputs

◆ num_variables

template<typename FieldType >
std::size_t nil::crypto3::zk::snark::qap_instance_evaluation< FieldType >::num_variables

◆ t

template<typename FieldType >
field_value_type nil::crypto3::zk::snark::qap_instance_evaluation< FieldType >::t

◆ Zt

template<typename FieldType >
field_value_type nil::crypto3::zk::snark::qap_instance_evaluation< FieldType >::Zt

The documentation for this class was generated from the following file: