nil::crypto3::zk::snark::r1cs_constraint< FieldType > Struct Template Reference

#include <r1cs.hpp>

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

Public Types

typedef FieldType field_type
 

Public Member Functions

bool operator== (const r1cs_constraint< FieldType > &other) const
 
 r1cs_constraint ()
 
 r1cs_constraint (const linear_combination< FieldType > &a, const linear_combination< FieldType > &b, const linear_combination< FieldType > &c)
 
 r1cs_constraint (const std::initializer_list< linear_combination< FieldType >> &A, const std::initializer_list< linear_combination< FieldType >> &B, const std::initializer_list< linear_combination< FieldType >> &C)
 

Public Attributes

linear_combination< FieldType > a
 
linear_combination< FieldType > b
 
linear_combination< FieldType > c
 

Detailed Description

template<typename FieldType>
struct nil::crypto3::zk::snark::r1cs_constraint< FieldType >

A R1CS constraint is a formal expression of the form

           < A , X > * < B , X > = < C , X > ,

where X = (x_0,x_1,...,x_m) is a vector of formal variables and A,B,C each consist of 1+m elements in <FieldType>.

A R1CS constraint is used to construct a R1CS constraint system (see below).

Member Typedef Documentation

◆ field_type

template<typename FieldType >
typedef FieldType nil::crypto3::zk::snark::r1cs_constraint< FieldType >::field_type

Constructor & Destructor Documentation

◆ r1cs_constraint() [1/3]

template<typename FieldType >
nil::crypto3::zk::snark::r1cs_constraint< FieldType >::r1cs_constraint ( )
inline

◆ r1cs_constraint() [2/3]

template<typename FieldType >
nil::crypto3::zk::snark::r1cs_constraint< FieldType >::r1cs_constraint ( const linear_combination< FieldType > &  a,
const linear_combination< FieldType > &  b,
const linear_combination< FieldType > &  c 
)
inline

◆ r1cs_constraint() [3/3]

template<typename FieldType >
nil::crypto3::zk::snark::r1cs_constraint< FieldType >::r1cs_constraint ( const std::initializer_list< linear_combination< FieldType >> &  A,
const std::initializer_list< linear_combination< FieldType >> &  B,
const std::initializer_list< linear_combination< FieldType >> &  C 
)
inline

Member Function Documentation

◆ operator==()

template<typename FieldType >
bool nil::crypto3::zk::snark::r1cs_constraint< FieldType >::operator== ( const r1cs_constraint< FieldType > &  other) const
inline

Member Data Documentation

◆ a

template<typename FieldType >
linear_combination<FieldType> nil::crypto3::zk::snark::r1cs_constraint< FieldType >::a

◆ b

template<typename FieldType >
linear_combination<FieldType> nil::crypto3::zk::snark::r1cs_constraint< FieldType >::b

◆ c

template<typename FieldType >
linear_combination<FieldType> nil::crypto3::zk::snark::r1cs_constraint< FieldType >::c

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