Clearmatics Libsnark  0.1
C++ library for zkSNARK proofs
Classes | Typedefs | Enumerations | Functions
gadgetlib2 Namespace Reference

Classes

class  AND_Gadget
 
class  BinaryAND_Gadget
 Specific case for and AND with two inputs. Field agnostic. More...
 
class  BinaryOR_Gadget
 Specific case for and OR with two inputs. Field agnostic. More...
 
class  ConditionalFlag_Gadget
 
class  Constraint
 
class  ConstraintSystem
 
class  DualWord
 Holds both representations of a word, both multipacked and unpacked. More...
 
class  DualWord_Gadget
 
class  DualWordArray
 
class  DualWordArray_Gadget
 
class  ErrorHandling
 
class  FConst
 
class  FElem
 
class  FElemInterface
 
class  Gadget
 
class  GadgetLibAdapter
 
class  LinearCombination
 LinearCombination. More...
 
class  LinearTerm
 LinearTerm. More...
 
class  LogicImplication_Gadget
 
class  LooseMUX_Gadget
 
class  LooseMUX_GadgetBase
 
class  Monomial
 Monomial. More...
 
class  MultiPackedWord
 
class  OR_Gadget
 
class  Polynomial
 Polynomial. More...
 
class  PolynomialConstraint
 
class  Protoboard
 
class  ProtoboardParams
 
class  PublicParams
 
class  R1P_AND_Gadget
 
class  R1P_Comparison_Gadget
 
class  R1P_CompressionPacking_Gadget
 
class  R1P_Elem
 
class  R1P_EqualsConst_Gadget
 
class  R1P_Gadget
 
class  R1P_InnerProduct_Gadget
 
class  R1P_IntegerPacking_Gadget
 
class  R1P_LooseMUX_Gadget
 
class  R1P_OR_Gadget
 
class  Rank1Constraint
 
class  Toggle_Gadget
 
class  UnpackedWord
 
class  Variable
 A formal variable, field agnostic. More...
 
class  VariableArray
 VariableArray. More...
 

Typedefs

typedef GadgetLibAdapter GLA
 
typedef ::std::shared_ptr< GadgetGadgetPtr
 
typedef libff::Fr< libff::default_ec_pp > Fp
 
typedef std::vector< FpFpVector
 
typedef ::std::shared_ptr< const ProtoboardParamsParamsCPtr
 
typedef ::std::shared_ptr< VariableVariablePtr
 
typedef ::std::shared_ptr< VariableArrayVariableArrayPtr
 
typedef ::std::unique_ptr< FElemInterfaceFElemInterfacePtr
 
typedef ::std::shared_ptr< ProtoboardProtoboardPtr
 
typedef unsigned long VarIndex_t
 
typedef ::std::map< Variable, FElem, Variable::VariableStrictOrderVariableAssignment
 
typedef ::std::vector< VariableVariableArrayContents
 
typedef Variable FlagVariable
 
typedef VariableArray FlagVariableArray
 
typedef Variable PackedWord
 
typedef VariableArray PackedWordArray
 
typedef ::std::vector< UnpackedWordUnpackedWordArray
 
typedef ::std::vector< MultiPackedWordMultiPackedWordArray
 

Enumerations

enum  PrintOptions { PrintOptions::DBG_PRINT_IF_NOT_SATISFIED, PrintOptions::DBG_PRINT_IF_TRUE, PrintOptions::DBG_PRINT_IF_FALSE, PrintOptions::NO_DBG_PRINT }
 
enum  PackingMode : bool { PackingMode::PACK, PackingMode::UNPACK }
 
enum  FieldType { R1P, AGNOSTIC }
 

Functions

bool operator== (const GLA::linear_combination_t &lhs, const GLA::linear_term_t &rhs)
 
 CREATE_GADGET_BASE_CLASS (AND_GadgetBase)
 
 CREATE_GADGET_BASE_CLASS (OR_GadgetBase)
 
 CREATE_GADGET_BASE_CLASS (InnerProduct_GadgetBase)
 
 CREATE_GADGET_FACTORY_CLASS_3 (InnerProduct_Gadget, VariableArray, A, VariableArray, B, Variable, result)
 
 CREATE_GADGET_BASE_CLASS (CompressionPacking_GadgetBase)
 
 CREATE_GADGET_FACTORY_CLASS_3 (CompressionPacking_Gadget, VariableArray, unpacked, VariableArray, packed, PackingMode, packingMode)
 
 CREATE_GADGET_BASE_CLASS (IntegerPacking_GadgetBase)
 
 CREATE_GADGET_FACTORY_CLASS_3 (IntegerPacking_Gadget, VariableArray, unpacked, VariableArray, packed, PackingMode, packingMode)
 
 CREATE_GADGET_BASE_CLASS (EqualsConst_GadgetBase)
 
 CREATE_GADGET_FACTORY_CLASS_3 (EqualsConst_Gadget, FElem, n, LinearCombination, input, Variable, result)
 
 CREATE_GADGET_BASE_CLASS (Comparison_GadgetBase)
 
 CREATE_GADGET_FACTORY_CLASS_5 (Comparison_Gadget, size_t, wordBitSize, PackedWord, lhs, PackedWord, rhs, FlagVariable, less, FlagVariable, lessOrEqual)
 
::std::string GADGETLIB2_FMT (const char *format,...)
 
long safeConvert (const int64_t num)
 
double Log2 (double n)
 
unsigned int Log2ceil (uint64_t i)
 
bool IsPower2 (const long x)
 Returns true iff x is a power of 2. More...
 
int64_t POW2 (int exponent)
 
int64_t CEIL (double a)
 
PublicParams initPublicParamsFromDefaultPp ()
 
bool multipackedAndUnpackedValuesDisagree (const bool multipackedEqualsValue, const bool unpackedEqualsValue)
 
void printInformativeNoticeMessage (const bool multipackedEqualsValue, const bool unpackedEqualsValue)
 
bool expectedToPrintValues (const bool boolValue, const PrintOptions &printOption)
 
bool fieldMustBePromotedForArithmetic (const FieldType &lhsField, const FieldType &rhsField)
 
FElem power (const FElem &base, long exponent)
 
LinearCombination sum (const VariableArray &inputs)
 
LinearCombination negate (const LinearCombination &lc)
 
bool operator== (const long first, const FElemInterface &second)
 
bool operator!= (const long first, const FElemInterface &second)
 
bool operator!= (const FElemInterface &first, const long second)
 
bool operator!= (const FElemInterface &first, const FElemInterface &second)
 
bool operator!= (const FElem &first, const FElem &second)
 
bool operator== (const FElem &first, const long second)
 
bool operator== (const long first, const FElem &second)
 
bool operator!= (const FElem &first, const long second)
 
bool operator!= (const long first, const FElem &second)
 
LinearCombination operator- (const LinearCombination &lc)
 
Polynomial operator- (const Polynomial &src)
 
Polynomial operator+ (const Polynomial &first, const Polynomial &second)
 
Polynomial operator+ (const Monomial &first, const Polynomial &second)
 
Polynomial operator+ (const Monomial &first, const Monomial &second)
 
Polynomial operator+ (const LinearCombination &first, const Polynomial &second)
 
Polynomial operator+ (const LinearCombination &first, const Monomial &second)
 
LinearCombination operator+ (const LinearCombination &first, const LinearCombination &second)
 
Polynomial operator+ (const LinearTerm &first, const Polynomial &second)
 
Polynomial operator+ (const LinearTerm &first, const Monomial &second)
 
LinearCombination operator+ (const LinearTerm &first, const LinearCombination &second)
 
LinearCombination operator+ (const LinearTerm &first, const LinearTerm &second)
 
Polynomial operator+ (const Variable &first, const Polynomial &second)
 
Polynomial operator+ (const Variable &first, const Monomial &second)
 
LinearCombination operator+ (const Variable &first, const LinearCombination &second)
 
LinearCombination operator+ (const Variable &first, const LinearTerm &second)
 
LinearCombination operator+ (const Variable &first, const Variable &second)
 
Polynomial operator+ (const FElem &first, const Polynomial &second)
 
Polynomial operator+ (const FElem &first, const Monomial &second)
 
LinearCombination operator+ (const FElem &first, const LinearCombination &second)
 
LinearCombination operator+ (const FElem &first, const LinearTerm &second)
 
LinearCombination operator+ (const FElem &first, const Variable &second)
 
FElem operator+ (const FElem &first, const FElem &second)
 
FElem operator+ (const int first, const FElem &second)
 
LinearCombination operator+ (const int first, const Variable &second)
 
LinearCombination operator+ (const int first, const LinearTerm &second)
 
LinearCombination operator+ (const int first, const LinearCombination &second)
 
Polynomial operator+ (const int first, const Monomial &second)
 
Polynomial operator+ (const int first, const Polynomial &second)
 
Polynomial operator+ (const Polynomial &first, const Monomial &second)
 
Polynomial operator+ (const Monomial &first, const LinearCombination &second)
 
Polynomial operator+ (const Polynomial &first, const LinearCombination &second)
 
LinearCombination operator+ (const LinearCombination &first, const LinearTerm &second)
 
Polynomial operator+ (const Monomial &first, const LinearTerm &second)
 
Polynomial operator+ (const Polynomial &first, const LinearTerm &second)
 
LinearCombination operator+ (const LinearTerm &first, const Variable &second)
 
LinearCombination operator+ (const LinearCombination &first, const Variable &second)
 
Polynomial operator+ (const Monomial &first, const Variable &second)
 
Polynomial operator+ (const Polynomial &first, const Variable &second)
 
LinearCombination operator+ (const Variable &first, const FElem &second)
 
LinearCombination operator+ (const LinearTerm &first, const FElem &second)
 
LinearCombination operator+ (const LinearCombination &first, const FElem &second)
 
Polynomial operator+ (const Monomial &first, const FElem &second)
 
Polynomial operator+ (const Polynomial &first, const FElem &second)
 
FElem operator+ (const FElem &first, const int second)
 
LinearCombination operator+ (const Variable &first, const int second)
 
LinearCombination operator+ (const LinearTerm &first, const int second)
 
LinearCombination operator+ (const LinearCombination &first, const int second)
 
Polynomial operator+ (const Monomial &first, const int second)
 
Polynomial operator+ (const Polynomial &first, const int second)
 
LinearTerm operator- (const Variable &src)
 
Polynomial operator- (const Polynomial &first, const Polynomial &second)
 
Polynomial operator- (const Monomial &first, const Polynomial &second)
 
Polynomial operator- (const Monomial &first, const Monomial &second)
 
Polynomial operator- (const LinearCombination &first, const Polynomial &second)
 
Polynomial operator- (const LinearCombination &first, const Monomial &second)
 
LinearCombination operator- (const LinearCombination &first, const LinearCombination &second)
 
Polynomial operator- (const LinearTerm &first, const Polynomial &second)
 
Polynomial operator- (const LinearTerm &first, const Monomial &second)
 
LinearCombination operator- (const LinearTerm &first, const LinearCombination &second)
 
LinearCombination operator- (const LinearTerm &first, const LinearTerm &second)
 
Polynomial operator- (const Variable &first, const Polynomial &second)
 
Polynomial operator- (const Variable &first, const Monomial &second)
 
LinearCombination operator- (const Variable &first, const LinearCombination &second)
 
LinearCombination operator- (const Variable &first, const LinearTerm &second)
 
LinearCombination operator- (const Variable &first, const Variable &second)
 
Polynomial operator- (const FElem &first, const Polynomial &second)
 
Polynomial operator- (const FElem &first, const Monomial &second)
 
LinearCombination operator- (const FElem &first, const LinearCombination &second)
 
LinearCombination operator- (const FElem &first, const LinearTerm &second)
 
LinearCombination operator- (const FElem &first, const Variable &second)
 
FElem operator- (const FElem &first, const FElem &second)
 
FElem operator- (const int first, const FElem &second)
 
LinearCombination operator- (const int first, const Variable &second)
 
LinearCombination operator- (const int first, const LinearTerm &second)
 
LinearCombination operator- (const int first, const LinearCombination &second)
 
Polynomial operator- (const int first, const Monomial &second)
 
Polynomial operator- (const int first, const Polynomial &second)
 
Polynomial operator- (const Polynomial &first, const Monomial &second)
 
Polynomial operator- (const Monomial &first, const LinearCombination &second)
 
Polynomial operator- (const Polynomial &first, const LinearCombination &second)
 
LinearCombination operator- (const LinearCombination &first, const LinearTerm &second)
 
Polynomial operator- (const Monomial &first, const LinearTerm &second)
 
Polynomial operator- (const Polynomial &first, const LinearTerm &second)
 
LinearCombination operator- (const LinearTerm &first, const Variable &second)
 
LinearCombination operator- (const LinearCombination &first, const Variable &second)
 
Polynomial operator- (const Monomial &first, const Variable &second)
 
Polynomial operator- (const Polynomial &first, const Variable &second)
 
LinearCombination operator- (const Variable &first, const FElem &second)
 
LinearCombination operator- (const LinearTerm &first, const FElem &second)
 
LinearCombination operator- (const LinearCombination &first, const FElem &second)
 
Polynomial operator- (const Monomial &first, const FElem &second)
 
Polynomial operator- (const Polynomial &first, const FElem &second)
 
FElem operator- (const FElem &first, const int second)
 
LinearCombination operator- (const Variable &first, const int second)
 
LinearCombination operator- (const LinearTerm &first, const int second)
 
LinearCombination operator- (const LinearCombination &first, const int second)
 
Polynomial operator- (const Monomial &first, const int second)
 
Polynomial operator- (const Polynomial &first, const int second)
 
Polynomial operator* (const Polynomial &first, const Polynomial &second)
 
Polynomial operator* (const Monomial &first, const Polynomial &second)
 
Monomial operator* (const Monomial &first, const Monomial &second)
 
Polynomial operator* (const LinearCombination &first, const Polynomial &second)
 
Polynomial operator* (const LinearCombination &first, const Monomial &second)
 
Polynomial operator* (const LinearCombination &first, const LinearCombination &second)
 
Polynomial operator* (const LinearTerm &first, const Polynomial &second)
 
Monomial operator* (const LinearTerm &first, const Monomial &second)
 
Polynomial operator* (const LinearTerm &first, const LinearCombination &second)
 
Monomial operator* (const LinearTerm &first, const LinearTerm &second)
 
Polynomial operator* (const Variable &first, const Polynomial &second)
 
Monomial operator* (const Variable &first, const Monomial &second)
 
Polynomial operator* (const Variable &first, const LinearCombination &second)
 
Monomial operator* (const Variable &first, const LinearTerm &second)
 
Monomial operator* (const Variable &first, const Variable &second)
 
Polynomial operator* (const FElem &first, const Polynomial &second)
 
Monomial operator* (const FElem &first, const Monomial &second)
 
LinearCombination operator* (const FElem &first, const LinearCombination &second)
 
LinearTerm operator* (const FElem &first, const LinearTerm &second)
 
LinearTerm operator* (const FElem &first, const Variable &second)
 
FElem operator* (const FElem &first, const FElem &second)
 
FElem operator* (const int first, const FElem &second)
 
LinearTerm operator* (const int first, const Variable &second)
 
LinearTerm operator* (const int first, const LinearTerm &second)
 
LinearCombination operator* (const int first, const LinearCombination &second)
 
Monomial operator* (const int first, const Monomial &second)
 
Polynomial operator* (const int first, const Polynomial &second)
 
Polynomial operator* (const Polynomial &first, const Monomial &second)
 
Polynomial operator* (const Monomial &first, const LinearCombination &second)
 
Polynomial operator* (const Polynomial &first, const LinearCombination &second)
 
Polynomial operator* (const LinearCombination &first, const LinearTerm &second)
 
Monomial operator* (const Monomial &first, const LinearTerm &second)
 
Polynomial operator* (const Polynomial &first, const LinearTerm &second)
 
Monomial operator* (const LinearTerm &first, const Variable &second)
 
Polynomial operator* (const LinearCombination &first, const Variable &second)
 
Monomial operator* (const Monomial &first, const Variable &second)
 
Polynomial operator* (const Polynomial &first, const Variable &second)
 
LinearTerm operator* (const Variable &first, const FElem &second)
 
LinearTerm operator* (const LinearTerm &first, const FElem &second)
 
LinearCombination operator* (const LinearCombination &first, const FElem &second)
 
Monomial operator* (const Monomial &first, const FElem &second)
 
Polynomial operator* (const Polynomial &first, const FElem &second)
 
FElem operator* (const FElem &first, const int second)
 
LinearTerm operator* (const Variable &first, const int second)
 
LinearTerm operator* (const LinearTerm &first, const int second)
 
LinearCombination operator* (const LinearCombination &first, const int second)
 
Monomial operator* (const Monomial &first, const int second)
 
Polynomial operator* (const Polynomial &first, const int second)
 

Typedef Documentation

◆ FElemInterfacePtr

typedef ::std::unique_ptr<FElemInterface> gadgetlib2::FElemInterfacePtr

Definition at line 41 of file variable.hpp.

◆ FlagVariable

Holds variable whose purpose is to be populated with a boolean value, Field(0) or Field(1)

Definition at line 378 of file variable.hpp.

◆ FlagVariableArray

Definition at line 379 of file variable.hpp.

◆ Fp

typedef libff::Fr<libff::default_ec_pp> gadgetlib2::Fp

Definition at line 29 of file pp.hpp.

◆ FpVector

typedef std::vector<Fp> gadgetlib2::FpVector

Definition at line 31 of file pp.hpp.

◆ GadgetPtr

typedef ::std::shared_ptr<Gadget> gadgetlib2::GadgetPtr

Definition at line 119 of file gadget.hpp.

◆ GLA

Definition at line 18 of file adapters.cpp.

◆ MultiPackedWordArray

Definition at line 421 of file variable.hpp.

◆ PackedWord

Represents a packed word that can fit in a field element. For a word representing an unsigned integer for instance this means we require (int < fieldSize)

Definition at line 384 of file variable.hpp.

◆ PackedWordArray

Definition at line 385 of file variable.hpp.

◆ ParamsCPtr

typedef ::std::shared_ptr<const ProtoboardParams> gadgetlib2::ParamsCPtr

Definition at line 28 of file protoboard.hpp.

◆ ProtoboardPtr

typedef ::std::shared_ptr<Protoboard> gadgetlib2::ProtoboardPtr

Definition at line 42 of file variable.hpp.

◆ UnpackedWordArray

Definition at line 399 of file variable.hpp.

◆ VariableArrayContents

Definition at line 350 of file variable.hpp.

◆ VariableArrayPtr

typedef ::std::shared_ptr<VariableArray> gadgetlib2::VariableArrayPtr

Definition at line 40 of file variable.hpp.

◆ VariableAssignment

Definition at line 348 of file variable.hpp.

◆ VariablePtr

typedef ::std::shared_ptr<Variable> gadgetlib2::VariablePtr

Definition at line 39 of file variable.hpp.

◆ VarIndex_t

typedef unsigned long gadgetlib2::VarIndex_t

Definition at line 43 of file variable.hpp.

Enumeration Type Documentation

◆ FieldType

Enumerator
R1P 
AGNOSTIC 

Definition at line 37 of file variable.hpp.

◆ PackingMode

enum gadgetlib2::PackingMode : bool
strong
Enumerator
PACK 
UNPACK 

Definition at line 457 of file gadget.hpp.

457 : bool { PACK, UNPACK };

◆ PrintOptions

Enumerator
DBG_PRINT_IF_NOT_SATISFIED 
DBG_PRINT_IF_TRUE 
DBG_PRINT_IF_FALSE 
NO_DBG_PRINT 

Definition at line 25 of file constraint.hpp.

Function Documentation

◆ CEIL()

int64_t gadgetlib2::CEIL ( double  a)
inline

Definition at line 125 of file infrastructure.hpp.

125 { return (int64_t)ceil(a); }

◆ CREATE_GADGET_BASE_CLASS() [1/7]

gadgetlib2::CREATE_GADGET_BASE_CLASS ( AND_GadgetBase  )

◆ CREATE_GADGET_BASE_CLASS() [2/7]

gadgetlib2::CREATE_GADGET_BASE_CLASS ( Comparison_GadgetBase  )

◆ CREATE_GADGET_BASE_CLASS() [3/7]

gadgetlib2::CREATE_GADGET_BASE_CLASS ( CompressionPacking_GadgetBase  )

◆ CREATE_GADGET_BASE_CLASS() [4/7]

gadgetlib2::CREATE_GADGET_BASE_CLASS ( EqualsConst_GadgetBase  )

◆ CREATE_GADGET_BASE_CLASS() [5/7]

gadgetlib2::CREATE_GADGET_BASE_CLASS ( InnerProduct_GadgetBase  )

◆ CREATE_GADGET_BASE_CLASS() [6/7]

gadgetlib2::CREATE_GADGET_BASE_CLASS ( IntegerPacking_GadgetBase  )

◆ CREATE_GADGET_BASE_CLASS() [7/7]

gadgetlib2::CREATE_GADGET_BASE_CLASS ( OR_GadgetBase  )

◆ CREATE_GADGET_FACTORY_CLASS_3() [1/4]

gadgetlib2::CREATE_GADGET_FACTORY_CLASS_3 ( CompressionPacking_Gadget  ,
VariableArray  ,
unpacked  ,
VariableArray  ,
packed  ,
PackingMode  ,
packingMode   
)

◆ CREATE_GADGET_FACTORY_CLASS_3() [2/4]

gadgetlib2::CREATE_GADGET_FACTORY_CLASS_3 ( EqualsConst_Gadget  ,
FElem  ,
,
LinearCombination  ,
input  ,
Variable  ,
result   
)

◆ CREATE_GADGET_FACTORY_CLASS_3() [3/4]

gadgetlib2::CREATE_GADGET_FACTORY_CLASS_3 ( InnerProduct_Gadget  ,
VariableArray  ,
,
VariableArray  ,
,
Variable  ,
result   
)

◆ CREATE_GADGET_FACTORY_CLASS_3() [4/4]

gadgetlib2::CREATE_GADGET_FACTORY_CLASS_3 ( IntegerPacking_Gadget  ,
VariableArray  ,
unpacked  ,
VariableArray  ,
packed  ,
PackingMode  ,
packingMode   
)

◆ CREATE_GADGET_FACTORY_CLASS_5()

gadgetlib2::CREATE_GADGET_FACTORY_CLASS_5 ( Comparison_Gadget  ,
size_t  ,
wordBitSize  ,
PackedWord  ,
lhs  ,
PackedWord  ,
rhs  ,
FlagVariable  ,
less  ,
FlagVariable  ,
lessOrEqual   
)

◆ expectedToPrintValues()

bool gadgetlib2::expectedToPrintValues ( const bool  boolValue,
const PrintOptions printOption 
)

Definition at line 191 of file protoboard.cpp.

193 {
194  return (
195  (boolValue == true && printOption == PrintOptions::DBG_PRINT_IF_TRUE) ||
196  (boolValue == false &&
197  printOption == PrintOptions::DBG_PRINT_IF_FALSE));
198 }
Here is the caller graph for this function:

◆ fieldMustBePromotedForArithmetic()

bool gadgetlib2::fieldMustBePromotedForArithmetic ( const FieldType lhsField,
const FieldType rhsField 
)

Definition at line 76 of file variable.cpp.

78 {
79  if (lhsField == rhsField)
80  return false;
81  if (rhsField == AGNOSTIC)
82  return false;
83  return true;
84 }
Here is the caller graph for this function:

◆ GADGETLIB2_FMT()

std::string gadgetlib2::GADGETLIB2_FMT ( const char *  format,
  ... 
)

Definition at line 49 of file infrastructure.cpp.

50 {
51  libff::UNUSED(format);
52  return "";
53 }
Here is the caller graph for this function:

◆ initPublicParamsFromDefaultPp()

PublicParams gadgetlib2::initPublicParamsFromDefaultPp ( )

Definition at line 23 of file pp.cpp.

24 {
25  libff::default_ec_pp::init_public_params();
26  const std::size_t log_p = libff::Fr<libff::default_ec_pp>::size_in_bits();
27  return PublicParams(log_p);
28 }
Here is the caller graph for this function:

◆ IsPower2()

bool gadgetlib2::IsPower2 ( const long  x)

Returns true iff x is a power of 2.

Definition at line 130 of file infrastructure.cpp.

130 { return ((x > 0) && ((x & (x - 1)) == 0)); }

◆ Log2()

double gadgetlib2::Log2 ( double  n)

Definition at line 116 of file infrastructure.cpp.

116 { return log(n) / log((double)2); }

◆ Log2ceil()

unsigned int gadgetlib2::Log2ceil ( uint64_t  i)

Returns an upper bound on libff::log2(i). Namely, returns the number of binary digits needed to store the value 'i'. When i == 0 returns 0.

Definition at line 120 of file infrastructure.cpp.

121 {
122  int retval = i ? 1 : 0;
123  while (i >>= 1) {
124  ++retval;
125  }
126  return retval;
127 }
Here is the caller graph for this function:

◆ multipackedAndUnpackedValuesDisagree()

bool gadgetlib2::multipackedAndUnpackedValuesDisagree ( const bool  multipackedEqualsValue,
const bool  unpackedEqualsValue 
)

Definition at line 151 of file protoboard.cpp.

153 {
154  return multipackedEqualsValue != unpackedEqualsValue;
155 }
Here is the caller graph for this function:

◆ negate()

LinearCombination gadgetlib2::negate ( const LinearCombination lc)

Definition at line 625 of file variable.cpp.

625 { return (1 - lc); }
Here is the caller graph for this function:

◆ operator!=() [1/6]

bool gadgetlib2::operator!= ( const FElem first,
const FElem second 
)
inline

Definition at line 153 of file variable.hpp.

154 {
155  return !(first == second);
156 }

◆ operator!=() [2/6]

bool gadgetlib2::operator!= ( const FElem first,
const long  second 
)
inline

Definition at line 169 of file variable.hpp.

170 {
171  return !(first == second);
172 }

◆ operator!=() [3/6]

bool gadgetlib2::operator!= ( const FElemInterface first,
const FElemInterface second 
)
inline

Definition at line 93 of file variable.hpp.

95 {
96  return !(first == second);
97 }

◆ operator!=() [4/6]

bool gadgetlib2::operator!= ( const FElemInterface first,
const long  second 
)
inline

Definition at line 89 of file variable.hpp.

90 {
91  return !(first == second);
92 }

◆ operator!=() [5/6]

bool gadgetlib2::operator!= ( const long  first,
const FElem second 
)
inline

Definition at line 173 of file variable.hpp.

174 {
175  return !(first == second);
176 }

◆ operator!=() [6/6]

bool gadgetlib2::operator!= ( const long  first,
const FElemInterface second 
)
inline

Definition at line 85 of file variable.hpp.

86 {
87  return !(first == second);
88 }

◆ operator*() [1/48]

FElem gadgetlib2::operator* ( const FElem first,
const FElem second 
)
inline

Definition at line 582 of file variable_operators.hpp.

583 {
584  auto retval = first;
585  return retval *= second;
586 }

◆ operator*() [2/48]

FElem gadgetlib2::operator* ( const FElem first,
const int  second 
)
inline

Definition at line 681 of file variable_operators.hpp.

682 {
683  return second * first;
684 }

◆ operator*() [3/48]

LinearCombination gadgetlib2::operator* ( const FElem first,
const LinearCombination second 
)
inline

Definition at line 567 of file variable_operators.hpp.

569 {
570  auto retval = second;
571  return retval *= first;
572 }

◆ operator*() [4/48]

LinearTerm gadgetlib2::operator* ( const FElem first,
const LinearTerm second 
)
inline

Definition at line 573 of file variable_operators.hpp.

574 {
575  auto retval = second;
576  return retval *= first;
577 }

◆ operator*() [5/48]

Monomial gadgetlib2::operator* ( const FElem first,
const Monomial second 
)
inline

Definition at line 563 of file variable_operators.hpp.

564 {
565  return Monomial(first) * second;
566 }

◆ operator*() [6/48]

Polynomial gadgetlib2::operator* ( const FElem first,
const Polynomial second 
)
inline

Definition at line 559 of file variable_operators.hpp.

560 {
561  return LinearCombination(first) * second;
562 }

◆ operator*() [7/48]

LinearTerm gadgetlib2::operator* ( const FElem first,
const Variable second 
)
inline

Definition at line 578 of file variable_operators.hpp.

579 {
580  return LinearTerm(second) *= first;
581 }

◆ operator*() [8/48]

FElem gadgetlib2::operator* ( const int  first,
const FElem second 
)
inline

Definition at line 589 of file variable_operators.hpp.

590 {
591  return FElem(first) * second;
592 }

◆ operator*() [9/48]

LinearCombination gadgetlib2::operator* ( const int  first,
const LinearCombination second 
)
inline

Definition at line 601 of file variable_operators.hpp.

603 {
604  return FElem(first) * second;
605 }

◆ operator*() [10/48]

LinearTerm gadgetlib2::operator* ( const int  first,
const LinearTerm second 
)
inline

Definition at line 597 of file variable_operators.hpp.

598 {
599  return FElem(first) * second;
600 }

◆ operator*() [11/48]

Monomial gadgetlib2::operator* ( const int  first,
const Monomial second 
)
inline

Definition at line 606 of file variable_operators.hpp.

607 {
608  return FElem(first) * second;
609 }

◆ operator*() [12/48]

Polynomial gadgetlib2::operator* ( const int  first,
const Polynomial second 
)
inline

Definition at line 610 of file variable_operators.hpp.

611 {
612  return FElem(first) * second;
613 }

◆ operator*() [13/48]

LinearTerm gadgetlib2::operator* ( const int  first,
const Variable second 
)
inline

Definition at line 593 of file variable_operators.hpp.

594 {
595  return FElem(first) * second;
596 }

◆ operator*() [14/48]

LinearCombination gadgetlib2::operator* ( const LinearCombination first,
const FElem second 
)
inline

Definition at line 668 of file variable_operators.hpp.

670 {
671  return second * first;
672 }

◆ operator*() [15/48]

LinearCombination gadgetlib2::operator* ( const LinearCombination first,
const int  second 
)
inline

Definition at line 693 of file variable_operators.hpp.

695 {
696  return second * first;
697 }

◆ operator*() [16/48]

Polynomial gadgetlib2::operator* ( const LinearCombination first,
const LinearCombination second 
)
inline

Definition at line 510 of file variable_operators.hpp.

512 {
513  return first * Polynomial(second);
514 }

◆ operator*() [17/48]

Polynomial gadgetlib2::operator* ( const LinearCombination first,
const LinearTerm second 
)
inline

Definition at line 630 of file variable_operators.hpp.

632 {
633  return second * first;
634 }

◆ operator*() [18/48]

Polynomial gadgetlib2::operator* ( const LinearCombination first,
const Monomial second 
)
inline

Definition at line 505 of file variable_operators.hpp.

507 {
508  return first * Polynomial(second);
509 }

◆ operator*() [19/48]

Polynomial gadgetlib2::operator* ( const LinearCombination first,
const Polynomial second 
)
inline

Definition at line 500 of file variable_operators.hpp.

502 {
503  return Polynomial(first) * second;
504 }

◆ operator*() [20/48]

Polynomial gadgetlib2::operator* ( const LinearCombination first,
const Variable second 
)
inline

Definition at line 647 of file variable_operators.hpp.

649 {
650  return second * first;
651 }

◆ operator*() [21/48]

LinearTerm gadgetlib2::operator* ( const LinearTerm first,
const FElem second 
)
inline

Definition at line 664 of file variable_operators.hpp.

665 {
666  return second * first;
667 }

◆ operator*() [22/48]

LinearTerm gadgetlib2::operator* ( const LinearTerm first,
const int  second 
)
inline

Definition at line 689 of file variable_operators.hpp.

690 {
691  return second * first;
692 }

◆ operator*() [23/48]

Polynomial gadgetlib2::operator* ( const LinearTerm first,
const LinearCombination second 
)
inline

Definition at line 525 of file variable_operators.hpp.

527 {
528  return LinearCombination(first) * second;
529 }

◆ operator*() [24/48]

Monomial gadgetlib2::operator* ( const LinearTerm first,
const LinearTerm second 
)
inline

Definition at line 530 of file variable_operators.hpp.

531 {
532  return Monomial(first) * Monomial(second);
533 }

◆ operator*() [25/48]

Monomial gadgetlib2::operator* ( const LinearTerm first,
const Monomial second 
)
inline

Definition at line 521 of file variable_operators.hpp.

522 {
523  return Monomial(first) * second;
524 }

◆ operator*() [26/48]

Polynomial gadgetlib2::operator* ( const LinearTerm first,
const Polynomial second 
)
inline

Definition at line 517 of file variable_operators.hpp.

518 {
519  return LinearCombination(first) * second;
520 }

◆ operator*() [27/48]

Monomial gadgetlib2::operator* ( const LinearTerm first,
const Variable second 
)
inline

Definition at line 643 of file variable_operators.hpp.

644 {
645  return second * first;
646 }

◆ operator*() [28/48]

Monomial gadgetlib2::operator* ( const Monomial first,
const FElem second 
)
inline

Definition at line 673 of file variable_operators.hpp.

674 {
675  return second * first;
676 }

◆ operator*() [29/48]

Monomial gadgetlib2::operator* ( const Monomial first,
const int  second 
)
inline

Definition at line 698 of file variable_operators.hpp.

699 {
700  return second * first;
701 }

◆ operator*() [30/48]

Polynomial gadgetlib2::operator* ( const Monomial first,
const LinearCombination second 
)
inline

Definition at line 620 of file variable_operators.hpp.

622 {
623  return second * first;
624 }

◆ operator*() [31/48]

Monomial gadgetlib2::operator* ( const Monomial first,
const LinearTerm second 
)
inline

Definition at line 635 of file variable_operators.hpp.

636 {
637  return second * first;
638 }

◆ operator*() [32/48]

Monomial gadgetlib2::operator* ( const Monomial first,
const Monomial second 
)
inline

Definition at line 493 of file variable_operators.hpp.

494 {
495  auto retval = first;
496  return retval *= second;
497 }

◆ operator*() [33/48]

Polynomial gadgetlib2::operator* ( const Monomial first,
const Polynomial second 
)
inline

Definition at line 489 of file variable_operators.hpp.

490 {
491  return Polynomial(first) * second;
492 }

◆ operator*() [34/48]

Monomial gadgetlib2::operator* ( const Monomial first,
const Variable second 
)
inline

Definition at line 652 of file variable_operators.hpp.

653 {
654  return second * first;
655 }

◆ operator*() [35/48]

Polynomial gadgetlib2::operator* ( const Polynomial first,
const FElem second 
)
inline

Definition at line 677 of file variable_operators.hpp.

678 {
679  return second * first;
680 }

◆ operator*() [36/48]

Polynomial gadgetlib2::operator* ( const Polynomial first,
const int  second 
)
inline

Definition at line 702 of file variable_operators.hpp.

703 {
704  return second * first;
705 }

◆ operator*() [37/48]

Polynomial gadgetlib2::operator* ( const Polynomial first,
const LinearCombination second 
)
inline

Definition at line 625 of file variable_operators.hpp.

627 {
628  return second * first;
629 }

◆ operator*() [38/48]

Polynomial gadgetlib2::operator* ( const Polynomial first,
const LinearTerm second 
)
inline

Definition at line 639 of file variable_operators.hpp.

640 {
641  return second * first;
642 }

◆ operator*() [39/48]

Polynomial gadgetlib2::operator* ( const Polynomial first,
const Monomial second 
)
inline

Definition at line 616 of file variable_operators.hpp.

617 {
618  return second * first;
619 }

◆ operator*() [40/48]

Polynomial gadgetlib2::operator* ( const Polynomial first,
const Polynomial second 
)
inline

Definition at line 482 of file variable_operators.hpp.

483 {
484  auto retval = first;
485  return retval *= second;
486 }

◆ operator*() [41/48]

Polynomial gadgetlib2::operator* ( const Polynomial first,
const Variable second 
)
inline

Definition at line 656 of file variable_operators.hpp.

657 {
658  return second * first;
659 }

◆ operator*() [42/48]

LinearTerm gadgetlib2::operator* ( const Variable first,
const FElem second 
)
inline

Definition at line 660 of file variable_operators.hpp.

661 {
662  return second * first;
663 }

◆ operator*() [43/48]

LinearTerm gadgetlib2::operator* ( const Variable first,
const int  second 
)
inline

Definition at line 685 of file variable_operators.hpp.

686 {
687  return second * first;
688 }

◆ operator*() [44/48]

Polynomial gadgetlib2::operator* ( const Variable first,
const LinearCombination second 
)
inline

Definition at line 544 of file variable_operators.hpp.

546 {
547  return LinearTerm(first) * second;
548 }

◆ operator*() [45/48]

Monomial gadgetlib2::operator* ( const Variable first,
const LinearTerm second 
)
inline

Definition at line 549 of file variable_operators.hpp.

550 {
551  return LinearTerm(first) * second;
552 }

◆ operator*() [46/48]

Monomial gadgetlib2::operator* ( const Variable first,
const Monomial second 
)
inline

Definition at line 540 of file variable_operators.hpp.

541 {
542  return Monomial(first) * second;
543 }

◆ operator*() [47/48]

Polynomial gadgetlib2::operator* ( const Variable first,
const Polynomial second 
)
inline

Definition at line 536 of file variable_operators.hpp.

537 {
538  return LinearTerm(first) * second;
539 }

◆ operator*() [48/48]

Monomial gadgetlib2::operator* ( const Variable first,
const Variable second 
)
inline

Definition at line 553 of file variable_operators.hpp.

554 {
555  return LinearTerm(first) * LinearTerm(second);
556 }

◆ operator+() [1/48]

FElem gadgetlib2::operator+ ( const FElem first,
const FElem second 
)
inline

Definition at line 136 of file variable_operators.hpp.

137 {
138  auto retval = first;
139  return retval += second;
140 }

◆ operator+() [2/48]

FElem gadgetlib2::operator+ ( const FElem first,
const int  second 
)
inline

Definition at line 236 of file variable_operators.hpp.

237 {
238  return second + first;
239 }

◆ operator+() [3/48]

LinearCombination gadgetlib2::operator+ ( const FElem first,
const LinearCombination second 
)
inline

Definition at line 123 of file variable_operators.hpp.

125 {
126  return LinearCombination(first) + second;
127 }

◆ operator+() [4/48]

LinearCombination gadgetlib2::operator+ ( const FElem first,
const LinearTerm second 
)
inline

Definition at line 128 of file variable_operators.hpp.

129 {
130  return LinearCombination(first) + LinearCombination(second);
131 }

◆ operator+() [5/48]

Polynomial gadgetlib2::operator+ ( const FElem first,
const Monomial second 
)
inline

Definition at line 119 of file variable_operators.hpp.

120 {
121  return LinearCombination(first) + second;
122 }

◆ operator+() [6/48]

Polynomial gadgetlib2::operator+ ( const FElem first,
const Polynomial second 
)
inline

Definition at line 115 of file variable_operators.hpp.

116 {
117  return LinearCombination(first) + second;
118 }

◆ operator+() [7/48]

LinearCombination gadgetlib2::operator+ ( const FElem first,
const Variable second 
)
inline

Definition at line 132 of file variable_operators.hpp.

133 {
134  return LinearCombination(first) + LinearCombination(second);
135 }

◆ operator+() [8/48]

FElem gadgetlib2::operator+ ( const int  first,
const FElem second 
)
inline

Definition at line 143 of file variable_operators.hpp.

144 {
145  return FElem(first) + second;
146 }

◆ operator+() [9/48]

LinearCombination gadgetlib2::operator+ ( const int  first,
const LinearCombination second 
)
inline

Definition at line 155 of file variable_operators.hpp.

157 {
158  return FElem(first) + second;
159 }

◆ operator+() [10/48]

LinearCombination gadgetlib2::operator+ ( const int  first,
const LinearTerm second 
)
inline

Definition at line 151 of file variable_operators.hpp.

152 {
153  return FElem(first) + second;
154 }

◆ operator+() [11/48]

Polynomial gadgetlib2::operator+ ( const int  first,
const Monomial second 
)
inline

Definition at line 160 of file variable_operators.hpp.

161 {
162  return FElem(first) + second;
163 }

◆ operator+() [12/48]

Polynomial gadgetlib2::operator+ ( const int  first,
const Polynomial second 
)
inline

Definition at line 164 of file variable_operators.hpp.

165 {
166  return FElem(first) + second;
167 }

◆ operator+() [13/48]

LinearCombination gadgetlib2::operator+ ( const int  first,
const Variable second 
)
inline

Definition at line 147 of file variable_operators.hpp.

148 {
149  return FElem(first) + second;
150 }

◆ operator+() [14/48]

LinearCombination gadgetlib2::operator+ ( const LinearCombination first,
const FElem second 
)
inline

Definition at line 223 of file variable_operators.hpp.

225 {
226  return second + first;
227 }

◆ operator+() [15/48]

LinearCombination gadgetlib2::operator+ ( const LinearCombination first,
const int  second 
)
inline

Definition at line 248 of file variable_operators.hpp.

250 {
251  return second + first;
252 }

◆ operator+() [16/48]

LinearCombination gadgetlib2::operator+ ( const LinearCombination first,
const LinearCombination second 
)
inline

Definition at line 62 of file variable_operators.hpp.

64 {
65  auto retval = first;
66  return retval += second;
67 }

◆ operator+() [17/48]

LinearCombination gadgetlib2::operator+ ( const LinearCombination first,
const LinearTerm second 
)
inline

Definition at line 184 of file variable_operators.hpp.

186 {
187  return second + first;
188 }

◆ operator+() [18/48]

Polynomial gadgetlib2::operator+ ( const LinearCombination first,
const Monomial second 
)
inline

Definition at line 57 of file variable_operators.hpp.

59 {
60  return Polynomial(first) + second;
61 }

◆ operator+() [19/48]

Polynomial gadgetlib2::operator+ ( const LinearCombination first,
const Polynomial second 
)
inline

Definition at line 52 of file variable_operators.hpp.

54 {
55  return Polynomial(first) + second;
56 }

◆ operator+() [20/48]

LinearCombination gadgetlib2::operator+ ( const LinearCombination first,
const Variable second 
)
inline

Definition at line 202 of file variable_operators.hpp.

204 {
205  return second + first;
206 }

◆ operator+() [21/48]

LinearCombination gadgetlib2::operator+ ( const LinearTerm first,
const FElem second 
)
inline

Definition at line 219 of file variable_operators.hpp.

220 {
221  return second + first;
222 }

◆ operator+() [22/48]

LinearCombination gadgetlib2::operator+ ( const LinearTerm first,
const int  second 
)
inline

Definition at line 244 of file variable_operators.hpp.

245 {
246  return second + first;
247 }

◆ operator+() [23/48]

LinearCombination gadgetlib2::operator+ ( const LinearTerm first,
const LinearCombination second 
)
inline

Definition at line 78 of file variable_operators.hpp.

80 {
81  return LinearCombination(first) + second;
82 }

◆ operator+() [24/48]

LinearCombination gadgetlib2::operator+ ( const LinearTerm first,
const LinearTerm second 
)
inline

Definition at line 83 of file variable_operators.hpp.

85 {
86  return LinearCombination(first) + LinearCombination(second);
87 }

◆ operator+() [25/48]

Polynomial gadgetlib2::operator+ ( const LinearTerm first,
const Monomial second 
)
inline

Definition at line 74 of file variable_operators.hpp.

75 {
76  return LinearCombination(first) + second;
77 }

◆ operator+() [26/48]

Polynomial gadgetlib2::operator+ ( const LinearTerm first,
const Polynomial second 
)
inline

Definition at line 70 of file variable_operators.hpp.

71 {
72  return LinearCombination(first) + second;
73 }

◆ operator+() [27/48]

LinearCombination gadgetlib2::operator+ ( const LinearTerm first,
const Variable second 
)
inline

Definition at line 197 of file variable_operators.hpp.

199 {
200  return second + first;
201 }

◆ operator+() [28/48]

Polynomial gadgetlib2::operator+ ( const Monomial first,
const FElem second 
)
inline

Definition at line 228 of file variable_operators.hpp.

229 {
230  return second + first;
231 }

◆ operator+() [29/48]

Polynomial gadgetlib2::operator+ ( const Monomial first,
const int  second 
)
inline

Definition at line 253 of file variable_operators.hpp.

254 {
255  return second + first;
256 }

◆ operator+() [30/48]

Polynomial gadgetlib2::operator+ ( const Monomial first,
const LinearCombination second 
)
inline

Definition at line 174 of file variable_operators.hpp.

176 {
177  return second + first;
178 }

◆ operator+() [31/48]

Polynomial gadgetlib2::operator+ ( const Monomial first,
const LinearTerm second 
)
inline

Definition at line 189 of file variable_operators.hpp.

190 {
191  return second + first;
192 }

◆ operator+() [32/48]

Polynomial gadgetlib2::operator+ ( const Monomial first,
const Monomial second 
)
inline

Definition at line 46 of file variable_operators.hpp.

47 {
48  return Polynomial(first) + Polynomial(second);
49 }

◆ operator+() [33/48]

Polynomial gadgetlib2::operator+ ( const Monomial first,
const Polynomial second 
)
inline

Definition at line 42 of file variable_operators.hpp.

43 {
44  return Polynomial(first) + second;
45 }

◆ operator+() [34/48]

Polynomial gadgetlib2::operator+ ( const Monomial first,
const Variable second 
)
inline

Definition at line 207 of file variable_operators.hpp.

208 {
209  return second + first;
210 }

◆ operator+() [35/48]

Polynomial gadgetlib2::operator+ ( const Polynomial first,
const FElem second 
)
inline

Definition at line 232 of file variable_operators.hpp.

233 {
234  return second + first;
235 }

◆ operator+() [36/48]

Polynomial gadgetlib2::operator+ ( const Polynomial first,
const int  second 
)
inline

Definition at line 257 of file variable_operators.hpp.

258 {
259  return second + first;
260 }

◆ operator+() [37/48]

Polynomial gadgetlib2::operator+ ( const Polynomial first,
const LinearCombination second 
)
inline

Definition at line 179 of file variable_operators.hpp.

181 {
182  return second + first;
183 }

◆ operator+() [38/48]

Polynomial gadgetlib2::operator+ ( const Polynomial first,
const LinearTerm second 
)
inline

Definition at line 193 of file variable_operators.hpp.

194 {
195  return second + first;
196 }

◆ operator+() [39/48]

Polynomial gadgetlib2::operator+ ( const Polynomial first,
const Monomial second 
)
inline

Definition at line 170 of file variable_operators.hpp.

171 {
172  return second + first;
173 }

◆ operator+() [40/48]

Polynomial gadgetlib2::operator+ ( const Polynomial first,
const Polynomial second 
)
inline

Definition at line 35 of file variable_operators.hpp.

36 {
37  auto retval = first;
38  return retval += second;
39 }

◆ operator+() [41/48]

Polynomial gadgetlib2::operator+ ( const Polynomial first,
const Variable second 
)
inline

Definition at line 211 of file variable_operators.hpp.

212 {
213  return second + first;
214 }

◆ operator+() [42/48]

LinearCombination gadgetlib2::operator+ ( const Variable first,
const FElem second 
)
inline

Definition at line 215 of file variable_operators.hpp.

216 {
217  return second + first;
218 }

◆ operator+() [43/48]

LinearCombination gadgetlib2::operator+ ( const Variable first,
const int  second 
)
inline

Definition at line 240 of file variable_operators.hpp.

241 {
242  return second + first;
243 }

◆ operator+() [44/48]

LinearCombination gadgetlib2::operator+ ( const Variable first,
const LinearCombination second 
)
inline

Definition at line 98 of file variable_operators.hpp.

100 {
101  return LinearTerm(first) + second;
102 }

◆ operator+() [45/48]

LinearCombination gadgetlib2::operator+ ( const Variable first,
const LinearTerm second 
)
inline

Definition at line 103 of file variable_operators.hpp.

105 {
106  return LinearTerm(first) + second;
107 }

◆ operator+() [46/48]

Polynomial gadgetlib2::operator+ ( const Variable first,
const Monomial second 
)
inline

Definition at line 94 of file variable_operators.hpp.

95 {
96  return LinearTerm(first) + second;
97 }

◆ operator+() [47/48]

Polynomial gadgetlib2::operator+ ( const Variable first,
const Polynomial second 
)
inline

Definition at line 90 of file variable_operators.hpp.

91 {
92  return LinearTerm(first) + second;
93 }

◆ operator+() [48/48]

LinearCombination gadgetlib2::operator+ ( const Variable first,
const Variable second 
)
inline

Definition at line 108 of file variable_operators.hpp.

110 {
111  return LinearTerm(first) + LinearTerm(second);
112 }

◆ operator-() [1/51]

FElem gadgetlib2::operator- ( const FElem first,
const FElem second 
)
inline

Definition at line 356 of file variable_operators.hpp.

357 {
358  return first + (-second);
359 }

◆ operator-() [2/51]

FElem gadgetlib2::operator- ( const FElem first,
const int  second 
)
inline

Definition at line 451 of file variable_operators.hpp.

452 {
453  return first + (-second);
454 }

◆ operator-() [3/51]

LinearCombination gadgetlib2::operator- ( const FElem first,
const LinearCombination second 
)
inline

Definition at line 343 of file variable_operators.hpp.

345 {
346  return first + (-second);
347 }

◆ operator-() [4/51]

LinearCombination gadgetlib2::operator- ( const FElem first,
const LinearTerm second 
)
inline

Definition at line 348 of file variable_operators.hpp.

349 {
350  return first + (-second);
351 }

◆ operator-() [5/51]

Polynomial gadgetlib2::operator- ( const FElem first,
const Monomial second 
)
inline

Definition at line 339 of file variable_operators.hpp.

340 {
341  return first + (-second);
342 }

◆ operator-() [6/51]

Polynomial gadgetlib2::operator- ( const FElem first,
const Polynomial second 
)
inline

Definition at line 335 of file variable_operators.hpp.

336 {
337  return first + (-second);
338 }

◆ operator-() [7/51]

LinearCombination gadgetlib2::operator- ( const FElem first,
const Variable second 
)
inline

Definition at line 352 of file variable_operators.hpp.

353 {
354  return first + (-second);
355 }

◆ operator-() [8/51]

FElem gadgetlib2::operator- ( const int  first,
const FElem second 
)
inline

Definition at line 360 of file variable_operators.hpp.

361 {
362  return first + (-second);
363 }

◆ operator-() [9/51]

LinearCombination gadgetlib2::operator- ( const int  first,
const LinearCombination second 
)
inline

Definition at line 372 of file variable_operators.hpp.

374 {
375  return first + (-second);
376 }

◆ operator-() [10/51]

LinearCombination gadgetlib2::operator- ( const int  first,
const LinearTerm second 
)
inline

Definition at line 368 of file variable_operators.hpp.

369 {
370  return first + (-second);
371 }

◆ operator-() [11/51]

Polynomial gadgetlib2::operator- ( const int  first,
const Monomial second 
)
inline

Definition at line 377 of file variable_operators.hpp.

378 {
379  return first + (-second);
380 }

◆ operator-() [12/51]

Polynomial gadgetlib2::operator- ( const int  first,
const Polynomial second 
)
inline

Definition at line 381 of file variable_operators.hpp.

382 {
383  return first + (-second);
384 }

◆ operator-() [13/51]

LinearCombination gadgetlib2::operator- ( const int  first,
const Variable second 
)
inline

Definition at line 364 of file variable_operators.hpp.

365 {
366  return first + (-second);
367 }

◆ operator-() [14/51]

LinearCombination gadgetlib2::operator- ( const LinearCombination first,
const FElem second 
)
inline

Definition at line 438 of file variable_operators.hpp.

440 {
441  return first + (-second);
442 }

◆ operator-() [15/51]

LinearCombination gadgetlib2::operator- ( const LinearCombination first,
const int  second 
)
inline

Definition at line 463 of file variable_operators.hpp.

465 {
466  return first + (-second);
467 }

◆ operator-() [16/51]

LinearCombination gadgetlib2::operator- ( const LinearCombination first,
const LinearCombination second 
)
inline

Definition at line 289 of file variable_operators.hpp.

291 {
292  return first + (-second);
293 }

◆ operator-() [17/51]

LinearCombination gadgetlib2::operator- ( const LinearCombination first,
const LinearTerm second 
)
inline

Definition at line 399 of file variable_operators.hpp.

401 {
402  return first + (-second);
403 }

◆ operator-() [18/51]

Polynomial gadgetlib2::operator- ( const LinearCombination first,
const Monomial second 
)
inline

Definition at line 284 of file variable_operators.hpp.

286 {
287  return first + (-second);
288 }

◆ operator-() [19/51]

Polynomial gadgetlib2::operator- ( const LinearCombination first,
const Polynomial second 
)
inline

Definition at line 279 of file variable_operators.hpp.

281 {
282  return first + (-second);
283 }

◆ operator-() [20/51]

LinearCombination gadgetlib2::operator- ( const LinearCombination first,
const Variable second 
)
inline

Definition at line 417 of file variable_operators.hpp.

419 {
420  return first + (-second);
421 }

◆ operator-() [21/51]

LinearCombination gadgetlib2::operator- ( const LinearCombination lc)
inline

Definition at line 533 of file variable.hpp.

534 {
535  return LinearCombination(0) -= lc;
536 }

◆ operator-() [22/51]

LinearCombination gadgetlib2::operator- ( const LinearTerm first,
const FElem second 
)
inline

Definition at line 434 of file variable_operators.hpp.

435 {
436  return first + (-second);
437 }

◆ operator-() [23/51]

LinearCombination gadgetlib2::operator- ( const LinearTerm first,
const int  second 
)
inline

Definition at line 459 of file variable_operators.hpp.

460 {
461  return first + (-second);
462 }

◆ operator-() [24/51]

LinearCombination gadgetlib2::operator- ( const LinearTerm first,
const LinearCombination second 
)
inline

Definition at line 302 of file variable_operators.hpp.

304 {
305  return first + (-second);
306 }

◆ operator-() [25/51]

LinearCombination gadgetlib2::operator- ( const LinearTerm first,
const LinearTerm second 
)
inline

Definition at line 307 of file variable_operators.hpp.

309 {
310  return first + (-second);
311 }

◆ operator-() [26/51]

Polynomial gadgetlib2::operator- ( const LinearTerm first,
const Monomial second 
)
inline

Definition at line 298 of file variable_operators.hpp.

299 {
300  return first + (-second);
301 }

◆ operator-() [27/51]

Polynomial gadgetlib2::operator- ( const LinearTerm first,
const Polynomial second 
)
inline

Definition at line 294 of file variable_operators.hpp.

295 {
296  return first + (-second);
297 }

◆ operator-() [28/51]

LinearCombination gadgetlib2::operator- ( const LinearTerm first,
const Variable second 
)
inline

Definition at line 412 of file variable_operators.hpp.

414 {
415  return first + (-second);
416 }

◆ operator-() [29/51]

Polynomial gadgetlib2::operator- ( const Monomial first,
const FElem second 
)
inline

Definition at line 443 of file variable_operators.hpp.

444 {
445  return first + (-second);
446 }

◆ operator-() [30/51]

Polynomial gadgetlib2::operator- ( const Monomial first,
const int  second 
)
inline

Definition at line 468 of file variable_operators.hpp.

469 {
470  return first + (-second);
471 }

◆ operator-() [31/51]

Polynomial gadgetlib2::operator- ( const Monomial first,
const LinearCombination second 
)
inline

Definition at line 389 of file variable_operators.hpp.

391 {
392  return first + (-second);
393 }

◆ operator-() [32/51]

Polynomial gadgetlib2::operator- ( const Monomial first,
const LinearTerm second 
)
inline

Definition at line 404 of file variable_operators.hpp.

405 {
406  return first + (-second);
407 }

◆ operator-() [33/51]

Polynomial gadgetlib2::operator- ( const Monomial first,
const Monomial second 
)
inline

Definition at line 275 of file variable_operators.hpp.

276 {
277  return first + (-second);
278 }

◆ operator-() [34/51]

Polynomial gadgetlib2::operator- ( const Monomial first,
const Polynomial second 
)
inline

Definition at line 271 of file variable_operators.hpp.

272 {
273  return first + (-second);
274 }

◆ operator-() [35/51]

Polynomial gadgetlib2::operator- ( const Monomial first,
const Variable second 
)
inline

Definition at line 422 of file variable_operators.hpp.

423 {
424  return first + (-second);
425 }

◆ operator-() [36/51]

Polynomial gadgetlib2::operator- ( const Polynomial first,
const FElem second 
)
inline

Definition at line 447 of file variable_operators.hpp.

448 {
449  return first + (-second);
450 }

◆ operator-() [37/51]

Polynomial gadgetlib2::operator- ( const Polynomial first,
const int  second 
)
inline

Definition at line 472 of file variable_operators.hpp.

473 {
474  return first + (-second);
475 }

◆ operator-() [38/51]

Polynomial gadgetlib2::operator- ( const Polynomial first,
const LinearCombination second 
)
inline

Definition at line 394 of file variable_operators.hpp.

396 {
397  return first + (-second);
398 }

◆ operator-() [39/51]

Polynomial gadgetlib2::operator- ( const Polynomial first,
const LinearTerm second 
)
inline

Definition at line 408 of file variable_operators.hpp.

409 {
410  return first + (-second);
411 }

◆ operator-() [40/51]

Polynomial gadgetlib2::operator- ( const Polynomial first,
const Monomial second 
)
inline

Definition at line 385 of file variable_operators.hpp.

386 {
387  return first + (-second);
388 }

◆ operator-() [41/51]

Polynomial gadgetlib2::operator- ( const Polynomial first,
const Polynomial second 
)
inline

Definition at line 267 of file variable_operators.hpp.

268 {
269  return first + (-second);
270 }

◆ operator-() [42/51]

Polynomial gadgetlib2::operator- ( const Polynomial first,
const Variable second 
)
inline

Definition at line 426 of file variable_operators.hpp.

427 {
428  return first + (-second);
429 }

◆ operator-() [43/51]

Polynomial gadgetlib2::operator- ( const Polynomial src)
inline

Definition at line 610 of file variable.hpp.

611 {
612  return Polynomial(FElem(0)) -= src;
613 }

◆ operator-() [44/51]

LinearCombination gadgetlib2::operator- ( const Variable first,
const FElem second 
)
inline

Definition at line 430 of file variable_operators.hpp.

431 {
432  return first + (-second);
433 }

◆ operator-() [45/51]

LinearCombination gadgetlib2::operator- ( const Variable first,
const int  second 
)
inline

Definition at line 455 of file variable_operators.hpp.

456 {
457  return first + (-second);
458 }

◆ operator-() [46/51]

LinearCombination gadgetlib2::operator- ( const Variable first,
const LinearCombination second 
)
inline

Definition at line 320 of file variable_operators.hpp.

322 {
323  return first + (-second);
324 }

◆ operator-() [47/51]

LinearCombination gadgetlib2::operator- ( const Variable first,
const LinearTerm second 
)
inline

Definition at line 325 of file variable_operators.hpp.

327 {
328  return first + (-second);
329 }

◆ operator-() [48/51]

Polynomial gadgetlib2::operator- ( const Variable first,
const Monomial second 
)
inline

Definition at line 316 of file variable_operators.hpp.

317 {
318  return first + (-second);
319 }

◆ operator-() [49/51]

Polynomial gadgetlib2::operator- ( const Variable first,
const Polynomial second 
)
inline

Definition at line 312 of file variable_operators.hpp.

313 {
314  return first + (-second);
315 }

◆ operator-() [50/51]

LinearCombination gadgetlib2::operator- ( const Variable first,
const Variable second 
)
inline

Definition at line 330 of file variable_operators.hpp.

332 {
333  return first + (-second);
334 }

◆ operator-() [51/51]

LinearTerm gadgetlib2::operator- ( const Variable src)
inline

Definition at line 265 of file variable_operators.hpp.

265 { return LinearTerm(src, -1); }

◆ operator==() [1/4]

bool gadgetlib2::operator== ( const FElem first,
const long  second 
)
inline

These operators are not always mathematically well defined. The long will be checked in runtime for fields in which values other than 0 and 1 are not well defined.

Definition at line 161 of file variable.hpp.

162 {
163  return first == FElem(second);
164 }

◆ operator==() [2/4]

bool gadgetlib2::operator== ( const GLA::linear_combination_t lhs,
const GLA::linear_term_t rhs 
)

Definition at line 105 of file adapters.cpp.

107 {
108  return lhs.first.size() == 1 && lhs.first.at(0) == rhs &&
109  lhs.second == Fp(0);
110 }

◆ operator==() [3/4]

bool gadgetlib2::operator== ( const long  first,
const FElem second 
)
inline

Definition at line 165 of file variable.hpp.

166 {
167  return second == first;
168 }

◆ operator==() [4/4]

bool gadgetlib2::operator== ( const long  first,
const FElemInterface second 
)
inline

Definition at line 81 of file variable.hpp.

82 {
83  return second == first;
84 }

◆ POW2()

int64_t gadgetlib2::POW2 ( int  exponent)
inline

Definition at line 118 of file infrastructure.hpp.

119 {
120  // assert(exponent>=0);
121  return ((int64_t)1) << exponent;
122 }
Here is the caller graph for this function:

◆ power()

FElem gadgetlib2::power ( const FElem base,
long  exponent 
)

Definition at line 139 of file variable.cpp.

140 { // TODO .cpp
141  FElem retval(base);
142  retval.elem_->power(exponent);
143  return retval;
144 }

◆ printInformativeNoticeMessage()

void gadgetlib2::printInformativeNoticeMessage ( const bool  multipackedEqualsValue,
const bool  unpackedEqualsValue 
)

Definition at line 157 of file protoboard.cpp.

159 {
160  if (multipackedEqualsValue == true && unpackedEqualsValue == false) {
161  cout << "NOTE: multipacked value equals expected value but unpacked "
162  "value does not!"
163  << endl;
164  } else {
166  multipackedEqualsValue == false && unpackedEqualsValue == true,
167  "printInformativeNoticeMessage(...) has been called incorrectly");
168  cout << "NOTE: unpacked value equals expected value but multipacked "
169  "value does not!"
170  << endl;
171  }
172 }
Here is the caller graph for this function:

◆ safeConvert()

long gadgetlib2::safeConvert ( const int64_t  num)

Safely converts 64-bit types to 32-bit.

Safely converts 64-bit types to 32-bit, or from unsigned to signed

Definition at line 57 of file infrastructure.cpp.

58 {
59  assert(num <= INT_MAX && num >= INT_MIN);
60  return (long)num;
61 }

◆ sum()

LinearCombination gadgetlib2::sum ( const VariableArray inputs)

Definition at line 616 of file variable.cpp.

617 {
618  LinearCombination retval(0);
619  for (const Variable &var : inputs) {
620  retval += var;
621  }
622  return retval;
623 }
Here is the caller graph for this function:
gadgetlib2::PrintOptions::NO_DBG_PRINT
@ NO_DBG_PRINT
gadgetlib2::PrintOptions::DBG_PRINT_IF_TRUE
@ DBG_PRINT_IF_TRUE
gadgetlib2::PackingMode::UNPACK
@ UNPACK
gadgetlib2::PrintOptions::DBG_PRINT_IF_NOT_SATISFIED
@ DBG_PRINT_IF_NOT_SATISFIED
gadgetlib2::FieldType
FieldType
Definition: variable.hpp:37
gadgetlib2::AGNOSTIC
@ AGNOSTIC
Definition: variable.hpp:37
gadgetlib2::PackingMode::PACK
@ PACK
GADGETLIB_ASSERT
#define GADGETLIB_ASSERT(predicate, msg)
Definition: infrastructure.hpp:94
gadgetlib2::PrintOptions::DBG_PRINT_IF_FALSE
@ DBG_PRINT_IF_FALSE
gadgetlib2::R1P
@ R1P
Definition: variable.hpp:37
gadgetlib2::Fp
libff::Fr< libff::default_ec_pp > Fp
Definition: pp.hpp:29