Clearmatics Libsnark  0.1
C++ library for zkSNARK proofs
Public Member Functions | Public Attributes | Friends | List of all members
libsnark::r1cs_constraint< FieldT > Class Template Reference

#include <protoboard.hpp>

Public Member Functions

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

Public Attributes

linear_combination< FieldT > a
 
linear_combination< FieldT > b
 
linear_combination< FieldT > c
 

Friends

std::ostream & operator (std::ostream &out, const r1cs_constraint< FieldT > &c)
 
std::istream & operator>> (std::istream &in, r1cs_constraint< FieldT > &c)
 

Detailed Description

template<typename FieldT>
class libsnark::r1cs_constraint< FieldT >

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 <FieldT>.

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

Definition at line 23 of file protoboard.hpp.

Constructor & Destructor Documentation

◆ r1cs_constraint() [1/3]

template<typename FieldT >
libsnark::r1cs_constraint< FieldT >::r1cs_constraint ( )
inline

Definition at line 55 of file r1cs.hpp.

55 {};

◆ r1cs_constraint() [2/3]

template<typename FieldT >
libsnark::r1cs_constraint< FieldT >::r1cs_constraint ( const linear_combination< FieldT > &  a,
const linear_combination< FieldT > &  b,
const linear_combination< FieldT > &  c 
)

◆ r1cs_constraint() [3/3]

template<typename FieldT >
libsnark::r1cs_constraint< FieldT >::r1cs_constraint ( const std::initializer_list< linear_combination< FieldT >> &  A,
const std::initializer_list< linear_combination< FieldT >> &  B,
const std::initializer_list< linear_combination< FieldT >> &  C 
)

Member Function Documentation

◆ operator==()

template<typename FieldT >
bool libsnark::r1cs_constraint< FieldT >::operator== ( const r1cs_constraint< FieldT > &  other) const

Friends And Related Function Documentation

◆ operator

template<typename FieldT >
std::ostream& operator ( std::ostream &  out,
const r1cs_constraint< FieldT > &  c 
)
friend

◆ operator>>

template<typename FieldT >
std::istream& operator>> ( std::istream &  in,
r1cs_constraint< FieldT > &  c 
)
friend

Member Data Documentation

◆ a

template<typename FieldT >
linear_combination<FieldT> libsnark::r1cs_constraint< FieldT >::a

Definition at line 53 of file r1cs.hpp.

◆ b

template<typename FieldT >
linear_combination<FieldT> libsnark::r1cs_constraint< FieldT >::b

Definition at line 53 of file r1cs.hpp.

◆ c

template<typename FieldT >
linear_combination<FieldT> libsnark::r1cs_constraint< FieldT >::c

Definition at line 53 of file r1cs.hpp.


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