100 if (this->m_bn254_fq.contains(bigint_id)) {
103 if (this->m_bn254_fr.contains(bigint_id)) {
106 if (this->m_secp256k1_fq.contains(bigint_id)) {
109 if (this->m_secp256k1_fr.contains(bigint_id)) {
112 if (this->m_secp256r1_fq.contains(bigint_id)) {
115 if (this->m_secp256r1_fr.contains(bigint_id)) {
131 for (uint32_t i = 0; i < 4; i++) {
143 for (uint32_t i = 0; i < 4; i++) {
144 limbs_idx[i] =
m_bn254_fr[bigint_id].binary_basis_limbs[i].element.witness_index;
146 limbs_idx[4] =
m_bn254_fr[bigint_id].prime_basis_limb.witness_index;
148 for (uint32_t i = 0; i < 4; i++) {
149 limbs_idx[i] =
m_bn254_fq[bigint_id].binary_basis_limbs[i].element.witness_index;
151 limbs_idx[4] =
m_bn254_fq[bigint_id].prime_basis_limb.witness_index;
154 for (uint32_t i = 0; i < 4; i++) {
155 limbs_idx[i] = big_field.binary_basis_limbs[i].element.witness_index;
157 limbs_idx[4] = big_field.prime_basis_limb.witness_index;
160 for (uint32_t i = 0; i < 4; i++) {
161 limbs_idx[i] = big_field.binary_basis_limbs[i].element.witness_index;
163 limbs_idx[4] = big_field.prime_basis_limb.witness_index;
166 for (uint32_t i = 0; i < 4; i++) {
167 limbs_idx[i] = big_field.binary_basis_limbs[i].element.witness_index;
169 limbs_idx[4] = big_field.prime_basis_limb.witness_index;
172 for (uint32_t i = 0; i < 4; i++) {
173 limbs_idx[i] = big_field.binary_basis_limbs[i].element.witness_index;
175 limbs_idx[4] = big_field.prime_basis_limb.witness_index;
180 ASSERT(this->m_bn254_fr.contains(bigint_id));
181 return this->m_bn254_fr[bigint_id];
188 ASSERT(this->m_bn254_fq.contains(bigint_id));
189 return this->m_bn254_fq[bigint_id];
196 ASSERT(this->m_secp256r1_fq.contains(bigint_id));
197 return this->m_secp256r1_fq[bigint_id];
202 this->m_secp256r1_fq[bigint_id] = bigint;
207 ASSERT(this->m_secp256r1_fr.contains(bigint_id));
208 return this->m_secp256r1_fr[bigint_id];
213 this->m_secp256r1_fr[bigint_id] = bigint;
218 ASSERT(this->m_secp256k1_fq.contains(bigint_id));
219 return this->m_secp256k1_fq[bigint_id];
224 this->m_secp256k1_fq[bigint_id] = bigint;
229 if (this->m_secp256k1_fr.contains(bigint_id)) {
230 return this->m_secp256k1_fr[bigint_id];
237 this->m_secp256k1_fr[bigint_id] = bigint;
241template <
typename Builder>
243 const BigIntFromLeBytes& input,
244 DSLBigInts<Builder>& dsl_bigints);
245template <
typename Builder>
247 const BigIntToLeBytes& input,
248 DSLBigInts<Builder>& dsl_bigints);
250template <
typename Builder>
252template <
typename Builder>
254template <
typename Builder>
256template <
typename Builder>
258template <
typename Builder>
#define ASSERT(expression,...)
void set_variable(const uint32_t index, const FF &value)
Set the value of the variable pointed to by a witness index.
static constexpr uint64_t NUM_LIMB_BITS
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept