Clearmatics Libsnark
0.1
C++ library for zkSNARK proofs
|
Go to the documentation of this file.
11 #ifndef LIBSNARK_GADGETLIB2_INCLUDE_GADGETLIB2_PROTOBOARD_HPP_
12 #define LIBSNARK_GADGETLIB2_INCLUDE_GADGETLIB2_PROTOBOARD_HPP_
19 #define ASSERT_CONSTRAINTS_SATISFIED(pb) \
20 ASSERT_TRUE(pb->isSatisfied(PrintOptions::DBG_PRINT_IF_NOT_SATISFIED))
22 #define ASSERT_CONSTRAINTS_NOT_SATISFIED(pb) \
23 ASSERT_FALSE(pb->isSatisfied(PrintOptions::NO_DBG_PRINT))
29 typedef ::std::shared_ptr<const ProtoboardParams>
ParamsCPtr;
87 const ::std::string &name);
105 const size_t expectedValue,
109 const size_t expectedValue,
113 const size_t expectedValue,
141 #endif // LIBSNARK_GADGETLIB2_INCLUDE_GADGETLIB2_PROTOBOARD_HPP_
Holds both representations of a word, both multipacked and unpacked.
void setFlag(const FlagVariable &flag, bool newFlagState=true)
void flipFlag(const FlagVariable &flag)
void setValuesAsBitArray(const VariableArray &varArray, const size_t srcValue)
void enforceBooleanity(const Variable &var)
::std::string annotation() const
const FieldType fieldType_
void clearFlag(const FlagVariable &flag)
VariableAssignment assignment_
void setMultipackedWordValue(const MultiPackedWord &multipackedWord, const size_t srcValue)
ConstraintSystem constraintSystem() const
void addGeneralConstraint(const Polynomial &a, const Polynomial &b, const ::std::string &name)
FElem & val(const Variable &var)
::std::map< Variable, FElem, Variable::VariableStrictOrder > VariableAssignment
bool isSatisfied(const PrintOptions &printOnFail=PrintOptions::NO_DBG_PRINT)
void setDualWordValue(const DualWord &dualWord, const size_t srcValue)
ParamsCPtr params() const
ConstraintSystem constraintSystem_
virtual ~ProtoboardParams()=0
bool multipackedWordAssignmentEqualsValue(const MultiPackedWord &multipackedWord, const size_t expectedValue, const PrintOptions &printOption=PrintOptions::NO_DBG_PRINT) const
void addUnaryConstraint(const LinearCombination &a, const ::std::string &name)
adds a constraint of the form (a == 0)
static ProtoboardPtr create(const FieldType &fieldType, ParamsCPtr pParams=NULL)
bool dualWordAssignmentEqualsValue(const DualWord &dualWord, const size_t expectedValue, const PrintOptions &printOption=PrintOptions::NO_DBG_PRINT) const
void addRank1Constraint(const LinearCombination &a, const LinearCombination &b, const LinearCombination &c, const ::std::string &name)
A formal variable, field agnostic.
bool flagIsSet(const FlagVariable &flag) const
VariableAssignment assignment() const
::std::shared_ptr< Protoboard > ProtoboardPtr
Protoboard(const FieldType &fieldType, ParamsCPtr pParams)
bool unpackedWordAssignmentEqualsValue(const UnpackedWord &unpackedWord, const size_t expectedValue, const PrintOptions &printOption=PrintOptions::NO_DBG_PRINT) const
::std::shared_ptr< const ProtoboardParams > ParamsCPtr