Clearmatics Libsnark  0.1
C++ library for zkSNARK proofs
Public Member Functions | Public Attributes | Friends | List of all members
gadgetlib2::R1P_EqualsConst_Gadget Class Reference

#include <gadget.hpp>

Inheritance diagram for gadgetlib2::R1P_EqualsConst_Gadget:
Inheritance graph
[legend]
Collaboration diagram for gadgetlib2::R1P_EqualsConst_Gadget:
Collaboration graph
[legend]

Public Member Functions

void generateConstraints ()
 
void generateWitness ()
 
- Public Member Functions inherited from gadgetlib2::R1P_Gadget
 R1P_Gadget (ProtoboardPtr pb)
 
virtual ~R1P_Gadget ()=0
 
virtual void addRank1Constraint (const LinearCombination &a, const LinearCombination &b, const LinearCombination &c, const ::std::string &name)
 
- Public Member Functions inherited from gadgetlib2::Gadget
 Gadget (ProtoboardPtr pb)
 
void addUnaryConstraint (const LinearCombination &a, const ::std::string &name)
 
void addRank1Constraint (const LinearCombination &a, const LinearCombination &b, const LinearCombination &c, const ::std::string &name)
 
void enforceBooleanity (const Variable &var)
 
FElemval (const Variable &var)
 
FElem val (const LinearCombination &lc)
 
FieldType fieldType () const
 
bool flagIsSet (const FlagVariable &flag) const
 

Public Attributes

const LinearCombination input_
 
const Variable result_
 

Friends

class EqualsConst_Gadget
 

Additional Inherited Members

- Protected Attributes inherited from gadgetlib2::Gadget
ProtoboardPtr pb_
 

Detailed Description

Definition at line 567 of file gadget.hpp.

Member Function Documentation

◆ generateConstraints()

void gadgetlib2::R1P_EqualsConst_Gadget::generateConstraints ( )
virtual

Implements gadgetlib2::Gadget.

Definition at line 806 of file gadget.cpp.

807 {
808  addRank1Constraint(input_ - n_, result_, 0, "(input - n) * result = 0");
810  input_ - n_, aux_, 1 - result_, "(input - n) * aux = 1 - result");
811 }
Here is the call graph for this function:

◆ generateWitness()

void gadgetlib2::R1P_EqualsConst_Gadget::generateWitness ( )
virtual

Reimplemented from gadgetlib2::Gadget.

Definition at line 813 of file gadget.cpp.

814 {
815  val(aux_) = val(input_) == n_ ? 0 : (val(input_) - n_).inverse(R1P);
816  val(result_) = val(input_) == n_ ? 1 : 0;
817 }
Here is the call graph for this function:

Friends And Related Function Documentation

◆ EqualsConst_Gadget

friend class EqualsConst_Gadget
friend

Definition at line 586 of file gadget.hpp.

Member Data Documentation

◆ input_

const LinearCombination gadgetlib2::R1P_EqualsConst_Gadget::input_

Definition at line 582 of file gadget.hpp.

◆ result_

const Variable gadgetlib2::R1P_EqualsConst_Gadget::result_

Definition at line 583 of file gadget.hpp.


The documentation for this class was generated from the following files:
gadgetlib2::R1P_EqualsConst_Gadget::result_
const Variable result_
Definition: gadget.hpp:583
gadgetlib2::R1P_Gadget::addRank1Constraint
virtual void addRank1Constraint(const LinearCombination &a, const LinearCombination &b, const LinearCombination &c, const ::std::string &name)
Definition: gadget.cpp:72
gadgetlib2::Gadget::val
FElem & val(const Variable &var)
Definition: gadget.hpp:109
gadgetlib2::R1P_EqualsConst_Gadget::input_
const LinearCombination input_
Definition: gadget.hpp:582
gadgetlib2::R1P
@ R1P
Definition: variable.hpp:37