|
| template<typename ContainerOverSubrelations , typename AllEntities , typename Parameters > |
| static void | accumulate (ContainerOverSubrelations &accumulators, const AllEntities &in, const Parameters &, const FF &scaling_factor) |
| | Expression for decomposition of various values into smaller limbs or microlimbs.
|
| |
|
| static constexpr size_t | RELATION_LENGTH |
| |
|
static constexpr std::array< size_t, 48 > | SUBRELATION_PARTIAL_LENGTHS |
| |
◆ accumulate()
template<typename FF >
template<typename ContainerOverSubrelations , typename AllEntities , typename Parameters >
Expression for decomposition of various values into smaller limbs or microlimbs.
This relation enforces three types of subrelations: 1) A subrelation decomposing a value from the transcript (for example, z1) into 68-bit limbs. These relations will have the structure lagrange_odd_in_minicircuit⋅(a - a_low - a_high⋅2⁶⁸) 2) A subrelation decomposing a value of one of the limbs used in bigfield computation (for example, the lower wide relation limb) into 14-bit limbs. These relations will have the structure `lagrange_odd_in_minicircuit⋅(a - a_0 - a_1⋅2¹⁴ - ....)3) A subrelation making a microlimb range constraint more constraining. For example, we want to constrain some values to 12 bits instead of 14. So we add a constraintlagrange_odd_in_minicircuit⋅(a_highest⋅4 - a_tail)`. In a separate relation both a_highest and a_tail are constrained to be 14 bits, but this relation changes the constraint on a_highest to be 12 bits.
- Parameters
-
| evals | transformed to evals + C(in(X)...)*scaling_factor |
| in | an std::array containing the fully extended Univariate edges. |
| parameters | contains beta, gamma, and public_input_delta, .... |
| scaling_factor | optional term to scale the evaluation before adding to evals. |
◆ RELATION_LENGTH
The documentation for this class was generated from the following files: