From 1414a545e4fb38a85391289abe91dd4467d268e1 Mon Sep 17 00:00:00 2001 From: Lior Goldberg Date: Mon, 16 Sep 2024 16:11:15 +0300 Subject: [PATCH] Stone v3. --- Dockerfile | 3 +- README.md | 6 +- e2e_test/Cairo/fibonacci.cairo | 14 + src/starkware/air/cpu/board/cpu_air.h | 6 +- src/starkware/air/cpu/board/cpu_air.inl | 134 +- .../air/cpu/board/cpu_air_definition0.h | 17 + .../air/cpu/board/cpu_air_definition1.h | 17 + .../air/cpu/board/cpu_air_definition10.h | 17 + .../air/cpu/board/cpu_air_definition11.h | 1028 +- .../air/cpu/board/cpu_air_definition11.inl | 27121 +++++++++------- .../air/cpu/board/cpu_air_definition12.h | 17 + .../air/cpu/board/cpu_air_definition2.h | 17 + .../air/cpu/board/cpu_air_definition3.h | 17 + .../air/cpu/board/cpu_air_definition4.h | 17 + .../air/cpu/board/cpu_air_definition5.h | 17 + .../air/cpu/board/cpu_air_definition6.h | 17 + .../air/cpu/board/cpu_air_definition7.h | 17 + .../air/cpu/board/cpu_air_definition8.h | 17 + .../air/cpu/board/cpu_air_definition9.h | 281 +- src/starkware/air/cpu/board/cpu_air_test.cc | 4 +- .../cpu_air_test_instructions_memory.bin.h | 6 +- ..._air_test_instructions_public_input.json.h | 6 +- src/starkware/air/cpu/board/load_targets.bzl | 1 + src/starkware/air/cpu/builtin/modulo/BUILD | 78 + .../modulo/add_mod_builtin_prover_context.h | 79 + .../modulo/add_mod_builtin_prover_context.inl | 100 + .../modulo/mod_builtin_prover_context.h | 211 + .../modulo/mod_builtin_prover_context.inl | 112 + .../modulo/mul_mod_builtin_prover_context.h | 114 + .../modulo/mul_mod_builtin_prover_context.inl | 141 + src/starkware/algebra/big_int.h | 1 + .../commitment_scheme_test.cc | 6 +- src/starkware/crypt_tools/blake2s.h | 2 +- src/starkware/crypt_tools/blake2s.inl | 2 +- src/starkware/crypt_tools/invoke.h | 2 +- src/starkware/crypt_tools/masked_hash_test.cc | 7 + .../crypt_tools/template_instantiation.h | 2 +- src/starkware/main/cpu/cpu_air_prover_main.cc | 2 +- .../main/cpu/cpu_air_verifier_main.cc | 3 +- .../statement/cpu/cpu_air_statement.cc | 14 +- .../statement/cpu/cpu_air_statement.h | 3 +- 41 files changed, 18405 insertions(+), 11271 deletions(-) create mode 100644 src/starkware/air/cpu/builtin/modulo/BUILD create mode 100644 src/starkware/air/cpu/builtin/modulo/add_mod_builtin_prover_context.h create mode 100644 src/starkware/air/cpu/builtin/modulo/add_mod_builtin_prover_context.inl create mode 100644 src/starkware/air/cpu/builtin/modulo/mod_builtin_prover_context.h create mode 100644 src/starkware/air/cpu/builtin/modulo/mod_builtin_prover_context.inl create mode 100644 src/starkware/air/cpu/builtin/modulo/mul_mod_builtin_prover_context.h create mode 100644 src/starkware/air/cpu/builtin/modulo/mul_mod_builtin_prover_context.inl diff --git a/Dockerfile b/Dockerfile index 16b6758..6afe995 100644 --- a/Dockerfile +++ b/Dockerfile @@ -4,7 +4,7 @@ COPY install_deps.sh /app/ RUN /app/install_deps.sh # Install Cairo0 for end-to-end test. -RUN pip install cairo-lang==0.12.0 +RUN pip install cairo-lang==0.13.2 COPY docker_common_deps.sh /app/ WORKDIR /app/ @@ -42,6 +42,7 @@ RUN cairo-run \ --air_private_input=fibonacci_private_input.json \ --trace_file=fibonacci_trace.json \ --memory_file=fibonacci_memory.json \ + --min_steps=512 \ --print_output \ --proof_mode diff --git a/README.md b/README.md index f78c6e2..0afec9b 100644 --- a/README.md +++ b/README.md @@ -96,11 +96,11 @@ These things need to be checked externally. ## Creating and verifying a proof of a CairoZero program To run and prove the example program `fibonacci.cairo`, -install `cairo-lang` version 0.12.0 (see further instructions in the -[cairo-lang repository](https://github.com/starkware-libs/cairo-lang/tree/v0.12.0)): +install `cairo-lang` version 0.13.2 (see further instructions in the +[cairo-lang repository](https://github.com/starkware-libs/cairo-lang/tree/v0.13.2)): ```bash -pip install cairo-lang==0.12.0 +pip install cairo-lang==0.13.2 ``` Navigate to the example test directory (`e2e_test/CairoZero`): diff --git a/e2e_test/Cairo/fibonacci.cairo b/e2e_test/Cairo/fibonacci.cairo index 13fcf23..5207167 100644 --- a/e2e_test/Cairo/fibonacci.cairo +++ b/e2e_test/Cairo/fibonacci.cairo @@ -1,3 +1,17 @@ +// Copyright 2023 StarkWare Industries Ltd. +// +// Licensed under the Apache License, Version 2.0 (the "License"). +// You may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.starkware.co/open-source-license/ +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions +// and limitations under the License. + use core::felt252; fn main() -> Array { diff --git a/src/starkware/air/cpu/board/cpu_air.h b/src/starkware/air/cpu/board/cpu_air.h index f7581b7..95b4d96 100644 --- a/src/starkware/air/cpu/board/cpu_air.h +++ b/src/starkware/air/cpu/board/cpu_air.h @@ -139,12 +139,14 @@ class CpuAir : public CpuAirDefinition { private: constexpr uint64_t PedersenRatio() const; constexpr uint64_t RangeCheckRatio() const; - constexpr uint64_t RangeCheck96Ratio() const; + constexpr uint64_t RangeCheck96NInstances() const; constexpr uint64_t EcdsaRatio() const; constexpr uint64_t BitwiseRatio() const; constexpr uint64_t EcOpRatio() const; constexpr uint64_t KeccakRatio() const; constexpr uint64_t PoseidonRatio() const; + constexpr uint64_t AddModNInstances() const; + constexpr uint64_t MulModNInstances() const; constexpr bool UsesPedersenBuiltin() const; constexpr bool UsesRangeCheckBuiltin() const; constexpr bool UsesRangeCheck96Builtin() const; @@ -153,6 +155,8 @@ class CpuAir : public CpuAirDefinition { constexpr bool UsesEcOpBuiltin() const; constexpr bool UsesKeccakBuiltin() const; constexpr bool UsesPoseidonBuiltin() const; + constexpr bool UsesAddModBuiltin() const; + constexpr bool UsesMulModBuiltin() const; /* Writes public_memory virtual column in the trace. diff --git a/src/starkware/air/cpu/board/cpu_air.inl b/src/starkware/air/cpu/board/cpu_air.inl index b080c0d..c13da23 100644 --- a/src/starkware/air/cpu/board/cpu_air.inl +++ b/src/starkware/air/cpu/board/cpu_air.inl @@ -17,6 +17,9 @@ #include "starkware/air/cpu/builtin/ec/ec_op_builtin_prover_context.h" #include "starkware/air/cpu/builtin/hash/hash_builtin_prover_context.h" #include "starkware/air/cpu/builtin/keccak/keccak_builtin_prover_context.h" +#include "starkware/air/cpu/builtin/modulo/add_mod_builtin_prover_context.h" +#include "starkware/air/cpu/builtin/modulo/mod_builtin_prover_context.h" +#include "starkware/air/cpu/builtin/modulo/mul_mod_builtin_prover_context.h" #include "starkware/air/cpu/builtin/poseidon/poseidon_builtin_prover_context.h" #include "starkware/air/cpu/builtin/range_check/range_check_builtin_prover_context.h" #include "starkware/air/cpu/builtin/signature/signature_builtin_prover_context.h" @@ -57,18 +60,20 @@ constexpr uint64_t CpuAir::RangeCheckRatio() const { } template -constexpr uint64_t CpuAir::RangeCheck96Ratio() const { +constexpr uint64_t CpuAir::RangeCheck96NInstances() const { + uint64_t row_ratio = 0, cpu_component_step = 0; if constexpr (CpuAir::kIsDynamicAir) { // NOLINT: clang-tidy if constexpr bug. - return SafeDiv( - this->dynamic_params_[CpuAir::kRangeCheck96RowRatioDynamicParam], - CpuAir::kCpuComponentHeight * this->dynamic_params_[CpuAir::kCpuComponentStepDynamicParam]); - } else { // NOLINT: clang-tidy if constexpr bug. + row_ratio = this->dynamic_params_[CpuAir::kRangeCheck96BuiltinRowRatioDynamicParam]; + cpu_component_step = this->dynamic_params_[CpuAir::kCpuComponentStepDynamicParam]; + } else { if constexpr (CpuAir::kHasRangeCheck96Builtin) { // NOLINT: clang-tidy if constexpr bug. - return CpuAir::kRangeCheck96BuiltinRatio; + row_ratio = CpuAir::kRangeCheck96BuiltinRowRatio; + cpu_component_step = CpuAir::kCpuComponentStep; } else { // NOLINT: clang-tidy if constexpr bug. return 0; } } + return SafeDiv(n_steps_ * cpu_component_step * CpuAir::kCpuComponentHeight, row_ratio); } template @@ -146,6 +151,40 @@ constexpr uint64_t CpuAir::PoseidonRatio() const { } } +template +constexpr uint64_t CpuAir::AddModNInstances() const { + uint64_t row_ratio = 0, cpu_component_step = 0; + if constexpr (CpuAir::kIsDynamicAir) { // NOLINT: clang-tidy if constexpr bug. + row_ratio = this->dynamic_params_[CpuAir::kAddModRowRatioDynamicParam]; + cpu_component_step = this->dynamic_params_[CpuAir::kCpuComponentStepDynamicParam]; + } else { + if constexpr (CpuAir::kHasAddModBuiltin) { // NOLINT: clang-tidy if constexpr bug. + row_ratio = CpuAir::kAddModRowRatio; + cpu_component_step = CpuAir::kCpuComponentStep; + } else { // NOLINT: clang-tidy if constexpr bug. + return 0; + } + } + return SafeDiv(n_steps_ * cpu_component_step * CpuAir::kCpuComponentHeight, row_ratio); +} + +template +constexpr uint64_t CpuAir::MulModNInstances() const { + uint64_t row_ratio = 0, cpu_component_step = 0; + if constexpr (CpuAir::kIsDynamicAir) { // NOLINT: clang-tidy if constexpr bug. + row_ratio = this->dynamic_params_[CpuAir::kMulModRowRatioDynamicParam]; + cpu_component_step = this->dynamic_params_[CpuAir::kCpuComponentStepDynamicParam]; + } else { + if constexpr (CpuAir::kHasMulModBuiltin) { // NOLINT: clang-tidy if constexpr bug. + row_ratio = CpuAir::kMulModRowRatio; + cpu_component_step = CpuAir::kCpuComponentStep; + } else { // NOLINT: clang-tidy if constexpr bug. + return 0; + } + } + return SafeDiv(n_steps_ * cpu_component_step * CpuAir::kCpuComponentHeight, row_ratio); +} + template constexpr bool CpuAir::UsesPedersenBuiltin() const { if constexpr (CpuAir::kIsDynamicAir) { // NOLINT: clang-tidy if constexpr bug. @@ -218,6 +257,24 @@ constexpr bool CpuAir::UsesPoseidonBuiltin() const { } } +template +constexpr bool CpuAir::UsesAddModBuiltin() const { + if constexpr (CpuAir::kIsDynamicAir) { // NOLINT: clang-tidy if constexpr bug. + return this->dynamic_params_[CpuAir::kUsesAddModBuiltinDynamicParam]; + } else { // NOLINT: clang-tidy if constexpr bug. + return CpuAir::kHasAddModBuiltin; + } +} + +template +constexpr bool CpuAir::UsesMulModBuiltin() const { + if constexpr (CpuAir::kIsDynamicAir) { // NOLINT: clang-tidy if constexpr bug. + return this->dynamic_params_[CpuAir::kUsesMulModBuiltinDynamicParam]; + } else { // NOLINT: clang-tidy if constexpr bug. + return CpuAir::kHasMulModBuiltin; + } +} + template void CpuAir::BuildPeriodicColumns( const FieldElementT& gen, Builder* builder) const { @@ -286,22 +343,27 @@ template CpuAir CpuAir::WithInteractionElementsImpl( gsl::span interaction_elms) const { CpuAir new_air(*this); - ASSERT_RELEASE( - interaction_elms.size() == (CpuAir::kHasDilutedPool ? 6 : 3), - "Interaction element vector is of wrong size."); - new_air.memory__multi_column_perm__perm__interaction_elm_ = interaction_elms[0]; - new_air.memory__multi_column_perm__hash_interaction_elm0_ = interaction_elms[1]; - new_air.range_check16__perm__interaction_elm_ = interaction_elms[2]; + unsigned int i = 0; + new_air.memory__multi_column_perm__perm__interaction_elm_ = interaction_elms[i++]; + new_air.memory__multi_column_perm__hash_interaction_elm0_ = interaction_elms[i++]; + new_air.range_check16__perm__interaction_elm_ = interaction_elms[i++]; new_air.memory__multi_column_perm__perm__public_memory_prod_ = new_air.GetPublicMemoryProd(); if constexpr (CpuAir::kHasDilutedPool) { // NOLINT: clang-tidy if constexpr bug. - new_air.diluted_check__permutation__interaction_elm_ = interaction_elms[3]; - new_air.diluted_check__interaction_z_ = interaction_elms[4]; - new_air.diluted_check__interaction_alpha_ = interaction_elms[5]; + new_air.diluted_check__permutation__interaction_elm_ = interaction_elms[i++]; + new_air.diluted_check__interaction_z_ = interaction_elms[i++]; + new_air.diluted_check__interaction_alpha_ = interaction_elms[i++]; new_air.diluted_check__final_cum_val_ = DilutedCheckComponentProverContext1::ExpectedFinalCumulativeValue( CpuAir::kDilutedSpacing, CpuAir::kDilutedNBits, new_air.diluted_check__interaction_z_, new_air.diluted_check__interaction_alpha_); } + if constexpr (CpuAir::kHasAddModBuiltin) { + new_air.add_mod__interaction_elm_ = interaction_elms[i++]; + } + if constexpr (CpuAir::kHasMulModBuiltin) { + new_air.mul_mod__interaction_elm_ = interaction_elms[i++]; + } + ASSERT_RELEASE(interaction_elms.size() == i, "Interaction element vector is of wrong size."); return new_air; } @@ -366,7 +428,7 @@ std::pair, Trace> CpuAirrange_check96_begin_addr_, - SafeDiv(n_steps_, RangeCheck96Ratio()), CpuAir::kRangeCheck96NParts, CpuAir::kOffsetBits, + RangeCheck96NInstances(), CpuAir::kRangeCheck96NParts, CpuAir::kOffsetBits, RangeCheckBuiltinProverContext::ParsePrivateInput( private_input["range_check96"])); @@ -458,6 +520,46 @@ std::pair, Trace> CpuAir( + /*name=*/"add_mod", + /*ctx=*/ctx_, + /*memory_pool=*/&memory_pool, + /*begin_addr=*/this->add_mod_begin_addr_, + /*n_instances=*/AddModNInstances(), + /*batch_size=*/CpuAir::kAddModBatchSize, + /*word_bit_len=*/CpuAir::kAddModWordBitLen, + /*inputs=*/ + ModBuiltinProverContext::ParsePrivateInput( + private_input["add_mod"], CpuAir::kAddModBatchSize)) + .WriteTrace(trace_spans); + } + } + + // MulMod builtin. + if constexpr (CpuAir::kHasMulModBuiltin) { // NOLINT: clang-tidy if constexpr bug. + if (UsesMulModBuiltin()) { + ProfilingBlock mul_mod_builtin_block("MulMod builtin"); + MulModBuiltinProverContext( + /*name=*/"mul_mod", + /*ctx=*/ctx_, + /*memory_pool=*/&memory_pool, + /*rc_pool=*/&rc16_pool, + /*begin_addr=*/this->mul_mod_begin_addr_, + /*n_instances=*/MulModNInstances(), + /*batch_size=*/CpuAir::kMulModBatchSize, + /*word_bit_len=*/CpuAir::kMulModWordBitLen, + /*bits_per_part=*/16, + /*inputs=*/ + ModBuiltinProverContext::ParsePrivateInput( + private_input["mul_mod"], CpuAir::kMulModBatchSize)) + .WriteTrace(trace_spans); + } + } + // Finalize. rc16_pool.Finalize(rc_min_, rc_max_, trace_spans); if (rc_prover.has_value()) { diff --git a/src/starkware/air/cpu/board/cpu_air_definition0.h b/src/starkware/air/cpu/board/cpu_air_definition0.h index d504bfe..7d2261e 100755 --- a/src/starkware/air/cpu/board/cpu_air_definition0.h +++ b/src/starkware/air/cpu/board/cpu_air_definition0.h @@ -108,6 +108,7 @@ class CpuAirDefinition : public Air { static constexpr bool kHasPoseidonBuiltin = false; static constexpr bool kHasRangeCheck96Builtin = false; static constexpr bool kHasAddModBuiltin = false; + static constexpr bool kHasMulModBuiltin = false; static constexpr char kLayoutName[] = "small"; static constexpr BigInt<4> kLayoutCode = 0x736d616c6c_Z; static constexpr uint64_t kConstraintDegree = 2; @@ -589,6 +590,10 @@ class CpuAirDefinition : public Air { kHasKeccakBuiltin ? GetSegment(mem_segment_addresses, "keccak").begin_addr : 0), poseidon_begin_addr_( kHasPoseidonBuiltin ? GetSegment(mem_segment_addresses, "poseidon").begin_addr : 0), + add_mod_begin_addr_( + kHasAddModBuiltin ? GetSegment(mem_segment_addresses, "add_mod").begin_addr : 0), + mul_mod_begin_addr_( + kHasMulModBuiltin ? GetSegment(mem_segment_addresses, "mul_mod").begin_addr : 0), dynamic_params_(ParseDynamicParams(dynamic_params)), range_check_min_(rc_min), @@ -640,6 +645,14 @@ class CpuAirDefinition : public Air { const CompileTimeOptional initial_poseidon_addr_ = FieldElementT::FromUint(ExtractHiddenMemberValue(poseidon_begin_addr_)); + const CompileTimeOptional add_mod_begin_addr_; + const CompileTimeOptional add_mod__initial_mod_addr_ = + FieldElementT::FromUint(ExtractHiddenMemberValue(add_mod_begin_addr_)); + + const CompileTimeOptional mul_mod_begin_addr_; + const CompileTimeOptional mul_mod__initial_mod_addr_ = + FieldElementT::FromUint(ExtractHiddenMemberValue(mul_mod_begin_addr_)); + // Flat vector of dynamic_params, used for efficient computation of the composition polynomial. // See ParseDynamicParams. CompileTimeOptional, kIsDynamicAir> dynamic_params_; @@ -660,6 +673,10 @@ class CpuAirDefinition : public Air { FieldElementT::Uninitialized(); CompileTimeOptional diluted_check__interaction_alpha_ = FieldElementT::Uninitialized(); + CompileTimeOptional add_mod__interaction_elm_ = + FieldElementT::Uninitialized(); + CompileTimeOptional mul_mod__interaction_elm_ = + FieldElementT::Uninitialized(); FieldElementT memory__multi_column_perm__perm__public_memory_prod_ = FieldElementT::Uninitialized(); diff --git a/src/starkware/air/cpu/board/cpu_air_definition1.h b/src/starkware/air/cpu/board/cpu_air_definition1.h index ca7d1f8..bae53f2 100755 --- a/src/starkware/air/cpu/board/cpu_air_definition1.h +++ b/src/starkware/air/cpu/board/cpu_air_definition1.h @@ -108,6 +108,7 @@ class CpuAirDefinition : public Air { static constexpr bool kHasPoseidonBuiltin = false; static constexpr bool kHasRangeCheck96Builtin = false; static constexpr bool kHasAddModBuiltin = false; + static constexpr bool kHasMulModBuiltin = false; static constexpr char kLayoutName[] = "dex"; static constexpr BigInt<4> kLayoutCode = 0x646578_Z; static constexpr uint64_t kConstraintDegree = 2; @@ -585,6 +586,10 @@ class CpuAirDefinition : public Air { kHasKeccakBuiltin ? GetSegment(mem_segment_addresses, "keccak").begin_addr : 0), poseidon_begin_addr_( kHasPoseidonBuiltin ? GetSegment(mem_segment_addresses, "poseidon").begin_addr : 0), + add_mod_begin_addr_( + kHasAddModBuiltin ? GetSegment(mem_segment_addresses, "add_mod").begin_addr : 0), + mul_mod_begin_addr_( + kHasMulModBuiltin ? GetSegment(mem_segment_addresses, "mul_mod").begin_addr : 0), dynamic_params_(ParseDynamicParams(dynamic_params)), range_check_min_(rc_min), @@ -636,6 +641,14 @@ class CpuAirDefinition : public Air { const CompileTimeOptional initial_poseidon_addr_ = FieldElementT::FromUint(ExtractHiddenMemberValue(poseidon_begin_addr_)); + const CompileTimeOptional add_mod_begin_addr_; + const CompileTimeOptional add_mod__initial_mod_addr_ = + FieldElementT::FromUint(ExtractHiddenMemberValue(add_mod_begin_addr_)); + + const CompileTimeOptional mul_mod_begin_addr_; + const CompileTimeOptional mul_mod__initial_mod_addr_ = + FieldElementT::FromUint(ExtractHiddenMemberValue(mul_mod_begin_addr_)); + // Flat vector of dynamic_params, used for efficient computation of the composition polynomial. // See ParseDynamicParams. CompileTimeOptional, kIsDynamicAir> dynamic_params_; @@ -656,6 +669,10 @@ class CpuAirDefinition : public Air { FieldElementT::Uninitialized(); CompileTimeOptional diluted_check__interaction_alpha_ = FieldElementT::Uninitialized(); + CompileTimeOptional add_mod__interaction_elm_ = + FieldElementT::Uninitialized(); + CompileTimeOptional mul_mod__interaction_elm_ = + FieldElementT::Uninitialized(); FieldElementT memory__multi_column_perm__perm__public_memory_prod_ = FieldElementT::Uninitialized(); diff --git a/src/starkware/air/cpu/board/cpu_air_definition10.h b/src/starkware/air/cpu/board/cpu_air_definition10.h index db3c5ca..745b1ed 100755 --- a/src/starkware/air/cpu/board/cpu_air_definition10.h +++ b/src/starkware/air/cpu/board/cpu_air_definition10.h @@ -97,6 +97,7 @@ class CpuAirDefinition : public Air { static constexpr bool kHasPoseidonBuiltin = false; static constexpr bool kHasRangeCheck96Builtin = false; static constexpr bool kHasAddModBuiltin = false; + static constexpr bool kHasMulModBuiltin = false; static constexpr char kLayoutName[] = "plain"; static constexpr BigInt<4> kLayoutCode = 0x706c61696e_Z; static constexpr uint64_t kConstraintDegree = 2; @@ -272,6 +273,10 @@ class CpuAirDefinition : public Air { kHasKeccakBuiltin ? GetSegment(mem_segment_addresses, "keccak").begin_addr : 0), poseidon_begin_addr_( kHasPoseidonBuiltin ? GetSegment(mem_segment_addresses, "poseidon").begin_addr : 0), + add_mod_begin_addr_( + kHasAddModBuiltin ? GetSegment(mem_segment_addresses, "add_mod").begin_addr : 0), + mul_mod_begin_addr_( + kHasMulModBuiltin ? GetSegment(mem_segment_addresses, "mul_mod").begin_addr : 0), dynamic_params_(ParseDynamicParams(dynamic_params)), range_check_min_(rc_min), @@ -323,6 +328,14 @@ class CpuAirDefinition : public Air { const CompileTimeOptional initial_poseidon_addr_ = FieldElementT::FromUint(ExtractHiddenMemberValue(poseidon_begin_addr_)); + const CompileTimeOptional add_mod_begin_addr_; + const CompileTimeOptional add_mod__initial_mod_addr_ = + FieldElementT::FromUint(ExtractHiddenMemberValue(add_mod_begin_addr_)); + + const CompileTimeOptional mul_mod_begin_addr_; + const CompileTimeOptional mul_mod__initial_mod_addr_ = + FieldElementT::FromUint(ExtractHiddenMemberValue(mul_mod_begin_addr_)); + // Flat vector of dynamic_params, used for efficient computation of the composition polynomial. // See ParseDynamicParams. CompileTimeOptional, kIsDynamicAir> dynamic_params_; @@ -343,6 +356,10 @@ class CpuAirDefinition : public Air { FieldElementT::Uninitialized(); CompileTimeOptional diluted_check__interaction_alpha_ = FieldElementT::Uninitialized(); + CompileTimeOptional add_mod__interaction_elm_ = + FieldElementT::Uninitialized(); + CompileTimeOptional mul_mod__interaction_elm_ = + FieldElementT::Uninitialized(); FieldElementT memory__multi_column_perm__perm__public_memory_prod_ = FieldElementT::Uninitialized(); diff --git a/src/starkware/air/cpu/board/cpu_air_definition11.h b/src/starkware/air/cpu/board/cpu_air_definition11.h index a4b9f1b..4b3b7ea 100755 --- a/src/starkware/air/cpu/board/cpu_air_definition11.h +++ b/src/starkware/air/cpu/board/cpu_air_definition11.h @@ -81,7 +81,7 @@ class CpuAirDefinition : public Air { uint64_t NumColumns() const override { return num_columns_first + num_columns_second; } std::optional GetInteractionParams() const override { - InteractionParams interaction_params{num_columns_first, num_columns_second, 6}; + InteractionParams interaction_params{num_columns_first, num_columns_second, 8}; return interaction_params; } @@ -750,6 +750,13 @@ class CpuAirDefinition : public Air { 0x51274d092db5099f180b1a8a13b7f2c7606836eabd8af54bf1d9ac2dc5717a5_Z), FieldElementT::ConstexprFromBigInt( 0x61fc552b8eb75e17ad0fb7aaa4ca528f415e14f0d9cdbed861a8db0bfff0c5b_Z)}}; + static constexpr uint64_t kRangeCheck96NParts = 6; + static constexpr uint64_t kAddModWordBitLen = 96; + static constexpr uint64_t kAddModNWords = 4; + static constexpr uint64_t kAddModBatchSize = 1; + static constexpr uint64_t kMulModWordBitLen = 96; + static constexpr uint64_t kMulModNWords = 4; + static constexpr uint64_t kMulModBatchSize = 1; static constexpr bool kHasOutputBuiltin = true; static constexpr bool kHasPedersenBuiltin = true; static constexpr bool kHasRangeCheckBuiltin = true; @@ -758,14 +765,15 @@ class CpuAirDefinition : public Air { static constexpr bool kHasEcOpBuiltin = true; static constexpr bool kHasKeccakBuiltin = true; static constexpr bool kHasPoseidonBuiltin = true; - static constexpr bool kHasRangeCheck96Builtin = false; - static constexpr bool kHasAddModBuiltin = false; + static constexpr bool kHasRangeCheck96Builtin = true; + static constexpr bool kHasAddModBuiltin = true; + static constexpr bool kHasMulModBuiltin = true; static constexpr char kLayoutName[] = "dynamic"; static constexpr BigInt<4> kLayoutCode = 0x64796e616d6963_Z; static constexpr uint64_t kConstraintDegree = 2; - static constexpr std::array kSegmentNames = { - "program", "execution", "output", "pedersen", "range_check", - "ecdsa", "bitwise", "ec_op", "keccak", "poseidon"}; + static constexpr std::array kSegmentNames = { + "program", "execution", "output", "pedersen", "range_check", "ecdsa", "bitwise", + "ec_op", "keccak", "poseidon", "range_check96", "add_mod", "mul_mod"}; static constexpr bool kIsDynamicAir = true; enum PeriodicColumns { @@ -790,6 +798,43 @@ class CpuAirDefinition : public Air { }; enum DynamicParams { + kAddModA0SuboffsetDynamicParam, + kAddModA1SuboffsetDynamicParam, + kAddModA2SuboffsetDynamicParam, + kAddModA3SuboffsetDynamicParam, + kAddModAOffsetSuboffsetDynamicParam, + kAddModB0SuboffsetDynamicParam, + kAddModB1SuboffsetDynamicParam, + kAddModB2SuboffsetDynamicParam, + kAddModB3SuboffsetDynamicParam, + kAddModBOffsetSuboffsetDynamicParam, + kAddModC0SuboffsetDynamicParam, + kAddModC1SuboffsetDynamicParam, + kAddModC2SuboffsetDynamicParam, + kAddModC3SuboffsetDynamicParam, + kAddModCOffsetSuboffsetDynamicParam, + kAddModCarry1BitColumnDynamicParam, + kAddModCarry1BitOffsetDynamicParam, + kAddModCarry1SignColumnDynamicParam, + kAddModCarry1SignOffsetDynamicParam, + kAddModCarry2BitColumnDynamicParam, + kAddModCarry2BitOffsetDynamicParam, + kAddModCarry2SignColumnDynamicParam, + kAddModCarry2SignOffsetDynamicParam, + kAddModCarry3BitColumnDynamicParam, + kAddModCarry3BitOffsetDynamicParam, + kAddModCarry3SignColumnDynamicParam, + kAddModCarry3SignOffsetDynamicParam, + kAddModNSuboffsetDynamicParam, + kAddModOffsetsPtrSuboffsetDynamicParam, + kAddModP0SuboffsetDynamicParam, + kAddModP1SuboffsetDynamicParam, + kAddModP2SuboffsetDynamicParam, + kAddModP3SuboffsetDynamicParam, + kAddModRowRatioDynamicParam, + kAddModSubPBitColumnDynamicParam, + kAddModSubPBitOffsetDynamicParam, + kAddModValuesPtrSuboffsetDynamicParam, kBitwiseDilutedVarPoolSuboffsetDynamicParam, kBitwiseRowRatioDynamicParam, kBitwiseTrimUnpacking192SuboffsetDynamicParam, @@ -933,6 +978,95 @@ class CpuAirDefinition : public Air { kMemorySortedValueColumnDynamicParam, kMemorySortedValueOffsetDynamicParam, kMemoryUnitsRowRatioDynamicParam, + kMulModA0SuboffsetDynamicParam, + kMulModA1SuboffsetDynamicParam, + kMulModA2SuboffsetDynamicParam, + kMulModA3SuboffsetDynamicParam, + kMulModAOffsetSuboffsetDynamicParam, + kMulModB0SuboffsetDynamicParam, + kMulModB1SuboffsetDynamicParam, + kMulModB2SuboffsetDynamicParam, + kMulModB3SuboffsetDynamicParam, + kMulModBOffsetSuboffsetDynamicParam, + kMulModC0SuboffsetDynamicParam, + kMulModC1SuboffsetDynamicParam, + kMulModC2SuboffsetDynamicParam, + kMulModC3SuboffsetDynamicParam, + kMulModCOffsetSuboffsetDynamicParam, + kMulModCarry0Part0SuboffsetDynamicParam, + kMulModCarry0Part1SuboffsetDynamicParam, + kMulModCarry0Part2SuboffsetDynamicParam, + kMulModCarry0Part3SuboffsetDynamicParam, + kMulModCarry0Part4SuboffsetDynamicParam, + kMulModCarry0Part5SuboffsetDynamicParam, + kMulModCarry0Part6SuboffsetDynamicParam, + kMulModCarry1Part0SuboffsetDynamicParam, + kMulModCarry1Part1SuboffsetDynamicParam, + kMulModCarry1Part2SuboffsetDynamicParam, + kMulModCarry1Part3SuboffsetDynamicParam, + kMulModCarry1Part4SuboffsetDynamicParam, + kMulModCarry1Part5SuboffsetDynamicParam, + kMulModCarry1Part6SuboffsetDynamicParam, + kMulModCarry2Part0SuboffsetDynamicParam, + kMulModCarry2Part1SuboffsetDynamicParam, + kMulModCarry2Part2SuboffsetDynamicParam, + kMulModCarry2Part3SuboffsetDynamicParam, + kMulModCarry2Part4SuboffsetDynamicParam, + kMulModCarry2Part5SuboffsetDynamicParam, + kMulModCarry2Part6SuboffsetDynamicParam, + kMulModCarry3Part0SuboffsetDynamicParam, + kMulModCarry3Part1SuboffsetDynamicParam, + kMulModCarry3Part2SuboffsetDynamicParam, + kMulModCarry3Part3SuboffsetDynamicParam, + kMulModCarry3Part4SuboffsetDynamicParam, + kMulModCarry3Part5SuboffsetDynamicParam, + kMulModCarry3Part6SuboffsetDynamicParam, + kMulModCarry4Part0SuboffsetDynamicParam, + kMulModCarry4Part1SuboffsetDynamicParam, + kMulModCarry4Part2SuboffsetDynamicParam, + kMulModCarry4Part3SuboffsetDynamicParam, + kMulModCarry4Part4SuboffsetDynamicParam, + kMulModCarry4Part5SuboffsetDynamicParam, + kMulModCarry4Part6SuboffsetDynamicParam, + kMulModCarry5Part0SuboffsetDynamicParam, + kMulModCarry5Part1SuboffsetDynamicParam, + kMulModCarry5Part2SuboffsetDynamicParam, + kMulModCarry5Part3SuboffsetDynamicParam, + kMulModCarry5Part4SuboffsetDynamicParam, + kMulModCarry5Part5SuboffsetDynamicParam, + kMulModCarry5Part6SuboffsetDynamicParam, + kMulModNSuboffsetDynamicParam, + kMulModOffsetsPtrSuboffsetDynamicParam, + kMulModP0SuboffsetDynamicParam, + kMulModP1SuboffsetDynamicParam, + kMulModP2SuboffsetDynamicParam, + kMulModP3SuboffsetDynamicParam, + kMulModPMultiplier0Part0SuboffsetDynamicParam, + kMulModPMultiplier0Part1SuboffsetDynamicParam, + kMulModPMultiplier0Part2SuboffsetDynamicParam, + kMulModPMultiplier0Part3SuboffsetDynamicParam, + kMulModPMultiplier0Part4SuboffsetDynamicParam, + kMulModPMultiplier0Part5SuboffsetDynamicParam, + kMulModPMultiplier1Part0SuboffsetDynamicParam, + kMulModPMultiplier1Part1SuboffsetDynamicParam, + kMulModPMultiplier1Part2SuboffsetDynamicParam, + kMulModPMultiplier1Part3SuboffsetDynamicParam, + kMulModPMultiplier1Part4SuboffsetDynamicParam, + kMulModPMultiplier1Part5SuboffsetDynamicParam, + kMulModPMultiplier2Part0SuboffsetDynamicParam, + kMulModPMultiplier2Part1SuboffsetDynamicParam, + kMulModPMultiplier2Part2SuboffsetDynamicParam, + kMulModPMultiplier2Part3SuboffsetDynamicParam, + kMulModPMultiplier2Part4SuboffsetDynamicParam, + kMulModPMultiplier2Part5SuboffsetDynamicParam, + kMulModPMultiplier3Part0SuboffsetDynamicParam, + kMulModPMultiplier3Part1SuboffsetDynamicParam, + kMulModPMultiplier3Part2SuboffsetDynamicParam, + kMulModPMultiplier3Part3SuboffsetDynamicParam, + kMulModPMultiplier3Part4SuboffsetDynamicParam, + kMulModPMultiplier3Part5SuboffsetDynamicParam, + kMulModRowRatioDynamicParam, + kMulModValuesPtrSuboffsetDynamicParam, kNumColumnsFirstDynamicParam, kNumColumnsSecondDynamicParam, kOrigPublicMemorySuboffsetDynamicParam, @@ -982,16 +1116,27 @@ class CpuAirDefinition : public Air { kRangeCheck16SortedOffsetDynamicParam, kRangeCheck16PoolColumnDynamicParam, kRangeCheck16PoolOffsetDynamicParam, + kRangeCheck96BuiltinInnerRangeCheck0SuboffsetDynamicParam, + kRangeCheck96BuiltinInnerRangeCheck1SuboffsetDynamicParam, + kRangeCheck96BuiltinInnerRangeCheck2SuboffsetDynamicParam, + kRangeCheck96BuiltinInnerRangeCheck3SuboffsetDynamicParam, + kRangeCheck96BuiltinInnerRangeCheck4SuboffsetDynamicParam, + kRangeCheck96BuiltinInnerRangeCheck5SuboffsetDynamicParam, + kRangeCheck96BuiltinMemSuboffsetDynamicParam, + kRangeCheck96BuiltinRowRatioDynamicParam, kRangeCheckBuiltinInnerRangeCheckSuboffsetDynamicParam, kRangeCheckBuiltinMemSuboffsetDynamicParam, kRangeCheckBuiltinRowRatioDynamicParam, kRangeCheckUnitsRowRatioDynamicParam, + kUsesAddModBuiltinDynamicParam, kUsesBitwiseBuiltinDynamicParam, kUsesEcOpBuiltinDynamicParam, kUsesEcdsaBuiltinDynamicParam, kUsesKeccakBuiltinDynamicParam, + kUsesMulModBuiltinDynamicParam, kUsesPedersenBuiltinDynamicParam, kUsesPoseidonBuiltinDynamicParam, + kUsesRangeCheck96BuiltinDynamicParam, kUsesRangeCheckBuiltinDynamicParam, // Number of dynamic params. kNumDynamicParams, @@ -3330,22 +3475,484 @@ class CpuAirDefinition : public Air { kPoseidon_Poseidon_FullRoundsState1ColumnRowExpr745Neighbor, // (SafeDiv(poseidon__row_ratio, 2)) + (poseidon__poseidon__full_rounds_state2_offset) kPoseidon_Poseidon_FullRoundsState2ColumnRowExpr746Neighbor, + // ((range_check96_builtin__mem_suboffset) * (memory_units_row_ratio)) + + // (mem_pool__value_offset) + kMemPool_ValueColumnRowExpr747Neighbor, + // ((range_check96_builtin__inner_range_check0_suboffset) * (range_check_units_row_ratio)) + + // (range_check16_pool_offset) + kRangeCheck16PoolColumnRowExpr748Neighbor, + // ((range_check96_builtin__inner_range_check1_suboffset) * (range_check_units_row_ratio)) + + // (range_check16_pool_offset) + kRangeCheck16PoolColumnRowExpr749Neighbor, + // ((range_check96_builtin__inner_range_check2_suboffset) * (range_check_units_row_ratio)) + + // (range_check16_pool_offset) + kRangeCheck16PoolColumnRowExpr750Neighbor, + // ((range_check96_builtin__inner_range_check3_suboffset) * (range_check_units_row_ratio)) + + // (range_check16_pool_offset) + kRangeCheck16PoolColumnRowExpr751Neighbor, + // ((range_check96_builtin__inner_range_check4_suboffset) * (range_check_units_row_ratio)) + + // (range_check16_pool_offset) + kRangeCheck16PoolColumnRowExpr752Neighbor, + // ((range_check96_builtin__inner_range_check5_suboffset) * (range_check_units_row_ratio)) + + // (range_check16_pool_offset) + kRangeCheck16PoolColumnRowExpr753Neighbor, + // ((range_check96_builtin_row_ratio) + ((range_check96_builtin__mem_suboffset) * + // (memory_units_row_ratio))) + (mem_pool__addr_offset) + kMemPool_AddrColumnRowExpr754Neighbor, + // ((range_check96_builtin__mem_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset) + kMemPool_AddrColumnRowExpr755Neighbor, + // ((add_mod__p0_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset) + kMemPool_AddrColumnRowExpr756Neighbor, + // ((add_mod__p1_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset) + kMemPool_AddrColumnRowExpr757Neighbor, + // ((add_mod__p2_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset) + kMemPool_AddrColumnRowExpr758Neighbor, + // ((add_mod__p3_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset) + kMemPool_AddrColumnRowExpr759Neighbor, + // ((add_mod__values_ptr_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset) + kMemPool_AddrColumnRowExpr760Neighbor, + // ((add_mod__offsets_ptr_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset) + kMemPool_AddrColumnRowExpr761Neighbor, + // ((add_mod__n_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset) + kMemPool_AddrColumnRowExpr762Neighbor, + // ((add_mod__row_ratio) + ((add_mod__p0_suboffset) * (memory_units_row_ratio))) + + // (mem_pool__addr_offset) + kMemPool_AddrColumnRowExpr763Neighbor, + // ((add_mod__row_ratio) + ((add_mod__p0_suboffset) * (memory_units_row_ratio))) + + // (mem_pool__value_offset) + kMemPool_ValueColumnRowExpr764Neighbor, + // ((add_mod__p0_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset) + kMemPool_ValueColumnRowExpr765Neighbor, + // ((add_mod__n_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset) + kMemPool_ValueColumnRowExpr766Neighbor, + // ((add_mod__row_ratio) + ((add_mod__p1_suboffset) * (memory_units_row_ratio))) + + // (mem_pool__value_offset) + kMemPool_ValueColumnRowExpr767Neighbor, + // ((add_mod__p1_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset) + kMemPool_ValueColumnRowExpr768Neighbor, + // ((add_mod__row_ratio) + ((add_mod__p2_suboffset) * (memory_units_row_ratio))) + + // (mem_pool__value_offset) + kMemPool_ValueColumnRowExpr769Neighbor, + // ((add_mod__p2_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset) + kMemPool_ValueColumnRowExpr770Neighbor, + // ((add_mod__row_ratio) + ((add_mod__p3_suboffset) * (memory_units_row_ratio))) + + // (mem_pool__value_offset) + kMemPool_ValueColumnRowExpr771Neighbor, + // ((add_mod__p3_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset) + kMemPool_ValueColumnRowExpr772Neighbor, + // ((add_mod__row_ratio) + ((add_mod__values_ptr_suboffset) * (memory_units_row_ratio))) + + // (mem_pool__value_offset) + kMemPool_ValueColumnRowExpr773Neighbor, + // ((add_mod__values_ptr_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset) + kMemPool_ValueColumnRowExpr774Neighbor, + // ((add_mod__row_ratio) + ((add_mod__offsets_ptr_suboffset) * (memory_units_row_ratio))) + + // (mem_pool__value_offset) + kMemPool_ValueColumnRowExpr775Neighbor, + // ((add_mod__offsets_ptr_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset) + kMemPool_ValueColumnRowExpr776Neighbor, + // ((add_mod__row_ratio) + ((add_mod__n_suboffset) * (memory_units_row_ratio))) + + // (mem_pool__value_offset) + kMemPool_ValueColumnRowExpr777Neighbor, + // ((add_mod__a_offset_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset) + kMemPool_AddrColumnRowExpr778Neighbor, + // ((add_mod__b_offset_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset) + kMemPool_AddrColumnRowExpr779Neighbor, + // ((add_mod__c_offset_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset) + kMemPool_AddrColumnRowExpr780Neighbor, + // ((add_mod__a0_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset) + kMemPool_AddrColumnRowExpr781Neighbor, + // ((add_mod__a_offset_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset) + kMemPool_ValueColumnRowExpr782Neighbor, + // ((add_mod__a1_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset) + kMemPool_AddrColumnRowExpr783Neighbor, + // ((add_mod__a2_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset) + kMemPool_AddrColumnRowExpr784Neighbor, + // ((add_mod__a3_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset) + kMemPool_AddrColumnRowExpr785Neighbor, + // ((add_mod__b0_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset) + kMemPool_AddrColumnRowExpr786Neighbor, + // ((add_mod__b_offset_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset) + kMemPool_ValueColumnRowExpr787Neighbor, + // ((add_mod__b1_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset) + kMemPool_AddrColumnRowExpr788Neighbor, + // ((add_mod__b2_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset) + kMemPool_AddrColumnRowExpr789Neighbor, + // ((add_mod__b3_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset) + kMemPool_AddrColumnRowExpr790Neighbor, + // ((add_mod__c0_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset) + kMemPool_AddrColumnRowExpr791Neighbor, + // ((add_mod__c_offset_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset) + kMemPool_ValueColumnRowExpr792Neighbor, + // ((add_mod__c1_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset) + kMemPool_AddrColumnRowExpr793Neighbor, + // ((add_mod__c2_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset) + kMemPool_AddrColumnRowExpr794Neighbor, + // ((add_mod__c3_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset) + kMemPool_AddrColumnRowExpr795Neighbor, + // add_mod__sub_p_bit_offset + kAddMod_SubPBitColumnRowExpr796Neighbor, + // add_mod__carry1_bit_offset + kAddMod_Carry1BitColumnRowExpr797Neighbor, + // add_mod__carry1_sign_offset + kAddMod_Carry1SignColumnRowExpr798Neighbor, + // add_mod__carry2_bit_offset + kAddMod_Carry2BitColumnRowExpr799Neighbor, + // add_mod__carry2_sign_offset + kAddMod_Carry2SignColumnRowExpr800Neighbor, + // add_mod__carry3_bit_offset + kAddMod_Carry3BitColumnRowExpr801Neighbor, + // add_mod__carry3_sign_offset + kAddMod_Carry3SignColumnRowExpr802Neighbor, + // ((add_mod__a1_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset) + kMemPool_ValueColumnRowExpr803Neighbor, + // ((add_mod__a2_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset) + kMemPool_ValueColumnRowExpr804Neighbor, + // ((add_mod__a3_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset) + kMemPool_ValueColumnRowExpr805Neighbor, + // ((add_mod__a0_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset) + kMemPool_ValueColumnRowExpr806Neighbor, + // ((add_mod__b1_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset) + kMemPool_ValueColumnRowExpr807Neighbor, + // ((add_mod__b2_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset) + kMemPool_ValueColumnRowExpr808Neighbor, + // ((add_mod__b3_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset) + kMemPool_ValueColumnRowExpr809Neighbor, + // ((add_mod__b0_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset) + kMemPool_ValueColumnRowExpr810Neighbor, + // ((add_mod__c1_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset) + kMemPool_ValueColumnRowExpr811Neighbor, + // ((add_mod__c2_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset) + kMemPool_ValueColumnRowExpr812Neighbor, + // ((add_mod__c3_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset) + kMemPool_ValueColumnRowExpr813Neighbor, + // ((add_mod__c0_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset) + kMemPool_ValueColumnRowExpr814Neighbor, + // ((mul_mod__p0_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset) + kMemPool_AddrColumnRowExpr815Neighbor, + // ((mul_mod__p1_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset) + kMemPool_AddrColumnRowExpr816Neighbor, + // ((mul_mod__p2_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset) + kMemPool_AddrColumnRowExpr817Neighbor, + // ((mul_mod__p3_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset) + kMemPool_AddrColumnRowExpr818Neighbor, + // ((mul_mod__values_ptr_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset) + kMemPool_AddrColumnRowExpr819Neighbor, + // ((mul_mod__offsets_ptr_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset) + kMemPool_AddrColumnRowExpr820Neighbor, + // ((mul_mod__n_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset) + kMemPool_AddrColumnRowExpr821Neighbor, + // ((mul_mod__row_ratio) + ((mul_mod__p0_suboffset) * (memory_units_row_ratio))) + + // (mem_pool__addr_offset) + kMemPool_AddrColumnRowExpr822Neighbor, + // ((mul_mod__row_ratio) + ((mul_mod__p0_suboffset) * (memory_units_row_ratio))) + + // (mem_pool__value_offset) + kMemPool_ValueColumnRowExpr823Neighbor, + // ((mul_mod__p0_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset) + kMemPool_ValueColumnRowExpr824Neighbor, + // ((mul_mod__n_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset) + kMemPool_ValueColumnRowExpr825Neighbor, + // ((mul_mod__row_ratio) + ((mul_mod__p1_suboffset) * (memory_units_row_ratio))) + + // (mem_pool__value_offset) + kMemPool_ValueColumnRowExpr826Neighbor, + // ((mul_mod__p1_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset) + kMemPool_ValueColumnRowExpr827Neighbor, + // ((mul_mod__row_ratio) + ((mul_mod__p2_suboffset) * (memory_units_row_ratio))) + + // (mem_pool__value_offset) + kMemPool_ValueColumnRowExpr828Neighbor, + // ((mul_mod__p2_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset) + kMemPool_ValueColumnRowExpr829Neighbor, + // ((mul_mod__row_ratio) + ((mul_mod__p3_suboffset) * (memory_units_row_ratio))) + + // (mem_pool__value_offset) + kMemPool_ValueColumnRowExpr830Neighbor, + // ((mul_mod__p3_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset) + kMemPool_ValueColumnRowExpr831Neighbor, + // ((mul_mod__row_ratio) + ((mul_mod__values_ptr_suboffset) * (memory_units_row_ratio))) + + // (mem_pool__value_offset) + kMemPool_ValueColumnRowExpr832Neighbor, + // ((mul_mod__values_ptr_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset) + kMemPool_ValueColumnRowExpr833Neighbor, + // ((mul_mod__row_ratio) + ((mul_mod__offsets_ptr_suboffset) * (memory_units_row_ratio))) + + // (mem_pool__value_offset) + kMemPool_ValueColumnRowExpr834Neighbor, + // ((mul_mod__offsets_ptr_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset) + kMemPool_ValueColumnRowExpr835Neighbor, + // ((mul_mod__row_ratio) + ((mul_mod__n_suboffset) * (memory_units_row_ratio))) + + // (mem_pool__value_offset) + kMemPool_ValueColumnRowExpr836Neighbor, + // ((mul_mod__a_offset_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset) + kMemPool_AddrColumnRowExpr837Neighbor, + // ((mul_mod__b_offset_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset) + kMemPool_AddrColumnRowExpr838Neighbor, + // ((mul_mod__c_offset_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset) + kMemPool_AddrColumnRowExpr839Neighbor, + // ((mul_mod__a0_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset) + kMemPool_AddrColumnRowExpr840Neighbor, + // ((mul_mod__a_offset_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset) + kMemPool_ValueColumnRowExpr841Neighbor, + // ((mul_mod__a1_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset) + kMemPool_AddrColumnRowExpr842Neighbor, + // ((mul_mod__a2_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset) + kMemPool_AddrColumnRowExpr843Neighbor, + // ((mul_mod__a3_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset) + kMemPool_AddrColumnRowExpr844Neighbor, + // ((mul_mod__b0_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset) + kMemPool_AddrColumnRowExpr845Neighbor, + // ((mul_mod__b_offset_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset) + kMemPool_ValueColumnRowExpr846Neighbor, + // ((mul_mod__b1_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset) + kMemPool_AddrColumnRowExpr847Neighbor, + // ((mul_mod__b2_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset) + kMemPool_AddrColumnRowExpr848Neighbor, + // ((mul_mod__b3_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset) + kMemPool_AddrColumnRowExpr849Neighbor, + // ((mul_mod__c0_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset) + kMemPool_AddrColumnRowExpr850Neighbor, + // ((mul_mod__c_offset_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset) + kMemPool_ValueColumnRowExpr851Neighbor, + // ((mul_mod__c1_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset) + kMemPool_AddrColumnRowExpr852Neighbor, + // ((mul_mod__c2_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset) + kMemPool_AddrColumnRowExpr853Neighbor, + // ((mul_mod__c3_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset) + kMemPool_AddrColumnRowExpr854Neighbor, + // ((mul_mod__a1_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset) + kMemPool_ValueColumnRowExpr855Neighbor, + // ((mul_mod__a2_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset) + kMemPool_ValueColumnRowExpr856Neighbor, + // ((mul_mod__a3_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset) + kMemPool_ValueColumnRowExpr857Neighbor, + // ((mul_mod__a0_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset) + kMemPool_ValueColumnRowExpr858Neighbor, + // ((mul_mod__b1_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset) + kMemPool_ValueColumnRowExpr859Neighbor, + // ((mul_mod__b2_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset) + kMemPool_ValueColumnRowExpr860Neighbor, + // ((mul_mod__b3_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset) + kMemPool_ValueColumnRowExpr861Neighbor, + // ((mul_mod__b0_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset) + kMemPool_ValueColumnRowExpr862Neighbor, + // ((mul_mod__c1_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset) + kMemPool_ValueColumnRowExpr863Neighbor, + // ((mul_mod__c2_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset) + kMemPool_ValueColumnRowExpr864Neighbor, + // ((mul_mod__c3_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset) + kMemPool_ValueColumnRowExpr865Neighbor, + // ((mul_mod__c0_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset) + kMemPool_ValueColumnRowExpr866Neighbor, + // ((mul_mod__p_multiplier1__part0_suboffset) * (range_check_units_row_ratio)) + + // (range_check16_pool_offset) + kRangeCheck16PoolColumnRowExpr867Neighbor, + // ((mul_mod__p_multiplier1__part1_suboffset) * (range_check_units_row_ratio)) + + // (range_check16_pool_offset) + kRangeCheck16PoolColumnRowExpr868Neighbor, + // ((mul_mod__p_multiplier1__part2_suboffset) * (range_check_units_row_ratio)) + + // (range_check16_pool_offset) + kRangeCheck16PoolColumnRowExpr869Neighbor, + // ((mul_mod__p_multiplier1__part3_suboffset) * (range_check_units_row_ratio)) + + // (range_check16_pool_offset) + kRangeCheck16PoolColumnRowExpr870Neighbor, + // ((mul_mod__p_multiplier1__part4_suboffset) * (range_check_units_row_ratio)) + + // (range_check16_pool_offset) + kRangeCheck16PoolColumnRowExpr871Neighbor, + // ((mul_mod__p_multiplier1__part5_suboffset) * (range_check_units_row_ratio)) + + // (range_check16_pool_offset) + kRangeCheck16PoolColumnRowExpr872Neighbor, + // ((mul_mod__p_multiplier2__part0_suboffset) * (range_check_units_row_ratio)) + + // (range_check16_pool_offset) + kRangeCheck16PoolColumnRowExpr873Neighbor, + // ((mul_mod__p_multiplier2__part1_suboffset) * (range_check_units_row_ratio)) + + // (range_check16_pool_offset) + kRangeCheck16PoolColumnRowExpr874Neighbor, + // ((mul_mod__p_multiplier2__part2_suboffset) * (range_check_units_row_ratio)) + + // (range_check16_pool_offset) + kRangeCheck16PoolColumnRowExpr875Neighbor, + // ((mul_mod__p_multiplier2__part3_suboffset) * (range_check_units_row_ratio)) + + // (range_check16_pool_offset) + kRangeCheck16PoolColumnRowExpr876Neighbor, + // ((mul_mod__p_multiplier2__part4_suboffset) * (range_check_units_row_ratio)) + + // (range_check16_pool_offset) + kRangeCheck16PoolColumnRowExpr877Neighbor, + // ((mul_mod__p_multiplier2__part5_suboffset) * (range_check_units_row_ratio)) + + // (range_check16_pool_offset) + kRangeCheck16PoolColumnRowExpr878Neighbor, + // ((mul_mod__p_multiplier3__part0_suboffset) * (range_check_units_row_ratio)) + + // (range_check16_pool_offset) + kRangeCheck16PoolColumnRowExpr879Neighbor, + // ((mul_mod__p_multiplier3__part1_suboffset) * (range_check_units_row_ratio)) + + // (range_check16_pool_offset) + kRangeCheck16PoolColumnRowExpr880Neighbor, + // ((mul_mod__p_multiplier3__part2_suboffset) * (range_check_units_row_ratio)) + + // (range_check16_pool_offset) + kRangeCheck16PoolColumnRowExpr881Neighbor, + // ((mul_mod__p_multiplier3__part3_suboffset) * (range_check_units_row_ratio)) + + // (range_check16_pool_offset) + kRangeCheck16PoolColumnRowExpr882Neighbor, + // ((mul_mod__p_multiplier3__part4_suboffset) * (range_check_units_row_ratio)) + + // (range_check16_pool_offset) + kRangeCheck16PoolColumnRowExpr883Neighbor, + // ((mul_mod__p_multiplier3__part5_suboffset) * (range_check_units_row_ratio)) + + // (range_check16_pool_offset) + kRangeCheck16PoolColumnRowExpr884Neighbor, + // ((mul_mod__p_multiplier0__part0_suboffset) * (range_check_units_row_ratio)) + + // (range_check16_pool_offset) + kRangeCheck16PoolColumnRowExpr885Neighbor, + // ((mul_mod__p_multiplier0__part1_suboffset) * (range_check_units_row_ratio)) + + // (range_check16_pool_offset) + kRangeCheck16PoolColumnRowExpr886Neighbor, + // ((mul_mod__p_multiplier0__part2_suboffset) * (range_check_units_row_ratio)) + + // (range_check16_pool_offset) + kRangeCheck16PoolColumnRowExpr887Neighbor, + // ((mul_mod__p_multiplier0__part3_suboffset) * (range_check_units_row_ratio)) + + // (range_check16_pool_offset) + kRangeCheck16PoolColumnRowExpr888Neighbor, + // ((mul_mod__p_multiplier0__part4_suboffset) * (range_check_units_row_ratio)) + + // (range_check16_pool_offset) + kRangeCheck16PoolColumnRowExpr889Neighbor, + // ((mul_mod__p_multiplier0__part5_suboffset) * (range_check_units_row_ratio)) + + // (range_check16_pool_offset) + kRangeCheck16PoolColumnRowExpr890Neighbor, + // ((mul_mod__carry1__part0_suboffset) * (range_check_units_row_ratio)) + + // (range_check16_pool_offset) + kRangeCheck16PoolColumnRowExpr891Neighbor, + // ((mul_mod__carry1__part1_suboffset) * (range_check_units_row_ratio)) + + // (range_check16_pool_offset) + kRangeCheck16PoolColumnRowExpr892Neighbor, + // ((mul_mod__carry1__part2_suboffset) * (range_check_units_row_ratio)) + + // (range_check16_pool_offset) + kRangeCheck16PoolColumnRowExpr893Neighbor, + // ((mul_mod__carry1__part3_suboffset) * (range_check_units_row_ratio)) + + // (range_check16_pool_offset) + kRangeCheck16PoolColumnRowExpr894Neighbor, + // ((mul_mod__carry1__part4_suboffset) * (range_check_units_row_ratio)) + + // (range_check16_pool_offset) + kRangeCheck16PoolColumnRowExpr895Neighbor, + // ((mul_mod__carry1__part5_suboffset) * (range_check_units_row_ratio)) + + // (range_check16_pool_offset) + kRangeCheck16PoolColumnRowExpr896Neighbor, + // ((mul_mod__carry1__part6_suboffset) * (range_check_units_row_ratio)) + + // (range_check16_pool_offset) + kRangeCheck16PoolColumnRowExpr897Neighbor, + // ((mul_mod__carry2__part0_suboffset) * (range_check_units_row_ratio)) + + // (range_check16_pool_offset) + kRangeCheck16PoolColumnRowExpr898Neighbor, + // ((mul_mod__carry2__part1_suboffset) * (range_check_units_row_ratio)) + + // (range_check16_pool_offset) + kRangeCheck16PoolColumnRowExpr899Neighbor, + // ((mul_mod__carry2__part2_suboffset) * (range_check_units_row_ratio)) + + // (range_check16_pool_offset) + kRangeCheck16PoolColumnRowExpr900Neighbor, + // ((mul_mod__carry2__part3_suboffset) * (range_check_units_row_ratio)) + + // (range_check16_pool_offset) + kRangeCheck16PoolColumnRowExpr901Neighbor, + // ((mul_mod__carry2__part4_suboffset) * (range_check_units_row_ratio)) + + // (range_check16_pool_offset) + kRangeCheck16PoolColumnRowExpr902Neighbor, + // ((mul_mod__carry2__part5_suboffset) * (range_check_units_row_ratio)) + + // (range_check16_pool_offset) + kRangeCheck16PoolColumnRowExpr903Neighbor, + // ((mul_mod__carry2__part6_suboffset) * (range_check_units_row_ratio)) + + // (range_check16_pool_offset) + kRangeCheck16PoolColumnRowExpr904Neighbor, + // ((mul_mod__carry3__part0_suboffset) * (range_check_units_row_ratio)) + + // (range_check16_pool_offset) + kRangeCheck16PoolColumnRowExpr905Neighbor, + // ((mul_mod__carry3__part1_suboffset) * (range_check_units_row_ratio)) + + // (range_check16_pool_offset) + kRangeCheck16PoolColumnRowExpr906Neighbor, + // ((mul_mod__carry3__part2_suboffset) * (range_check_units_row_ratio)) + + // (range_check16_pool_offset) + kRangeCheck16PoolColumnRowExpr907Neighbor, + // ((mul_mod__carry3__part3_suboffset) * (range_check_units_row_ratio)) + + // (range_check16_pool_offset) + kRangeCheck16PoolColumnRowExpr908Neighbor, + // ((mul_mod__carry3__part4_suboffset) * (range_check_units_row_ratio)) + + // (range_check16_pool_offset) + kRangeCheck16PoolColumnRowExpr909Neighbor, + // ((mul_mod__carry3__part5_suboffset) * (range_check_units_row_ratio)) + + // (range_check16_pool_offset) + kRangeCheck16PoolColumnRowExpr910Neighbor, + // ((mul_mod__carry3__part6_suboffset) * (range_check_units_row_ratio)) + + // (range_check16_pool_offset) + kRangeCheck16PoolColumnRowExpr911Neighbor, + // ((mul_mod__carry4__part0_suboffset) * (range_check_units_row_ratio)) + + // (range_check16_pool_offset) + kRangeCheck16PoolColumnRowExpr912Neighbor, + // ((mul_mod__carry4__part1_suboffset) * (range_check_units_row_ratio)) + + // (range_check16_pool_offset) + kRangeCheck16PoolColumnRowExpr913Neighbor, + // ((mul_mod__carry4__part2_suboffset) * (range_check_units_row_ratio)) + + // (range_check16_pool_offset) + kRangeCheck16PoolColumnRowExpr914Neighbor, + // ((mul_mod__carry4__part3_suboffset) * (range_check_units_row_ratio)) + + // (range_check16_pool_offset) + kRangeCheck16PoolColumnRowExpr915Neighbor, + // ((mul_mod__carry4__part4_suboffset) * (range_check_units_row_ratio)) + + // (range_check16_pool_offset) + kRangeCheck16PoolColumnRowExpr916Neighbor, + // ((mul_mod__carry4__part5_suboffset) * (range_check_units_row_ratio)) + + // (range_check16_pool_offset) + kRangeCheck16PoolColumnRowExpr917Neighbor, + // ((mul_mod__carry4__part6_suboffset) * (range_check_units_row_ratio)) + + // (range_check16_pool_offset) + kRangeCheck16PoolColumnRowExpr918Neighbor, + // ((mul_mod__carry5__part0_suboffset) * (range_check_units_row_ratio)) + + // (range_check16_pool_offset) + kRangeCheck16PoolColumnRowExpr919Neighbor, + // ((mul_mod__carry5__part1_suboffset) * (range_check_units_row_ratio)) + + // (range_check16_pool_offset) + kRangeCheck16PoolColumnRowExpr920Neighbor, + // ((mul_mod__carry5__part2_suboffset) * (range_check_units_row_ratio)) + + // (range_check16_pool_offset) + kRangeCheck16PoolColumnRowExpr921Neighbor, + // ((mul_mod__carry5__part3_suboffset) * (range_check_units_row_ratio)) + + // (range_check16_pool_offset) + kRangeCheck16PoolColumnRowExpr922Neighbor, + // ((mul_mod__carry5__part4_suboffset) * (range_check_units_row_ratio)) + + // (range_check16_pool_offset) + kRangeCheck16PoolColumnRowExpr923Neighbor, + // ((mul_mod__carry5__part5_suboffset) * (range_check_units_row_ratio)) + + // (range_check16_pool_offset) + kRangeCheck16PoolColumnRowExpr924Neighbor, + // ((mul_mod__carry5__part6_suboffset) * (range_check_units_row_ratio)) + + // (range_check16_pool_offset) + kRangeCheck16PoolColumnRowExpr925Neighbor, + // ((mul_mod__carry0__part0_suboffset) * (range_check_units_row_ratio)) + + // (range_check16_pool_offset) + kRangeCheck16PoolColumnRowExpr926Neighbor, + // ((mul_mod__carry0__part1_suboffset) * (range_check_units_row_ratio)) + + // (range_check16_pool_offset) + kRangeCheck16PoolColumnRowExpr927Neighbor, + // ((mul_mod__carry0__part2_suboffset) * (range_check_units_row_ratio)) + + // (range_check16_pool_offset) + kRangeCheck16PoolColumnRowExpr928Neighbor, + // ((mul_mod__carry0__part3_suboffset) * (range_check_units_row_ratio)) + + // (range_check16_pool_offset) + kRangeCheck16PoolColumnRowExpr929Neighbor, + // ((mul_mod__carry0__part4_suboffset) * (range_check_units_row_ratio)) + + // (range_check16_pool_offset) + kRangeCheck16PoolColumnRowExpr930Neighbor, + // ((mul_mod__carry0__part5_suboffset) * (range_check_units_row_ratio)) + + // (range_check16_pool_offset) + kRangeCheck16PoolColumnRowExpr931Neighbor, + // ((mul_mod__carry0__part6_suboffset) * (range_check_units_row_ratio)) + + // (range_check16_pool_offset) + kRangeCheck16PoolColumnRowExpr932Neighbor, // memory__multi_column_perm__perm__cum_prod0_offset - kMemory_MultiColumnPerm_Perm_CumProd0ColumnRowExpr747Neighbor, + kMemory_MultiColumnPerm_Perm_CumProd0ColumnRowExpr933Neighbor, // (memory_units_row_ratio) + (memory__multi_column_perm__perm__cum_prod0_offset) - kMemory_MultiColumnPerm_Perm_CumProd0ColumnRowExpr748Neighbor, + kMemory_MultiColumnPerm_Perm_CumProd0ColumnRowExpr934Neighbor, // range_check16__perm__cum_prod0_offset - kRangeCheck16_Perm_CumProd0ColumnRowExpr749Neighbor, + kRangeCheck16_Perm_CumProd0ColumnRowExpr935Neighbor, // (range_check_units_row_ratio) + (range_check16__perm__cum_prod0_offset) - kRangeCheck16_Perm_CumProd0ColumnRowExpr750Neighbor, + kRangeCheck16_Perm_CumProd0ColumnRowExpr936Neighbor, // diluted_check__permutation__cum_prod0_offset - kDilutedCheck_Permutation_CumProd0ColumnRowExpr751Neighbor, + kDilutedCheck_Permutation_CumProd0ColumnRowExpr937Neighbor, // (diluted_units_row_ratio) + (diluted_check__permutation__cum_prod0_offset) - kDilutedCheck_Permutation_CumProd0ColumnRowExpr752Neighbor, + kDilutedCheck_Permutation_CumProd0ColumnRowExpr938Neighbor, // diluted_check__cumulative_value_offset - kDilutedCheck_CumulativeValueColumnRowExpr753Neighbor, + kDilutedCheck_CumulativeValueColumnRowExpr939Neighbor, // (diluted_units_row_ratio) + (diluted_check__cumulative_value_offset) - kDilutedCheck_CumulativeValueColumnRowExpr754Neighbor, + kDilutedCheck_CumulativeValueColumnRowExpr940Neighbor, // Number of neighbors. kNumNeighbors, }; @@ -4169,6 +4776,78 @@ class CpuAirDefinition : public Air { kPoseidonPoseidonMarginPartialToFull0Cond, // Constraint 344. kPoseidonPoseidonMarginPartialToFull1Cond, // Constraint 345. kPoseidonPoseidonMarginPartialToFull2Cond, // Constraint 346. + kRangeCheck96BuiltinValueCond, // Constraint 347. + kRangeCheck96BuiltinAddrStepCond, // Constraint 348. + kRangeCheck96BuiltinInitAddrCond, // Constraint 349. + kAddModInitP0AddressCond, // Constraint 350. + kAddModStepP1AddrCond, // Constraint 351. + kAddModStepP2AddrCond, // Constraint 352. + kAddModStepP3AddrCond, // Constraint 353. + kAddModStepValuesPtrAddrCond, // Constraint 354. + kAddModStepOffsetsPtrAddrCond, // Constraint 355. + kAddModStepNAddrCond, // Constraint 356. + kAddModStepP0AddrCond, // Constraint 357. + kAddModStepP0ValueCond, // Constraint 358. + kAddModStepP1ValueCond, // Constraint 359. + kAddModStepP2ValueCond, // Constraint 360. + kAddModStepP3ValueCond, // Constraint 361. + kAddModStepValuesPtrValueCond, // Constraint 362. + kAddModStepOffsetsPtrValueCond, // Constraint 363. + kAddModStepNValueCond, // Constraint 364. + kAddModAOffset0Cond, // Constraint 365. + kAddModBOffsetCond, // Constraint 366. + kAddModCOffsetCond, // Constraint 367. + kAddModA0ValueInd0Cond, // Constraint 368. + kAddModA1ValueCond, // Constraint 369. + kAddModA2ValueCond, // Constraint 370. + kAddModA3ValueCond, // Constraint 371. + kAddModB0ValueInd0Cond, // Constraint 372. + kAddModB1ValueCond, // Constraint 373. + kAddModB2ValueCond, // Constraint 374. + kAddModB3ValueCond, // Constraint 375. + kAddModC0ValueInd0Cond, // Constraint 376. + kAddModC1ValueCond, // Constraint 377. + kAddModC2ValueCond, // Constraint 378. + kAddModC3ValueCond, // Constraint 379. + kAddModSubPBitCond, // Constraint 380. + kAddModCarry1BitCond, // Constraint 381. + kAddModCarry1SignCond, // Constraint 382. + kAddModCarry2BitCond, // Constraint 383. + kAddModCarry2SignCond, // Constraint 384. + kAddModCarry3BitCond, // Constraint 385. + kAddModCarry3SignCond, // Constraint 386. + kAddModAdditionConstraint_0Cond, // Constraint 387. + kMulModInitP0AddressCond, // Constraint 388. + kMulModStepP1AddrCond, // Constraint 389. + kMulModStepP2AddrCond, // Constraint 390. + kMulModStepP3AddrCond, // Constraint 391. + kMulModStepValuesPtrAddrCond, // Constraint 392. + kMulModStepOffsetsPtrAddrCond, // Constraint 393. + kMulModStepNAddrCond, // Constraint 394. + kMulModStepP0AddrCond, // Constraint 395. + kMulModStepP0ValueCond, // Constraint 396. + kMulModStepP1ValueCond, // Constraint 397. + kMulModStepP2ValueCond, // Constraint 398. + kMulModStepP3ValueCond, // Constraint 399. + kMulModStepValuesPtrValueCond, // Constraint 400. + kMulModStepOffsetsPtrValueCond, // Constraint 401. + kMulModStepNValueCond, // Constraint 402. + kMulModAOffset0Cond, // Constraint 403. + kMulModBOffsetCond, // Constraint 404. + kMulModCOffsetCond, // Constraint 405. + kMulModA0ValueInd0Cond, // Constraint 406. + kMulModA1ValueCond, // Constraint 407. + kMulModA2ValueCond, // Constraint 408. + kMulModA3ValueCond, // Constraint 409. + kMulModB0ValueInd0Cond, // Constraint 410. + kMulModB1ValueCond, // Constraint 411. + kMulModB2ValueCond, // Constraint 412. + kMulModB3ValueCond, // Constraint 413. + kMulModC0ValueInd0Cond, // Constraint 414. + kMulModC1ValueCond, // Constraint 415. + kMulModC2ValueCond, // Constraint 416. + kMulModC3ValueCond, // Constraint 417. + kMulModMultiplicationConstraint_0Cond, // Constraint 418. kNumConstraints, // Number of constraints. }; @@ -4207,7 +4886,48 @@ class CpuAirDefinition : public Air { kHasKeccakBuiltin ? GetSegment(mem_segment_addresses, "keccak").begin_addr : 0), poseidon_begin_addr_( kHasPoseidonBuiltin ? GetSegment(mem_segment_addresses, "poseidon").begin_addr : 0), + add_mod_begin_addr_( + kHasAddModBuiltin ? GetSegment(mem_segment_addresses, "add_mod").begin_addr : 0), + mul_mod_begin_addr_( + kHasMulModBuiltin ? GetSegment(mem_segment_addresses, "mul_mod").begin_addr : 0), dynamic_params_(ParseDynamicParams(dynamic_params)), + add_mod__a0_suboffset(dynamic_params_[kAddModA0SuboffsetDynamicParam]), + add_mod__a1_suboffset(dynamic_params_[kAddModA1SuboffsetDynamicParam]), + add_mod__a2_suboffset(dynamic_params_[kAddModA2SuboffsetDynamicParam]), + add_mod__a3_suboffset(dynamic_params_[kAddModA3SuboffsetDynamicParam]), + add_mod__a_offset_suboffset(dynamic_params_[kAddModAOffsetSuboffsetDynamicParam]), + add_mod__b0_suboffset(dynamic_params_[kAddModB0SuboffsetDynamicParam]), + add_mod__b1_suboffset(dynamic_params_[kAddModB1SuboffsetDynamicParam]), + add_mod__b2_suboffset(dynamic_params_[kAddModB2SuboffsetDynamicParam]), + add_mod__b3_suboffset(dynamic_params_[kAddModB3SuboffsetDynamicParam]), + add_mod__b_offset_suboffset(dynamic_params_[kAddModBOffsetSuboffsetDynamicParam]), + add_mod__c0_suboffset(dynamic_params_[kAddModC0SuboffsetDynamicParam]), + add_mod__c1_suboffset(dynamic_params_[kAddModC1SuboffsetDynamicParam]), + add_mod__c2_suboffset(dynamic_params_[kAddModC2SuboffsetDynamicParam]), + add_mod__c3_suboffset(dynamic_params_[kAddModC3SuboffsetDynamicParam]), + add_mod__c_offset_suboffset(dynamic_params_[kAddModCOffsetSuboffsetDynamicParam]), + add_mod__carry1_bit_column(dynamic_params_[kAddModCarry1BitColumnDynamicParam]), + add_mod__carry1_bit_offset(dynamic_params_[kAddModCarry1BitOffsetDynamicParam]), + add_mod__carry1_sign_column(dynamic_params_[kAddModCarry1SignColumnDynamicParam]), + add_mod__carry1_sign_offset(dynamic_params_[kAddModCarry1SignOffsetDynamicParam]), + add_mod__carry2_bit_column(dynamic_params_[kAddModCarry2BitColumnDynamicParam]), + add_mod__carry2_bit_offset(dynamic_params_[kAddModCarry2BitOffsetDynamicParam]), + add_mod__carry2_sign_column(dynamic_params_[kAddModCarry2SignColumnDynamicParam]), + add_mod__carry2_sign_offset(dynamic_params_[kAddModCarry2SignOffsetDynamicParam]), + add_mod__carry3_bit_column(dynamic_params_[kAddModCarry3BitColumnDynamicParam]), + add_mod__carry3_bit_offset(dynamic_params_[kAddModCarry3BitOffsetDynamicParam]), + add_mod__carry3_sign_column(dynamic_params_[kAddModCarry3SignColumnDynamicParam]), + add_mod__carry3_sign_offset(dynamic_params_[kAddModCarry3SignOffsetDynamicParam]), + add_mod__n_suboffset(dynamic_params_[kAddModNSuboffsetDynamicParam]), + add_mod__offsets_ptr_suboffset(dynamic_params_[kAddModOffsetsPtrSuboffsetDynamicParam]), + add_mod__p0_suboffset(dynamic_params_[kAddModP0SuboffsetDynamicParam]), + add_mod__p1_suboffset(dynamic_params_[kAddModP1SuboffsetDynamicParam]), + add_mod__p2_suboffset(dynamic_params_[kAddModP2SuboffsetDynamicParam]), + add_mod__p3_suboffset(dynamic_params_[kAddModP3SuboffsetDynamicParam]), + add_mod__row_ratio(dynamic_params_[kAddModRowRatioDynamicParam]), + add_mod__sub_p_bit_column(dynamic_params_[kAddModSubPBitColumnDynamicParam]), + add_mod__sub_p_bit_offset(dynamic_params_[kAddModSubPBitOffsetDynamicParam]), + add_mod__values_ptr_suboffset(dynamic_params_[kAddModValuesPtrSuboffsetDynamicParam]), bitwise__diluted_var_pool_suboffset( dynamic_params_[kBitwiseDilutedVarPoolSuboffsetDynamicParam]), bitwise__row_ratio(dynamic_params_[kBitwiseRowRatioDynamicParam]), @@ -4440,6 +5160,119 @@ class CpuAirDefinition : public Air { memory__sorted__value_column(dynamic_params_[kMemorySortedValueColumnDynamicParam]), memory__sorted__value_offset(dynamic_params_[kMemorySortedValueOffsetDynamicParam]), memory_units_row_ratio(dynamic_params_[kMemoryUnitsRowRatioDynamicParam]), + mul_mod__a0_suboffset(dynamic_params_[kMulModA0SuboffsetDynamicParam]), + mul_mod__a1_suboffset(dynamic_params_[kMulModA1SuboffsetDynamicParam]), + mul_mod__a2_suboffset(dynamic_params_[kMulModA2SuboffsetDynamicParam]), + mul_mod__a3_suboffset(dynamic_params_[kMulModA3SuboffsetDynamicParam]), + mul_mod__a_offset_suboffset(dynamic_params_[kMulModAOffsetSuboffsetDynamicParam]), + mul_mod__b0_suboffset(dynamic_params_[kMulModB0SuboffsetDynamicParam]), + mul_mod__b1_suboffset(dynamic_params_[kMulModB1SuboffsetDynamicParam]), + mul_mod__b2_suboffset(dynamic_params_[kMulModB2SuboffsetDynamicParam]), + mul_mod__b3_suboffset(dynamic_params_[kMulModB3SuboffsetDynamicParam]), + mul_mod__b_offset_suboffset(dynamic_params_[kMulModBOffsetSuboffsetDynamicParam]), + mul_mod__c0_suboffset(dynamic_params_[kMulModC0SuboffsetDynamicParam]), + mul_mod__c1_suboffset(dynamic_params_[kMulModC1SuboffsetDynamicParam]), + mul_mod__c2_suboffset(dynamic_params_[kMulModC2SuboffsetDynamicParam]), + mul_mod__c3_suboffset(dynamic_params_[kMulModC3SuboffsetDynamicParam]), + mul_mod__c_offset_suboffset(dynamic_params_[kMulModCOffsetSuboffsetDynamicParam]), + mul_mod__carry0__part0_suboffset(dynamic_params_[kMulModCarry0Part0SuboffsetDynamicParam]), + mul_mod__carry0__part1_suboffset(dynamic_params_[kMulModCarry0Part1SuboffsetDynamicParam]), + mul_mod__carry0__part2_suboffset(dynamic_params_[kMulModCarry0Part2SuboffsetDynamicParam]), + mul_mod__carry0__part3_suboffset(dynamic_params_[kMulModCarry0Part3SuboffsetDynamicParam]), + mul_mod__carry0__part4_suboffset(dynamic_params_[kMulModCarry0Part4SuboffsetDynamicParam]), + mul_mod__carry0__part5_suboffset(dynamic_params_[kMulModCarry0Part5SuboffsetDynamicParam]), + mul_mod__carry0__part6_suboffset(dynamic_params_[kMulModCarry0Part6SuboffsetDynamicParam]), + mul_mod__carry1__part0_suboffset(dynamic_params_[kMulModCarry1Part0SuboffsetDynamicParam]), + mul_mod__carry1__part1_suboffset(dynamic_params_[kMulModCarry1Part1SuboffsetDynamicParam]), + mul_mod__carry1__part2_suboffset(dynamic_params_[kMulModCarry1Part2SuboffsetDynamicParam]), + mul_mod__carry1__part3_suboffset(dynamic_params_[kMulModCarry1Part3SuboffsetDynamicParam]), + mul_mod__carry1__part4_suboffset(dynamic_params_[kMulModCarry1Part4SuboffsetDynamicParam]), + mul_mod__carry1__part5_suboffset(dynamic_params_[kMulModCarry1Part5SuboffsetDynamicParam]), + mul_mod__carry1__part6_suboffset(dynamic_params_[kMulModCarry1Part6SuboffsetDynamicParam]), + mul_mod__carry2__part0_suboffset(dynamic_params_[kMulModCarry2Part0SuboffsetDynamicParam]), + mul_mod__carry2__part1_suboffset(dynamic_params_[kMulModCarry2Part1SuboffsetDynamicParam]), + mul_mod__carry2__part2_suboffset(dynamic_params_[kMulModCarry2Part2SuboffsetDynamicParam]), + mul_mod__carry2__part3_suboffset(dynamic_params_[kMulModCarry2Part3SuboffsetDynamicParam]), + mul_mod__carry2__part4_suboffset(dynamic_params_[kMulModCarry2Part4SuboffsetDynamicParam]), + mul_mod__carry2__part5_suboffset(dynamic_params_[kMulModCarry2Part5SuboffsetDynamicParam]), + mul_mod__carry2__part6_suboffset(dynamic_params_[kMulModCarry2Part6SuboffsetDynamicParam]), + mul_mod__carry3__part0_suboffset(dynamic_params_[kMulModCarry3Part0SuboffsetDynamicParam]), + mul_mod__carry3__part1_suboffset(dynamic_params_[kMulModCarry3Part1SuboffsetDynamicParam]), + mul_mod__carry3__part2_suboffset(dynamic_params_[kMulModCarry3Part2SuboffsetDynamicParam]), + mul_mod__carry3__part3_suboffset(dynamic_params_[kMulModCarry3Part3SuboffsetDynamicParam]), + mul_mod__carry3__part4_suboffset(dynamic_params_[kMulModCarry3Part4SuboffsetDynamicParam]), + mul_mod__carry3__part5_suboffset(dynamic_params_[kMulModCarry3Part5SuboffsetDynamicParam]), + mul_mod__carry3__part6_suboffset(dynamic_params_[kMulModCarry3Part6SuboffsetDynamicParam]), + mul_mod__carry4__part0_suboffset(dynamic_params_[kMulModCarry4Part0SuboffsetDynamicParam]), + mul_mod__carry4__part1_suboffset(dynamic_params_[kMulModCarry4Part1SuboffsetDynamicParam]), + mul_mod__carry4__part2_suboffset(dynamic_params_[kMulModCarry4Part2SuboffsetDynamicParam]), + mul_mod__carry4__part3_suboffset(dynamic_params_[kMulModCarry4Part3SuboffsetDynamicParam]), + mul_mod__carry4__part4_suboffset(dynamic_params_[kMulModCarry4Part4SuboffsetDynamicParam]), + mul_mod__carry4__part5_suboffset(dynamic_params_[kMulModCarry4Part5SuboffsetDynamicParam]), + mul_mod__carry4__part6_suboffset(dynamic_params_[kMulModCarry4Part6SuboffsetDynamicParam]), + mul_mod__carry5__part0_suboffset(dynamic_params_[kMulModCarry5Part0SuboffsetDynamicParam]), + mul_mod__carry5__part1_suboffset(dynamic_params_[kMulModCarry5Part1SuboffsetDynamicParam]), + mul_mod__carry5__part2_suboffset(dynamic_params_[kMulModCarry5Part2SuboffsetDynamicParam]), + mul_mod__carry5__part3_suboffset(dynamic_params_[kMulModCarry5Part3SuboffsetDynamicParam]), + mul_mod__carry5__part4_suboffset(dynamic_params_[kMulModCarry5Part4SuboffsetDynamicParam]), + mul_mod__carry5__part5_suboffset(dynamic_params_[kMulModCarry5Part5SuboffsetDynamicParam]), + mul_mod__carry5__part6_suboffset(dynamic_params_[kMulModCarry5Part6SuboffsetDynamicParam]), + mul_mod__n_suboffset(dynamic_params_[kMulModNSuboffsetDynamicParam]), + mul_mod__offsets_ptr_suboffset(dynamic_params_[kMulModOffsetsPtrSuboffsetDynamicParam]), + mul_mod__p0_suboffset(dynamic_params_[kMulModP0SuboffsetDynamicParam]), + mul_mod__p1_suboffset(dynamic_params_[kMulModP1SuboffsetDynamicParam]), + mul_mod__p2_suboffset(dynamic_params_[kMulModP2SuboffsetDynamicParam]), + mul_mod__p3_suboffset(dynamic_params_[kMulModP3SuboffsetDynamicParam]), + mul_mod__p_multiplier0__part0_suboffset( + dynamic_params_[kMulModPMultiplier0Part0SuboffsetDynamicParam]), + mul_mod__p_multiplier0__part1_suboffset( + dynamic_params_[kMulModPMultiplier0Part1SuboffsetDynamicParam]), + mul_mod__p_multiplier0__part2_suboffset( + dynamic_params_[kMulModPMultiplier0Part2SuboffsetDynamicParam]), + mul_mod__p_multiplier0__part3_suboffset( + dynamic_params_[kMulModPMultiplier0Part3SuboffsetDynamicParam]), + mul_mod__p_multiplier0__part4_suboffset( + dynamic_params_[kMulModPMultiplier0Part4SuboffsetDynamicParam]), + mul_mod__p_multiplier0__part5_suboffset( + dynamic_params_[kMulModPMultiplier0Part5SuboffsetDynamicParam]), + mul_mod__p_multiplier1__part0_suboffset( + dynamic_params_[kMulModPMultiplier1Part0SuboffsetDynamicParam]), + mul_mod__p_multiplier1__part1_suboffset( + dynamic_params_[kMulModPMultiplier1Part1SuboffsetDynamicParam]), + mul_mod__p_multiplier1__part2_suboffset( + dynamic_params_[kMulModPMultiplier1Part2SuboffsetDynamicParam]), + mul_mod__p_multiplier1__part3_suboffset( + dynamic_params_[kMulModPMultiplier1Part3SuboffsetDynamicParam]), + mul_mod__p_multiplier1__part4_suboffset( + dynamic_params_[kMulModPMultiplier1Part4SuboffsetDynamicParam]), + mul_mod__p_multiplier1__part5_suboffset( + dynamic_params_[kMulModPMultiplier1Part5SuboffsetDynamicParam]), + mul_mod__p_multiplier2__part0_suboffset( + dynamic_params_[kMulModPMultiplier2Part0SuboffsetDynamicParam]), + mul_mod__p_multiplier2__part1_suboffset( + dynamic_params_[kMulModPMultiplier2Part1SuboffsetDynamicParam]), + mul_mod__p_multiplier2__part2_suboffset( + dynamic_params_[kMulModPMultiplier2Part2SuboffsetDynamicParam]), + mul_mod__p_multiplier2__part3_suboffset( + dynamic_params_[kMulModPMultiplier2Part3SuboffsetDynamicParam]), + mul_mod__p_multiplier2__part4_suboffset( + dynamic_params_[kMulModPMultiplier2Part4SuboffsetDynamicParam]), + mul_mod__p_multiplier2__part5_suboffset( + dynamic_params_[kMulModPMultiplier2Part5SuboffsetDynamicParam]), + mul_mod__p_multiplier3__part0_suboffset( + dynamic_params_[kMulModPMultiplier3Part0SuboffsetDynamicParam]), + mul_mod__p_multiplier3__part1_suboffset( + dynamic_params_[kMulModPMultiplier3Part1SuboffsetDynamicParam]), + mul_mod__p_multiplier3__part2_suboffset( + dynamic_params_[kMulModPMultiplier3Part2SuboffsetDynamicParam]), + mul_mod__p_multiplier3__part3_suboffset( + dynamic_params_[kMulModPMultiplier3Part3SuboffsetDynamicParam]), + mul_mod__p_multiplier3__part4_suboffset( + dynamic_params_[kMulModPMultiplier3Part4SuboffsetDynamicParam]), + mul_mod__p_multiplier3__part5_suboffset( + dynamic_params_[kMulModPMultiplier3Part5SuboffsetDynamicParam]), + mul_mod__row_ratio(dynamic_params_[kMulModRowRatioDynamicParam]), + mul_mod__values_ptr_suboffset(dynamic_params_[kMulModValuesPtrSuboffsetDynamicParam]), num_columns_first(dynamic_params_[kNumColumnsFirstDynamicParam]), num_columns_second(dynamic_params_[kNumColumnsSecondDynamicParam]), orig__public_memory_suboffset(dynamic_params_[kOrigPublicMemorySuboffsetDynamicParam]), @@ -4526,18 +5359,36 @@ class CpuAirDefinition : public Air { range_check16__sorted_offset(dynamic_params_[kRangeCheck16SortedOffsetDynamicParam]), range_check16_pool_column(dynamic_params_[kRangeCheck16PoolColumnDynamicParam]), range_check16_pool_offset(dynamic_params_[kRangeCheck16PoolOffsetDynamicParam]), + range_check96_builtin__inner_range_check0_suboffset( + dynamic_params_[kRangeCheck96BuiltinInnerRangeCheck0SuboffsetDynamicParam]), + range_check96_builtin__inner_range_check1_suboffset( + dynamic_params_[kRangeCheck96BuiltinInnerRangeCheck1SuboffsetDynamicParam]), + range_check96_builtin__inner_range_check2_suboffset( + dynamic_params_[kRangeCheck96BuiltinInnerRangeCheck2SuboffsetDynamicParam]), + range_check96_builtin__inner_range_check3_suboffset( + dynamic_params_[kRangeCheck96BuiltinInnerRangeCheck3SuboffsetDynamicParam]), + range_check96_builtin__inner_range_check4_suboffset( + dynamic_params_[kRangeCheck96BuiltinInnerRangeCheck4SuboffsetDynamicParam]), + range_check96_builtin__inner_range_check5_suboffset( + dynamic_params_[kRangeCheck96BuiltinInnerRangeCheck5SuboffsetDynamicParam]), + range_check96_builtin__mem_suboffset( + dynamic_params_[kRangeCheck96BuiltinMemSuboffsetDynamicParam]), + range_check96_builtin_row_ratio(dynamic_params_[kRangeCheck96BuiltinRowRatioDynamicParam]), range_check_builtin__inner_range_check_suboffset( dynamic_params_[kRangeCheckBuiltinInnerRangeCheckSuboffsetDynamicParam]), range_check_builtin__mem_suboffset( dynamic_params_[kRangeCheckBuiltinMemSuboffsetDynamicParam]), range_check_builtin_row_ratio(dynamic_params_[kRangeCheckBuiltinRowRatioDynamicParam]), range_check_units_row_ratio(dynamic_params_[kRangeCheckUnitsRowRatioDynamicParam]), + uses_add_mod_builtin(dynamic_params_[kUsesAddModBuiltinDynamicParam]), uses_bitwise_builtin(dynamic_params_[kUsesBitwiseBuiltinDynamicParam]), uses_ec_op_builtin(dynamic_params_[kUsesEcOpBuiltinDynamicParam]), uses_ecdsa_builtin(dynamic_params_[kUsesEcdsaBuiltinDynamicParam]), uses_keccak_builtin(dynamic_params_[kUsesKeccakBuiltinDynamicParam]), + uses_mul_mod_builtin(dynamic_params_[kUsesMulModBuiltinDynamicParam]), uses_pedersen_builtin(dynamic_params_[kUsesPedersenBuiltinDynamicParam]), uses_poseidon_builtin(dynamic_params_[kUsesPoseidonBuiltinDynamicParam]), + uses_range_check96_builtin(dynamic_params_[kUsesRangeCheck96BuiltinDynamicParam]), uses_range_check_builtin(dynamic_params_[kUsesRangeCheckBuiltinDynamicParam]), range_check_min_(rc_min), range_check_max_(rc_max), @@ -4588,9 +5439,54 @@ class CpuAirDefinition : public Air { const CompileTimeOptional initial_poseidon_addr_ = FieldElementT::FromUint(ExtractHiddenMemberValue(poseidon_begin_addr_)); + const CompileTimeOptional add_mod_begin_addr_; + const CompileTimeOptional add_mod__initial_mod_addr_ = + FieldElementT::FromUint(ExtractHiddenMemberValue(add_mod_begin_addr_)); + + const CompileTimeOptional mul_mod_begin_addr_; + const CompileTimeOptional mul_mod__initial_mod_addr_ = + FieldElementT::FromUint(ExtractHiddenMemberValue(mul_mod_begin_addr_)); + // Flat vector of dynamic_params, used for efficient computation of the composition polynomial. // See ParseDynamicParams. CompileTimeOptional, kIsDynamicAir> dynamic_params_; + const uint64_t& add_mod__a0_suboffset; + const uint64_t& add_mod__a1_suboffset; + const uint64_t& add_mod__a2_suboffset; + const uint64_t& add_mod__a3_suboffset; + const uint64_t& add_mod__a_offset_suboffset; + const uint64_t& add_mod__b0_suboffset; + const uint64_t& add_mod__b1_suboffset; + const uint64_t& add_mod__b2_suboffset; + const uint64_t& add_mod__b3_suboffset; + const uint64_t& add_mod__b_offset_suboffset; + const uint64_t& add_mod__c0_suboffset; + const uint64_t& add_mod__c1_suboffset; + const uint64_t& add_mod__c2_suboffset; + const uint64_t& add_mod__c3_suboffset; + const uint64_t& add_mod__c_offset_suboffset; + const uint64_t& add_mod__carry1_bit_column; + const uint64_t& add_mod__carry1_bit_offset; + const uint64_t& add_mod__carry1_sign_column; + const uint64_t& add_mod__carry1_sign_offset; + const uint64_t& add_mod__carry2_bit_column; + const uint64_t& add_mod__carry2_bit_offset; + const uint64_t& add_mod__carry2_sign_column; + const uint64_t& add_mod__carry2_sign_offset; + const uint64_t& add_mod__carry3_bit_column; + const uint64_t& add_mod__carry3_bit_offset; + const uint64_t& add_mod__carry3_sign_column; + const uint64_t& add_mod__carry3_sign_offset; + const uint64_t& add_mod__n_suboffset; + const uint64_t& add_mod__offsets_ptr_suboffset; + const uint64_t& add_mod__p0_suboffset; + const uint64_t& add_mod__p1_suboffset; + const uint64_t& add_mod__p2_suboffset; + const uint64_t& add_mod__p3_suboffset; + const uint64_t& add_mod__row_ratio; + const uint64_t& add_mod__sub_p_bit_column; + const uint64_t& add_mod__sub_p_bit_offset; + const uint64_t& add_mod__values_ptr_suboffset; const uint64_t& bitwise__diluted_var_pool_suboffset; const uint64_t& bitwise__row_ratio; const uint64_t& bitwise__trim_unpacking192_suboffset; @@ -4734,6 +5630,95 @@ class CpuAirDefinition : public Air { const uint64_t& memory__sorted__value_column; const uint64_t& memory__sorted__value_offset; const uint64_t& memory_units_row_ratio; + const uint64_t& mul_mod__a0_suboffset; + const uint64_t& mul_mod__a1_suboffset; + const uint64_t& mul_mod__a2_suboffset; + const uint64_t& mul_mod__a3_suboffset; + const uint64_t& mul_mod__a_offset_suboffset; + const uint64_t& mul_mod__b0_suboffset; + const uint64_t& mul_mod__b1_suboffset; + const uint64_t& mul_mod__b2_suboffset; + const uint64_t& mul_mod__b3_suboffset; + const uint64_t& mul_mod__b_offset_suboffset; + const uint64_t& mul_mod__c0_suboffset; + const uint64_t& mul_mod__c1_suboffset; + const uint64_t& mul_mod__c2_suboffset; + const uint64_t& mul_mod__c3_suboffset; + const uint64_t& mul_mod__c_offset_suboffset; + const uint64_t& mul_mod__carry0__part0_suboffset; + const uint64_t& mul_mod__carry0__part1_suboffset; + const uint64_t& mul_mod__carry0__part2_suboffset; + const uint64_t& mul_mod__carry0__part3_suboffset; + const uint64_t& mul_mod__carry0__part4_suboffset; + const uint64_t& mul_mod__carry0__part5_suboffset; + const uint64_t& mul_mod__carry0__part6_suboffset; + const uint64_t& mul_mod__carry1__part0_suboffset; + const uint64_t& mul_mod__carry1__part1_suboffset; + const uint64_t& mul_mod__carry1__part2_suboffset; + const uint64_t& mul_mod__carry1__part3_suboffset; + const uint64_t& mul_mod__carry1__part4_suboffset; + const uint64_t& mul_mod__carry1__part5_suboffset; + const uint64_t& mul_mod__carry1__part6_suboffset; + const uint64_t& mul_mod__carry2__part0_suboffset; + const uint64_t& mul_mod__carry2__part1_suboffset; + const uint64_t& mul_mod__carry2__part2_suboffset; + const uint64_t& mul_mod__carry2__part3_suboffset; + const uint64_t& mul_mod__carry2__part4_suboffset; + const uint64_t& mul_mod__carry2__part5_suboffset; + const uint64_t& mul_mod__carry2__part6_suboffset; + const uint64_t& mul_mod__carry3__part0_suboffset; + const uint64_t& mul_mod__carry3__part1_suboffset; + const uint64_t& mul_mod__carry3__part2_suboffset; + const uint64_t& mul_mod__carry3__part3_suboffset; + const uint64_t& mul_mod__carry3__part4_suboffset; + const uint64_t& mul_mod__carry3__part5_suboffset; + const uint64_t& mul_mod__carry3__part6_suboffset; + const uint64_t& mul_mod__carry4__part0_suboffset; + const uint64_t& mul_mod__carry4__part1_suboffset; + const uint64_t& mul_mod__carry4__part2_suboffset; + const uint64_t& mul_mod__carry4__part3_suboffset; + const uint64_t& mul_mod__carry4__part4_suboffset; + const uint64_t& mul_mod__carry4__part5_suboffset; + const uint64_t& mul_mod__carry4__part6_suboffset; + const uint64_t& mul_mod__carry5__part0_suboffset; + const uint64_t& mul_mod__carry5__part1_suboffset; + const uint64_t& mul_mod__carry5__part2_suboffset; + const uint64_t& mul_mod__carry5__part3_suboffset; + const uint64_t& mul_mod__carry5__part4_suboffset; + const uint64_t& mul_mod__carry5__part5_suboffset; + const uint64_t& mul_mod__carry5__part6_suboffset; + const uint64_t& mul_mod__n_suboffset; + const uint64_t& mul_mod__offsets_ptr_suboffset; + const uint64_t& mul_mod__p0_suboffset; + const uint64_t& mul_mod__p1_suboffset; + const uint64_t& mul_mod__p2_suboffset; + const uint64_t& mul_mod__p3_suboffset; + const uint64_t& mul_mod__p_multiplier0__part0_suboffset; + const uint64_t& mul_mod__p_multiplier0__part1_suboffset; + const uint64_t& mul_mod__p_multiplier0__part2_suboffset; + const uint64_t& mul_mod__p_multiplier0__part3_suboffset; + const uint64_t& mul_mod__p_multiplier0__part4_suboffset; + const uint64_t& mul_mod__p_multiplier0__part5_suboffset; + const uint64_t& mul_mod__p_multiplier1__part0_suboffset; + const uint64_t& mul_mod__p_multiplier1__part1_suboffset; + const uint64_t& mul_mod__p_multiplier1__part2_suboffset; + const uint64_t& mul_mod__p_multiplier1__part3_suboffset; + const uint64_t& mul_mod__p_multiplier1__part4_suboffset; + const uint64_t& mul_mod__p_multiplier1__part5_suboffset; + const uint64_t& mul_mod__p_multiplier2__part0_suboffset; + const uint64_t& mul_mod__p_multiplier2__part1_suboffset; + const uint64_t& mul_mod__p_multiplier2__part2_suboffset; + const uint64_t& mul_mod__p_multiplier2__part3_suboffset; + const uint64_t& mul_mod__p_multiplier2__part4_suboffset; + const uint64_t& mul_mod__p_multiplier2__part5_suboffset; + const uint64_t& mul_mod__p_multiplier3__part0_suboffset; + const uint64_t& mul_mod__p_multiplier3__part1_suboffset; + const uint64_t& mul_mod__p_multiplier3__part2_suboffset; + const uint64_t& mul_mod__p_multiplier3__part3_suboffset; + const uint64_t& mul_mod__p_multiplier3__part4_suboffset; + const uint64_t& mul_mod__p_multiplier3__part5_suboffset; + const uint64_t& mul_mod__row_ratio; + const uint64_t& mul_mod__values_ptr_suboffset; const uint64_t& num_columns_first; const uint64_t& num_columns_second; const uint64_t& orig__public_memory_suboffset; @@ -4783,16 +5768,27 @@ class CpuAirDefinition : public Air { const uint64_t& range_check16__sorted_offset; const uint64_t& range_check16_pool_column; const uint64_t& range_check16_pool_offset; + const uint64_t& range_check96_builtin__inner_range_check0_suboffset; + const uint64_t& range_check96_builtin__inner_range_check1_suboffset; + const uint64_t& range_check96_builtin__inner_range_check2_suboffset; + const uint64_t& range_check96_builtin__inner_range_check3_suboffset; + const uint64_t& range_check96_builtin__inner_range_check4_suboffset; + const uint64_t& range_check96_builtin__inner_range_check5_suboffset; + const uint64_t& range_check96_builtin__mem_suboffset; + const uint64_t& range_check96_builtin_row_ratio; const uint64_t& range_check_builtin__inner_range_check_suboffset; const uint64_t& range_check_builtin__mem_suboffset; const uint64_t& range_check_builtin_row_ratio; const uint64_t& range_check_units_row_ratio; + const uint64_t& uses_add_mod_builtin; const uint64_t& uses_bitwise_builtin; const uint64_t& uses_ec_op_builtin; const uint64_t& uses_ecdsa_builtin; const uint64_t& uses_keccak_builtin; + const uint64_t& uses_mul_mod_builtin; const uint64_t& uses_pedersen_builtin; const uint64_t& uses_poseidon_builtin; + const uint64_t& uses_range_check96_builtin; const uint64_t& uses_range_check_builtin; const FieldElementT range_check_min_; @@ -4811,6 +5807,10 @@ class CpuAirDefinition : public Air { FieldElementT::Uninitialized(); CompileTimeOptional diluted_check__interaction_alpha_ = FieldElementT::Uninitialized(); + CompileTimeOptional add_mod__interaction_elm_ = + FieldElementT::Uninitialized(); + CompileTimeOptional mul_mod__interaction_elm_ = + FieldElementT::Uninitialized(); FieldElementT memory__multi_column_perm__perm__public_memory_prod_ = FieldElementT::Uninitialized(); diff --git a/src/starkware/air/cpu/board/cpu_air_definition11.inl b/src/starkware/air/cpu/board/cpu_air_definition11.inl index 01fdcbe..df6f74c 100755 --- a/src/starkware/air/cpu/board/cpu_air_definition11.inl +++ b/src/starkware/air/cpu/board/cpu_air_definition11.inl @@ -29,6 +29,8 @@ CpuAirDefinition::CreateCompositionPolynomial( const FieldElementT& gen = trace_generator.As(); const std::vector point_exponents = { + uint64_t( + (((uses_add_mod_builtin) != (0)) ? (SafeDiv(trace_length_, add_mod__row_ratio)) : 0)), uint64_t( (((uses_bitwise_builtin) != (0)) ? (SafeDiv((4) * (trace_length_), bitwise__row_ratio)) : 0)), @@ -74,6 +76,8 @@ CpuAirDefinition::CreateCompositionPolynomial( : 0)), uint64_t(SafeDiv(trace_length_, memory_units_row_ratio)), uint64_t(SafeDiv(trace_length_, (8) * (memory_units_row_ratio))), + uint64_t( + (((uses_mul_mod_builtin) != (0)) ? (SafeDiv(trace_length_, mul_mod__row_ratio)) : 0)), uint64_t( (((uses_pedersen_builtin) != (0)) ? (SafeDiv((512) * (trace_length_), pedersen_builtin_row_ratio)) @@ -99,6 +103,10 @@ CpuAirDefinition::CreateCompositionPolynomial( : 0)), uint64_t( (((uses_poseidon_builtin) != (0)) ? (SafeDiv(trace_length_, poseidon__row_ratio)) : 0)), + uint64_t( + (((uses_range_check96_builtin) != (0)) + ? (SafeDiv(trace_length_, range_check96_builtin_row_ratio)) + : 0)), uint64_t( (((uses_range_check_builtin) != (0)) ? (SafeDiv(trace_length_, range_check_builtin_row_ratio)) @@ -5012,7 +5020,13 @@ CpuAirDefinition::CreateCompositionPolynomial( : 0)), uint64_t( (((uses_poseidon_builtin) != (0)) ? ((trace_length_) - (SafeDiv(poseidon__row_ratio, 2))) - : 0))}; + : 0)), + uint64_t( + (((uses_range_check96_builtin) != (0)) + ? ((trace_length_) - (range_check96_builtin_row_ratio)) + : 0)), + uint64_t((((uses_add_mod_builtin) != (0)) ? ((trace_length_) - (add_mod__row_ratio)) : 0)), + uint64_t((((uses_mul_mod_builtin) != (0)) ? ((trace_length_) - (mul_mod__row_ratio)) : 0))}; BuildAutoPeriodicColumns(gen, &builder); @@ -5216,6 +5230,8 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( size_t period; std::vector> precomp_domains = { + FieldElementT::UninitializedVector( + (((uses_add_mod_builtin) != (0)) ? (add_mod__row_ratio) : 0)), FieldElementT::UninitializedVector( (((uses_bitwise_builtin) != (0)) ? (SafeDiv(bitwise__row_ratio, 4)) : 0)), FieldElementT::UninitializedVector( @@ -5474,6 +5490,8 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( (((uses_keccak_builtin) != (0)) ? ((keccak__row_ratio)*16) : 0)), FieldElementT::UninitializedVector(memory_units_row_ratio), FieldElementT::UninitializedVector((memory_units_row_ratio)*8), + FieldElementT::UninitializedVector( + (((uses_mul_mod_builtin) != (0)) ? (mul_mod__row_ratio) : 0)), FieldElementT::UninitializedVector( (((uses_pedersen_builtin) != (0)) ? (SafeDiv(pedersen_builtin_row_ratio, 512)) : 0)), FieldElementT::UninitializedVector( @@ -5506,30 +5524,33 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( (((uses_poseidon_builtin) != (0)) ? (poseidon__row_ratio) : 0)), FieldElementT::UninitializedVector( (((uses_poseidon_builtin) != (0)) ? (poseidon__row_ratio) : 0)), + FieldElementT::UninitializedVector( + (((uses_range_check96_builtin) != (0)) ? (range_check96_builtin_row_ratio) : 0)), FieldElementT::UninitializedVector( (((uses_range_check_builtin) != (0)) ? (range_check_builtin_row_ratio) : 0)), FieldElementT::UninitializedVector(range_check_units_row_ratio), }; - period = (((uses_bitwise_builtin) != (0)) ? (SafeDiv(bitwise__row_ratio, 4)) : 0); + period = (((uses_add_mod_builtin) != (0)) ? (add_mod__row_ratio) : 0); ASSERT_RELEASE(period < kPeriodUpperBound, "Precomp evals: large dynamic size."); task_manager.ParallelFor( period, [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { - precomp_domains[0][i] = (point_powers[0][i & ((SafeDiv(bitwise__row_ratio, 4)) - (1))]) - - (FieldElementT::One()); + precomp_domains[0][i] = + (point_powers[0][i & ((add_mod__row_ratio) - (1))]) - (FieldElementT::One()); } }, period, kTaskSize); - period = (((uses_bitwise_builtin) != (0)) ? (bitwise__row_ratio) : 0); + period = (((uses_bitwise_builtin) != (0)) ? (SafeDiv(bitwise__row_ratio, 4)) : 0); ASSERT_RELEASE(period < kPeriodUpperBound, "Precomp evals: large dynamic size."); task_manager.ParallelFor( period, [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { - precomp_domains[1][i] = (point_powers[1][i & ((bitwise__row_ratio) - (1))]) - (shifts[0]); + precomp_domains[1][i] = (point_powers[1][i & ((SafeDiv(bitwise__row_ratio, 4)) - (1))]) - + (FieldElementT::One()); } }, period, kTaskSize); @@ -5540,8 +5561,7 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( period, [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { - precomp_domains[2][i] = - (point_powers[1][i & ((bitwise__row_ratio) - (1))]) - (FieldElementT::One()); + precomp_domains[2][i] = (point_powers[2][i & ((bitwise__row_ratio) - (1))]) - (shifts[0]); } }, period, kTaskSize); @@ -5553,46 +5573,46 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { precomp_domains[3][i] = - ((point_powers[1][i & ((bitwise__row_ratio) - (1))]) - (shifts[1])) * - ((point_powers[1][i & ((bitwise__row_ratio) - (1))]) - (shifts[2])) * - ((point_powers[1][i & ((bitwise__row_ratio) - (1))]) - (shifts[3])) * - ((point_powers[1][i & ((bitwise__row_ratio) - (1))]) - (shifts[4])) * - ((point_powers[1][i & ((bitwise__row_ratio) - (1))]) - (shifts[5])) * - ((point_powers[1][i & ((bitwise__row_ratio) - (1))]) - (shifts[6])) * - ((point_powers[1][i & ((bitwise__row_ratio) - (1))]) - (shifts[7])) * - ((point_powers[1][i & ((bitwise__row_ratio) - (1))]) - (shifts[8])) * - ((point_powers[1][i & ((bitwise__row_ratio) - (1))]) - (shifts[9])) * - ((point_powers[1][i & ((bitwise__row_ratio) - (1))]) - (shifts[10])) * - ((point_powers[1][i & ((bitwise__row_ratio) - (1))]) - (shifts[11])) * - ((point_powers[1][i & ((bitwise__row_ratio) - (1))]) - (shifts[12])) * - ((point_powers[1][i & ((bitwise__row_ratio) - (1))]) - (shifts[13])) * - ((point_powers[1][i & ((bitwise__row_ratio) - (1))]) - (shifts[14])) * - ((point_powers[1][i & ((bitwise__row_ratio) - (1))]) - (shifts[15])) * - (precomp_domains[2][i & (bitwise__row_ratio - 1)]); + (point_powers[2][i & ((bitwise__row_ratio) - (1))]) - (FieldElementT::One()); } }, period, kTaskSize); - period = cpu_component_step; + period = (((uses_bitwise_builtin) != (0)) ? (bitwise__row_ratio) : 0); ASSERT_RELEASE(period < kPeriodUpperBound, "Precomp evals: large dynamic size."); task_manager.ParallelFor( period, [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { precomp_domains[4][i] = - (point_powers[2][i & ((cpu_component_step) - (1))]) - (FieldElementT::One()); + ((point_powers[2][i & ((bitwise__row_ratio) - (1))]) - (shifts[1])) * + ((point_powers[2][i & ((bitwise__row_ratio) - (1))]) - (shifts[2])) * + ((point_powers[2][i & ((bitwise__row_ratio) - (1))]) - (shifts[3])) * + ((point_powers[2][i & ((bitwise__row_ratio) - (1))]) - (shifts[4])) * + ((point_powers[2][i & ((bitwise__row_ratio) - (1))]) - (shifts[5])) * + ((point_powers[2][i & ((bitwise__row_ratio) - (1))]) - (shifts[6])) * + ((point_powers[2][i & ((bitwise__row_ratio) - (1))]) - (shifts[7])) * + ((point_powers[2][i & ((bitwise__row_ratio) - (1))]) - (shifts[8])) * + ((point_powers[2][i & ((bitwise__row_ratio) - (1))]) - (shifts[9])) * + ((point_powers[2][i & ((bitwise__row_ratio) - (1))]) - (shifts[10])) * + ((point_powers[2][i & ((bitwise__row_ratio) - (1))]) - (shifts[11])) * + ((point_powers[2][i & ((bitwise__row_ratio) - (1))]) - (shifts[12])) * + ((point_powers[2][i & ((bitwise__row_ratio) - (1))]) - (shifts[13])) * + ((point_powers[2][i & ((bitwise__row_ratio) - (1))]) - (shifts[14])) * + ((point_powers[2][i & ((bitwise__row_ratio) - (1))]) - (shifts[15])) * + (precomp_domains[3][i & (bitwise__row_ratio - 1)]); } }, period, kTaskSize); - period = (cpu_component_step)*16; + period = cpu_component_step; ASSERT_RELEASE(period < kPeriodUpperBound, "Precomp evals: large dynamic size."); task_manager.ParallelFor( period, [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { precomp_domains[5][i] = - (point_powers[3][i & (((16) * (cpu_component_step)) - (1))]) - (shifts[16]); + (point_powers[3][i & ((cpu_component_step) - (1))]) - (FieldElementT::One()); } }, period, kTaskSize); @@ -5604,44 +5624,44 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { precomp_domains[6][i] = - (point_powers[3][i & (((16) * (cpu_component_step)) - (1))]) - (FieldElementT::One()); + (point_powers[4][i & (((16) * (cpu_component_step)) - (1))]) - (shifts[16]); } }, period, kTaskSize); - period = diluted_units_row_ratio; + period = (cpu_component_step)*16; ASSERT_RELEASE(period < kPeriodUpperBound, "Precomp evals: large dynamic size."); task_manager.ParallelFor( period, [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { precomp_domains[7][i] = - (point_powers[4][i & ((diluted_units_row_ratio) - (1))]) - (FieldElementT::One()); + (point_powers[4][i & (((16) * (cpu_component_step)) - (1))]) - (FieldElementT::One()); } }, period, kTaskSize); - period = (((uses_ec_op_builtin) != (0)) ? (SafeDiv(ec_op_builtin_row_ratio, 256)) : 0); + period = diluted_units_row_ratio; ASSERT_RELEASE(period < kPeriodUpperBound, "Precomp evals: large dynamic size."); task_manager.ParallelFor( period, [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { precomp_domains[8][i] = - (point_powers[5][i & ((SafeDiv(ec_op_builtin_row_ratio, 256)) - (1))]) - - (FieldElementT::One()); + (point_powers[5][i & ((diluted_units_row_ratio) - (1))]) - (FieldElementT::One()); } }, period, kTaskSize); - period = (((uses_ec_op_builtin) != (0)) ? (ec_op_builtin_row_ratio) : 0); + period = (((uses_ec_op_builtin) != (0)) ? (SafeDiv(ec_op_builtin_row_ratio, 256)) : 0); ASSERT_RELEASE(period < kPeriodUpperBound, "Precomp evals: large dynamic size."); task_manager.ParallelFor( period, [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { precomp_domains[9][i] = - (point_powers[6][i & ((ec_op_builtin_row_ratio) - (1))]) - (FieldElementT::One()); + (point_powers[6][i & ((SafeDiv(ec_op_builtin_row_ratio, 256)) - (1))]) - + (FieldElementT::One()); } }, period, kTaskSize); @@ -5653,7 +5673,7 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { precomp_domains[10][i] = - (point_powers[6][i & ((ec_op_builtin_row_ratio) - (1))]) - (shifts[17]); + (point_powers[7][i & ((ec_op_builtin_row_ratio) - (1))]) - (FieldElementT::One()); } }, period, kTaskSize); @@ -5665,45 +5685,45 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { precomp_domains[11][i] = - (point_powers[6][i & ((ec_op_builtin_row_ratio) - (1))]) - (shifts[18]); + (point_powers[7][i & ((ec_op_builtin_row_ratio) - (1))]) - (shifts[17]); } }, period, kTaskSize); - period = (((uses_ecdsa_builtin) != (0)) ? (SafeDiv(ecdsa_builtin_row_ratio, 512)) : 0); + period = (((uses_ec_op_builtin) != (0)) ? (ec_op_builtin_row_ratio) : 0); ASSERT_RELEASE(period < kPeriodUpperBound, "Precomp evals: large dynamic size."); task_manager.ParallelFor( period, [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { precomp_domains[12][i] = - (point_powers[7][i & ((SafeDiv(ecdsa_builtin_row_ratio, 512)) - (1))]) - - (FieldElementT::One()); + (point_powers[7][i & ((ec_op_builtin_row_ratio) - (1))]) - (shifts[18]); } }, period, kTaskSize); - period = (((uses_ecdsa_builtin) != (0)) ? (SafeDiv(ecdsa_builtin_row_ratio, 256)) : 0); + period = (((uses_ecdsa_builtin) != (0)) ? (SafeDiv(ecdsa_builtin_row_ratio, 512)) : 0); ASSERT_RELEASE(period < kPeriodUpperBound, "Precomp evals: large dynamic size."); task_manager.ParallelFor( period, [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { precomp_domains[13][i] = - (point_powers[8][i & ((SafeDiv(ecdsa_builtin_row_ratio, 256)) - (1))]) - + (point_powers[8][i & ((SafeDiv(ecdsa_builtin_row_ratio, 512)) - (1))]) - (FieldElementT::One()); } }, period, kTaskSize); - period = (((uses_ecdsa_builtin) != (0)) ? (SafeDiv(ecdsa_builtin_row_ratio, 2)) : 0); + period = (((uses_ecdsa_builtin) != (0)) ? (SafeDiv(ecdsa_builtin_row_ratio, 256)) : 0); ASSERT_RELEASE(period < kPeriodUpperBound, "Precomp evals: large dynamic size."); task_manager.ParallelFor( period, [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { precomp_domains[14][i] = - (point_powers[9][i & ((SafeDiv(ecdsa_builtin_row_ratio, 2)) - (1))]) - (shifts[19]); + (point_powers[9][i & ((SafeDiv(ecdsa_builtin_row_ratio, 256)) - (1))]) - + (FieldElementT::One()); } }, period, kTaskSize); @@ -5715,7 +5735,7 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { precomp_domains[15][i] = - (point_powers[9][i & ((SafeDiv(ecdsa_builtin_row_ratio, 2)) - (1))]) - (shifts[20]); + (point_powers[10][i & ((SafeDiv(ecdsa_builtin_row_ratio, 2)) - (1))]) - (shifts[19]); } }, period, kTaskSize); @@ -5727,20 +5747,20 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { precomp_domains[16][i] = - (point_powers[9][i & ((SafeDiv(ecdsa_builtin_row_ratio, 2)) - (1))]) - - (FieldElementT::One()); + (point_powers[10][i & ((SafeDiv(ecdsa_builtin_row_ratio, 2)) - (1))]) - (shifts[20]); } }, period, kTaskSize); - period = (((uses_ecdsa_builtin) != (0)) ? (ecdsa_builtin_row_ratio) : 0); + period = (((uses_ecdsa_builtin) != (0)) ? (SafeDiv(ecdsa_builtin_row_ratio, 2)) : 0); ASSERT_RELEASE(period < kPeriodUpperBound, "Precomp evals: large dynamic size."); task_manager.ParallelFor( period, [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { precomp_domains[17][i] = - (point_powers[10][i & ((ecdsa_builtin_row_ratio) - (1))]) - (shifts[19]); + (point_powers[10][i & ((SafeDiv(ecdsa_builtin_row_ratio, 2)) - (1))]) - + (FieldElementT::One()); } }, period, kTaskSize); @@ -5752,7 +5772,7 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { precomp_domains[18][i] = - (point_powers[10][i & ((ecdsa_builtin_row_ratio) - (1))]) - (shifts[20]); + (point_powers[11][i & ((ecdsa_builtin_row_ratio) - (1))]) - (shifts[19]); } }, period, kTaskSize); @@ -5764,32 +5784,31 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { precomp_domains[19][i] = - (point_powers[10][i & ((ecdsa_builtin_row_ratio) - (1))]) - (FieldElementT::One()); + (point_powers[11][i & ((ecdsa_builtin_row_ratio) - (1))]) - (shifts[20]); } }, period, kTaskSize); - period = (((uses_keccak_builtin) != (0)) ? (SafeDiv(keccak__row_ratio, 4096)) : 0); + period = (((uses_ecdsa_builtin) != (0)) ? (ecdsa_builtin_row_ratio) : 0); ASSERT_RELEASE(period < kPeriodUpperBound, "Precomp evals: large dynamic size."); task_manager.ParallelFor( period, [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { precomp_domains[20][i] = - (point_powers[11][i & ((SafeDiv(keccak__row_ratio, 4096)) - (1))]) - - (FieldElementT::One()); + (point_powers[11][i & ((ecdsa_builtin_row_ratio) - (1))]) - (FieldElementT::One()); } }, period, kTaskSize); - period = (((uses_keccak_builtin) != (0)) ? (SafeDiv(keccak__row_ratio, 128)) : 0); + period = (((uses_keccak_builtin) != (0)) ? (SafeDiv(keccak__row_ratio, 4096)) : 0); ASSERT_RELEASE(period < kPeriodUpperBound, "Precomp evals: large dynamic size."); task_manager.ParallelFor( period, [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { precomp_domains[21][i] = - (point_powers[12][i & ((SafeDiv(keccak__row_ratio, 128)) - (1))]) - + (point_powers[12][i & ((SafeDiv(keccak__row_ratio, 4096)) - (1))]) - (FieldElementT::One()); } }, @@ -5802,41 +5821,34 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { precomp_domains[22][i] = - ((point_powers[12][i & ((SafeDiv(keccak__row_ratio, 128)) - (1))]) - (shifts[21])) * - (precomp_domains[21][i & (SafeDiv(keccak__row_ratio, 128) - 1)]); + (point_powers[13][i & ((SafeDiv(keccak__row_ratio, 128)) - (1))]) - + (FieldElementT::One()); } }, period, kTaskSize); - period = (((uses_keccak_builtin) != (0)) ? (SafeDiv(keccak__row_ratio, 16)) : 0); + period = (((uses_keccak_builtin) != (0)) ? (SafeDiv(keccak__row_ratio, 128)) : 0); ASSERT_RELEASE(period < kPeriodUpperBound, "Precomp evals: large dynamic size."); task_manager.ParallelFor( period, [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { precomp_domains[23][i] = - (point_powers[13][i & ((SafeDiv(keccak__row_ratio, 16)) - (1))]) - - (FieldElementT::One()); + ((point_powers[13][i & ((SafeDiv(keccak__row_ratio, 128)) - (1))]) - (shifts[21])) * + (precomp_domains[22][i & (SafeDiv(keccak__row_ratio, 128) - 1)]); } }, period, kTaskSize); - period = (((uses_keccak_builtin) != (0)) ? (SafeDiv(keccak__row_ratio, 4)) : 0); + period = (((uses_keccak_builtin) != (0)) ? (SafeDiv(keccak__row_ratio, 16)) : 0); ASSERT_RELEASE(period < kPeriodUpperBound, "Precomp evals: large dynamic size."); task_manager.ParallelFor( period, [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { precomp_domains[24][i] = - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - - (FieldElementT::One())) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[22])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[23])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[24])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[25])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[26])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[27])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[28])); + (point_powers[14][i & ((SafeDiv(keccak__row_ratio, 16)) - (1))]) - + (FieldElementT::One()); } }, period, kTaskSize); @@ -5848,23 +5860,15 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { precomp_domains[25][i] = - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[29])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[30])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[31])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[32])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[33])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[34])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[35])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[36])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[37])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[38])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[39])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[40])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[41])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[42])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[43])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[44])) * - (precomp_domains[24][i & (SafeDiv(keccak__row_ratio, 4) - 1)]); + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - + (FieldElementT::One())) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[22])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[23])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[24])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[25])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[26])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[27])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[28])); } }, period, kTaskSize); @@ -5876,102 +5880,22 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { precomp_domains[26][i] = - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[45])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[46])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[47])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[48])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[49])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[50])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[51])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[52])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[53])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[54])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[55])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[56])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[57])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[58])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[59])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[60])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[61])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[62])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[63])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[64])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[65])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[66])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[67])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[68])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[69])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[70])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[71])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[72])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[73])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[74])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[75])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[76])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[77])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[78])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[79])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[80])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[81])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[82])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[83])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[84])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[85])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[86])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[87])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[88])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[89])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[90])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[91])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[92])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[93])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[94])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[95])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[96])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[97])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[98])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[99])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[100])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[101])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[102])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[103])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[104])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[105])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[106])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[107])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[108])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[109])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[110])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[111])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[112])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[113])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[114])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[115])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[116])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[117])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[118])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[119])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[120])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[121])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[122])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[123])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[124])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[125])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[126])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[127])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[128])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[129])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[130])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[131])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[132])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[133])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[134])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[135])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[136])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[137])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[138])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[139])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[140])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[29])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[30])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[31])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[32])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[33])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[34])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[35])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[36])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[37])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[38])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[39])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[40])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[41])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[42])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[43])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[44])) * (precomp_domains[25][i & (SafeDiv(keccak__row_ratio, 4) - 1)]); } }, @@ -5984,271 +5908,367 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { precomp_domains[27][i] = - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[21])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[141])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[142])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[143])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[144])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[145])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[146])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[147])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[148])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[149])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[150])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[151])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[152])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[153])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[154])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[155])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[156])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[157])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[158])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[159])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[160])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[161])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[162])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[163])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[164])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[165])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[166])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[167])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[168])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[169])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[170])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[171])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[172])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[173])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[174])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[175])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[176])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[177])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[178])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[179])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[180])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[181])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[182])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[183])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[184])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[185])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[186])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[187])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[188])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[189])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[190])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[191])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[192])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[193])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[194])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[195])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[196])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[197])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[198])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[199])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[200])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[201])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[202])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[203])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[204])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[205])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[206])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[207])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[208])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[209])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[210])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[211])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[212])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[213])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[214])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[215])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[216])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[217])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[218])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[219])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[220])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[221])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[222])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[223])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[224])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[225])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[226])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[227])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[228])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[229])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[230])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[231])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[232])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[233])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[234])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[235])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[236])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[237])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[238])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[239])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[240])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[241])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[242])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[243])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[244])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[245])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[246])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[247])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[248])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[249])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[250])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[251])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[252])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[253])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[254])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[255])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[256])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[257])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[258])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[259])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[260])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[261])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[262])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[263])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[264])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[265])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[266])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[267])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[268])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[269])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[270])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[271])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[272])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[273])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[274])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[275])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[276])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[277])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[278])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[279])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[280])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[281])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[282])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[283])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[284])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[285])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[286])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[287])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[288])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[289])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[290])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[291])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[292])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[293])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[294])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[295])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[296])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[297])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[298])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[299])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[300])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[301])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[302])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[303])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[304])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[305])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[306])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[307])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[308])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[309])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[310])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[311])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[312])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[313])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[314])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[315])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[316])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[317])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[318])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[319])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[320])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[321])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[322])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[323])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[324])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[325])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[326])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[327])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[328])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[329])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[330])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[331])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[332])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[333])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[334])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[335])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[336])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[337])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[338])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[339])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[340])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[341])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[342])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[343])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[344])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[345])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[346])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[347])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[348])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[349])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[350])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[351])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[352])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[353])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[354])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[355])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[356])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[357])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[358])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[359])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[360])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[361])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[362])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[363])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[364])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[365])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[366])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[367])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[368])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[369])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[370])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[371])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[372])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[373])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[374])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[375])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[376])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[377])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[378])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[379])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[45])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[46])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[47])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[48])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[49])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[50])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[51])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[52])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[53])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[54])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[55])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[56])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[57])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[58])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[59])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[60])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[61])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[62])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[63])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[64])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[65])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[66])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[67])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[68])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[69])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[70])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[71])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[72])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[73])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[74])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[75])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[76])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[77])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[78])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[79])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[80])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[81])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[82])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[83])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[84])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[85])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[86])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[87])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[88])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[89])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[90])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[91])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[92])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[93])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[94])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[95])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[96])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[97])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[98])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[99])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[100])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[101])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[102])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[103])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[104])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[105])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[106])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[107])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[108])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[109])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[110])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[111])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[112])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[113])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[114])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[115])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[116])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[117])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[118])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[119])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[120])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[121])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[122])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[123])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[124])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[125])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[126])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[127])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[128])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[129])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[130])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[131])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[132])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[133])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[134])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[135])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[136])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[137])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[138])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[139])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[140])) * (precomp_domains[26][i & (SafeDiv(keccak__row_ratio, 4) - 1)]); } }, period, kTaskSize); - period = (((uses_keccak_builtin) != (0)) ? (keccak__row_ratio) : 0); + period = (((uses_keccak_builtin) != (0)) ? (SafeDiv(keccak__row_ratio, 4)) : 0); ASSERT_RELEASE(period < kPeriodUpperBound, "Precomp evals: large dynamic size."); task_manager.ParallelFor( period, [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { precomp_domains[28][i] = - (point_powers[15][i & ((keccak__row_ratio) - (1))]) - (FieldElementT::One()); + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[21])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[141])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[142])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[143])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[144])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[145])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[146])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[147])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[148])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[149])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[150])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[151])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[152])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[153])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[154])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[155])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[156])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[157])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[158])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[159])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[160])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[161])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[162])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[163])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[164])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[165])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[166])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[167])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[168])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[169])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[170])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[171])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[172])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[173])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[174])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[175])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[176])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[177])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[178])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[179])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[180])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[181])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[182])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[183])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[184])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[185])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[186])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[187])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[188])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[189])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[190])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[191])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[192])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[193])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[194])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[195])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[196])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[197])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[198])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[199])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[200])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[201])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[202])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[203])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[204])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[205])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[206])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[207])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[208])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[209])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[210])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[211])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[212])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[213])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[214])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[215])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[216])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[217])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[218])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[219])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[220])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[221])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[222])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[223])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[224])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[225])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[226])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[227])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[228])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[229])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[230])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[231])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[232])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[233])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[234])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[235])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[236])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[237])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[238])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[239])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[240])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[241])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[242])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[243])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[244])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[245])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[246])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[247])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[248])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[249])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[250])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[251])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[252])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[253])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[254])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[255])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[256])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[257])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[258])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[259])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[260])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[261])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[262])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[263])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[264])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[265])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[266])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[267])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[268])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[269])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[270])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[271])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[272])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[273])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[274])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[275])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[276])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[277])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[278])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[279])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[280])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[281])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[282])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[283])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[284])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[285])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[286])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[287])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[288])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[289])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[290])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[291])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[292])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[293])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[294])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[295])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[296])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[297])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[298])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[299])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[300])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[301])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[302])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[303])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[304])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[305])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[306])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[307])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[308])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[309])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[310])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[311])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[312])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[313])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[314])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[315])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[316])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[317])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[318])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[319])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[320])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[321])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[322])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[323])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[324])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[325])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[326])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[327])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[328])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[329])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[330])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[331])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[332])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[333])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[334])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[335])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[336])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[337])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[338])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[339])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[340])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[341])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[342])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[343])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[344])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[345])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[346])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[347])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[348])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[349])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[350])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[351])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[352])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[353])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[354])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[355])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[356])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[357])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[358])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[359])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[360])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[361])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[362])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[363])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[364])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[365])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[366])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[367])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[368])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[369])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[370])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[371])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[372])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[373])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[374])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[375])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[376])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[377])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[378])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[379])) * + (precomp_domains[27][i & (SafeDiv(keccak__row_ratio, 4) - 1)]); } }, period, kTaskSize); - period = (((uses_keccak_builtin) != (0)) ? ((keccak__row_ratio)*16) : 0); + period = (((uses_keccak_builtin) != (0)) ? (keccak__row_ratio) : 0); ASSERT_RELEASE(period < kPeriodUpperBound, "Precomp evals: large dynamic size."); task_manager.ParallelFor( period, [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { precomp_domains[29][i] = - (point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (FieldElementT::One()); + (point_powers[16][i & ((keccak__row_ratio) - (1))]) - (FieldElementT::One()); } }, period, kTaskSize); @@ -6260,8 +6280,7 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { precomp_domains[30][i] = - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[380])) * - (precomp_domains[29][i & ((keccak__row_ratio)*16 - 1)]); + (point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (FieldElementT::One()); } }, period, kTaskSize); @@ -6273,20 +6292,7 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { precomp_domains[31][i] = - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[381])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[382])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[383])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[384])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[385])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[386])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[387])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[388])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[389])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[390])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[391])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[392])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[393])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[394])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[380])) * (precomp_domains[30][i & ((keccak__row_ratio)*16 - 1)]); } }, @@ -6299,13 +6305,21 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { precomp_domains[32][i] = - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[395])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[396])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[397])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[398])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[399])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[400])) * - (precomp_domains[30][i & ((keccak__row_ratio)*16 - 1)]); + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[381])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[382])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[383])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[384])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[385])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[386])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[387])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[388])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[389])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[390])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[391])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[392])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[393])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[394])) * + (precomp_domains[31][i & ((keccak__row_ratio)*16 - 1)]); } }, period, kTaskSize); @@ -6317,23 +6331,13 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { precomp_domains[33][i] = - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[401])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[402])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[403])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[404])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[405])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[406])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[407])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[408])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[409])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[410])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[411])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[412])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[413])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[414])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[415])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[416])) * - (precomp_domains[32][i & ((keccak__row_ratio)*16 - 1)]); + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[395])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[396])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[397])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[398])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[399])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[400])) * + (precomp_domains[31][i & ((keccak__row_ratio)*16 - 1)]); } }, period, kTaskSize); @@ -6345,12 +6349,22 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { precomp_domains[34][i] = - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[417])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[418])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[419])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[420])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[421])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[422])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[401])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[402])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[403])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[404])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[405])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[406])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[407])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[408])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[409])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[410])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[411])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[412])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[413])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[414])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[415])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[416])) * (precomp_domains[33][i & ((keccak__row_ratio)*16 - 1)]); } }, @@ -6363,8 +6377,12 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { precomp_domains[35][i] = - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[423])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[424])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[417])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[418])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[419])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[420])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[421])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[422])) * (precomp_domains[34][i & ((keccak__row_ratio)*16 - 1)]); } }, @@ -6377,30 +6395,9 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { precomp_domains[36][i] = - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[425])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[22])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[426])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[23])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[427])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[24])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[428])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[25])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[429])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[26])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[430])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[27])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[431])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[28])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[432])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[29])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[433])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[30])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[434])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[31])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[435])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[32])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[436])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[33])); + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[423])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[424])) * + (precomp_domains[35][i & ((keccak__row_ratio)*16 - 1)]); } }, period, kTaskSize); @@ -6412,31 +6409,30 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { precomp_domains[37][i] = - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[437])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[438])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[439])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[440])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[441])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[442])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[443])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[444])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[445])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[446])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[447])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[448])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[449])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[450])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[451])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[452])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[453])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[454])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[455])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[456])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[457])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[458])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[459])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[460])) * - (precomp_domains[36][i & ((keccak__row_ratio)*16 - 1)]); + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[425])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[22])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[426])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[23])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[427])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[24])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[428])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[25])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[429])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[26])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[430])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[27])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[431])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[28])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[432])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[29])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[433])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[30])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[434])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[31])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[435])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[32])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[436])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[33])); } }, period, kTaskSize); @@ -6447,8 +6443,32 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( period, [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { - precomp_domains[38][i] = (precomp_domains[30][i & ((keccak__row_ratio)*16 - 1)]) * - (precomp_domains[37][i & ((keccak__row_ratio)*16 - 1)]); + precomp_domains[38][i] = + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[437])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[438])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[439])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[440])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[441])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[442])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[443])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[444])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[445])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[446])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[447])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[448])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[449])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[450])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[451])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[452])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[453])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[454])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[455])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[456])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[457])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[458])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[459])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[460])) * + (precomp_domains[37][i & ((keccak__row_ratio)*16 - 1)]); } }, period, kTaskSize); @@ -6459,681 +6479,8 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( period, [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { - precomp_domains[39][i] = - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[461])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[462])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[463])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[464])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[465])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[466])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[467])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[468])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[469])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[470])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[471])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[472])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[473])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[474])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[475])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[476])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[477])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[478])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[479])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[480])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[481])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[482])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[483])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[484])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[485])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[486])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[487])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[488])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[489])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[490])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[491])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[492])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[493])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[494])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[495])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[496])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[497])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[498])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[499])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[500])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[501])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[502])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[503])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[504])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[505])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[506])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[507])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[508])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[509])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[510])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[511])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[512])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[513])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[514])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[515])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[516])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[517])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[518])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[519])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[520])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[521])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[522])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[523])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[524])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[525])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[526])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[527])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[528])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[529])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[530])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[531])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[532])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[533])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[534])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[535])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[536])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[537])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[538])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[539])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[540])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[541])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[542])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[543])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[544])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[545])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[546])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[547])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[548])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[549])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[550])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[551])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[552])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[553])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[554])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[555])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[556])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[557])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[558])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[559])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[560])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[561])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[562])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[563])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[564])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[565])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[566])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[567])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[568])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[569])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[570])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[571])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[572])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[573])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[574])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[575])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[576])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[577])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[578])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[579])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[580])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[581])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[582])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[583])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[584])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[585])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[586])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[587])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[588])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[589])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[590])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[591])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[592])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[593])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[594])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[595])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[596])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[597])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[598])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[599])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[600])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[601])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[602])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[603])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[604])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[605])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[606])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[607])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[608])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[609])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[610])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[611])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[612])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[613])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[614])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[615])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[616])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[617])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[618])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[619])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[620])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[621])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[622])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[623])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[624])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[625])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[626])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[627])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[628])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[629])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[630])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[631])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[632])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[633])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[634])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[635])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[636])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[637])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[638])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[639])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[640])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[641])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[642])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[643])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[644])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[645])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[646])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[647])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[648])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[649])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[650])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[651])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[652])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[653])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[654])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[655])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[656])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[657])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[658])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[659])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[660])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[661])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[662])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[663])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[664])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[665])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[666])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[667])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[668])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[669])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[670])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[671])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[672])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[673])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[674])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[675])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[676])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[677])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[678])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[679])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[680])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[681])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[682])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[683])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[684])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[685])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[686])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[687])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[688])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[689])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[690])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[691])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[692])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[693])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[694])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[695])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[696])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[697])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[698])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[699])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[700])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[701])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[702])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[703])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[704])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[705])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[706])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[707])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[708])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[709])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[710])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[711])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[712])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[713])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[714])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[715])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[716])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[717])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[718])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[719])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[720])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[721])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[722])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[723])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[724])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[725])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[726])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[727])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[728])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[729])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[730])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[731])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[732])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[733])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[734])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[735])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[736])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[737])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[738])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[739])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[740])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[741])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[742])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[743])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[744])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[745])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[746])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[747])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[748])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[749])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[750])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[751])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[752])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[753])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[754])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[755])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[756])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[757])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[758])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[759])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[760])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[761])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[762])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[763])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[764])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[765])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[766])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[767])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[768])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[769])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[770])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[771])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[772])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[773])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[774])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[775])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[776])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[777])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[778])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[779])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[780])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[781])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[782])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[783])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[784])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[785])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[786])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[787])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[788])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[789])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[790])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[791])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[792])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[793])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[794])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[795])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[796])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[797])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[798])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[799])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[800])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[801])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[802])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[803])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[804])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[805])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[806])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[807])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[808])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[809])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[810])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[811])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[812])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[813])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[814])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[815])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[816])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[817])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[818])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[819])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[820])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[821])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[822])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[823])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[824])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[825])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[826])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[827])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[828])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[829])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[830])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[831])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[832])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[833])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[834])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[835])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[836])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[837])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[838])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[839])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[840])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[841])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[842])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[843])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[844])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[845])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[846])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[847])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[848])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[849])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[850])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[851])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[852])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[853])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[854])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[855])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[856])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[857])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[858])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[859])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[860])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[861])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[862])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[863])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[864])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[865])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[866])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[867])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[868])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[869])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[870])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[871])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[872])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[873])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[874])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[875])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[876])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[877])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[878])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[879])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[880])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[881])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[882])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[883])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[884])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[885])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[886])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[887])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[888])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[889])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[890])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[891])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[892])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[893])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[894])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[895])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[896])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[897])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[898])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[899])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[900])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[901])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[902])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[903])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[904])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[905])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[906])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[907])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[908])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[909])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[910])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[911])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[912])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[913])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[914])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[915])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[916])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[917])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[918])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[919])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[920])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[921])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[922])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[923])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[924])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[925])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[926])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[927])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[928])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[929])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[930])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[931])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[932])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[933])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[934])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[935])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[936])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[937])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[938])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[939])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[940])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[941])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[942])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[943])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[944])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[945])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[946])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[947])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[948])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[949])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[950])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[951])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[952])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[953])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[954])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[955])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[956])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[957])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[958])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[959])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[960])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[961])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[962])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[963])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[964])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[965])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[966])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[967])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[968])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[969])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[970])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[971])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[972])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[973])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[974])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[975])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[976])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[977])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[978])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[979])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[980])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[981])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[982])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[983])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[984])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[985])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[986])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[987])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[988])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[989])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[990])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[991])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[992])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[993])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[994])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[995])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[996])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[997])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[998])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[999])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1000])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1001])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1002])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1003])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1004])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1005])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1006])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1007])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1008])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1009])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1010])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1011])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1012])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1013])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1014])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1015])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1016])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1017])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1018])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1019])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1020])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1021])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1022])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1023])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1024])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1025])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1026])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1027])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1028])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1029])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1030])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1031])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1032])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1033])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1034])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1035])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1036])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1037])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1038])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1039])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1040])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1041])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1042])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1043])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1044])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1045])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1046])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1047])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1048])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1049])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1050])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1051])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1052])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1053])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1054])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1055])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1056])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1057])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1058])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1059])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1060])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1061])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1062])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1063])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1064])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1065])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1066])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1067])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1068])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1069])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1070])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1071])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1072])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1073])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1074])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1075])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1076])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1077])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1078])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1079])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1080])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1081])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1082])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1083])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1084])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1085])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1086])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1087])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1088])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1089])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1090])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1091])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1092])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1093])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1094])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1095])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1096])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1097])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1098])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1099])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1100])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1101])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1102])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1103])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1104])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1105])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1106])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1107])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1108])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1109])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1110])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1111])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1112])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1113])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1114])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1115])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1116])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1117])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1118])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1119])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1120])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1121])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1122])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1123])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1124])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1125])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1126])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1127])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1128])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1129])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1130])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1131])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1132])) * - (precomp_domains[34][i & ((keccak__row_ratio)*16 - 1)]) * - (precomp_domains[37][i & ((keccak__row_ratio)*16 - 1)]); + precomp_domains[39][i] = (precomp_domains[31][i & ((keccak__row_ratio)*16 - 1)]) * + (precomp_domains[38][i & ((keccak__row_ratio)*16 - 1)]); } }, period, kTaskSize); @@ -7144,8 +6491,681 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( period, [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { - precomp_domains[40][i] = (precomp_domains[29][i & ((keccak__row_ratio)*16 - 1)]) * - (precomp_domains[36][i & ((keccak__row_ratio)*16 - 1)]); + precomp_domains[40][i] = + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[461])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[462])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[463])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[464])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[465])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[466])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[467])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[468])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[469])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[470])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[471])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[472])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[473])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[474])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[475])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[476])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[477])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[478])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[479])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[480])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[481])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[482])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[483])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[484])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[485])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[486])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[487])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[488])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[489])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[490])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[491])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[492])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[493])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[494])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[495])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[496])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[497])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[498])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[499])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[500])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[501])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[502])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[503])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[504])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[505])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[506])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[507])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[508])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[509])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[510])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[511])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[512])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[513])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[514])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[515])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[516])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[517])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[518])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[519])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[520])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[521])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[522])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[523])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[524])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[525])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[526])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[527])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[528])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[529])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[530])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[531])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[532])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[533])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[534])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[535])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[536])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[537])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[538])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[539])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[540])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[541])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[542])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[543])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[544])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[545])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[546])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[547])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[548])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[549])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[550])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[551])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[552])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[553])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[554])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[555])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[556])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[557])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[558])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[559])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[560])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[561])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[562])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[563])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[564])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[565])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[566])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[567])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[568])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[569])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[570])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[571])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[572])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[573])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[574])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[575])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[576])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[577])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[578])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[579])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[580])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[581])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[582])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[583])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[584])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[585])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[586])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[587])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[588])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[589])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[590])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[591])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[592])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[593])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[594])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[595])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[596])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[597])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[598])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[599])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[600])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[601])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[602])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[603])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[604])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[605])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[606])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[607])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[608])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[609])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[610])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[611])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[612])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[613])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[614])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[615])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[616])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[617])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[618])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[619])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[620])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[621])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[622])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[623])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[624])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[625])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[626])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[627])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[628])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[629])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[630])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[631])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[632])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[633])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[634])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[635])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[636])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[637])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[638])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[639])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[640])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[641])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[642])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[643])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[644])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[645])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[646])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[647])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[648])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[649])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[650])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[651])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[652])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[653])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[654])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[655])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[656])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[657])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[658])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[659])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[660])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[661])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[662])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[663])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[664])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[665])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[666])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[667])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[668])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[669])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[670])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[671])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[672])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[673])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[674])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[675])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[676])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[677])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[678])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[679])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[680])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[681])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[682])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[683])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[684])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[685])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[686])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[687])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[688])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[689])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[690])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[691])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[692])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[693])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[694])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[695])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[696])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[697])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[698])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[699])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[700])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[701])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[702])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[703])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[704])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[705])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[706])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[707])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[708])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[709])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[710])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[711])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[712])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[713])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[714])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[715])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[716])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[717])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[718])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[719])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[720])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[721])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[722])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[723])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[724])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[725])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[726])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[727])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[728])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[729])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[730])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[731])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[732])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[733])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[734])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[735])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[736])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[737])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[738])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[739])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[740])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[741])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[742])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[743])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[744])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[745])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[746])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[747])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[748])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[749])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[750])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[751])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[752])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[753])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[754])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[755])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[756])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[757])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[758])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[759])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[760])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[761])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[762])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[763])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[764])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[765])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[766])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[767])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[768])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[769])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[770])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[771])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[772])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[773])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[774])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[775])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[776])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[777])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[778])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[779])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[780])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[781])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[782])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[783])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[784])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[785])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[786])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[787])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[788])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[789])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[790])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[791])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[792])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[793])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[794])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[795])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[796])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[797])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[798])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[799])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[800])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[801])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[802])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[803])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[804])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[805])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[806])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[807])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[808])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[809])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[810])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[811])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[812])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[813])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[814])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[815])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[816])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[817])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[818])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[819])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[820])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[821])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[822])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[823])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[824])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[825])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[826])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[827])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[828])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[829])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[830])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[831])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[832])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[833])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[834])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[835])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[836])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[837])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[838])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[839])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[840])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[841])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[842])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[843])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[844])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[845])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[846])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[847])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[848])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[849])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[850])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[851])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[852])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[853])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[854])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[855])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[856])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[857])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[858])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[859])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[860])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[861])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[862])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[863])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[864])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[865])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[866])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[867])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[868])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[869])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[870])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[871])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[872])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[873])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[874])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[875])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[876])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[877])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[878])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[879])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[880])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[881])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[882])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[883])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[884])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[885])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[886])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[887])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[888])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[889])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[890])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[891])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[892])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[893])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[894])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[895])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[896])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[897])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[898])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[899])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[900])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[901])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[902])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[903])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[904])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[905])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[906])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[907])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[908])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[909])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[910])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[911])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[912])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[913])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[914])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[915])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[916])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[917])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[918])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[919])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[920])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[921])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[922])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[923])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[924])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[925])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[926])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[927])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[928])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[929])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[930])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[931])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[932])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[933])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[934])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[935])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[936])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[937])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[938])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[939])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[940])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[941])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[942])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[943])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[944])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[945])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[946])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[947])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[948])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[949])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[950])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[951])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[952])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[953])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[954])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[955])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[956])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[957])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[958])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[959])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[960])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[961])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[962])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[963])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[964])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[965])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[966])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[967])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[968])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[969])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[970])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[971])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[972])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[973])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[974])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[975])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[976])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[977])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[978])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[979])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[980])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[981])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[982])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[983])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[984])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[985])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[986])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[987])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[988])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[989])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[990])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[991])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[992])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[993])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[994])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[995])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[996])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[997])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[998])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[999])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1000])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1001])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1002])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1003])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1004])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1005])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1006])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1007])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1008])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1009])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1010])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1011])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1012])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1013])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1014])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1015])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1016])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1017])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1018])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1019])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1020])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1021])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1022])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1023])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1024])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1025])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1026])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1027])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1028])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1029])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1030])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1031])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1032])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1033])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1034])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1035])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1036])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1037])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1038])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1039])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1040])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1041])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1042])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1043])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1044])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1045])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1046])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1047])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1048])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1049])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1050])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1051])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1052])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1053])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1054])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1055])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1056])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1057])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1058])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1059])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1060])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1061])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1062])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1063])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1064])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1065])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1066])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1067])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1068])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1069])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1070])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1071])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1072])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1073])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1074])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1075])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1076])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1077])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1078])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1079])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1080])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1081])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1082])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1083])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1084])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1085])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1086])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1087])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1088])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1089])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1090])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1091])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1092])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1093])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1094])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1095])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1096])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1097])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1098])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1099])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1100])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1101])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1102])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1103])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1104])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1105])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1106])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1107])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1108])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1109])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1110])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1111])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1112])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1113])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1114])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1115])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1116])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1117])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1118])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1119])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1120])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1121])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1122])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1123])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1124])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1125])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1126])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1127])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1128])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1129])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1130])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1131])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1132])) * + (precomp_domains[35][i & ((keccak__row_ratio)*16 - 1)]) * + (precomp_domains[38][i & ((keccak__row_ratio)*16 - 1)]); } }, period, kTaskSize); @@ -7156,8 +7176,8 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( period, [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { - precomp_domains[41][i] = - (point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1133]); + precomp_domains[41][i] = (precomp_domains[30][i & ((keccak__row_ratio)*16 - 1)]) * + (precomp_domains[37][i & ((keccak__row_ratio)*16 - 1)]); } }, period, kTaskSize); @@ -7169,37 +7189,7 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { precomp_domains[42][i] = - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1134])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1135])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1136])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1137])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1138])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1139])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1140])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1141])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1142])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1143])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1144])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1145])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1146])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1147])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1148])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1149])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1150])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1151])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1152])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1153])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1154])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1155])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1156])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1157])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1158])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1159])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1160])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1161])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1162])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1163])) * - (precomp_domains[41][i & ((keccak__row_ratio)*16 - 1)]); + (point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1133]); } }, period, kTaskSize); @@ -7211,7 +7201,37 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { precomp_domains[43][i] = - (point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1164]); + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1134])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1135])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1136])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1137])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1138])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1139])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1140])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1141])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1142])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1143])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1144])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1145])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1146])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1147])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1148])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1149])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1150])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1151])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1152])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1153])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1154])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1155])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1156])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1157])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1158])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1159])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1160])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1161])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1162])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1163])) * + (precomp_domains[42][i & ((keccak__row_ratio)*16 - 1)]); } }, period, kTaskSize); @@ -7223,40 +7243,7 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { precomp_domains[44][i] = - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1165])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1166])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1167])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1168])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1169])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1170])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1171])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1172])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1173])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1174])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1175])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1176])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1177])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1178])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1179])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1180])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1181])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1182])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1183])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1184])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1185])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1186])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1187])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1188])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1189])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1190])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1191])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1192])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1193])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1194])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1195])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1196])) * - (precomp_domains[42][i & ((keccak__row_ratio)*16 - 1)]) * - (precomp_domains[43][i & ((keccak__row_ratio)*16 - 1)]); + (point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1164]); } }, period, kTaskSize); @@ -7268,12 +7255,40 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { precomp_domains[45][i] = - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1197])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1198])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1199])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1200])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1201])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1202])); + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1165])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1166])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1167])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1168])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1169])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1170])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1171])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1172])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1173])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1174])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1175])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1176])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1177])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1178])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1179])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1180])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1181])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1182])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1183])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1184])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1185])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1186])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1187])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1188])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1189])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1190])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1191])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1192])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1193])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1194])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1195])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1196])) * + (precomp_domains[43][i & ((keccak__row_ratio)*16 - 1)]) * + (precomp_domains[44][i & ((keccak__row_ratio)*16 - 1)]); } }, period, kTaskSize); @@ -7285,23 +7300,12 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { precomp_domains[46][i] = - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1203])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1204])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1205])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1206])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1207])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1208])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1209])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1210])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1211])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1212])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1213])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1214])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1215])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1216])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1217])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1218])) * - (precomp_domains[45][i & ((keccak__row_ratio)*16 - 1)]); + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1197])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1198])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1199])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1200])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1201])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1202])); } }, period, kTaskSize); @@ -7313,883 +7317,22 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { precomp_domains[47][i] = - ((point_powers[12][i & ((SafeDiv(keccak__row_ratio, 128)) - (1))]) - (shifts[1138])) * - ((point_powers[12][i & ((SafeDiv(keccak__row_ratio, 128)) - (1))]) - (shifts[1139])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1219])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1220])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1221])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1222])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1223])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1224])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1225])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1226])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1227])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1228])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1229])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1230])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1231])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1232])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1233])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1234])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1235])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1236])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1237])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1238])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1239])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1240])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1241])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1242])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1243])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1244])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1245])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1246])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1247])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1248])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1249])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1250])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1251])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1252])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1253])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1254])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1255])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1256])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1257])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1258])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1259])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1260])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1261])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1262])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1263])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1264])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1265])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1266])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1267])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1268])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1269])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1270])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1271])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1272])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1273])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1274])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1275])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1276])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1277])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1278])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1279])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1280])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1281])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1282])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1283])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1284])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1285])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1286])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1287])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1288])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1289])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1290])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1291])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1292])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1293])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1294])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1295])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1296])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1297])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1298])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1299])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1300])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1301])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1302])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1303])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1304])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1305])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1306])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1307])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1308])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1309])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1310])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1311])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1312])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1313])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1314])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1315])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1316])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1317])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1318])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1319])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1320])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1321])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1322])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1323])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1324])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1325])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1326])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1327])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1328])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1329])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1330])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1331])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1332])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1333])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1334])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1335])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1336])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1337])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1338])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1339])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1340])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1341])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1342])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1343])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1344])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1345])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1346])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1347])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1348])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1349])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1350])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1351])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1352])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1353])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1354])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1355])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1356])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1357])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1358])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1359])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1360])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1361])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1362])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1363])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1364])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1365])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1366])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1367])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1368])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1369])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1370])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1371])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1372])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1133])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1141])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1143])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1145])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1147])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1149])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1151])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1153])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1155])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1157])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1159])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1161])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1163])) * - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1373])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1374])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1375])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1376])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1377])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1378])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1379])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1380])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1381])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1382])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1383])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1384])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1385])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1386])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1387])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1388])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1389])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1390])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1391])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1392])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1393])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1394])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1395])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1396])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1397])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1398])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1399])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1400])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1401])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1402])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1403])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1404])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1405])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1406])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1407])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1408])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1409])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1410])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1411])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1412])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1413])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1414])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1415])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1416])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1417])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1418])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1419])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1420])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1421])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1422])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1423])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1424])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1425])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1426])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1427])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1428])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1429])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1430])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1431])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1432])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1433])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1434])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1435])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1436])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1437])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1438])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1439])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1440])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1441])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1442])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1443])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1444])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1445])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1446])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1447])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1448])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1449])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1450])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1451])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1452])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1453])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1454])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1455])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1456])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1457])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1458])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1459])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1460])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1461])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1462])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1463])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1464])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1465])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1466])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1467])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1468])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1469])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1470])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1471])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1472])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1473])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1474])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1475])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1476])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1477])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1478])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1479])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1480])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1481])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1482])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1483])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1484])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1485])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1486])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1487])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1488])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1489])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1490])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1491])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1492])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1493])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1494])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1495])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1496])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1497])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1498])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1499])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1500])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1501])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1502])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1503])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1504])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1505])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1506])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1507])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1508])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1509])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1510])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1511])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1512])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1513])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1514])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1515])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1516])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1517])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1518])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1519])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1520])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1521])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1522])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1523])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1524])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1525])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1526])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1527])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1528])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1529])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1530])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1531])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1532])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1533])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1534])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1535])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1536])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1537])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1538])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1539])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1540])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1541])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1542])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1543])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1544])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1545])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1546])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1547])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1548])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1549])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1550])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1551])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1552])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1553])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1554])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1555])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1556])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1557])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1558])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1559])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1560])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1561])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1562])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1563])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1564])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1565])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1566])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1567])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1568])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1569])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1570])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1571])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1572])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1573])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1574])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1575])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1576])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1577])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1578])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1579])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1580])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1581])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1582])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1583])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1584])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1585])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1586])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1587])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1588])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1589])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1590])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1591])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1592])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1593])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1594])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1595])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1596])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1597])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1598])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1599])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1600])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1601])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1602])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1603])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1604])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1605])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1606])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1607])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1608])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1609])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1610])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1611])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1612])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1613])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1614])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1615])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1616])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1617])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1618])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1619])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1620])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1621])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1622])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1623])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1624])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1625])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1626])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1627])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1628])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1629])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1630])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1631])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1632])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1633])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1634])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1635])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1636])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1637])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1638])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1639])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1640])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1641])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1642])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1643])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1644])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1645])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1646])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1647])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1648])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1649])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1650])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1651])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1652])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1653])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1654])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1655])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1656])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1657])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1658])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1659])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1660])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1661])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1662])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1663])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1664])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1665])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1666])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1667])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1668])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1669])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1670])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1671])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1672])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1673])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1674])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1675])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1676])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1677])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1678])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1679])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1680])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1681])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1682])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1683])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1684])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1685])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1686])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1687])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1688])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1689])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1690])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1691])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1692])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1693])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1694])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1695])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1696])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1697])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1698])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1699])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1700])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1701])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1702])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1703])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1704])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1705])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1706])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1707])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1708])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1709])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1710])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1711])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1712])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1713])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1714])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1715])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1716])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1717])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1718])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1719])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1720])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1721])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1722])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1723])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1724])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1725])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1726])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1727])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1728])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1729])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1730])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1731])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1732])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1733])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1734])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1735])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1736])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1737])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1738])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1739])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1740])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1741])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1742])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1743])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1744])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1745])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1746])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1747])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1748])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1749])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1750])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1751])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1752])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1753])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1754])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1755])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1756])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1757])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1758])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1759])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1760])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1761])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1762])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1763])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1764])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1765])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1766])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1767])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1768])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1769])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1770])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1771])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1772])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1773])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1774])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1775])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1776])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1777])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1778])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1779])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1780])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1781])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1782])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1783])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1784])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1785])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1786])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1787])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1788])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1789])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1790])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1791])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1792])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1793])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1794])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1795])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1796])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1797])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1798])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1799])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1800])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1801])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1802])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1803])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1804])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1805])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1806])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1807])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1808])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1809])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1810])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1811])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1812])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1813])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1814])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1815])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1816])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1817])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1818])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1819])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1820])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1821])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1822])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1823])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1824])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1825])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1826])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1827])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1828])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1829])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1830])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1831])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1832])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1833])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1834])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1835])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1836])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1837])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1838])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1839])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1840])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1841])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1842])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1843])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1844])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1845])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1846])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1847])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1848])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1849])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1850])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1851])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1852])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1853])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1854])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1855])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1856])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1857])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1858])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1859])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1860])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1861])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1862])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1863])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1864])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1865])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1866])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1867])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1868])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1869])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1870])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1871])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1872])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1873])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1874])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1875])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1876])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1877])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1878])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1879])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1880])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1881])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1882])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1883])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1884])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1885])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1886])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1887])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1888])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1889])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1890])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1891])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1892])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1893])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1894])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1895])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1896])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1897])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1898])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1899])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1900])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1901])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1902])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1903])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1904])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1905])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1906])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1907])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1908])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1909])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1910])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1911])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1912])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1913])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1914])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1915])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1916])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1917])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1918])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1919])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1920])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1921])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1922])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1923])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1924])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1925])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1926])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1927])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1928])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1929])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1930])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1931])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1932])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1933])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1934])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1935])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1936])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1937])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1938])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1939])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1940])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1941])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1942])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1943])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1944])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1945])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1946])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1947])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1948])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1949])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1950])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1951])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1952])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1953])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1954])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1955])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1956])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1957])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1958])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1959])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1960])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1961])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1962])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1963])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1964])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1965])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1966])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1967])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1968])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1969])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1970])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1971])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1972])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1973])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1974])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1975])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1976])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1977])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1978])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1979])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1980])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1981])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1982])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1983])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1984])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1985])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1986])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1987])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1988])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1989])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1990])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1991])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1992])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1993])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1994])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1995])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1996])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1997])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1998])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1999])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2000])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2001])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2002])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2003])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2004])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2005])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2006])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2007])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2008])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2009])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2010])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2011])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2012])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2013])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2014])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2015])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2016])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2017])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2018])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2019])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2020])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2021])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2022])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2023])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2024])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2025])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2026])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2027])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2028])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2029])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2030])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2031])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2032])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2033])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2034])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2035])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2036])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2037])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2038])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2039])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2040])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2041])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2042])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2043])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2044])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2045])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2046])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2047])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2048])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2049])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2050])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2051])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2052])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2053])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2054])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2055])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2056])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2057])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2058])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2059])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2060])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2061])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2062])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2063])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2064])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2065])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2066])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2067])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2068])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2069])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2070])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2071])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2072])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2073])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2074])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2075])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2076])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2077])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2078])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2079])) * - (precomp_domains[44][i & ((keccak__row_ratio)*16 - 1)]) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1203])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1204])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1205])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1206])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1207])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1208])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1209])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1210])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1211])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1212])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1213])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1214])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1215])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1216])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1217])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1218])) * (precomp_domains[46][i & ((keccak__row_ratio)*16 - 1)]); } }, @@ -8202,8 +7345,884 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { precomp_domains[48][i] = - ((point_powers[14][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[2080])) * - (precomp_domains[42][i & ((keccak__row_ratio)*16 - 1)]); + ((point_powers[13][i & ((SafeDiv(keccak__row_ratio, 128)) - (1))]) - (shifts[1138])) * + ((point_powers[13][i & ((SafeDiv(keccak__row_ratio, 128)) - (1))]) - (shifts[1139])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1219])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1220])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1221])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1222])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1223])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1224])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1225])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1226])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1227])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1228])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1229])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1230])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1231])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1232])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1233])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1234])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1235])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1236])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1237])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1238])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1239])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1240])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1241])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1242])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1243])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1244])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1245])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1246])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1247])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1248])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1249])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1250])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1251])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1252])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1253])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1254])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1255])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1256])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1257])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1258])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1259])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1260])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1261])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1262])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1263])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1264])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1265])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1266])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1267])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1268])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1269])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1270])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1271])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1272])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1273])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1274])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1275])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1276])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1277])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1278])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1279])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1280])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1281])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1282])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1283])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1284])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1285])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1286])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1287])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1288])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1289])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1290])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1291])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1292])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1293])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1294])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1295])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1296])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1297])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1298])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1299])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1300])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1301])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1302])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1303])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1304])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1305])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1306])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1307])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1308])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1309])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1310])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1311])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1312])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1313])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1314])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1315])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1316])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1317])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1318])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1319])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1320])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1321])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1322])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1323])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1324])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1325])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1326])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1327])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1328])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1329])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1330])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1331])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1332])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1333])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1334])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1335])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1336])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1337])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1338])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1339])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1340])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1341])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1342])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1343])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1344])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1345])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1346])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1347])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1348])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1349])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1350])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1351])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1352])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1353])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1354])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1355])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1356])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1357])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1358])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1359])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1360])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1361])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1362])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1363])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1364])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1365])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1366])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1367])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1368])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1369])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1370])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1371])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1372])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1133])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1141])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1143])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1145])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1147])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1149])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1151])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1153])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1155])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1157])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1159])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1161])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1163])) * + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[1373])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1374])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1375])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1376])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1377])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1378])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1379])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1380])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1381])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1382])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1383])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1384])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1385])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1386])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1387])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1388])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1389])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1390])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1391])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1392])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1393])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1394])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1395])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1396])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1397])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1398])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1399])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1400])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1401])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1402])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1403])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1404])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1405])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1406])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1407])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1408])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1409])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1410])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1411])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1412])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1413])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1414])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1415])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1416])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1417])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1418])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1419])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1420])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1421])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1422])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1423])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1424])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1425])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1426])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1427])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1428])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1429])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1430])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1431])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1432])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1433])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1434])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1435])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1436])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1437])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1438])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1439])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1440])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1441])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1442])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1443])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1444])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1445])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1446])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1447])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1448])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1449])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1450])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1451])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1452])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1453])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1454])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1455])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1456])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1457])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1458])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1459])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1460])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1461])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1462])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1463])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1464])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1465])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1466])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1467])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1468])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1469])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1470])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1471])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1472])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1473])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1474])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1475])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1476])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1477])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1478])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1479])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1480])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1481])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1482])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1483])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1484])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1485])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1486])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1487])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1488])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1489])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1490])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1491])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1492])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1493])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1494])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1495])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1496])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1497])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1498])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1499])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1500])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1501])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1502])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1503])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1504])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1505])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1506])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1507])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1508])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1509])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1510])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1511])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1512])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1513])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1514])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1515])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1516])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1517])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1518])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1519])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1520])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1521])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1522])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1523])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1524])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1525])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1526])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1527])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1528])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1529])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1530])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1531])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1532])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1533])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1534])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1535])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1536])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1537])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1538])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1539])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1540])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1541])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1542])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1543])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1544])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1545])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1546])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1547])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1548])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1549])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1550])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1551])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1552])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1553])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1554])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1555])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1556])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1557])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1558])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1559])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1560])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1561])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1562])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1563])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1564])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1565])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1566])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1567])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1568])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1569])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1570])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1571])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1572])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1573])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1574])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1575])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1576])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1577])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1578])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1579])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1580])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1581])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1582])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1583])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1584])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1585])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1586])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1587])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1588])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1589])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1590])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1591])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1592])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1593])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1594])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1595])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1596])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1597])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1598])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1599])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1600])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1601])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1602])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1603])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1604])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1605])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1606])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1607])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1608])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1609])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1610])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1611])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1612])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1613])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1614])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1615])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1616])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1617])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1618])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1619])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1620])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1621])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1622])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1623])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1624])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1625])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1626])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1627])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1628])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1629])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1630])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1631])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1632])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1633])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1634])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1635])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1636])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1637])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1638])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1639])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1640])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1641])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1642])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1643])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1644])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1645])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1646])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1647])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1648])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1649])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1650])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1651])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1652])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1653])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1654])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1655])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1656])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1657])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1658])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1659])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1660])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1661])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1662])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1663])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1664])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1665])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1666])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1667])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1668])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1669])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1670])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1671])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1672])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1673])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1674])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1675])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1676])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1677])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1678])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1679])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1680])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1681])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1682])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1683])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1684])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1685])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1686])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1687])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1688])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1689])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1690])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1691])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1692])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1693])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1694])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1695])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1696])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1697])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1698])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1699])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1700])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1701])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1702])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1703])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1704])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1705])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1706])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1707])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1708])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1709])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1710])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1711])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1712])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1713])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1714])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1715])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1716])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1717])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1718])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1719])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1720])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1721])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1722])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1723])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1724])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1725])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1726])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1727])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1728])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1729])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1730])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1731])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1732])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1733])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1734])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1735])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1736])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1737])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1738])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1739])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1740])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1741])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1742])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1743])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1744])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1745])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1746])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1747])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1748])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1749])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1750])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1751])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1752])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1753])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1754])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1755])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1756])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1757])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1758])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1759])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1760])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1761])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1762])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1763])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1764])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1765])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1766])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1767])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1768])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1769])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1770])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1771])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1772])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1773])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1774])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1775])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1776])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1777])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1778])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1779])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1780])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1781])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1782])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1783])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1784])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1785])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1786])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1787])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1788])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1789])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1790])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1791])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1792])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1793])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1794])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1795])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1796])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1797])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1798])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1799])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1800])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1801])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1802])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1803])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1804])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1805])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1806])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1807])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1808])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1809])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1810])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1811])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1812])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1813])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1814])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1815])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1816])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1817])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1818])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1819])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1820])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1821])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1822])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1823])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1824])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1825])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1826])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1827])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1828])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1829])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1830])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1831])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1832])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1833])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1834])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1835])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1836])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1837])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1838])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1839])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1840])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1841])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1842])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1843])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1844])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1845])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1846])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1847])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1848])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1849])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1850])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1851])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1852])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1853])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1854])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1855])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1856])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1857])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1858])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1859])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1860])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1861])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1862])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1863])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1864])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1865])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1866])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1867])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1868])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1869])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1870])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1871])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1872])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1873])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1874])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1875])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1876])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1877])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1878])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1879])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1880])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1881])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1882])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1883])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1884])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1885])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1886])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1887])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1888])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1889])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1890])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1891])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1892])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1893])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1894])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1895])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1896])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1897])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1898])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1899])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1900])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1901])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1902])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1903])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1904])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1905])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1906])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1907])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1908])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1909])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1910])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1911])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1912])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1913])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1914])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1915])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1916])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1917])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1918])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1919])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1920])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1921])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1922])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1923])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1924])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1925])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1926])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1927])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1928])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1929])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1930])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1931])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1932])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1933])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1934])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1935])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1936])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1937])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1938])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1939])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1940])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1941])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1942])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1943])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1944])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1945])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1946])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1947])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1948])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1949])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1950])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1951])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1952])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1953])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1954])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1955])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1956])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1957])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1958])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1959])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1960])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1961])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1962])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1963])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1964])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1965])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1966])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1967])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1968])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1969])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1970])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1971])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1972])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1973])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1974])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1975])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1976])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1977])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1978])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1979])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1980])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1981])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1982])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1983])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1984])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1985])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1986])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1987])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1988])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1989])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1990])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1991])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1992])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1993])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1994])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1995])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1996])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1997])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1998])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1999])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2000])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2001])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2002])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2003])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2004])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2005])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2006])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2007])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2008])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2009])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2010])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2011])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2012])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2013])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2014])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2015])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2016])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2017])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2018])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2019])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2020])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2021])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2022])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2023])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2024])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2025])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2026])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2027])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2028])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2029])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2030])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2031])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2032])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2033])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2034])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2035])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2036])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2037])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2038])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2039])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2040])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2041])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2042])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2043])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2044])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2045])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2046])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2047])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2048])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2049])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2050])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2051])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2052])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2053])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2054])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2055])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2056])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2057])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2058])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2059])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2060])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2061])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2062])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2063])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2064])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2065])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2066])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2067])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2068])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2069])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2070])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2071])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2072])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2073])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2074])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2075])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2076])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2077])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2078])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2079])) * + (precomp_domains[45][i & ((keccak__row_ratio)*16 - 1)]) * + (precomp_domains[47][i & ((keccak__row_ratio)*16 - 1)]); } }, period, kTaskSize); @@ -8214,8 +8233,9 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( period, [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { - precomp_domains[49][i] = (precomp_domains[41][i & ((keccak__row_ratio)*16 - 1)]) * - (precomp_domains[43][i & ((keccak__row_ratio)*16 - 1)]); + precomp_domains[49][i] = + ((point_powers[15][i & ((SafeDiv(keccak__row_ratio, 4)) - (1))]) - (shifts[2080])) * + (precomp_domains[43][i & ((keccak__row_ratio)*16 - 1)]); } }, period, kTaskSize); @@ -8226,8 +8246,8 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( period, [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { - precomp_domains[50][i] = (precomp_domains[46][i & ((keccak__row_ratio)*16 - 1)]) * - (precomp_domains[49][i & ((keccak__row_ratio)*16 - 1)]); + precomp_domains[50][i] = (precomp_domains[42][i & ((keccak__row_ratio)*16 - 1)]) * + (precomp_domains[44][i & ((keccak__row_ratio)*16 - 1)]); } }, period, kTaskSize); @@ -8238,15 +8258,8 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( period, [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { - precomp_domains[51][i] = - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1139])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2081])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2082])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2083])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2084])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2085])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2086])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2087])); + precomp_domains[51][i] = (precomp_domains[47][i & ((keccak__row_ratio)*16 - 1)]) * + (precomp_domains[50][i & ((keccak__row_ratio)*16 - 1)]); } }, period, kTaskSize); @@ -8258,24 +8271,14 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { precomp_domains[52][i] = - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2088])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2089])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2090])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2091])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2092])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2093])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2094])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2095])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2096])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2097])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2098])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2099])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2100])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2101])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2102])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2103])) * - (precomp_domains[50][i & ((keccak__row_ratio)*16 - 1)]) * - (precomp_domains[51][i & ((keccak__row_ratio)*16 - 1)]); + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1139])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2081])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2082])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2083])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2084])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2085])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2086])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2087])); } }, period, kTaskSize); @@ -8287,14 +8290,24 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { precomp_domains[53][i] = - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1345])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2104])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2105])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2106])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2107])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2108])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2109])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2110])); + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2088])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2089])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2090])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2091])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2092])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2093])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2094])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2095])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2096])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2097])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2098])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2099])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2100])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2101])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2102])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2103])) * + (precomp_domains[51][i & ((keccak__row_ratio)*16 - 1)]) * + (precomp_domains[52][i & ((keccak__row_ratio)*16 - 1)]); } }, period, kTaskSize); @@ -8306,24 +8319,14 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { precomp_domains[54][i] = - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2111])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2112])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2113])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2114])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2115])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2116])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2117])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2118])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2119])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2120])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2121])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2122])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2123])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2124])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2125])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2126])) * - (precomp_domains[52][i & ((keccak__row_ratio)*16 - 1)]) * - (precomp_domains[53][i & ((keccak__row_ratio)*16 - 1)]); + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1345])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2104])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2105])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2106])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2107])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2108])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2109])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2110])); } }, period, kTaskSize); @@ -8335,30 +8338,24 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { precomp_domains[55][i] = - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1137])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2127])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2128])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2129])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2130])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2131])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2132])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2133])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1317])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2134])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2135])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2136])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2137])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2138])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2139])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2140])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1138])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2141])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2142])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2143])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2144])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2145])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2146])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2147])); + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2111])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2112])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2113])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2114])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2115])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2116])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2117])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2118])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2119])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2120])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2121])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2122])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2123])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2124])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2125])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2126])) * + (precomp_domains[53][i & ((keccak__row_ratio)*16 - 1)]) * + (precomp_domains[54][i & ((keccak__row_ratio)*16 - 1)]); } }, period, kTaskSize); @@ -8370,56 +8367,30 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { precomp_domains[56][i] = - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2148])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2149])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2150])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2151])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2152])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2153])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2154])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2155])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2156])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2157])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2158])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2159])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2160])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2161])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2162])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2163])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2164])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2165])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2166])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2167])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2168])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2169])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2170])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2171])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2172])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2173])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2174])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2175])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2176])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2177])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2178])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2179])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2180])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2181])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2182])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2183])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2184])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2185])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2186])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2187])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2188])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2189])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2190])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2191])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2192])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2193])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2194])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2195])) * - (precomp_domains[54][i & ((keccak__row_ratio)*16 - 1)]) * - (precomp_domains[55][i & ((keccak__row_ratio)*16 - 1)]); + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1137])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2127])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2128])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2129])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2130])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2131])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2132])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2133])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1317])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2134])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2135])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2136])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2137])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2138])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2139])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2140])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1138])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2141])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2142])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2143])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2144])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2145])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2146])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2147])); } }, period, kTaskSize); @@ -8431,22 +8402,56 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { precomp_domains[57][i] = - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1136])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2196])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2197])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2198])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2199])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2200])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2201])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2202])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1289])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2203])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2204])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2205])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2206])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2207])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2208])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2209])); + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2148])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2149])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2150])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2151])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2152])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2153])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2154])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2155])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2156])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2157])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2158])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2159])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2160])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2161])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2162])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2163])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2164])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2165])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2166])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2167])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2168])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2169])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2170])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2171])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2172])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2173])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2174])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2175])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2176])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2177])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2178])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2179])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2180])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2181])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2182])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2183])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2184])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2185])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2186])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2187])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2188])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2189])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2190])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2191])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2192])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2193])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2194])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2195])) * + (precomp_domains[55][i & ((keccak__row_ratio)*16 - 1)]) * + (precomp_domains[56][i & ((keccak__row_ratio)*16 - 1)]); } }, period, kTaskSize); @@ -8458,40 +8463,22 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { precomp_domains[58][i] = - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2210])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2211])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2212])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2213])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2214])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2215])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2216])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2217])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2218])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2219])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2220])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2221])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2222])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2223])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2224])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2225])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2226])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2227])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2228])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2229])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2230])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2231])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2232])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2233])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2234])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2235])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2236])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2237])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2238])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2239])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2240])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2241])) * - (precomp_domains[56][i & ((keccak__row_ratio)*16 - 1)]) * - (precomp_domains[57][i & ((keccak__row_ratio)*16 - 1)]); + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1136])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2196])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2197])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2198])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2199])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2200])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2201])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2202])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1289])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2203])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2204])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2205])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2206])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2207])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2208])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2209])); } }, period, kTaskSize); @@ -8503,14 +8490,40 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { precomp_domains[59][i] = - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1261])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2242])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2243])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2244])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2245])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2246])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2247])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2248])); + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2210])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2211])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2212])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2213])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2214])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2215])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2216])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2217])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2218])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2219])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2220])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2221])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2222])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2223])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2224])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2225])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2226])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2227])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2228])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2229])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2230])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2231])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2232])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2233])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2234])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2235])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2236])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2237])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2238])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2239])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2240])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2241])) * + (precomp_domains[57][i & ((keccak__row_ratio)*16 - 1)]) * + (precomp_domains[58][i & ((keccak__row_ratio)*16 - 1)]); } }, period, kTaskSize); @@ -8522,15 +8535,14 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { precomp_domains[60][i] = - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1135])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2249])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2250])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2251])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2252])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2253])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2254])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2255])) * - (precomp_domains[59][i & ((keccak__row_ratio)*16 - 1)]); + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1261])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2242])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2243])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2244])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2245])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2246])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2247])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2248])); } }, period, kTaskSize); @@ -8542,39 +8554,14 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { precomp_domains[61][i] = - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2256])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2257])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2258])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2259])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2260])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2261])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2262])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2263])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2264])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2265])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2266])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2267])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2268])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2269])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2270])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2271])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2272])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2273])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2274])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2275])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2276])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2277])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2278])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2279])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2280])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2281])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2282])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2283])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2284])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2285])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2286])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2287])) * - (precomp_domains[58][i & ((keccak__row_ratio)*16 - 1)]) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1135])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2249])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2250])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2251])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2252])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2253])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2254])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2255])) * (precomp_domains[60][i & ((keccak__row_ratio)*16 - 1)]); } }, @@ -8587,38 +8574,40 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { precomp_domains[62][i] = - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2080])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2288])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2289])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2290])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2291])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2292])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2293])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2294])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2295])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2296])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2297])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2298])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2299])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2300])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2301])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2302])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1134])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2303])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2304])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2305])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2306])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2307])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2308])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2309])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1233])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2310])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2311])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2312])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2313])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2314])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2315])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2316])); + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2256])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2257])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2258])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2259])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2260])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2261])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2262])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2263])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2264])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2265])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2266])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2267])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2268])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2269])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2270])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2271])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2272])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2273])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2274])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2275])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2276])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2277])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2278])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2279])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2280])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2281])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2282])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2283])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2284])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2285])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2286])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2287])) * + (precomp_domains[59][i & ((keccak__row_ratio)*16 - 1)]) * + (precomp_domains[61][i & ((keccak__row_ratio)*16 - 1)]); } }, period, kTaskSize); @@ -8630,72 +8619,38 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { precomp_domains[63][i] = - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2317])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2318])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2319])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2320])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2321])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2322])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2323])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2324])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2325])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2326])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2327])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2328])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2329])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2330])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2331])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2332])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2333])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2334])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2335])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2336])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2337])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2338])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2339])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2340])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2341])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2342])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2343])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2344])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2345])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2346])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2347])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2348])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2349])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2350])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2351])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2352])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2353])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2354])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2355])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2356])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2357])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2358])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2359])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2360])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2361])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2362])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2363])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2364])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2365])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2366])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2367])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2368])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2369])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2370])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2371])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2372])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2373])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2374])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2375])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2376])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2377])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2378])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2379])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2380])) * - (precomp_domains[61][i & ((keccak__row_ratio)*16 - 1)]) * - (precomp_domains[62][i & ((keccak__row_ratio)*16 - 1)]); + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2080])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2288])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2289])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2290])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2291])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2292])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2293])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2294])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2295])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2296])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2297])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2298])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2299])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2300])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2301])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2302])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1134])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2303])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2304])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2305])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2306])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2307])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2308])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2309])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[1233])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2310])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2311])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2312])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2313])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2314])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2315])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2316])); } }, period, kTaskSize); @@ -8707,14 +8662,72 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { precomp_domains[64][i] = - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2381])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2382])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2383])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2384])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2385])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2386])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2387])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2388])); + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2317])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2318])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2319])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2320])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2321])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2322])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2323])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2324])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2325])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2326])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2327])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2328])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2329])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2330])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2331])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2332])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2333])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2334])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2335])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2336])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2337])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2338])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2339])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2340])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2341])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2342])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2343])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2344])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2345])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2346])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2347])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2348])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2349])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2350])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2351])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2352])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2353])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2354])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2355])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2356])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2357])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2358])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2359])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2360])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2361])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2362])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2363])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2364])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2365])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2366])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2367])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2368])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2369])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2370])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2371])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2372])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2373])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2374])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2375])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2376])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2377])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2378])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2379])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2380])) * + (precomp_domains[62][i & ((keccak__row_ratio)*16 - 1)]) * + (precomp_domains[63][i & ((keccak__row_ratio)*16 - 1)]); } }, period, kTaskSize); @@ -8726,24 +8739,14 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { precomp_domains[65][i] = - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2389])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2390])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2391])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2392])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2393])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2394])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2395])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2396])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2397])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2398])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2399])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2400])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2401])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2402])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2403])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2404])) * - (precomp_domains[63][i & ((keccak__row_ratio)*16 - 1)]) * - (precomp_domains[64][i & ((keccak__row_ratio)*16 - 1)]); + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2381])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2382])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2383])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2384])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2385])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2386])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2387])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2388])); } }, period, kTaskSize); @@ -8755,30 +8758,24 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { precomp_domains[66][i] = - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2405])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2406])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2407])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2408])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2409])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2410])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2411])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2412])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2413])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2414])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2415])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2416])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2417])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2418])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2419])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2420])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2421])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2422])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2423])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2424])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2425])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2426])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2427])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2428])); + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2389])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2390])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2391])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2392])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2393])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2394])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2395])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2396])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2397])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2398])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2399])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2400])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2401])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2402])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2403])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2404])) * + (precomp_domains[64][i & ((keccak__row_ratio)*16 - 1)]) * + (precomp_domains[65][i & ((keccak__row_ratio)*16 - 1)]); } }, period, kTaskSize); @@ -8790,56 +8787,30 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { precomp_domains[67][i] = - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2429])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2430])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2431])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2432])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2433])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2434])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2435])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2436])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2437])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2438])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2439])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2440])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2441])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2442])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2443])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2444])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2445])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2446])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2447])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2448])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2449])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2450])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2451])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2452])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2453])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2454])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2455])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2456])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2457])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2458])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2459])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2460])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2461])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2462])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2463])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2464])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2465])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2466])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2467])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2468])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2469])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2470])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2471])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2472])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2473])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2474])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2475])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2476])) * - (precomp_domains[65][i & ((keccak__row_ratio)*16 - 1)]) * - (precomp_domains[66][i & ((keccak__row_ratio)*16 - 1)]); + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2405])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2406])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2407])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2408])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2409])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2410])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2411])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2412])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2413])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2414])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2415])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2416])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2417])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2418])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2419])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2420])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2421])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2422])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2423])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2424])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2425])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2426])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2427])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2428])); } }, period, kTaskSize); @@ -8851,14 +8822,56 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { precomp_domains[68][i] = - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2477])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2478])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2479])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2480])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2481])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2482])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2483])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2484])); + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2429])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2430])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2431])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2432])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2433])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2434])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2435])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2436])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2437])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2438])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2439])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2440])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2441])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2442])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2443])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2444])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2445])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2446])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2447])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2448])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2449])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2450])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2451])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2452])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2453])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2454])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2455])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2456])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2457])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2458])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2459])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2460])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2461])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2462])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2463])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2464])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2465])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2466])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2467])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2468])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2469])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2470])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2471])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2472])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2473])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2474])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2475])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2476])) * + (precomp_domains[66][i & ((keccak__row_ratio)*16 - 1)]) * + (precomp_domains[67][i & ((keccak__row_ratio)*16 - 1)]); } }, period, kTaskSize); @@ -8870,24 +8883,14 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { precomp_domains[69][i] = - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2485])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2486])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2487])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2488])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2489])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2490])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2491])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2492])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2493])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2494])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2495])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2496])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2497])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2498])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2499])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2500])) * - (precomp_domains[67][i & ((keccak__row_ratio)*16 - 1)]) * - (precomp_domains[68][i & ((keccak__row_ratio)*16 - 1)]); + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2477])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2478])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2479])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2480])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2481])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2482])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2483])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2484])); } }, period, kTaskSize); @@ -8899,14 +8902,24 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { precomp_domains[70][i] = - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[356])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2501])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2502])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2503])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2504])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2505])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2506])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2507])); + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2485])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2486])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2487])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2488])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2489])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2490])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2491])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2492])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2493])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2494])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2495])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2496])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2497])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2498])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2499])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2500])) * + (precomp_domains[68][i & ((keccak__row_ratio)*16 - 1)]) * + (precomp_domains[69][i & ((keccak__row_ratio)*16 - 1)]); } }, period, kTaskSize); @@ -8918,24 +8931,14 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { precomp_domains[71][i] = - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2508])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2509])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2510])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2511])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2512])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2513])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2514])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2515])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2516])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2517])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2518])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2519])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2520])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2521])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2522])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2523])) * - (precomp_domains[69][i & ((keccak__row_ratio)*16 - 1)]) * - (precomp_domains[70][i & ((keccak__row_ratio)*16 - 1)]); + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[356])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2501])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2502])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2503])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2504])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2505])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2506])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2507])); } }, period, kTaskSize); @@ -8947,14 +8950,24 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { precomp_domains[72][i] = - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2524])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2525])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2526])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2527])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2528])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2529])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2530])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2531])); + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2508])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2509])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2510])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2511])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2512])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2513])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2514])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2515])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2516])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2517])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2518])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2519])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2520])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2521])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2522])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2523])) * + (precomp_domains[70][i & ((keccak__row_ratio)*16 - 1)]) * + (precomp_domains[71][i & ((keccak__row_ratio)*16 - 1)]); } }, period, kTaskSize); @@ -8966,24 +8979,14 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { precomp_domains[73][i] = - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2532])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2533])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2534])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2535])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2536])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2537])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2538])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2539])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2540])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2541])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2542])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2543])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2544])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2545])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2546])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2547])) * - (precomp_domains[71][i & ((keccak__row_ratio)*16 - 1)]) * - (precomp_domains[72][i & ((keccak__row_ratio)*16 - 1)]); + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2524])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2525])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2526])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2527])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2528])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2529])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2530])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2531])); } }, period, kTaskSize); @@ -8995,22 +8998,24 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { precomp_domains[74][i] = - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2548])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2549])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2550])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2551])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2552])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2553])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2554])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2555])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[332])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2556])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2557])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2558])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2559])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2560])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2561])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2562])); + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2532])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2533])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2534])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2535])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2536])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2537])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2538])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2539])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2540])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2541])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2542])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2543])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2544])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2545])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2546])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2547])) * + (precomp_domains[72][i & ((keccak__row_ratio)*16 - 1)]) * + (precomp_domains[73][i & ((keccak__row_ratio)*16 - 1)]); } }, period, kTaskSize); @@ -9022,23 +9027,22 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { precomp_domains[75][i] = - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2563])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2564])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2565])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2566])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2567])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2568])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2569])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2570])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[117])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2571])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2572])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2573])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2574])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2575])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2576])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2577])) * - (precomp_domains[74][i & ((keccak__row_ratio)*16 - 1)]); + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2548])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2549])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2550])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2551])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2552])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2553])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2554])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2555])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[332])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2556])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2557])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2558])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2559])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2560])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2561])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2562])); } }, period, kTaskSize); @@ -9050,71 +9054,22 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { precomp_domains[76][i] = - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2578])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2579])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2580])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2581])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2582])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2583])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2584])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2585])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2586])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2587])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2588])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2589])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2590])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2591])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2592])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2593])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2594])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2595])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2596])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2597])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2598])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2599])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2600])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2601])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2602])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2603])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2604])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2605])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2606])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2607])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2608])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2609])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2610])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2611])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2612])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2613])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2614])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2615])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2616])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2617])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2618])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2619])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2620])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2621])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2622])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2623])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2624])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2625])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2626])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2627])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2628])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2629])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2630])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2631])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2632])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2633])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2634])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2635])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2636])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2637])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2638])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2639])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2640])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2641])) * - (precomp_domains[73][i & ((keccak__row_ratio)*16 - 1)]) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2563])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2564])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2565])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2566])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2567])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2568])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2569])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2570])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[117])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2571])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2572])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2573])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2574])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2575])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2576])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2577])) * (precomp_domains[75][i & ((keccak__row_ratio)*16 - 1)]); } }, @@ -9127,54 +9082,71 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { precomp_domains[77][i] = - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2642])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2643])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2644])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2645])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2646])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2647])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2648])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2649])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2650])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2651])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2652])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2653])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2654])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2655])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2656])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2657])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2658])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2659])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2660])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2661])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2662])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2663])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2664])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2665])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2666])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2667])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2668])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2669])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2670])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2671])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2672])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2673])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2674])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2675])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2676])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2677])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2678])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2679])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2680])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2681])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2682])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2683])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2684])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2685])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2686])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2687])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2688])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2689])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2578])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2579])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2580])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2581])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2582])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2583])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2584])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2585])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2586])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2587])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2588])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2589])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2590])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2591])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2592])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2593])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2594])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2595])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2596])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2597])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2598])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2599])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2600])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2601])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2602])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2603])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2604])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2605])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2606])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2607])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2608])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2609])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2610])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2611])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2612])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2613])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2614])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2615])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2616])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2617])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2618])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2619])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2620])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2621])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2622])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2623])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2624])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2625])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2626])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2627])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2628])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2629])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2630])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2631])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2632])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2633])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2634])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2635])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2636])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2637])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2638])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2639])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2640])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2641])) * + (precomp_domains[74][i & ((keccak__row_ratio)*16 - 1)]) * (precomp_domains[76][i & ((keccak__row_ratio)*16 - 1)]); } }, @@ -9187,30 +9159,54 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { precomp_domains[78][i] = - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2690])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2691])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2692])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2693])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2694])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2695])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2696])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2697])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2698])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2699])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2700])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2701])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2702])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2703])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2704])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2705])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2706])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2707])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2708])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2709])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2710])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2711])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2712])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2713])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2642])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2643])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2644])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2645])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2646])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2647])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2648])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2649])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2650])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2651])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2652])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2653])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2654])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2655])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2656])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2657])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2658])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2659])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2660])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2661])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2662])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2663])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2664])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2665])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2666])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2667])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2668])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2669])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2670])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2671])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2672])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2673])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2674])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2675])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2676])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2677])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2678])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2679])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2680])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2681])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2682])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2683])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2684])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2685])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2686])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2687])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2688])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2689])) * (precomp_domains[77][i & ((keccak__row_ratio)*16 - 1)]); } }, @@ -9223,7 +9219,31 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { precomp_domains[79][i] = - (point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[37]); + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2690])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2691])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2692])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2693])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2694])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2695])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2696])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2697])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2698])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2699])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2700])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2701])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2702])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2703])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2704])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2705])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2706])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2707])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2708])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2709])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2710])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2711])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2712])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2713])) * + (precomp_domains[78][i & ((keccak__row_ratio)*16 - 1)]); } }, period, kTaskSize); @@ -9235,14 +9255,7 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { precomp_domains[80][i] = - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2714])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2715])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2716])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2717])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2718])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2719])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2720])) * - (precomp_domains[79][i & ((keccak__row_ratio)*16 - 1)]); + (point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[37]); } }, period, kTaskSize); @@ -9254,23 +9267,13 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { precomp_domains[81][i] = - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2721])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2722])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2723])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2724])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2725])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2726])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2727])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2728])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2729])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2730])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2731])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2732])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2733])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2734])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2735])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2736])) * - (precomp_domains[33][i & ((keccak__row_ratio)*16 - 1)]) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2714])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2715])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2716])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2717])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2718])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2719])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2720])) * (precomp_domains[80][i & ((keccak__row_ratio)*16 - 1)]); } }, @@ -9283,14 +9286,24 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { precomp_domains[82][i] = - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[21])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2737])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2738])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2739])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2740])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2741])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2742])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2743])); + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2721])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2722])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2723])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2724])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2725])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2726])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2727])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2728])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2729])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2730])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2731])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2732])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2733])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2734])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2735])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2736])) * + (precomp_domains[34][i & ((keccak__row_ratio)*16 - 1)]) * + (precomp_domains[81][i & ((keccak__row_ratio)*16 - 1)]); } }, period, kTaskSize); @@ -9302,7 +9315,14 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { precomp_domains[83][i] = - (point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2744]); + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[21])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2737])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2738])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2739])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2740])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2741])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2742])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2743])); } }, period, kTaskSize); @@ -9314,31 +9334,7 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { precomp_domains[84][i] = - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2745])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2746])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2747])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2748])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2749])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2750])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2751])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[164])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2752])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2753])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2754])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2755])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2756])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2757])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2758])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2759])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2760])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2761])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2762])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2763])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2764])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2765])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2766])) * - (precomp_domains[82][i & ((keccak__row_ratio)*16 - 1)]) * - (precomp_domains[83][i & ((keccak__row_ratio)*16 - 1)]); + (point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2744]); } }, period, kTaskSize); @@ -9350,23 +9346,31 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { precomp_domains[85][i] = - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2767])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2768])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2769])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2770])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2771])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2772])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2773])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2774])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2775])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2776])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2777])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2778])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2779])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2780])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2781])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2782])) * - (precomp_domains[81][i & ((keccak__row_ratio)*16 - 1)]); + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2745])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2746])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2747])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2748])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2749])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2750])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2751])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[164])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2752])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2753])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2754])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2755])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2756])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2757])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2758])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2759])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2760])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2761])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2762])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2763])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2764])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2765])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2766])) * + (precomp_domains[83][i & ((keccak__row_ratio)*16 - 1)]) * + (precomp_domains[84][i & ((keccak__row_ratio)*16 - 1)]); } }, period, kTaskSize); @@ -9378,56 +9382,23 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { precomp_domains[86][i] = - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2783])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2784])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2785])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2786])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2787])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2788])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2789])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2790])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2791])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2792])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2793])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2794])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2795])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2796])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2797])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2798])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2799])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2800])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2801])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2802])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2803])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2804])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2805])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2806])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2807])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2808])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2809])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2810])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2811])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2812])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2813])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2814])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2815])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2816])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2817])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2818])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2819])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2820])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2821])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2822])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2823])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2824])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2825])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2826])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2827])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2828])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2829])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2830])) * - (precomp_domains[84][i & ((keccak__row_ratio)*16 - 1)]) * - (precomp_domains[85][i & ((keccak__row_ratio)*16 - 1)]); + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2767])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2768])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2769])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2770])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2771])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2772])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2773])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2774])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2775])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2776])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2777])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2778])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2779])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2780])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2781])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2782])) * + (precomp_domains[82][i & ((keccak__row_ratio)*16 - 1)]); } }, period, kTaskSize); @@ -9439,7 +9410,56 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { precomp_domains[87][i] = - (point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2831]); + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2783])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2784])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2785])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2786])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2787])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2788])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2789])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2790])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2791])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2792])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2793])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2794])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2795])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2796])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2797])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2798])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2799])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2800])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2801])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2802])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2803])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2804])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2805])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2806])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2807])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2808])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2809])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2810])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2811])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2812])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2813])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2814])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2815])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2816])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2817])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2818])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2819])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2820])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2821])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2822])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2823])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2824])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2825])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2826])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2827])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2828])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2829])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2830])) * + (precomp_domains[85][i & ((keccak__row_ratio)*16 - 1)]) * + (precomp_domains[86][i & ((keccak__row_ratio)*16 - 1)]); } }, period, kTaskSize); @@ -9451,22 +9471,7 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { precomp_domains[88][i] = - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2832])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2833])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2834])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2835])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2836])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2837])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2838])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2839])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2840])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2841])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2842])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2843])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2844])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2845])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2846])) * - (precomp_domains[87][i & ((keccak__row_ratio)*16 - 1)]); + (point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2831]); } }, period, kTaskSize); @@ -9478,14 +9483,21 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { precomp_domains[89][i] = - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2847])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2848])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2849])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2850])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2851])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2852])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2853])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2854])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2832])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2833])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2834])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2835])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2836])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2837])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2838])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2839])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2840])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2841])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2842])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2843])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2844])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2845])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2846])) * (precomp_domains[88][i & ((keccak__row_ratio)*16 - 1)]); } }, @@ -9498,14 +9510,14 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { precomp_domains[90][i] = - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2855])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2856])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2857])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2858])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2859])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2860])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2861])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2862])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2847])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2848])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2849])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2850])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2851])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2852])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2853])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2854])) * (precomp_domains[89][i & ((keccak__row_ratio)*16 - 1)]); } }, @@ -9518,39 +9530,15 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { precomp_domains[91][i] = - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2863])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2864])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2865])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2866])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2867])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2868])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2869])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2870])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2871])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2872])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2873])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2874])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2875])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2876])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2877])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2878])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2879])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2880])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2881])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2882])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2883])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2884])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2885])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2886])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2887])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2888])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2889])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2890])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2891])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2892])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2893])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2894])) * - (precomp_domains[86][i & ((keccak__row_ratio)*16 - 1)]); + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2855])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2856])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2857])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2858])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2859])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2860])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2861])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2862])) * + (precomp_domains[90][i & ((keccak__row_ratio)*16 - 1)]); } }, period, kTaskSize); @@ -9562,40 +9550,39 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { precomp_domains[92][i] = - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2895])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2896])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2897])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2898])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2899])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2900])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2901])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2902])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2903])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2904])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2905])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2906])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2907])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2908])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2909])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2910])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2911])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2912])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2913])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2914])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2915])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2916])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2917])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2918])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2919])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2920])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2921])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2922])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2923])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2924])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2925])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2926])) * - (precomp_domains[90][i & ((keccak__row_ratio)*16 - 1)]) * - (precomp_domains[91][i & ((keccak__row_ratio)*16 - 1)]); + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2863])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2864])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2865])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2866])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2867])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2868])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2869])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2870])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2871])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2872])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2873])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2874])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2875])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2876])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2877])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2878])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2879])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2880])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2881])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2882])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2883])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2884])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2885])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2886])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2887])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2888])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2889])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2890])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2891])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2892])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2893])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2894])) * + (precomp_domains[87][i & ((keccak__row_ratio)*16 - 1)]); } }, period, kTaskSize); @@ -9607,38 +9594,40 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { precomp_domains[93][i] = - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[45])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2927])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2928])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2929])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2930])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2931])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2932])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2933])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2934])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2935])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2936])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2937])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2938])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2939])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2940])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2941])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[188])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2942])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2943])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2944])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2945])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2946])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2947])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2948])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2949])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2950])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2951])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2952])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2953])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2954])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2955])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2956])); + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2895])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2896])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2897])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2898])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2899])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2900])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2901])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2902])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2903])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2904])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2905])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2906])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2907])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2908])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2909])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2910])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2911])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2912])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2913])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2914])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2915])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2916])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2917])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2918])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2919])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2920])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2921])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2922])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2923])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2924])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2925])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2926])) * + (precomp_domains[91][i & ((keccak__row_ratio)*16 - 1)]) * + (precomp_domains[92][i & ((keccak__row_ratio)*16 - 1)]); } }, period, kTaskSize); @@ -9650,15 +9639,38 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { precomp_domains[94][i] = - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[212])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2957])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2958])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2959])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2960])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2961])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2962])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2963])) * - (precomp_domains[93][i & ((keccak__row_ratio)*16 - 1)]); + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[45])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2927])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2928])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2929])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2930])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2931])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2932])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2933])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2934])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2935])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2936])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2937])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2938])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2939])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2940])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2941])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[188])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2942])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2943])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2944])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2945])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2946])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2947])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2948])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2949])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2950])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2951])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2952])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2953])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2954])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2955])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2956])); } }, period, kTaskSize); @@ -9670,7 +9682,15 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { precomp_domains[95][i] = - (point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2964]); + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[212])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2957])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2958])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2959])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2960])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2961])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2962])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2963])) * + (precomp_domains[94][i & ((keccak__row_ratio)*16 - 1)]); } }, period, kTaskSize); @@ -9682,31 +9702,7 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { precomp_domains[96][i] = - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2965])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2966])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2967])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2968])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2969])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2970])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2971])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2972])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2973])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2974])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2975])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2976])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2977])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2978])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2979])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2980])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2981])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2982])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2983])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2984])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2985])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2986])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2987])) * - (precomp_domains[94][i & ((keccak__row_ratio)*16 - 1)]) * - (precomp_domains[95][i & ((keccak__row_ratio)*16 - 1)]); + (point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2964]); } }, period, kTaskSize); @@ -9718,14 +9714,30 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { precomp_domains[97][i] = - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2988])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2989])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2990])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2991])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2992])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2993])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2994])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2995])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2965])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2966])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2967])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2968])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2969])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2970])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2971])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2972])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2973])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2974])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2975])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2976])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2977])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2978])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2979])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2980])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2981])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2982])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2983])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2984])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2985])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2986])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2987])) * + (precomp_domains[95][i & ((keccak__row_ratio)*16 - 1)]) * (precomp_domains[96][i & ((keccak__row_ratio)*16 - 1)]); } }, @@ -9738,14 +9750,14 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { precomp_domains[98][i] = - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2996])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2997])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2998])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2999])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3000])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3001])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3002])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3003])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2988])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2989])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2990])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2991])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2992])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2993])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2994])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2995])) * (precomp_domains[97][i & ((keccak__row_ratio)*16 - 1)]); } }, @@ -9758,71 +9770,15 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { precomp_domains[99][i] = - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3004])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3005])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3006])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3007])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3008])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3009])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3010])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3011])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3012])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3013])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3014])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3015])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3016])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3017])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3018])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3019])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3020])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3021])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3022])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3023])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3024])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3025])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3026])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3027])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3028])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3029])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3030])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3031])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3032])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3033])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3034])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3035])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3036])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3037])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3038])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3039])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3040])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3041])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3042])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3043])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3044])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3045])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3046])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3047])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3048])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3049])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3050])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3051])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3052])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3053])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3054])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3055])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3056])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3057])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3058])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3059])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3060])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3061])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3062])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3063])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3064])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3065])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3066])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3067])) * - (precomp_domains[92][i & ((keccak__row_ratio)*16 - 1)]); + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2996])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2997])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2998])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[2999])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3000])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3001])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3002])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3003])) * + (precomp_domains[98][i & ((keccak__row_ratio)*16 - 1)]); } }, period, kTaskSize); @@ -9834,23 +9790,71 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { precomp_domains[100][i] = - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3068])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3069])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3070])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3071])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3072])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3073])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3074])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3075])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3076])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3077])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3078])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3079])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3080])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3081])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3082])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3083])) * - (precomp_domains[99][i & ((keccak__row_ratio)*16 - 1)]); + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3004])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3005])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3006])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3007])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3008])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3009])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3010])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3011])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3012])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3013])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3014])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3015])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3016])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3017])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3018])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3019])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3020])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3021])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3022])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3023])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3024])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3025])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3026])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3027])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3028])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3029])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3030])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3031])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3032])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3033])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3034])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3035])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3036])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3037])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3038])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3039])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3040])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3041])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3042])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3043])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3044])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3045])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3046])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3047])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3048])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3049])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3050])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3051])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3052])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3053])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3054])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3055])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3056])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3057])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3058])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3059])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3060])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3061])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3062])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3063])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3064])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3065])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3066])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3067])) * + (precomp_domains[93][i & ((keccak__row_ratio)*16 - 1)]); } }, period, kTaskSize); @@ -9862,54 +9866,22 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { precomp_domains[101][i] = - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3084])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3085])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3086])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3087])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3088])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3089])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3090])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3091])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3092])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3093])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3094])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3095])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3096])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3097])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3098])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3099])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3100])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3101])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3102])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3103])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3104])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3105])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3106])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3107])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3108])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3109])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3110])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3111])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3112])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3113])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3114])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3115])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3116])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3117])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3118])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3119])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3120])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3121])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3122])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3123])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3124])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3125])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3126])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3127])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3128])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3129])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3130])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3131])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3068])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3069])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3070])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3071])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3072])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3073])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3074])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3075])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3076])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3077])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3078])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3079])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3080])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3081])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3082])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3083])) * (precomp_domains[100][i & ((keccak__row_ratio)*16 - 1)]); } }, @@ -9922,22 +9894,54 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { precomp_domains[102][i] = - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3132])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3133])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3134])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3135])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3136])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3137])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3138])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3139])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3140])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3141])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3142])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3143])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3144])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3145])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3146])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3147])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3084])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3085])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3086])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3087])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3088])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3089])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3090])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3091])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3092])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3093])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3094])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3095])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3096])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3097])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3098])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3099])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3100])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3101])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3102])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3103])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3104])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3105])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3106])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3107])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3108])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3109])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3110])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3111])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3112])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3113])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3114])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3115])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3116])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3117])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3118])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3119])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3120])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3121])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3122])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3123])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3124])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3125])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3126])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3127])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3128])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3129])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3130])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3131])) * (precomp_domains[101][i & ((keccak__row_ratio)*16 - 1)]); } }, @@ -9950,23 +9954,22 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { precomp_domains[103][i] = - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3148])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3149])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3150])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3151])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3152])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3153])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3154])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3155])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3156])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3157])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3158])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3159])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3160])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3161])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3162])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3163])) * - (precomp_domains[98][i & ((keccak__row_ratio)*16 - 1)]) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3132])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3133])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3134])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3135])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3136])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3137])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3138])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3139])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3140])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3141])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3142])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3143])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3144])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3145])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3146])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3147])) * (precomp_domains[102][i & ((keccak__row_ratio)*16 - 1)]); } }, @@ -9979,14 +9982,24 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { precomp_domains[104][i] = - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[69])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3164])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3165])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3166])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3167])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3168])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3169])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3170])); + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3148])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3149])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3150])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3151])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3152])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3153])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3154])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3155])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3156])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3157])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3158])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3159])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3160])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3161])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3162])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3163])) * + (precomp_domains[99][i & ((keccak__row_ratio)*16 - 1)]) * + (precomp_domains[103][i & ((keccak__row_ratio)*16 - 1)]); } }, period, kTaskSize); @@ -9998,24 +10011,14 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { precomp_domains[105][i] = - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3171])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3172])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3173])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3174])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3175])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3176])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3177])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3178])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3179])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3180])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3181])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3182])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3183])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3184])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3185])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3186])) * - (precomp_domains[103][i & ((keccak__row_ratio)*16 - 1)]) * - (precomp_domains[104][i & ((keccak__row_ratio)*16 - 1)]); + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[69])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3164])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3165])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3166])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3167])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3168])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3169])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3170])); } }, period, kTaskSize); @@ -10027,22 +10030,24 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { precomp_domains[106][i] = - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3187])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3188])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3189])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3190])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3191])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3192])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3193])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3194])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[236])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3195])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3196])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3197])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3198])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3199])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3200])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3201])); + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3171])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3172])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3173])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3174])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3175])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3176])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3177])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3178])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3179])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3180])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3181])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3182])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3183])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3184])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3185])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3186])) * + (precomp_domains[104][i & ((keccak__row_ratio)*16 - 1)]) * + (precomp_domains[105][i & ((keccak__row_ratio)*16 - 1)]); } }, period, kTaskSize); @@ -10054,23 +10059,22 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { precomp_domains[107][i] = - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3202])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3203])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3204])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3205])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3206])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3207])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3208])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3209])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[260])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3210])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3211])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3212])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3213])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3214])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3215])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3216])) * - (precomp_domains[106][i & ((keccak__row_ratio)*16 - 1)]); + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3187])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3188])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3189])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3190])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3191])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3192])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3193])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3194])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[236])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3195])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3196])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3197])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3198])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3199])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3200])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3201])); } }, period, kTaskSize); @@ -10082,71 +10086,22 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { precomp_domains[108][i] = - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3217])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3218])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3219])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3220])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3221])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3222])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3223])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3224])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3225])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3226])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3227])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3228])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3229])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3230])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3231])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3232])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3233])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3234])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3235])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3236])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3237])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3238])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3239])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3240])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3241])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3242])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3243])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3244])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3245])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3246])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3247])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3248])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3249])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3250])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3251])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3252])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3253])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3254])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3255])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3256])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3257])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3258])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3259])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3260])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3261])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3262])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3263])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3264])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3265])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3266])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3267])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3268])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3269])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3270])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3271])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3272])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3273])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3274])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3275])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3276])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3277])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3278])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3279])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3280])) * - (precomp_domains[105][i & ((keccak__row_ratio)*16 - 1)]) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3202])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3203])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3204])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3205])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3206])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3207])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3208])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3209])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[260])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3210])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3211])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3212])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3213])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3214])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3215])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3216])) * (precomp_domains[107][i & ((keccak__row_ratio)*16 - 1)]); } }, @@ -10159,54 +10114,71 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { precomp_domains[109][i] = - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3281])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3282])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3283])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3284])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3285])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3286])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3287])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3288])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3289])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3290])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3291])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3292])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3293])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3294])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3295])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3296])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3297])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3298])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3299])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3300])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3301])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3302])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3303])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3304])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3305])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3306])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3307])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3308])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3309])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3310])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3311])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3312])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3313])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3314])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3315])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3316])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3317])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3318])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3319])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3320])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3321])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3322])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3323])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3324])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3325])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3326])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3327])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3328])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3217])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3218])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3219])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3220])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3221])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3222])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3223])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3224])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3225])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3226])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3227])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3228])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3229])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3230])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3231])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3232])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3233])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3234])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3235])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3236])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3237])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3238])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3239])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3240])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3241])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3242])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3243])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3244])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3245])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3246])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3247])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3248])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3249])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3250])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3251])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3252])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3253])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3254])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3255])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3256])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3257])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3258])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3259])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3260])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3261])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3262])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3263])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3264])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3265])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3266])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3267])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3268])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3269])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3270])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3271])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3272])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3273])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3274])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3275])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3276])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3277])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3278])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3279])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3280])) * + (precomp_domains[106][i & ((keccak__row_ratio)*16 - 1)]) * (precomp_domains[108][i & ((keccak__row_ratio)*16 - 1)]); } }, @@ -10219,30 +10191,54 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { precomp_domains[110][i] = - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3329])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3330])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3331])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3332])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3333])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3334])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3335])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3336])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3337])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3338])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3339])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3340])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3341])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3342])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3343])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3344])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3345])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3346])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3347])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3348])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3349])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3350])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3351])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3352])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3281])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3282])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3283])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3284])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3285])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3286])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3287])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3288])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3289])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3290])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3291])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3292])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3293])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3294])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3295])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3296])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3297])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3298])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3299])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3300])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3301])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3302])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3303])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3304])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3305])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3306])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3307])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3308])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3309])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3310])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3311])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3312])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3313])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3314])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3315])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3316])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3317])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3318])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3319])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3320])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3321])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3322])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3323])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3324])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3325])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3326])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3327])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3328])) * (precomp_domains[109][i & ((keccak__row_ratio)*16 - 1)]); } }, @@ -10254,8 +10250,32 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( period, [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { - precomp_domains[111][i] = (precomp_domains[32][i & ((keccak__row_ratio)*16 - 1)]) * - (precomp_domains[80][i & ((keccak__row_ratio)*16 - 1)]); + precomp_domains[111][i] = + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3329])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3330])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3331])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3332])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3333])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3334])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3335])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3336])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3337])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3338])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3339])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3340])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3341])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3342])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3343])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3344])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3345])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3346])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3347])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3348])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3349])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3350])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3351])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3352])) * + (precomp_domains[110][i & ((keccak__row_ratio)*16 - 1)]); } }, period, kTaskSize); @@ -10266,8 +10286,8 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( period, [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { - precomp_domains[112][i] = (precomp_domains[84][i & ((keccak__row_ratio)*16 - 1)]) * - (precomp_domains[111][i & ((keccak__row_ratio)*16 - 1)]); + precomp_domains[112][i] = (precomp_domains[33][i & ((keccak__row_ratio)*16 - 1)]) * + (precomp_domains[81][i & ((keccak__row_ratio)*16 - 1)]); } }, period, kTaskSize); @@ -10278,7 +10298,7 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( period, [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { - precomp_domains[113][i] = (precomp_domains[89][i & ((keccak__row_ratio)*16 - 1)]) * + precomp_domains[113][i] = (precomp_domains[85][i & ((keccak__row_ratio)*16 - 1)]) * (precomp_domains[112][i & ((keccak__row_ratio)*16 - 1)]); } }, @@ -10290,9 +10310,8 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( period, [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { - precomp_domains[114][i] = (precomp_domains[45][i & ((keccak__row_ratio)*16 - 1)]) * - (precomp_domains[49][i & ((keccak__row_ratio)*16 - 1)]) * - (precomp_domains[51][i & ((keccak__row_ratio)*16 - 1)]); + precomp_domains[114][i] = (precomp_domains[90][i & ((keccak__row_ratio)*16 - 1)]) * + (precomp_domains[113][i & ((keccak__row_ratio)*16 - 1)]); } }, period, kTaskSize); @@ -10303,10 +10322,9 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( period, [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { - precomp_domains[115][i] = (precomp_domains[53][i & ((keccak__row_ratio)*16 - 1)]) * - (precomp_domains[55][i & ((keccak__row_ratio)*16 - 1)]) * - (precomp_domains[57][i & ((keccak__row_ratio)*16 - 1)]) * - (precomp_domains[114][i & ((keccak__row_ratio)*16 - 1)]); + precomp_domains[115][i] = (precomp_domains[46][i & ((keccak__row_ratio)*16 - 1)]) * + (precomp_domains[50][i & ((keccak__row_ratio)*16 - 1)]) * + (precomp_domains[52][i & ((keccak__row_ratio)*16 - 1)]); } }, period, kTaskSize); @@ -10317,7 +10335,9 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( period, [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { - precomp_domains[116][i] = (precomp_domains[59][i & ((keccak__row_ratio)*16 - 1)]) * + precomp_domains[116][i] = (precomp_domains[54][i & ((keccak__row_ratio)*16 - 1)]) * + (precomp_domains[56][i & ((keccak__row_ratio)*16 - 1)]) * + (precomp_domains[58][i & ((keccak__row_ratio)*16 - 1)]) * (precomp_domains[115][i & ((keccak__row_ratio)*16 - 1)]); } }, @@ -10330,13 +10350,7 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { precomp_domains[117][i] = (precomp_domains[60][i & ((keccak__row_ratio)*16 - 1)]) * - (precomp_domains[62][i & ((keccak__row_ratio)*16 - 1)]) * - (precomp_domains[64][i & ((keccak__row_ratio)*16 - 1)]) * - (precomp_domains[66][i & ((keccak__row_ratio)*16 - 1)]) * - (precomp_domains[68][i & ((keccak__row_ratio)*16 - 1)]) * - (precomp_domains[70][i & ((keccak__row_ratio)*16 - 1)]) * - (precomp_domains[72][i & ((keccak__row_ratio)*16 - 1)]) * - (precomp_domains[115][i & ((keccak__row_ratio)*16 - 1)]); + (precomp_domains[116][i & ((keccak__row_ratio)*16 - 1)]); } }, period, kTaskSize); @@ -10347,8 +10361,14 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( period, [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { - precomp_domains[118][i] = (precomp_domains[75][i & ((keccak__row_ratio)*16 - 1)]) * - (precomp_domains[117][i & ((keccak__row_ratio)*16 - 1)]); + precomp_domains[118][i] = (precomp_domains[61][i & ((keccak__row_ratio)*16 - 1)]) * + (precomp_domains[63][i & ((keccak__row_ratio)*16 - 1)]) * + (precomp_domains[65][i & ((keccak__row_ratio)*16 - 1)]) * + (precomp_domains[67][i & ((keccak__row_ratio)*16 - 1)]) * + (precomp_domains[69][i & ((keccak__row_ratio)*16 - 1)]) * + (precomp_domains[71][i & ((keccak__row_ratio)*16 - 1)]) * + (precomp_domains[73][i & ((keccak__row_ratio)*16 - 1)]) * + (precomp_domains[116][i & ((keccak__row_ratio)*16 - 1)]); } }, period, kTaskSize); @@ -10359,8 +10379,8 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( period, [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { - precomp_domains[119][i] = (precomp_domains[74][i & ((keccak__row_ratio)*16 - 1)]) * - (precomp_domains[117][i & ((keccak__row_ratio)*16 - 1)]); + precomp_domains[119][i] = (precomp_domains[76][i & ((keccak__row_ratio)*16 - 1)]) * + (precomp_domains[118][i & ((keccak__row_ratio)*16 - 1)]); } }, period, kTaskSize); @@ -10371,8 +10391,8 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( period, [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { - precomp_domains[120][i] = (precomp_domains[82][i & ((keccak__row_ratio)*16 - 1)]) * - (precomp_domains[85][i & ((keccak__row_ratio)*16 - 1)]); + precomp_domains[120][i] = (precomp_domains[75][i & ((keccak__row_ratio)*16 - 1)]) * + (precomp_domains[118][i & ((keccak__row_ratio)*16 - 1)]); } }, period, kTaskSize); @@ -10383,10 +10403,8 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( period, [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { - precomp_domains[121][i] = (precomp_domains[90][i & ((keccak__row_ratio)*16 - 1)]) * - (precomp_domains[98][i & ((keccak__row_ratio)*16 - 1)]) * - (precomp_domains[104][i & ((keccak__row_ratio)*16 - 1)]) * - (precomp_domains[112][i & ((keccak__row_ratio)*16 - 1)]); + precomp_domains[121][i] = (precomp_domains[83][i & ((keccak__row_ratio)*16 - 1)]) * + (precomp_domains[86][i & ((keccak__row_ratio)*16 - 1)]); } }, period, kTaskSize); @@ -10397,8 +10415,10 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( period, [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { - precomp_domains[122][i] = (precomp_domains[107][i & ((keccak__row_ratio)*16 - 1)]) * - (precomp_domains[121][i & ((keccak__row_ratio)*16 - 1)]); + precomp_domains[122][i] = (precomp_domains[91][i & ((keccak__row_ratio)*16 - 1)]) * + (precomp_domains[99][i & ((keccak__row_ratio)*16 - 1)]) * + (precomp_domains[105][i & ((keccak__row_ratio)*16 - 1)]) * + (precomp_domains[113][i & ((keccak__row_ratio)*16 - 1)]); } }, period, kTaskSize); @@ -10409,8 +10429,8 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( period, [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { - precomp_domains[123][i] = (precomp_domains[106][i & ((keccak__row_ratio)*16 - 1)]) * - (precomp_domains[121][i & ((keccak__row_ratio)*16 - 1)]); + precomp_domains[123][i] = (precomp_domains[108][i & ((keccak__row_ratio)*16 - 1)]) * + (precomp_domains[122][i & ((keccak__row_ratio)*16 - 1)]); } }, period, kTaskSize); @@ -10421,8 +10441,8 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( period, [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { - precomp_domains[124][i] = (precomp_domains[97][i & ((keccak__row_ratio)*16 - 1)]) * - (precomp_domains[102][i & ((keccak__row_ratio)*16 - 1)]); + precomp_domains[124][i] = (precomp_domains[107][i & ((keccak__row_ratio)*16 - 1)]) * + (precomp_domains[122][i & ((keccak__row_ratio)*16 - 1)]); } }, period, kTaskSize); @@ -10433,8 +10453,8 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( period, [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { - precomp_domains[125][i] = (precomp_domains[94][i & ((keccak__row_ratio)*16 - 1)]) * - (precomp_domains[100][i & ((keccak__row_ratio)*16 - 1)]); + precomp_domains[125][i] = (precomp_domains[98][i & ((keccak__row_ratio)*16 - 1)]) * + (precomp_domains[103][i & ((keccak__row_ratio)*16 - 1)]); } }, period, kTaskSize); @@ -10445,8 +10465,8 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( period, [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { - precomp_domains[126][i] = (precomp_domains[88][i & ((keccak__row_ratio)*16 - 1)]) * - (precomp_domains[91][i & ((keccak__row_ratio)*16 - 1)]); + precomp_domains[126][i] = (precomp_domains[95][i & ((keccak__row_ratio)*16 - 1)]) * + (precomp_domains[101][i & ((keccak__row_ratio)*16 - 1)]); } }, period, kTaskSize); @@ -10457,8 +10477,8 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( period, [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { - precomp_domains[127][i] = (precomp_domains[96][i & ((keccak__row_ratio)*16 - 1)]) * - (precomp_domains[101][i & ((keccak__row_ratio)*16 - 1)]); + precomp_domains[127][i] = (precomp_domains[89][i & ((keccak__row_ratio)*16 - 1)]) * + (precomp_domains[92][i & ((keccak__row_ratio)*16 - 1)]); } }, period, kTaskSize); @@ -10469,8 +10489,8 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( period, [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { - precomp_domains[128][i] = (precomp_domains[93][i & ((keccak__row_ratio)*16 - 1)]) * - (precomp_domains[99][i & ((keccak__row_ratio)*16 - 1)]); + precomp_domains[128][i] = (precomp_domains[97][i & ((keccak__row_ratio)*16 - 1)]) * + (precomp_domains[102][i & ((keccak__row_ratio)*16 - 1)]); } }, period, kTaskSize); @@ -10481,189 +10501,213 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( period, [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { - precomp_domains[129][i] = - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3353])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3354])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3355])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3356])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3357])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3358])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3359])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3360])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3361])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3362])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3363])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3364])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3365])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3366])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3367])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3368])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3369])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3370])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3371])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3372])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3373])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3374])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3375])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3376])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3377])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3378])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3379])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3380])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3381])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3382])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3383])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3384])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3385])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3386])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3387])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3388])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3389])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3390])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3391])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3392])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3393])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3394])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3395])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3396])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3397])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3398])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3399])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3400])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3401])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3402])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3403])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3404])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3405])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3406])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3407])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3408])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3409])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3410])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3411])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3412])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3413])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3414])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3415])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3416])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3417])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3418])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3419])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3420])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3421])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3422])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3423])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3424])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3425])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3426])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3427])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3428])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3429])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3430])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3431])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3432])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3433])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3434])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3435])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3436])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3437])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3438])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3439])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3440])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3441])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3442])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3443])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3444])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3445])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3446])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3447])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3448])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3449])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3450])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3451])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3452])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3453])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3454])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3455])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3456])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3457])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3458])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3459])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3460])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3461])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3462])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3463])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3464])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3465])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3466])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3467])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3468])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3469])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3470])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3471])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3472])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3473])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3474])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3475])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3476])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3477])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3478])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3479])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3480])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3481])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3482])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3483])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3484])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3485])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3486])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3487])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3488])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3489])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3490])) * - ((point_powers[16][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3491])) * - (precomp_domains[33][i & ((keccak__row_ratio)*16 - 1)]) * - (precomp_domains[41][i & ((keccak__row_ratio)*16 - 1)]) * - (precomp_domains[79][i & ((keccak__row_ratio)*16 - 1)]) * - (precomp_domains[83][i & ((keccak__row_ratio)*16 - 1)]) * - (precomp_domains[87][i & ((keccak__row_ratio)*16 - 1)]) * - (precomp_domains[95][i & ((keccak__row_ratio)*16 - 1)]); + precomp_domains[129][i] = (precomp_domains[94][i & ((keccak__row_ratio)*16 - 1)]) * + (precomp_domains[100][i & ((keccak__row_ratio)*16 - 1)]); } }, period, kTaskSize); - period = memory_units_row_ratio; + period = (((uses_keccak_builtin) != (0)) ? ((keccak__row_ratio)*16) : 0); ASSERT_RELEASE(period < kPeriodUpperBound, "Precomp evals: large dynamic size."); task_manager.ParallelFor( period, [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { precomp_domains[130][i] = - (point_powers[17][i & ((memory_units_row_ratio) - (1))]) - (FieldElementT::One()); + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3353])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3354])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3355])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3356])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3357])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3358])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3359])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3360])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3361])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3362])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3363])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3364])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3365])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3366])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3367])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3368])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3369])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3370])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3371])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3372])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3373])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3374])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3375])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3376])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3377])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3378])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3379])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3380])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3381])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3382])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3383])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3384])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3385])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3386])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3387])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3388])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3389])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3390])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3391])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3392])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3393])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3394])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3395])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3396])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3397])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3398])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3399])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3400])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3401])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3402])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3403])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3404])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3405])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3406])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3407])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3408])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3409])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3410])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3411])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3412])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3413])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3414])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3415])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3416])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3417])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3418])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3419])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3420])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3421])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3422])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3423])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3424])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3425])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3426])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3427])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3428])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3429])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3430])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3431])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3432])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3433])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3434])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3435])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3436])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3437])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3438])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3439])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3440])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3441])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3442])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3443])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3444])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3445])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3446])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3447])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3448])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3449])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3450])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3451])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3452])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3453])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3454])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3455])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3456])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3457])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3458])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3459])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3460])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3461])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3462])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3463])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3464])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3465])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3466])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3467])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3468])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3469])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3470])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3471])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3472])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3473])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3474])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3475])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3476])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3477])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3478])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3479])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3480])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3481])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3482])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3483])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3484])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3485])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3486])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3487])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3488])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3489])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3490])) * + ((point_powers[17][i & (((16) * (keccak__row_ratio)) - (1))]) - (shifts[3491])) * + (precomp_domains[34][i & ((keccak__row_ratio)*16 - 1)]) * + (precomp_domains[42][i & ((keccak__row_ratio)*16 - 1)]) * + (precomp_domains[80][i & ((keccak__row_ratio)*16 - 1)]) * + (precomp_domains[84][i & ((keccak__row_ratio)*16 - 1)]) * + (precomp_domains[88][i & ((keccak__row_ratio)*16 - 1)]) * + (precomp_domains[96][i & ((keccak__row_ratio)*16 - 1)]); } }, period, kTaskSize); - period = (memory_units_row_ratio)*8; + period = memory_units_row_ratio; ASSERT_RELEASE(period < kPeriodUpperBound, "Precomp evals: large dynamic size."); task_manager.ParallelFor( period, [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { precomp_domains[131][i] = - (point_powers[18][i & (((8) * (memory_units_row_ratio)) - (1))]) - + (point_powers[18][i & ((memory_units_row_ratio) - (1))]) - (FieldElementT::One()); + } + }, + period, kTaskSize); + + period = (memory_units_row_ratio)*8; + ASSERT_RELEASE(period < kPeriodUpperBound, "Precomp evals: large dynamic size."); + task_manager.ParallelFor( + period, + [&](const TaskInfo& task_info) { + for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { + precomp_domains[132][i] = + (point_powers[19][i & (((8) * (memory_units_row_ratio)) - (1))]) - (FieldElementT::One()); } }, period, kTaskSize); + period = (((uses_mul_mod_builtin) != (0)) ? (mul_mod__row_ratio) : 0); + ASSERT_RELEASE(period < kPeriodUpperBound, "Precomp evals: large dynamic size."); + task_manager.ParallelFor( + period, + [&](const TaskInfo& task_info) { + for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { + precomp_domains[133][i] = + (point_powers[20][i & ((mul_mod__row_ratio) - (1))]) - (FieldElementT::One()); + } + }, + period, kTaskSize); + period = (((uses_pedersen_builtin) != (0)) ? (SafeDiv(pedersen_builtin_row_ratio, 512)) : 0); ASSERT_RELEASE(period < kPeriodUpperBound, "Precomp evals: large dynamic size."); task_manager.ParallelFor( period, [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { - precomp_domains[132][i] = - (point_powers[19][i & ((SafeDiv(pedersen_builtin_row_ratio, 512)) - (1))]) - + precomp_domains[134][i] = + (point_powers[21][i & ((SafeDiv(pedersen_builtin_row_ratio, 512)) - (1))]) - (FieldElementT::One()); } }, @@ -10675,8 +10719,8 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( period, [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { - precomp_domains[133][i] = - (point_powers[20][i & ((SafeDiv(pedersen_builtin_row_ratio, 2)) - (1))]) - + precomp_domains[135][i] = + (point_powers[22][i & ((SafeDiv(pedersen_builtin_row_ratio, 2)) - (1))]) - (FieldElementT::One()); } }, @@ -10688,8 +10732,8 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( period, [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { - precomp_domains[134][i] = - (point_powers[20][i & ((SafeDiv(pedersen_builtin_row_ratio, 2)) - (1))]) - + precomp_domains[136][i] = + (point_powers[22][i & ((SafeDiv(pedersen_builtin_row_ratio, 2)) - (1))]) - (shifts[3492]); } }, @@ -10701,8 +10745,8 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( period, [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { - precomp_domains[135][i] = - (point_powers[20][i & ((SafeDiv(pedersen_builtin_row_ratio, 2)) - (1))]) - + precomp_domains[137][i] = + (point_powers[22][i & ((SafeDiv(pedersen_builtin_row_ratio, 2)) - (1))]) - (shifts[3493]); } }, @@ -10714,8 +10758,8 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( period, [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { - precomp_domains[136][i] = - (point_powers[21][i & ((pedersen_builtin_row_ratio) - (1))]) - (shifts[3494]); + precomp_domains[138][i] = + (point_powers[23][i & ((pedersen_builtin_row_ratio) - (1))]) - (shifts[3494]); } }, period, kTaskSize); @@ -10726,8 +10770,8 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( period, [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { - precomp_domains[137][i] = - (point_powers[21][i & ((pedersen_builtin_row_ratio) - (1))]) - (FieldElementT::One()); + precomp_domains[139][i] = + (point_powers[23][i & ((pedersen_builtin_row_ratio) - (1))]) - (FieldElementT::One()); } }, period, kTaskSize); @@ -10738,8 +10782,8 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( period, [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { - precomp_domains[138][i] = - (point_powers[22][i & ((SafeDiv(poseidon__row_ratio, 64)) - (1))]) - + precomp_domains[140][i] = + (point_powers[24][i & ((SafeDiv(poseidon__row_ratio, 64)) - (1))]) - (FieldElementT::One()); } }, @@ -10751,8 +10795,8 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( period, [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { - precomp_domains[139][i] = - (point_powers[23][i & ((SafeDiv(poseidon__row_ratio, 32)) - (1))]) - + precomp_domains[141][i] = + (point_powers[25][i & ((SafeDiv(poseidon__row_ratio, 32)) - (1))]) - (FieldElementT::One()); } }, @@ -10764,8 +10808,8 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( period, [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { - precomp_domains[140][i] = - (point_powers[24][i & ((SafeDiv(poseidon__row_ratio, 8)) - (1))]) - + precomp_domains[142][i] = + (point_powers[26][i & ((SafeDiv(poseidon__row_ratio, 8)) - (1))]) - (FieldElementT::One()); } }, @@ -10777,8 +10821,8 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( period, [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { - precomp_domains[141][i] = - (point_powers[25][i & ((SafeDiv(poseidon__row_ratio, 2)) - (1))]) - + precomp_domains[143][i] = + (point_powers[27][i & ((SafeDiv(poseidon__row_ratio, 2)) - (1))]) - (FieldElementT::One()); } }, @@ -10790,8 +10834,8 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( period, [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { - precomp_domains[142][i] = - (point_powers[25][i & ((SafeDiv(poseidon__row_ratio, 2)) - (1))]) - (shifts[3495]); + precomp_domains[144][i] = + (point_powers[27][i & ((SafeDiv(poseidon__row_ratio, 2)) - (1))]) - (shifts[3495]); } }, period, kTaskSize); @@ -10802,8 +10846,8 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( period, [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { - precomp_domains[143][i] = - (point_powers[26][i & ((poseidon__row_ratio) - (1))]) - (shifts[3496]); + precomp_domains[145][i] = + (point_powers[28][i & ((poseidon__row_ratio) - (1))]) - (shifts[3496]); } }, period, kTaskSize); @@ -10814,10 +10858,10 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( period, [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { - precomp_domains[144][i] = - ((point_powers[26][i & ((poseidon__row_ratio) - (1))]) - (shifts[3497])) * - ((point_powers[26][i & ((poseidon__row_ratio) - (1))]) - (shifts[3498])) * - (precomp_domains[143][i & (poseidon__row_ratio - 1)]); + precomp_domains[146][i] = + ((point_powers[28][i & ((poseidon__row_ratio) - (1))]) - (shifts[3497])) * + ((point_powers[28][i & ((poseidon__row_ratio) - (1))]) - (shifts[3498])) * + (precomp_domains[145][i & (poseidon__row_ratio - 1)]); } }, period, kTaskSize); @@ -10828,17 +10872,17 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( period, [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { - precomp_domains[145][i] = - ((point_powers[26][i & ((poseidon__row_ratio) - (1))]) - (shifts[3499])) * - ((point_powers[26][i & ((poseidon__row_ratio) - (1))]) - (shifts[3500])) * - ((point_powers[26][i & ((poseidon__row_ratio) - (1))]) - (shifts[3495])) * - ((point_powers[26][i & ((poseidon__row_ratio) - (1))]) - (shifts[3501])) * - ((point_powers[26][i & ((poseidon__row_ratio) - (1))]) - (shifts[3502])) * - ((point_powers[26][i & ((poseidon__row_ratio) - (1))]) - (shifts[3503])) * - ((point_powers[26][i & ((poseidon__row_ratio) - (1))]) - (shifts[3504])) * - ((point_powers[26][i & ((poseidon__row_ratio) - (1))]) - (shifts[3505])) * - ((point_powers[26][i & ((poseidon__row_ratio) - (1))]) - (shifts[3506])) * - (precomp_domains[143][i & (poseidon__row_ratio - 1)]); + precomp_domains[147][i] = + ((point_powers[28][i & ((poseidon__row_ratio) - (1))]) - (shifts[3499])) * + ((point_powers[28][i & ((poseidon__row_ratio) - (1))]) - (shifts[3500])) * + ((point_powers[28][i & ((poseidon__row_ratio) - (1))]) - (shifts[3495])) * + ((point_powers[28][i & ((poseidon__row_ratio) - (1))]) - (shifts[3501])) * + ((point_powers[28][i & ((poseidon__row_ratio) - (1))]) - (shifts[3502])) * + ((point_powers[28][i & ((poseidon__row_ratio) - (1))]) - (shifts[3503])) * + ((point_powers[28][i & ((poseidon__row_ratio) - (1))]) - (shifts[3504])) * + ((point_powers[28][i & ((poseidon__row_ratio) - (1))]) - (shifts[3505])) * + ((point_powers[28][i & ((poseidon__row_ratio) - (1))]) - (shifts[3506])) * + (precomp_domains[145][i & (poseidon__row_ratio - 1)]); } }, period, kTaskSize); @@ -10849,11 +10893,11 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( period, [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { - precomp_domains[146][i] = - ((point_powers[26][i & ((poseidon__row_ratio) - (1))]) - (shifts[3507])) * - ((point_powers[26][i & ((poseidon__row_ratio) - (1))]) - (shifts[3508])) * - ((point_powers[26][i & ((poseidon__row_ratio) - (1))]) - (shifts[3509])) * - (precomp_domains[145][i & (poseidon__row_ratio - 1)]); + precomp_domains[148][i] = + ((point_powers[28][i & ((poseidon__row_ratio) - (1))]) - (shifts[3507])) * + ((point_powers[28][i & ((poseidon__row_ratio) - (1))]) - (shifts[3508])) * + ((point_powers[28][i & ((poseidon__row_ratio) - (1))]) - (shifts[3509])) * + (precomp_domains[147][i & (poseidon__row_ratio - 1)]); } }, period, kTaskSize); @@ -10864,8 +10908,21 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( period, [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { - precomp_domains[147][i] = - (point_powers[26][i & ((poseidon__row_ratio) - (1))]) - (FieldElementT::One()); + precomp_domains[149][i] = + (point_powers[28][i & ((poseidon__row_ratio) - (1))]) - (FieldElementT::One()); + } + }, + period, kTaskSize); + + period = (((uses_range_check96_builtin) != (0)) ? (range_check96_builtin_row_ratio) : 0); + ASSERT_RELEASE(period < kPeriodUpperBound, "Precomp evals: large dynamic size."); + task_manager.ParallelFor( + period, + [&](const TaskInfo& task_info) { + for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { + precomp_domains[150][i] = + (point_powers[29][i & ((range_check96_builtin_row_ratio) - (1))]) - + (FieldElementT::One()); } }, period, kTaskSize); @@ -10876,8 +10933,8 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( period, [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { - precomp_domains[148][i] = - (point_powers[27][i & ((range_check_builtin_row_ratio) - (1))]) - + precomp_domains[151][i] = + (point_powers[30][i & ((range_check_builtin_row_ratio) - (1))]) - (FieldElementT::One()); } }, @@ -10889,7 +10946,7 @@ CpuAirDefinition::PrecomputeDomainEvalsOnCoset( period, [&](const TaskInfo& task_info) { for (size_t i = task_info.start_idx; i < task_info.end_idx; ++i) { - precomp_domains[149][i] = (point_powers[28][i & ((range_check_units_row_ratio) - (1))]) - + precomp_domains[152][i] = (point_powers[31][i & ((range_check_units_row_ratio) - (1))]) - (FieldElementT::One()); } }, @@ -10902,15 +10959,17 @@ FractionFieldElement CpuAirDefinition::Constra gsl::span neighbors, gsl::span periodic_columns, gsl::span random_coefficients, [[maybe_unused]] const FieldElementT& point, gsl::span shifts, gsl::span precomp_domains) const { - ASSERT_VERIFIER(shifts.size() == 3521, "shifts should contain 3521 elements."); + ASSERT_VERIFIER(shifts.size() == 3524, "shifts should contain 3524 elements."); - // domain0 = point^(4 * trace_length / bitwise__row_ratio) - 1. + // domain0 = point^(trace_length / add_mod__row_ratio) - 1. [[maybe_unused]] const FieldElementT& domain0 = precomp_domains[0]; - // domain1 = point^(trace_length / bitwise__row_ratio) - gen^(3 * trace_length / 4). + // domain1 = point^(4 * trace_length / bitwise__row_ratio) - 1. [[maybe_unused]] const FieldElementT& domain1 = precomp_domains[1]; - // domain2 = point^(trace_length / bitwise__row_ratio) - 1. + // domain2 = point^(trace_length / bitwise__row_ratio) - gen^(3 * trace_length / 4). [[maybe_unused]] const FieldElementT& domain2 = precomp_domains[2]; - // domain3 = (point^(trace_length / bitwise__row_ratio) - gen^(trace_length / 64)) * + // domain3 = point^(trace_length / bitwise__row_ratio) - 1. + [[maybe_unused]] const FieldElementT& domain3 = precomp_domains[3]; + // domain4 = (point^(trace_length / bitwise__row_ratio) - gen^(trace_length / 64)) * // (point^(trace_length / bitwise__row_ratio) - gen^(trace_length / 32)) * (point^(trace_length / // bitwise__row_ratio) - gen^(3 * trace_length / 64)) * (point^(trace_length / bitwise__row_ratio) // - gen^(trace_length / 16)) * (point^(trace_length / bitwise__row_ratio) - gen^(5 * trace_length @@ -10922,58 +10981,58 @@ FractionFieldElement CpuAirDefinition::Constra // trace_length / 64)) * (point^(trace_length / bitwise__row_ratio) - gen^(3 * trace_length / 16)) // * (point^(trace_length / bitwise__row_ratio) - gen^(13 * trace_length / 64)) * // (point^(trace_length / bitwise__row_ratio) - gen^(7 * trace_length / 32)) * - // (point^(trace_length / bitwise__row_ratio) - gen^(15 * trace_length / 64)) * domain2. - [[maybe_unused]] const FieldElementT& domain3 = precomp_domains[3]; - // domain4 = point^(trace_length / cpu_component_step) - 1. + // (point^(trace_length / bitwise__row_ratio) - gen^(15 * trace_length / 64)) * domain3. [[maybe_unused]] const FieldElementT& domain4 = precomp_domains[4]; - // domain5 = point^(trace_length / (16 * cpu_component_step)) - gen^(15 * trace_length / 16). + // domain5 = point^(trace_length / cpu_component_step) - 1. [[maybe_unused]] const FieldElementT& domain5 = precomp_domains[5]; - // domain6 = point^(trace_length / (16 * cpu_component_step)) - 1. + // domain6 = point^(trace_length / (16 * cpu_component_step)) - gen^(15 * trace_length / 16). [[maybe_unused]] const FieldElementT& domain6 = precomp_domains[6]; - // domain7 = point^(trace_length / diluted_units_row_ratio) - 1. + // domain7 = point^(trace_length / (16 * cpu_component_step)) - 1. [[maybe_unused]] const FieldElementT& domain7 = precomp_domains[7]; - // domain8 = point^(256 * trace_length / ec_op_builtin_row_ratio) - 1. + // domain8 = point^(trace_length / diluted_units_row_ratio) - 1. [[maybe_unused]] const FieldElementT& domain8 = precomp_domains[8]; - // domain9 = point^(trace_length / ec_op_builtin_row_ratio) - 1. + // domain9 = point^(256 * trace_length / ec_op_builtin_row_ratio) - 1. [[maybe_unused]] const FieldElementT& domain9 = precomp_domains[9]; - // domain10 = point^(trace_length / ec_op_builtin_row_ratio) - gen^(255 * trace_length / 256). + // domain10 = point^(trace_length / ec_op_builtin_row_ratio) - 1. [[maybe_unused]] const FieldElementT& domain10 = precomp_domains[10]; - // domain11 = point^(trace_length / ec_op_builtin_row_ratio) - gen^(63 * trace_length / 64). + // domain11 = point^(trace_length / ec_op_builtin_row_ratio) - gen^(255 * trace_length / 256). [[maybe_unused]] const FieldElementT& domain11 = precomp_domains[11]; - // domain12 = point^(512 * trace_length / ecdsa_builtin_row_ratio) - 1. + // domain12 = point^(trace_length / ec_op_builtin_row_ratio) - gen^(63 * trace_length / 64). [[maybe_unused]] const FieldElementT& domain12 = precomp_domains[12]; - // domain13 = point^(256 * trace_length / ecdsa_builtin_row_ratio) - 1. + // domain13 = point^(512 * trace_length / ecdsa_builtin_row_ratio) - 1. [[maybe_unused]] const FieldElementT& domain13 = precomp_domains[13]; - // domain14 = point^(2 * trace_length / ecdsa_builtin_row_ratio) - gen^(255 * trace_length / 256). + // domain14 = point^(256 * trace_length / ecdsa_builtin_row_ratio) - 1. [[maybe_unused]] const FieldElementT& domain14 = precomp_domains[14]; - // domain15 = point^(2 * trace_length / ecdsa_builtin_row_ratio) - gen^(251 * trace_length / 256). + // domain15 = point^(2 * trace_length / ecdsa_builtin_row_ratio) - gen^(255 * trace_length / 256). [[maybe_unused]] const FieldElementT& domain15 = precomp_domains[15]; - // domain16 = point^(2 * trace_length / ecdsa_builtin_row_ratio) - 1. + // domain16 = point^(2 * trace_length / ecdsa_builtin_row_ratio) - gen^(251 * trace_length / 256). [[maybe_unused]] const FieldElementT& domain16 = precomp_domains[16]; - // domain17 = point^(trace_length / ecdsa_builtin_row_ratio) - gen^(255 * trace_length / 256). + // domain17 = point^(2 * trace_length / ecdsa_builtin_row_ratio) - 1. [[maybe_unused]] const FieldElementT& domain17 = precomp_domains[17]; - // domain18 = point^(trace_length / ecdsa_builtin_row_ratio) - gen^(251 * trace_length / 256). + // domain18 = point^(trace_length / ecdsa_builtin_row_ratio) - gen^(255 * trace_length / 256). [[maybe_unused]] const FieldElementT& domain18 = precomp_domains[18]; - // domain19 = point^(trace_length / ecdsa_builtin_row_ratio) - 1. + // domain19 = point^(trace_length / ecdsa_builtin_row_ratio) - gen^(251 * trace_length / 256). [[maybe_unused]] const FieldElementT& domain19 = precomp_domains[19]; - // domain20 = point^(4096 * trace_length / keccak__row_ratio) - 1. + // domain20 = point^(trace_length / ecdsa_builtin_row_ratio) - 1. [[maybe_unused]] const FieldElementT& domain20 = precomp_domains[20]; - // domain21 = point^(128 * trace_length / keccak__row_ratio) - 1. + // domain21 = point^(4096 * trace_length / keccak__row_ratio) - 1. [[maybe_unused]] const FieldElementT& domain21 = precomp_domains[21]; - // domain22 = (point^(128 * trace_length / keccak__row_ratio) - gen^(trace_length / 32)) * - // domain21. + // domain22 = point^(128 * trace_length / keccak__row_ratio) - 1. [[maybe_unused]] const FieldElementT& domain22 = precomp_domains[22]; - // domain23 = point^(16 * trace_length / keccak__row_ratio) - 1. + // domain23 = (point^(128 * trace_length / keccak__row_ratio) - gen^(trace_length / 32)) * + // domain22. [[maybe_unused]] const FieldElementT& domain23 = precomp_domains[23]; - // domain24 = (point^(4 * trace_length / keccak__row_ratio) - 1) * (point^(4 * trace_length / + // domain24 = point^(16 * trace_length / keccak__row_ratio) - 1. + [[maybe_unused]] const FieldElementT& domain24 = precomp_domains[24]; + // domain25 = (point^(4 * trace_length / keccak__row_ratio) - 1) * (point^(4 * trace_length / // keccak__row_ratio) - gen^(trace_length / 1024)) * (point^(4 * trace_length / keccak__row_ratio) // - gen^(trace_length / 512)) * (point^(4 * trace_length / keccak__row_ratio) - gen^(3 * // trace_length / 1024)) * (point^(4 * trace_length / keccak__row_ratio) - gen^(trace_length / // 256)) * (point^(4 * trace_length / keccak__row_ratio) - gen^(5 * trace_length / 1024)) * // (point^(4 * trace_length / keccak__row_ratio) - gen^(3 * trace_length / 512)) * (point^(4 * // trace_length / keccak__row_ratio) - gen^(7 * trace_length / 1024)). - [[maybe_unused]] const FieldElementT& domain24 = precomp_domains[24]; - // domain25 = (point^(4 * trace_length / keccak__row_ratio) - gen^(trace_length / 128)) * + [[maybe_unused]] const FieldElementT& domain25 = precomp_domains[25]; + // domain26 = (point^(4 * trace_length / keccak__row_ratio) - gen^(trace_length / 128)) * // (point^(4 * trace_length / keccak__row_ratio) - gen^(9 * trace_length / 1024)) * (point^(4 * // trace_length / keccak__row_ratio) - gen^(5 * trace_length / 512)) * (point^(4 * trace_length / // keccak__row_ratio) - gen^(11 * trace_length / 1024)) * (point^(4 * trace_length / @@ -10987,9 +11046,9 @@ FractionFieldElement CpuAirDefinition::Constra // 1024)) * (point^(4 * trace_length / keccak__row_ratio) - gen^(5 * trace_length / 256)) * // (point^(4 * trace_length / keccak__row_ratio) - gen^(21 * trace_length / 1024)) * (point^(4 * // trace_length / keccak__row_ratio) - gen^(11 * trace_length / 512)) * (point^(4 * trace_length / - // keccak__row_ratio) - gen^(23 * trace_length / 1024)) * domain24. - [[maybe_unused]] const FieldElementT& domain25 = precomp_domains[25]; - // domain26 = (point^(4 * trace_length / keccak__row_ratio) - gen^(5 * trace_length / 32)) * + // keccak__row_ratio) - gen^(23 * trace_length / 1024)) * domain25. + [[maybe_unused]] const FieldElementT& domain26 = precomp_domains[26]; + // domain27 = (point^(4 * trace_length / keccak__row_ratio) - gen^(5 * trace_length / 32)) * // (point^(4 * trace_length / keccak__row_ratio) - gen^(trace_length / 1024 + 5 * trace_length / // 32)) * (point^(4 * trace_length / keccak__row_ratio) - gen^(trace_length / 512 + 5 * // trace_length / 32)) * (point^(4 * trace_length / keccak__row_ratio) - gen^(3 * trace_length / @@ -11098,9 +11157,9 @@ FractionFieldElement CpuAirDefinition::Constra // 256 + 5 * trace_length / 8)) * (point^(4 * trace_length / keccak__row_ratio) - gen^(21 * // trace_length / 1024 + 5 * trace_length / 8)) * (point^(4 * trace_length / keccak__row_ratio) - // gen^(11 * trace_length / 512 + 5 * trace_length / 8)) * (point^(4 * trace_length / - // keccak__row_ratio) - gen^(23 * trace_length / 1024 + 5 * trace_length / 8)) * domain25. - [[maybe_unused]] const FieldElementT& domain26 = precomp_domains[26]; - // domain27 = (point^(4 * trace_length / keccak__row_ratio) - gen^(trace_length / 32)) * (point^(4 + // keccak__row_ratio) - gen^(23 * trace_length / 1024 + 5 * trace_length / 8)) * domain26. + [[maybe_unused]] const FieldElementT& domain27 = precomp_domains[27]; + // domain28 = (point^(4 * trace_length / keccak__row_ratio) - gen^(trace_length / 32)) * (point^(4 // * trace_length / keccak__row_ratio) - gen^(trace_length / 1024 + trace_length / 32)) * // (point^(4 * trace_length / keccak__row_ratio) - gen^(trace_length / 512 + trace_length / 32)) * // (point^(4 * trace_length / keccak__row_ratio) - gen^(3 * trace_length / 1024 + trace_length / @@ -11371,16 +11430,16 @@ FractionFieldElement CpuAirDefinition::Constra // (point^(4 * trace_length / keccak__row_ratio) - gen^(21 * trace_length / 1024 + 11 * // trace_length / 16)) * (point^(4 * trace_length / keccak__row_ratio) - gen^(11 * trace_length / // 512 + 11 * trace_length / 16)) * (point^(4 * trace_length / keccak__row_ratio) - gen^(23 * - // trace_length / 1024 + 11 * trace_length / 16)) * domain26. - [[maybe_unused]] const FieldElementT& domain27 = precomp_domains[27]; - // domain28 = point^(trace_length / keccak__row_ratio) - 1. + // trace_length / 1024 + 11 * trace_length / 16)) * domain27. [[maybe_unused]] const FieldElementT& domain28 = precomp_domains[28]; - // domain29 = point^(trace_length / (16 * keccak__row_ratio)) - 1. + // domain29 = point^(trace_length / keccak__row_ratio) - 1. [[maybe_unused]] const FieldElementT& domain29 = precomp_domains[29]; - // domain30 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(trace_length / 65536)) * - // domain29. + // domain30 = point^(trace_length / (16 * keccak__row_ratio)) - 1. [[maybe_unused]] const FieldElementT& domain30 = precomp_domains[30]; - // domain31 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(trace_length / 524288)) * + // domain31 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(trace_length / 65536)) * + // domain30. + [[maybe_unused]] const FieldElementT& domain31 = precomp_domains[31]; + // domain32 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(trace_length / 524288)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(trace_length / 262144)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(3 * trace_length / 524288)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(trace_length / 131072)) * @@ -11394,16 +11453,16 @@ FractionFieldElement CpuAirDefinition::Constra // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(13 * trace_length / 524288)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(7 * trace_length / 262144)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(15 * trace_length / 524288)) * - // domain30. - [[maybe_unused]] const FieldElementT& domain31 = precomp_domains[31]; - // domain32 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(trace_length / 32768)) * + // domain31. + [[maybe_unused]] const FieldElementT& domain32 = precomp_domains[32]; + // domain33 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(3 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(trace_length / 16384)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(5 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(3 * trace_length / 32768)) * - // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(7 * trace_length / 65536)) * domain30. - [[maybe_unused]] const FieldElementT& domain32 = precomp_domains[32]; - // domain33 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(trace_length / 8192)) * + // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(7 * trace_length / 65536)) * domain31. + [[maybe_unused]] const FieldElementT& domain33 = precomp_domains[33]; + // domain34 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(trace_length / 8192)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(9 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(5 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(11 * trace_length / 65536)) * @@ -11418,20 +11477,20 @@ FractionFieldElement CpuAirDefinition::Constra // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(5 * trace_length / 16384)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(21 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(11 * trace_length / 32768)) * - // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(23 * trace_length / 65536)) * domain32. - [[maybe_unused]] const FieldElementT& domain33 = precomp_domains[33]; - // domain34 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(3 * trace_length / 8192)) * + // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(23 * trace_length / 65536)) * domain33. + [[maybe_unused]] const FieldElementT& domain34 = precomp_domains[34]; + // domain35 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(3 * trace_length / 8192)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(25 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(13 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(27 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(7 * trace_length / 16384)) * - // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(29 * trace_length / 65536)) * domain33. - [[maybe_unused]] const FieldElementT& domain34 = precomp_domains[34]; - // domain35 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(15 * trace_length / 32768)) - // * (point^(trace_length / (16 * keccak__row_ratio)) - gen^(31 * trace_length / 65536)) * - // domain34. + // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(29 * trace_length / 65536)) * domain34. [[maybe_unused]] const FieldElementT& domain35 = precomp_domains[35]; - // domain36 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(trace_length / 2048)) * + // domain36 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(15 * trace_length / 32768)) + // * (point^(trace_length / (16 * keccak__row_ratio)) - gen^(31 * trace_length / 65536)) * + // domain35. + [[maybe_unused]] const FieldElementT& domain36 = precomp_domains[36]; + // domain37 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(trace_length / 2048)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(trace_length / 1024)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(3 * trace_length / 2048)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(trace_length / 512)) * @@ -11455,8 +11514,8 @@ FractionFieldElement CpuAirDefinition::Constra // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(11 * trace_length / 1024)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(23 * trace_length / 2048)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(3 * trace_length / 256)). - [[maybe_unused]] const FieldElementT& domain36 = precomp_domains[36]; - // domain37 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(33 * trace_length / 65536)) + [[maybe_unused]] const FieldElementT& domain37 = precomp_domains[37]; + // domain38 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(33 * trace_length / 65536)) // * (point^(trace_length / (16 * keccak__row_ratio)) - gen^(65 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(97 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(129 * trace_length / 65536)) * @@ -11480,11 +11539,11 @@ FractionFieldElement CpuAirDefinition::Constra // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(705 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(737 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(769 * trace_length / 65536)) * - // domain36. - [[maybe_unused]] const FieldElementT& domain37 = precomp_domains[37]; - // domain38 = domain30 * domain37. + // domain37. [[maybe_unused]] const FieldElementT& domain38 = precomp_domains[38]; - // domain39 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(17 * trace_length / 32768)) + // domain39 = domain31 * domain38. + [[maybe_unused]] const FieldElementT& domain39 = precomp_domains[39]; + // domain40 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(17 * trace_length / 32768)) // * (point^(trace_length / (16 * keccak__row_ratio)) - gen^(35 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(9 * trace_length / 16384)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(37 * trace_length / 65536)) * @@ -12155,14 +12214,14 @@ FractionFieldElement CpuAirDefinition::Constra // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(397 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(795 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(199 * trace_length / 16384)) * - // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(797 * trace_length / 65536)) * domain34 - // * domain37. - [[maybe_unused]] const FieldElementT& domain39 = precomp_domains[39]; - // domain40 = domain29 * domain36. + // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(797 * trace_length / 65536)) * domain35 + // * domain38. [[maybe_unused]] const FieldElementT& domain40 = precomp_domains[40]; - // domain41 = point^(trace_length / (16 * keccak__row_ratio)) - gen^(63 * trace_length / 64). + // domain41 = domain30 * domain37. [[maybe_unused]] const FieldElementT& domain41 = precomp_domains[41]; - // domain42 = (point^(4 * trace_length / keccak__row_ratio) - gen^(13 * trace_length / 16)) * + // domain42 = point^(trace_length / (16 * keccak__row_ratio)) - gen^(63 * trace_length / 64). + [[maybe_unused]] const FieldElementT& domain42 = precomp_domains[42]; + // domain43 = (point^(4 * trace_length / keccak__row_ratio) - gen^(13 * trace_length / 16)) * // (point^(4 * trace_length / keccak__row_ratio) - gen^(27 * trace_length / 32)) * (point^(4 * // trace_length / keccak__row_ratio) - gen^(7 * trace_length / 8)) * (point^(4 * trace_length / // keccak__row_ratio) - gen^(29 * trace_length / 32)) * (point^(4 * trace_length / @@ -12191,12 +12250,12 @@ FractionFieldElement CpuAirDefinition::Constra // keccak__row_ratio)) - gen^(2037 * trace_length / 2048)) * (point^(trace_length / (16 * // keccak__row_ratio)) - gen^(1019 * trace_length / 1024)) * (point^(trace_length / (16 * // keccak__row_ratio)) - gen^(2039 * trace_length / 2048)) * (point^(trace_length / (16 * - // keccak__row_ratio)) - gen^(255 * trace_length / 256)) * domain41. - [[maybe_unused]] const FieldElementT& domain42 = precomp_domains[42]; - // domain43 = point^(trace_length / (16 * keccak__row_ratio)) - gen^(64513 * trace_length / - // 65536). + // keccak__row_ratio)) - gen^(255 * trace_length / 256)) * domain42. [[maybe_unused]] const FieldElementT& domain43 = precomp_domains[43]; - // domain44 = (point^(4 * trace_length / keccak__row_ratio) - gen^(833 * trace_length / 1024)) * + // domain44 = point^(trace_length / (16 * keccak__row_ratio)) - gen^(64513 * trace_length / + // 65536). + [[maybe_unused]] const FieldElementT& domain44 = precomp_domains[44]; + // domain45 = (point^(4 * trace_length / keccak__row_ratio) - gen^(833 * trace_length / 1024)) * // (point^(4 * trace_length / keccak__row_ratio) - gen^(865 * trace_length / 1024)) * (point^(4 * // trace_length / keccak__row_ratio) - gen^(897 * trace_length / 1024)) * (point^(4 * trace_length // / keccak__row_ratio) - gen^(929 * trace_length / 1024)) * (point^(4 * trace_length / @@ -12227,17 +12286,17 @@ FractionFieldElement CpuAirDefinition::Constra // keccak__row_ratio)) - gen^(65249 * trace_length / 65536)) * (point^(trace_length / (16 * // keccak__row_ratio)) - gen^(65281 * trace_length / 65536)) * (point^(trace_length / (16 * // keccak__row_ratio)) - gen^(2041 * trace_length / 2048)) * (point^(trace_length / (16 * - // keccak__row_ratio)) - gen^(65313 * trace_length / 65536)) * domain42 * domain43. - [[maybe_unused]] const FieldElementT& domain44 = precomp_domains[44]; - // domain45 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(32257 * trace_length / + // keccak__row_ratio)) - gen^(65313 * trace_length / 65536)) * domain43 * domain44. + [[maybe_unused]] const FieldElementT& domain45 = precomp_domains[45]; + // domain46 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(32257 * trace_length / // 32768)) * (point^(trace_length / (16 * keccak__row_ratio)) - gen^(64515 * trace_length / // 65536)) * (point^(trace_length / (16 * keccak__row_ratio)) - gen^(16129 * trace_length / // 16384)) * (point^(trace_length / (16 * keccak__row_ratio)) - gen^(64517 * trace_length / // 65536)) * (point^(trace_length / (16 * keccak__row_ratio)) - gen^(32259 * trace_length / // 32768)) * (point^(trace_length / (16 * keccak__row_ratio)) - gen^(64519 * trace_length / // 65536)). - [[maybe_unused]] const FieldElementT& domain45 = precomp_domains[45]; - // domain46 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(8065 * trace_length / 8192)) + [[maybe_unused]] const FieldElementT& domain46 = precomp_domains[46]; + // domain47 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(8065 * trace_length / 8192)) // * (point^(trace_length / (16 * keccak__row_ratio)) - gen^(64521 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(32261 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(64523 * trace_length / 65536)) * @@ -12253,9 +12312,9 @@ FractionFieldElement CpuAirDefinition::Constra // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(64533 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(32267 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(64535 * trace_length / 65536)) * - // domain45. - [[maybe_unused]] const FieldElementT& domain46 = precomp_domains[46]; - // domain47 = (point^(128 * trace_length / keccak__row_ratio) - gen^(15 * trace_length / 16)) * + // domain46. + [[maybe_unused]] const FieldElementT& domain47 = precomp_domains[47]; + // domain48 = (point^(128 * trace_length / keccak__row_ratio) - gen^(15 * trace_length / 16)) * // (point^(128 * trace_length / keccak__row_ratio) - gen^(31 * trace_length / 32)) * (point^(4 * // trace_length / keccak__row_ratio) - gen^(417 * trace_length / 512)) * (point^(4 * trace_length // / keccak__row_ratio) - gen^(835 * trace_length / 1024)) * (point^(4 * trace_length / @@ -13130,16 +13189,16 @@ FractionFieldElement CpuAirDefinition::Constra // keccak__row_ratio)) - gen^(32669 * trace_length / 32768)) * (point^(trace_length / (16 * // keccak__row_ratio)) - gen^(65339 * trace_length / 65536)) * (point^(trace_length / (16 * // keccak__row_ratio)) - gen^(16335 * trace_length / 16384)) * (point^(trace_length / (16 * - // keccak__row_ratio)) - gen^(65341 * trace_length / 65536)) * domain44 * domain46. - [[maybe_unused]] const FieldElementT& domain47 = precomp_domains[47]; - // domain48 = (point^(4 * trace_length / keccak__row_ratio) - gen^(25 * trace_length / 32)) * - // domain42. + // keccak__row_ratio)) - gen^(65341 * trace_length / 65536)) * domain45 * domain47. [[maybe_unused]] const FieldElementT& domain48 = precomp_domains[48]; - // domain49 = domain41 * domain43. + // domain49 = (point^(4 * trace_length / keccak__row_ratio) - gen^(25 * trace_length / 32)) * + // domain43. [[maybe_unused]] const FieldElementT& domain49 = precomp_domains[49]; - // domain50 = domain46 * domain49. + // domain50 = domain42 * domain44. [[maybe_unused]] const FieldElementT& domain50 = precomp_domains[50]; - // domain51 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(31 * trace_length / 32)) * + // domain51 = domain47 * domain50. + [[maybe_unused]] const FieldElementT& domain51 = precomp_domains[51]; + // domain52 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(31 * trace_length / 32)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(63489 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(31745 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(63491 * trace_length / 65536)) * @@ -13147,8 +13206,8 @@ FractionFieldElement CpuAirDefinition::Constra // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(63493 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(31747 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(63495 * trace_length / 65536)). - [[maybe_unused]] const FieldElementT& domain51 = precomp_domains[51]; - // domain52 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(7937 * trace_length / 8192)) + [[maybe_unused]] const FieldElementT& domain52 = precomp_domains[52]; + // domain53 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(7937 * trace_length / 8192)) // * (point^(trace_length / (16 * keccak__row_ratio)) - gen^(63497 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(31749 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(63499 * trace_length / 65536)) * @@ -13164,9 +13223,9 @@ FractionFieldElement CpuAirDefinition::Constra // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(63509 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(31755 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(63511 * trace_length / 65536)) * - // domain50 * domain51. - [[maybe_unused]] const FieldElementT& domain52 = precomp_domains[52]; - // domain53 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(61 * trace_length / 64)) * + // domain51 * domain52. + [[maybe_unused]] const FieldElementT& domain53 = precomp_domains[53]; + // domain54 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(61 * trace_length / 64)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(62465 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(31233 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(62467 * trace_length / 65536)) * @@ -13174,8 +13233,8 @@ FractionFieldElement CpuAirDefinition::Constra // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(62469 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(31235 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(62471 * trace_length / 65536)). - [[maybe_unused]] const FieldElementT& domain53 = precomp_domains[53]; - // domain54 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(7809 * trace_length / 8192)) + [[maybe_unused]] const FieldElementT& domain54 = precomp_domains[54]; + // domain55 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(7809 * trace_length / 8192)) // * (point^(trace_length / (16 * keccak__row_ratio)) - gen^(62473 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(31237 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(62475 * trace_length / 65536)) * @@ -13191,9 +13250,9 @@ FractionFieldElement CpuAirDefinition::Constra // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(62485 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(31243 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(62487 * trace_length / 65536)) * - // domain52 * domain53. - [[maybe_unused]] const FieldElementT& domain54 = precomp_domains[54]; - // domain55 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(29 * trace_length / 32)) * + // domain53 * domain54. + [[maybe_unused]] const FieldElementT& domain55 = precomp_domains[55]; + // domain56 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(29 * trace_length / 32)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(59393 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(29697 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(59395 * trace_length / 65536)) * @@ -13217,8 +13276,8 @@ FractionFieldElement CpuAirDefinition::Constra // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(61445 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(30723 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(61447 * trace_length / 65536)). - [[maybe_unused]] const FieldElementT& domain55 = precomp_domains[55]; - // domain56 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(7425 * trace_length / 8192)) + [[maybe_unused]] const FieldElementT& domain56 = precomp_domains[56]; + // domain57 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(7425 * trace_length / 8192)) // * (point^(trace_length / (16 * keccak__row_ratio)) - gen^(59401 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(29701 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(59403 * trace_length / 65536)) * @@ -13266,9 +13325,9 @@ FractionFieldElement CpuAirDefinition::Constra // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(61461 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(30731 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(61463 * trace_length / 65536)) * - // domain54 * domain55. - [[maybe_unused]] const FieldElementT& domain56 = precomp_domains[56]; - // domain57 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(7 * trace_length / 8)) * + // domain55 * domain56. + [[maybe_unused]] const FieldElementT& domain57 = precomp_domains[57]; + // domain58 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(7 * trace_length / 8)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(57345 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(28673 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(57347 * trace_length / 65536)) * @@ -13284,8 +13343,8 @@ FractionFieldElement CpuAirDefinition::Constra // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(58373 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(29187 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(58375 * trace_length / 65536)). - [[maybe_unused]] const FieldElementT& domain57 = precomp_domains[57]; - // domain58 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(7169 * trace_length / 8192)) + [[maybe_unused]] const FieldElementT& domain58 = precomp_domains[58]; + // domain59 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(7169 * trace_length / 8192)) // * (point^(trace_length / (16 * keccak__row_ratio)) - gen^(57353 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(28677 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(57355 * trace_length / 65536)) * @@ -13317,9 +13376,9 @@ FractionFieldElement CpuAirDefinition::Constra // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(58389 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(29195 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(58391 * trace_length / 65536)) * - // domain56 * domain57. - [[maybe_unused]] const FieldElementT& domain58 = precomp_domains[58]; - // domain59 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(55 * trace_length / 64)) * + // domain57 * domain58. + [[maybe_unused]] const FieldElementT& domain59 = precomp_domains[59]; + // domain60 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(55 * trace_length / 64)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(56321 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(28161 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(56323 * trace_length / 65536)) * @@ -13327,8 +13386,8 @@ FractionFieldElement CpuAirDefinition::Constra // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(56325 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(28163 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(56327 * trace_length / 65536)). - [[maybe_unused]] const FieldElementT& domain59 = precomp_domains[59]; - // domain60 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(27 * trace_length / 32)) * + [[maybe_unused]] const FieldElementT& domain60 = precomp_domains[60]; + // domain61 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(27 * trace_length / 32)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(55297 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(27649 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(55299 * trace_length / 65536)) * @@ -13336,9 +13395,9 @@ FractionFieldElement CpuAirDefinition::Constra // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(55301 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(27651 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(55303 * trace_length / 65536)) * - // domain59. - [[maybe_unused]] const FieldElementT& domain60 = precomp_domains[60]; - // domain61 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(6913 * trace_length / 8192)) + // domain60. + [[maybe_unused]] const FieldElementT& domain61 = precomp_domains[61]; + // domain62 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(6913 * trace_length / 8192)) // * (point^(trace_length / (16 * keccak__row_ratio)) - gen^(55305 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(27653 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(55307 * trace_length / 65536)) * @@ -13370,9 +13429,9 @@ FractionFieldElement CpuAirDefinition::Constra // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(56341 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(28171 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(56343 * trace_length / 65536)) * - // domain58 * domain60. - [[maybe_unused]] const FieldElementT& domain61 = precomp_domains[61]; - // domain62 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(25 * trace_length / 32)) * + // domain59 * domain61. + [[maybe_unused]] const FieldElementT& domain62 = precomp_domains[62]; + // domain63 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(25 * trace_length / 32)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(51201 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(25601 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(51203 * trace_length / 65536)) * @@ -13404,8 +13463,8 @@ FractionFieldElement CpuAirDefinition::Constra // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(54277 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(27139 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(54279 * trace_length / 65536)). - [[maybe_unused]] const FieldElementT& domain62 = precomp_domains[62]; - // domain63 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(6401 * trace_length / 8192)) + [[maybe_unused]] const FieldElementT& domain63 = precomp_domains[63]; + // domain64 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(6401 * trace_length / 8192)) // * (point^(trace_length / (16 * keccak__row_ratio)) - gen^(51209 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(25605 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(51211 * trace_length / 65536)) * @@ -13469,9 +13528,9 @@ FractionFieldElement CpuAirDefinition::Constra // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(54293 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(27147 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(54295 * trace_length / 65536)) * - // domain61 * domain62. - [[maybe_unused]] const FieldElementT& domain63 = precomp_domains[63]; - // domain64 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(49 * trace_length / 64)) * + // domain62 * domain63. + [[maybe_unused]] const FieldElementT& domain64 = precomp_domains[64]; + // domain65 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(49 * trace_length / 64)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(50177 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(25089 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(50179 * trace_length / 65536)) * @@ -13479,8 +13538,8 @@ FractionFieldElement CpuAirDefinition::Constra // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(50181 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(25091 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(50183 * trace_length / 65536)). - [[maybe_unused]] const FieldElementT& domain64 = precomp_domains[64]; - // domain65 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(6273 * trace_length / 8192)) + [[maybe_unused]] const FieldElementT& domain65 = precomp_domains[65]; + // domain66 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(6273 * trace_length / 8192)) // * (point^(trace_length / (16 * keccak__row_ratio)) - gen^(50185 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(25093 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(50187 * trace_length / 65536)) * @@ -13496,9 +13555,9 @@ FractionFieldElement CpuAirDefinition::Constra // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(50197 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(25099 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(50199 * trace_length / 65536)) * - // domain63 * domain64. - [[maybe_unused]] const FieldElementT& domain65 = precomp_domains[65]; - // domain66 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(23 * trace_length / 32)) * + // domain64 * domain65. + [[maybe_unused]] const FieldElementT& domain66 = precomp_domains[66]; + // domain67 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(23 * trace_length / 32)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(47105 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(23553 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(47107 * trace_length / 65536)) * @@ -13522,8 +13581,8 @@ FractionFieldElement CpuAirDefinition::Constra // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(49157 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(24579 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(49159 * trace_length / 65536)). - [[maybe_unused]] const FieldElementT& domain66 = precomp_domains[66]; - // domain67 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(5889 * trace_length / 8192)) + [[maybe_unused]] const FieldElementT& domain67 = precomp_domains[67]; + // domain68 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(5889 * trace_length / 8192)) // * (point^(trace_length / (16 * keccak__row_ratio)) - gen^(47113 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(23557 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(47115 * trace_length / 65536)) * @@ -13571,9 +13630,9 @@ FractionFieldElement CpuAirDefinition::Constra // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(49173 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(24587 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(49175 * trace_length / 65536)) * - // domain65 * domain66. - [[maybe_unused]] const FieldElementT& domain67 = precomp_domains[67]; - // domain68 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(45 * trace_length / 64)) * + // domain66 * domain67. + [[maybe_unused]] const FieldElementT& domain68 = precomp_domains[68]; + // domain69 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(45 * trace_length / 64)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(46081 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(23041 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(46083 * trace_length / 65536)) * @@ -13581,8 +13640,8 @@ FractionFieldElement CpuAirDefinition::Constra // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(46085 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(23043 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(46087 * trace_length / 65536)). - [[maybe_unused]] const FieldElementT& domain68 = precomp_domains[68]; - // domain69 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(5761 * trace_length / 8192)) + [[maybe_unused]] const FieldElementT& domain69 = precomp_domains[69]; + // domain70 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(5761 * trace_length / 8192)) // * (point^(trace_length / (16 * keccak__row_ratio)) - gen^(46089 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(23045 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(46091 * trace_length / 65536)) * @@ -13598,9 +13657,9 @@ FractionFieldElement CpuAirDefinition::Constra // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(46101 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(23051 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(46103 * trace_length / 65536)) * - // domain67 * domain68. - [[maybe_unused]] const FieldElementT& domain69 = precomp_domains[69]; - // domain70 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(11 * trace_length / 16)) * + // domain68 * domain69. + [[maybe_unused]] const FieldElementT& domain70 = precomp_domains[70]; + // domain71 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(11 * trace_length / 16)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(45057 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(22529 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(45059 * trace_length / 65536)) * @@ -13608,8 +13667,8 @@ FractionFieldElement CpuAirDefinition::Constra // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(45061 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(22531 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(45063 * trace_length / 65536)). - [[maybe_unused]] const FieldElementT& domain70 = precomp_domains[70]; - // domain71 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(5633 * trace_length / 8192)) + [[maybe_unused]] const FieldElementT& domain71 = precomp_domains[71]; + // domain72 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(5633 * trace_length / 8192)) // * (point^(trace_length / (16 * keccak__row_ratio)) - gen^(45065 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(22533 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(45067 * trace_length / 65536)) * @@ -13625,9 +13684,9 @@ FractionFieldElement CpuAirDefinition::Constra // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(45077 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(22539 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(45079 * trace_length / 65536)) * - // domain69 * domain70. - [[maybe_unused]] const FieldElementT& domain71 = precomp_domains[71]; - // domain72 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(43 * trace_length / 64)) * + // domain70 * domain71. + [[maybe_unused]] const FieldElementT& domain72 = precomp_domains[72]; + // domain73 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(43 * trace_length / 64)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(44033 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(22017 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(44035 * trace_length / 65536)) * @@ -13635,8 +13694,8 @@ FractionFieldElement CpuAirDefinition::Constra // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(44037 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(22019 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(44039 * trace_length / 65536)). - [[maybe_unused]] const FieldElementT& domain72 = precomp_domains[72]; - // domain73 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(5505 * trace_length / 8192)) + [[maybe_unused]] const FieldElementT& domain73 = precomp_domains[73]; + // domain74 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(5505 * trace_length / 8192)) // * (point^(trace_length / (16 * keccak__row_ratio)) - gen^(44041 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(22021 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(44043 * trace_length / 65536)) * @@ -13652,9 +13711,9 @@ FractionFieldElement CpuAirDefinition::Constra // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(44053 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(22027 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(44055 * trace_length / 65536)) * - // domain71 * domain72. - [[maybe_unused]] const FieldElementT& domain73 = precomp_domains[73]; - // domain74 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(41 * trace_length / 64)) * + // domain72 * domain73. + [[maybe_unused]] const FieldElementT& domain74 = precomp_domains[74]; + // domain75 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(41 * trace_length / 64)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(41985 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(20993 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(41987 * trace_length / 65536)) * @@ -13670,8 +13729,8 @@ FractionFieldElement CpuAirDefinition::Constra // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(43013 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(21507 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(43015 * trace_length / 65536)). - [[maybe_unused]] const FieldElementT& domain74 = precomp_domains[74]; - // domain75 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(39 * trace_length / 64)) * + [[maybe_unused]] const FieldElementT& domain75 = precomp_domains[75]; + // domain76 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(39 * trace_length / 64)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(39937 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(19969 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(39939 * trace_length / 65536)) * @@ -13687,9 +13746,9 @@ FractionFieldElement CpuAirDefinition::Constra // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(40965 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(20483 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(40967 * trace_length / 65536)) * - // domain74. - [[maybe_unused]] const FieldElementT& domain75 = precomp_domains[75]; - // domain76 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(4993 * trace_length / 8192)) + // domain75. + [[maybe_unused]] const FieldElementT& domain76 = precomp_domains[76]; + // domain77 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(4993 * trace_length / 8192)) // * (point^(trace_length / (16 * keccak__row_ratio)) - gen^(39945 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(19973 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(39947 * trace_length / 65536)) * @@ -13753,9 +13812,9 @@ FractionFieldElement CpuAirDefinition::Constra // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(43029 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(21515 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(43031 * trace_length / 65536)) * - // domain73 * domain75. - [[maybe_unused]] const FieldElementT& domain76 = precomp_domains[76]; - // domain77 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(37 * trace_length / 64)) * + // domain74 * domain76. + [[maybe_unused]] const FieldElementT& domain77 = precomp_domains[77]; + // domain78 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(37 * trace_length / 64)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(37889 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(18945 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(37891 * trace_length / 65536)) * @@ -13803,9 +13862,9 @@ FractionFieldElement CpuAirDefinition::Constra // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(38933 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(19467 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(38935 * trace_length / 65536)) * - // domain76. - [[maybe_unused]] const FieldElementT& domain77 = precomp_domains[77]; - // domain78 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(9 * trace_length / 16)) * + // domain77. + [[maybe_unused]] const FieldElementT& domain78 = precomp_domains[78]; + // domain79 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(9 * trace_length / 16)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(36865 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(18433 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(36867 * trace_length / 65536)) * @@ -13829,20 +13888,20 @@ FractionFieldElement CpuAirDefinition::Constra // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(36885 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(18443 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(36887 * trace_length / 65536)) * - // domain77. - [[maybe_unused]] const FieldElementT& domain78 = precomp_domains[78]; - // domain79 = point^(trace_length / (16 * keccak__row_ratio)) - gen^(trace_length / 64). + // domain78. [[maybe_unused]] const FieldElementT& domain79 = precomp_domains[79]; - // domain80 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(1025 * trace_length / + // domain80 = point^(trace_length / (16 * keccak__row_ratio)) - gen^(trace_length / 64). + [[maybe_unused]] const FieldElementT& domain80 = precomp_domains[80]; + // domain81 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(1025 * trace_length / // 65536)) * (point^(trace_length / (16 * keccak__row_ratio)) - gen^(513 * trace_length / 32768)) // * (point^(trace_length / (16 * keccak__row_ratio)) - gen^(1027 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(257 * trace_length / 16384)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(1029 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(515 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(1031 * trace_length / 65536)) * - // domain79. - [[maybe_unused]] const FieldElementT& domain80 = precomp_domains[80]; - // domain81 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(129 * trace_length / 8192)) + // domain80. + [[maybe_unused]] const FieldElementT& domain81 = precomp_domains[81]; + // domain82 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(129 * trace_length / 8192)) // * (point^(trace_length / (16 * keccak__row_ratio)) - gen^(1033 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(517 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(1035 * trace_length / 65536)) * @@ -13858,9 +13917,9 @@ FractionFieldElement CpuAirDefinition::Constra // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(1045 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(523 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(1047 * trace_length / 65536)) * - // domain33 * domain80. - [[maybe_unused]] const FieldElementT& domain81 = precomp_domains[81]; - // domain82 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(trace_length / 32)) * + // domain34 * domain81. + [[maybe_unused]] const FieldElementT& domain82 = precomp_domains[82]; + // domain83 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(trace_length / 32)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(2049 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(1025 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(2051 * trace_length / 65536)) * @@ -13868,10 +13927,10 @@ FractionFieldElement CpuAirDefinition::Constra // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(2053 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(1027 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(2055 * trace_length / 65536)). - [[maybe_unused]] const FieldElementT& domain82 = precomp_domains[82]; - // domain83 = point^(trace_length / (16 * keccak__row_ratio)) - gen^(3 * trace_length / 64). [[maybe_unused]] const FieldElementT& domain83 = precomp_domains[83]; - // domain84 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(3073 * trace_length / + // domain84 = point^(trace_length / (16 * keccak__row_ratio)) - gen^(3 * trace_length / 64). + [[maybe_unused]] const FieldElementT& domain84 = precomp_domains[84]; + // domain85 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(3073 * trace_length / // 65536)) * (point^(trace_length / (16 * keccak__row_ratio)) - gen^(1537 * trace_length / 32768)) // * (point^(trace_length / (16 * keccak__row_ratio)) - gen^(3075 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(769 * trace_length / 16384)) * @@ -13894,9 +13953,9 @@ FractionFieldElement CpuAirDefinition::Constra // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(5125 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(2563 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(5127 * trace_length / 65536)) * - // domain82 * domain83. - [[maybe_unused]] const FieldElementT& domain84 = precomp_domains[84]; - // domain85 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(257 * trace_length / 8192)) + // domain83 * domain84. + [[maybe_unused]] const FieldElementT& domain85 = precomp_domains[85]; + // domain86 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(257 * trace_length / 8192)) // * (point^(trace_length / (16 * keccak__row_ratio)) - gen^(2057 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(1029 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(2059 * trace_length / 65536)) * @@ -13912,9 +13971,9 @@ FractionFieldElement CpuAirDefinition::Constra // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(2069 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(1035 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(2071 * trace_length / 65536)) * - // domain81. - [[maybe_unused]] const FieldElementT& domain85 = precomp_domains[85]; - // domain86 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(385 * trace_length / 8192)) + // domain82. + [[maybe_unused]] const FieldElementT& domain86 = precomp_domains[86]; + // domain87 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(385 * trace_length / 8192)) // * (point^(trace_length / (16 * keccak__row_ratio)) - gen^(3081 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(1541 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(3083 * trace_length / 65536)) * @@ -13962,11 +14021,11 @@ FractionFieldElement CpuAirDefinition::Constra // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(5141 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(2571 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(5143 * trace_length / 65536)) * - // domain84 * domain85. - [[maybe_unused]] const FieldElementT& domain86 = precomp_domains[86]; - // domain87 = point^(trace_length / (16 * keccak__row_ratio)) - gen^(7 * trace_length / 64). + // domain85 * domain86. [[maybe_unused]] const FieldElementT& domain87 = precomp_domains[87]; - // domain88 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(3 * trace_length / 32)) * + // domain88 = point^(trace_length / (16 * keccak__row_ratio)) - gen^(7 * trace_length / 64). + [[maybe_unused]] const FieldElementT& domain88 = precomp_domains[88]; + // domain89 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(3 * trace_length / 32)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(6145 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(3073 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(6147 * trace_length / 65536)) * @@ -13981,9 +14040,9 @@ FractionFieldElement CpuAirDefinition::Constra // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(7173 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(3587 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(7175 * trace_length / 65536)) * - // domain87. - [[maybe_unused]] const FieldElementT& domain88 = precomp_domains[88]; - // domain89 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(trace_length / 8)) * + // domain88. + [[maybe_unused]] const FieldElementT& domain89 = precomp_domains[89]; + // domain90 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(trace_length / 8)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(8193 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(4097 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(8195 * trace_length / 65536)) * @@ -13991,9 +14050,9 @@ FractionFieldElement CpuAirDefinition::Constra // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(8197 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(4099 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(8199 * trace_length / 65536)) * - // domain88. - [[maybe_unused]] const FieldElementT& domain89 = precomp_domains[89]; - // domain90 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(9 * trace_length / 64)) * + // domain89. + [[maybe_unused]] const FieldElementT& domain90 = precomp_domains[90]; + // domain91 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(9 * trace_length / 64)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(9217 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(4609 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(9219 * trace_length / 65536)) * @@ -14001,9 +14060,9 @@ FractionFieldElement CpuAirDefinition::Constra // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(9221 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(4611 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(9223 * trace_length / 65536)) * - // domain89. - [[maybe_unused]] const FieldElementT& domain90 = precomp_domains[90]; - // domain91 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(769 * trace_length / 8192)) + // domain90. + [[maybe_unused]] const FieldElementT& domain91 = precomp_domains[91]; + // domain92 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(769 * trace_length / 8192)) // * (point^(trace_length / (16 * keccak__row_ratio)) - gen^(6153 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(3077 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(6155 * trace_length / 65536)) * @@ -14035,9 +14094,9 @@ FractionFieldElement CpuAirDefinition::Constra // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(7189 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(3595 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(7191 * trace_length / 65536)) * - // domain86. - [[maybe_unused]] const FieldElementT& domain91 = precomp_domains[91]; - // domain92 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(1025 * trace_length / 8192)) + // domain87. + [[maybe_unused]] const FieldElementT& domain92 = precomp_domains[92]; + // domain93 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(1025 * trace_length / 8192)) // * (point^(trace_length / (16 * keccak__row_ratio)) - gen^(8201 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(4101 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(8203 * trace_length / 65536)) * @@ -14069,9 +14128,9 @@ FractionFieldElement CpuAirDefinition::Constra // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(9237 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(4619 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(9239 * trace_length / 65536)) * - // domain90 * domain91. - [[maybe_unused]] const FieldElementT& domain92 = precomp_domains[92]; - // domain93 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(5 * trace_length / 32)) * + // domain91 * domain92. + [[maybe_unused]] const FieldElementT& domain93 = precomp_domains[93]; + // domain94 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(5 * trace_length / 32)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(10241 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(5121 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(10243 * trace_length / 65536)) * @@ -14103,8 +14162,8 @@ FractionFieldElement CpuAirDefinition::Constra // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(13317 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(6659 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(13319 * trace_length / 65536)). - [[maybe_unused]] const FieldElementT& domain93 = precomp_domains[93]; - // domain94 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(7 * trace_length / 32)) * + [[maybe_unused]] const FieldElementT& domain94 = precomp_domains[94]; + // domain95 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(7 * trace_length / 32)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(14337 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(7169 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(14339 * trace_length / 65536)) * @@ -14112,11 +14171,11 @@ FractionFieldElement CpuAirDefinition::Constra // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(14341 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(7171 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(14343 * trace_length / 65536)) * - // domain93. - [[maybe_unused]] const FieldElementT& domain94 = precomp_domains[94]; - // domain95 = point^(trace_length / (16 * keccak__row_ratio)) - gen^(15 * trace_length / 64). + // domain94. [[maybe_unused]] const FieldElementT& domain95 = precomp_domains[95]; - // domain96 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(15361 * trace_length / + // domain96 = point^(trace_length / (16 * keccak__row_ratio)) - gen^(15 * trace_length / 64). + [[maybe_unused]] const FieldElementT& domain96 = precomp_domains[96]; + // domain97 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(15361 * trace_length / // 65536)) * (point^(trace_length / (16 * keccak__row_ratio)) - gen^(7681 * trace_length / 32768)) // * (point^(trace_length / (16 * keccak__row_ratio)) - gen^(15363 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(3841 * trace_length / 16384)) * @@ -14139,9 +14198,9 @@ FractionFieldElement CpuAirDefinition::Constra // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(17413 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(8707 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(17415 * trace_length / 65536)) * - // domain94 * domain95. - [[maybe_unused]] const FieldElementT& domain96 = precomp_domains[96]; - // domain97 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(9 * trace_length / 32)) * + // domain95 * domain96. + [[maybe_unused]] const FieldElementT& domain97 = precomp_domains[97]; + // domain98 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(9 * trace_length / 32)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(18433 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(9217 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(18435 * trace_length / 65536)) * @@ -14149,9 +14208,9 @@ FractionFieldElement CpuAirDefinition::Constra // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(18437 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(9219 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(18439 * trace_length / 65536)) * - // domain96. - [[maybe_unused]] const FieldElementT& domain97 = precomp_domains[97]; - // domain98 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(19 * trace_length / 64)) * + // domain97. + [[maybe_unused]] const FieldElementT& domain98 = precomp_domains[98]; + // domain99 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(19 * trace_length / 64)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(19457 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(9729 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(19459 * trace_length / 65536)) * @@ -14159,11 +14218,11 @@ FractionFieldElement CpuAirDefinition::Constra // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(19461 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(9731 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(19463 * trace_length / 65536)) * - // domain97. - [[maybe_unused]] const FieldElementT& domain98 = precomp_domains[98]; - // domain99 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(1281 * trace_length / 8192)) - // * (point^(trace_length / (16 * keccak__row_ratio)) - gen^(10249 * trace_length / 65536)) * - // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(5125 * trace_length / 32768)) * + // domain98. + [[maybe_unused]] const FieldElementT& domain99 = precomp_domains[99]; + // domain100 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(1281 * trace_length / + // 8192)) * (point^(trace_length / (16 * keccak__row_ratio)) - gen^(10249 * trace_length / 65536)) + // * (point^(trace_length / (16 * keccak__row_ratio)) - gen^(5125 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(10251 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(2563 * trace_length / 16384)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(10253 * trace_length / 65536)) * @@ -14225,9 +14284,9 @@ FractionFieldElement CpuAirDefinition::Constra // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(13333 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(6667 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(13335 * trace_length / 65536)) * - // domain92. - [[maybe_unused]] const FieldElementT& domain99 = precomp_domains[99]; - // domain100 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(1793 * trace_length / + // domain93. + [[maybe_unused]] const FieldElementT& domain100 = precomp_domains[100]; + // domain101 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(1793 * trace_length / // 8192)) * (point^(trace_length / (16 * keccak__row_ratio)) - gen^(14345 * trace_length / 65536)) // * (point^(trace_length / (16 * keccak__row_ratio)) - gen^(7173 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(14347 * trace_length / 65536)) * @@ -14243,9 +14302,9 @@ FractionFieldElement CpuAirDefinition::Constra // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(14357 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(7179 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(14359 * trace_length / 65536)) * - // domain99. - [[maybe_unused]] const FieldElementT& domain100 = precomp_domains[100]; - // domain101 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(1921 * trace_length / + // domain100. + [[maybe_unused]] const FieldElementT& domain101 = precomp_domains[101]; + // domain102 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(1921 * trace_length / // 8192)) * (point^(trace_length / (16 * keccak__row_ratio)) - gen^(15369 * trace_length / 65536)) // * (point^(trace_length / (16 * keccak__row_ratio)) - gen^(7685 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(15371 * trace_length / 65536)) * @@ -14293,9 +14352,9 @@ FractionFieldElement CpuAirDefinition::Constra // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(17429 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(8715 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(17431 * trace_length / 65536)) * - // domain100. - [[maybe_unused]] const FieldElementT& domain101 = precomp_domains[101]; - // domain102 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(2305 * trace_length / + // domain101. + [[maybe_unused]] const FieldElementT& domain102 = precomp_domains[102]; + // domain103 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(2305 * trace_length / // 8192)) * (point^(trace_length / (16 * keccak__row_ratio)) - gen^(18441 * trace_length / 65536)) // * (point^(trace_length / (16 * keccak__row_ratio)) - gen^(9221 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(18443 * trace_length / 65536)) * @@ -14311,9 +14370,9 @@ FractionFieldElement CpuAirDefinition::Constra // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(18453 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(9227 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(18455 * trace_length / 65536)) * - // domain101. - [[maybe_unused]] const FieldElementT& domain102 = precomp_domains[102]; - // domain103 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(2433 * trace_length / + // domain102. + [[maybe_unused]] const FieldElementT& domain103 = precomp_domains[103]; + // domain104 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(2433 * trace_length / // 8192)) * (point^(trace_length / (16 * keccak__row_ratio)) - gen^(19465 * trace_length / 65536)) // * (point^(trace_length / (16 * keccak__row_ratio)) - gen^(9733 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(19467 * trace_length / 65536)) * @@ -14329,9 +14388,9 @@ FractionFieldElement CpuAirDefinition::Constra // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(19477 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(9739 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(19479 * trace_length / 65536)) * - // domain98 * domain102. - [[maybe_unused]] const FieldElementT& domain103 = precomp_domains[103]; - // domain104 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(5 * trace_length / 16)) * + // domain99 * domain103. + [[maybe_unused]] const FieldElementT& domain104 = precomp_domains[104]; + // domain105 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(5 * trace_length / 16)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(20481 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(10241 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(20483 * trace_length / 65536)) * @@ -14339,8 +14398,8 @@ FractionFieldElement CpuAirDefinition::Constra // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(20485 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(10243 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(20487 * trace_length / 65536)). - [[maybe_unused]] const FieldElementT& domain104 = precomp_domains[104]; - // domain105 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(2561 * trace_length / + [[maybe_unused]] const FieldElementT& domain105 = precomp_domains[105]; + // domain106 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(2561 * trace_length / // 8192)) * (point^(trace_length / (16 * keccak__row_ratio)) - gen^(20489 * trace_length / 65536)) // * (point^(trace_length / (16 * keccak__row_ratio)) - gen^(10245 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(20491 * trace_length / 65536)) * @@ -14356,9 +14415,9 @@ FractionFieldElement CpuAirDefinition::Constra // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(20501 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(10251 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(20503 * trace_length / 65536)) * - // domain103 * domain104. - [[maybe_unused]] const FieldElementT& domain105 = precomp_domains[105]; - // domain106 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(21 * trace_length / 64)) * + // domain104 * domain105. + [[maybe_unused]] const FieldElementT& domain106 = precomp_domains[106]; + // domain107 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(21 * trace_length / 64)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(21505 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(10753 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(21507 * trace_length / 65536)) * @@ -14374,8 +14433,8 @@ FractionFieldElement CpuAirDefinition::Constra // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(22533 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(11267 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(22535 * trace_length / 65536)). - [[maybe_unused]] const FieldElementT& domain106 = precomp_domains[106]; - // domain107 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(23 * trace_length / 64)) * + [[maybe_unused]] const FieldElementT& domain107 = precomp_domains[107]; + // domain108 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(23 * trace_length / 64)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(23553 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(11777 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(23555 * trace_length / 65536)) * @@ -14391,9 +14450,9 @@ FractionFieldElement CpuAirDefinition::Constra // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(24581 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(12291 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(24583 * trace_length / 65536)) * - // domain106. - [[maybe_unused]] const FieldElementT& domain107 = precomp_domains[107]; - // domain108 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(2689 * trace_length / + // domain107. + [[maybe_unused]] const FieldElementT& domain108 = precomp_domains[108]; + // domain109 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(2689 * trace_length / // 8192)) * (point^(trace_length / (16 * keccak__row_ratio)) - gen^(21513 * trace_length / 65536)) // * (point^(trace_length / (16 * keccak__row_ratio)) - gen^(10757 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(21515 * trace_length / 65536)) * @@ -14457,9 +14516,9 @@ FractionFieldElement CpuAirDefinition::Constra // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(24597 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(12299 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(24599 * trace_length / 65536)) * - // domain105 * domain107. - [[maybe_unused]] const FieldElementT& domain108 = precomp_domains[108]; - // domain109 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(25 * trace_length / 64)) * + // domain106 * domain108. + [[maybe_unused]] const FieldElementT& domain109 = precomp_domains[109]; + // domain110 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(25 * trace_length / 64)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(25601 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(12801 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(25603 * trace_length / 65536)) * @@ -14507,9 +14566,9 @@ FractionFieldElement CpuAirDefinition::Constra // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(26645 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(13323 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(26647 * trace_length / 65536)) * - // domain108. - [[maybe_unused]] const FieldElementT& domain109 = precomp_domains[109]; - // domain110 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(27 * trace_length / 64)) * + // domain109. + [[maybe_unused]] const FieldElementT& domain110 = precomp_domains[110]; + // domain111 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(27 * trace_length / 64)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(27649 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(13825 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(27651 * trace_length / 65536)) * @@ -14533,46 +14592,46 @@ FractionFieldElement CpuAirDefinition::Constra // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(27669 * trace_length / 65536)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(13835 * trace_length / 32768)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(27671 * trace_length / 65536)) * - // domain109. - [[maybe_unused]] const FieldElementT& domain110 = precomp_domains[110]; - // domain111 = domain32 * domain80. + // domain110. [[maybe_unused]] const FieldElementT& domain111 = precomp_domains[111]; - // domain112 = domain84 * domain111. + // domain112 = domain33 * domain81. [[maybe_unused]] const FieldElementT& domain112 = precomp_domains[112]; - // domain113 = domain89 * domain112. + // domain113 = domain85 * domain112. [[maybe_unused]] const FieldElementT& domain113 = precomp_domains[113]; - // domain114 = domain45 * domain49 * domain51. + // domain114 = domain90 * domain113. [[maybe_unused]] const FieldElementT& domain114 = precomp_domains[114]; - // domain115 = domain53 * domain55 * domain57 * domain114. + // domain115 = domain46 * domain50 * domain52. [[maybe_unused]] const FieldElementT& domain115 = precomp_domains[115]; - // domain116 = domain59 * domain115. + // domain116 = domain54 * domain56 * domain58 * domain115. [[maybe_unused]] const FieldElementT& domain116 = precomp_domains[116]; - // domain117 = domain60 * domain62 * domain64 * domain66 * domain68 * domain70 * domain72 * - // domain115. + // domain117 = domain60 * domain116. [[maybe_unused]] const FieldElementT& domain117 = precomp_domains[117]; - // domain118 = domain75 * domain117. + // domain118 = domain61 * domain63 * domain65 * domain67 * domain69 * domain71 * domain73 * + // domain116. [[maybe_unused]] const FieldElementT& domain118 = precomp_domains[118]; - // domain119 = domain74 * domain117. + // domain119 = domain76 * domain118. [[maybe_unused]] const FieldElementT& domain119 = precomp_domains[119]; - // domain120 = domain82 * domain85. + // domain120 = domain75 * domain118. [[maybe_unused]] const FieldElementT& domain120 = precomp_domains[120]; - // domain121 = domain90 * domain98 * domain104 * domain112. + // domain121 = domain83 * domain86. [[maybe_unused]] const FieldElementT& domain121 = precomp_domains[121]; - // domain122 = domain107 * domain121. + // domain122 = domain91 * domain99 * domain105 * domain113. [[maybe_unused]] const FieldElementT& domain122 = precomp_domains[122]; - // domain123 = domain106 * domain121. + // domain123 = domain108 * domain122. [[maybe_unused]] const FieldElementT& domain123 = precomp_domains[123]; - // domain124 = domain97 * domain102. + // domain124 = domain107 * domain122. [[maybe_unused]] const FieldElementT& domain124 = precomp_domains[124]; - // domain125 = domain94 * domain100. + // domain125 = domain98 * domain103. [[maybe_unused]] const FieldElementT& domain125 = precomp_domains[125]; - // domain126 = domain88 * domain91. + // domain126 = domain95 * domain101. [[maybe_unused]] const FieldElementT& domain126 = precomp_domains[126]; - // domain127 = domain96 * domain101. + // domain127 = domain89 * domain92. [[maybe_unused]] const FieldElementT& domain127 = precomp_domains[127]; - // domain128 = domain93 * domain99. + // domain128 = domain97 * domain102. [[maybe_unused]] const FieldElementT& domain128 = precomp_domains[128]; - // domain129 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(trace_length / 65536 + + // domain129 = domain94 * domain100. + [[maybe_unused]] const FieldElementT& domain129 = precomp_domains[129]; + // domain130 = (point^(trace_length / (16 * keccak__row_ratio)) - gen^(trace_length / 65536 + // trace_length / 64)) * (point^(trace_length / (16 * keccak__row_ratio)) - gen^(trace_length / // 32768 + trace_length / 64)) * (point^(trace_length / (16 * keccak__row_ratio)) - gen^(3 * // trace_length / 65536 + trace_length / 64)) * (point^(trace_length / (16 * keccak__row_ratio)) - @@ -14743,43 +14802,45 @@ FractionFieldElement CpuAirDefinition::Constra // keccak__row_ratio)) - gen^(21 * trace_length / 65536 + 63 * trace_length / 64)) * // (point^(trace_length / (16 * keccak__row_ratio)) - gen^(11 * trace_length / 32768 + 63 * // trace_length / 64)) * (point^(trace_length / (16 * keccak__row_ratio)) - gen^(23 * trace_length - // / 65536 + 63 * trace_length / 64)) * domain33 * domain41 * domain79 * domain83 * domain87 * - // domain95. - [[maybe_unused]] const FieldElementT& domain129 = precomp_domains[129]; - // domain130 = point^(trace_length / memory_units_row_ratio) - 1. + // / 65536 + 63 * trace_length / 64)) * domain34 * domain42 * domain80 * domain84 * domain88 * + // domain96. [[maybe_unused]] const FieldElementT& domain130 = precomp_domains[130]; - // domain131 = point^(trace_length / (8 * memory_units_row_ratio)) - 1. + // domain131 = point^(trace_length / memory_units_row_ratio) - 1. [[maybe_unused]] const FieldElementT& domain131 = precomp_domains[131]; - // domain132 = point^(512 * trace_length / pedersen_builtin_row_ratio) - 1. + // domain132 = point^(trace_length / (8 * memory_units_row_ratio)) - 1. [[maybe_unused]] const FieldElementT& domain132 = precomp_domains[132]; - // domain133 = point^(2 * trace_length / pedersen_builtin_row_ratio) - 1. + // domain133 = point^(trace_length / mul_mod__row_ratio) - 1. [[maybe_unused]] const FieldElementT& domain133 = precomp_domains[133]; - // domain134 = point^(2 * trace_length / pedersen_builtin_row_ratio) - gen^(255 * trace_length / - // 256). + // domain134 = point^(512 * trace_length / pedersen_builtin_row_ratio) - 1. [[maybe_unused]] const FieldElementT& domain134 = precomp_domains[134]; - // domain135 = point^(2 * trace_length / pedersen_builtin_row_ratio) - gen^(63 * trace_length / - // 64). + // domain135 = point^(2 * trace_length / pedersen_builtin_row_ratio) - 1. [[maybe_unused]] const FieldElementT& domain135 = precomp_domains[135]; - // domain136 = point^(trace_length / pedersen_builtin_row_ratio) - gen^(trace_length / 2). + // domain136 = point^(2 * trace_length / pedersen_builtin_row_ratio) - gen^(255 * trace_length / + // 256). [[maybe_unused]] const FieldElementT& domain136 = precomp_domains[136]; - // domain137 = point^(trace_length / pedersen_builtin_row_ratio) - 1. + // domain137 = point^(2 * trace_length / pedersen_builtin_row_ratio) - gen^(63 * trace_length / + // 64). [[maybe_unused]] const FieldElementT& domain137 = precomp_domains[137]; - // domain138 = point^(64 * trace_length / poseidon__row_ratio) - 1. + // domain138 = point^(trace_length / pedersen_builtin_row_ratio) - gen^(trace_length / 2). [[maybe_unused]] const FieldElementT& domain138 = precomp_domains[138]; - // domain139 = point^(32 * trace_length / poseidon__row_ratio) - 1. + // domain139 = point^(trace_length / pedersen_builtin_row_ratio) - 1. [[maybe_unused]] const FieldElementT& domain139 = precomp_domains[139]; - // domain140 = point^(8 * trace_length / poseidon__row_ratio) - 1. + // domain140 = point^(64 * trace_length / poseidon__row_ratio) - 1. [[maybe_unused]] const FieldElementT& domain140 = precomp_domains[140]; - // domain141 = point^(2 * trace_length / poseidon__row_ratio) - 1. + // domain141 = point^(32 * trace_length / poseidon__row_ratio) - 1. [[maybe_unused]] const FieldElementT& domain141 = precomp_domains[141]; - // domain142 = point^(2 * trace_length / poseidon__row_ratio) - gen^(3 * trace_length / 4). + // domain142 = point^(8 * trace_length / poseidon__row_ratio) - 1. [[maybe_unused]] const FieldElementT& domain142 = precomp_domains[142]; - // domain143 = point^(trace_length / poseidon__row_ratio) - gen^(31 * trace_length / 32). + // domain143 = point^(2 * trace_length / poseidon__row_ratio) - 1. [[maybe_unused]] const FieldElementT& domain143 = precomp_domains[143]; - // domain144 = (point^(trace_length / poseidon__row_ratio) - gen^(61 * trace_length / 64)) * - // (point^(trace_length / poseidon__row_ratio) - gen^(63 * trace_length / 64)) * domain143. + // domain144 = point^(2 * trace_length / poseidon__row_ratio) - gen^(3 * trace_length / 4). [[maybe_unused]] const FieldElementT& domain144 = precomp_domains[144]; - // domain145 = (point^(trace_length / poseidon__row_ratio) - gen^(11 * trace_length / 16)) * + // domain145 = point^(trace_length / poseidon__row_ratio) - gen^(31 * trace_length / 32). + [[maybe_unused]] const FieldElementT& domain145 = precomp_domains[145]; + // domain146 = (point^(trace_length / poseidon__row_ratio) - gen^(61 * trace_length / 64)) * + // (point^(trace_length / poseidon__row_ratio) - gen^(63 * trace_length / 64)) * domain145. + [[maybe_unused]] const FieldElementT& domain146 = precomp_domains[146]; + // domain147 = (point^(trace_length / poseidon__row_ratio) - gen^(11 * trace_length / 16)) * // (point^(trace_length / poseidon__row_ratio) - gen^(23 * trace_length / 32)) * // (point^(trace_length / poseidon__row_ratio) - gen^(3 * trace_length / 4)) * // (point^(trace_length / poseidon__row_ratio) - gen^(25 * trace_length / 32)) * @@ -14787,58 +14848,72 @@ FractionFieldElement CpuAirDefinition::Constra // (point^(trace_length / poseidon__row_ratio) - gen^(27 * trace_length / 32)) * // (point^(trace_length / poseidon__row_ratio) - gen^(7 * trace_length / 8)) * // (point^(trace_length / poseidon__row_ratio) - gen^(29 * trace_length / 32)) * - // (point^(trace_length / poseidon__row_ratio) - gen^(15 * trace_length / 16)) * domain143. - [[maybe_unused]] const FieldElementT& domain145 = precomp_domains[145]; - // domain146 = (point^(trace_length / poseidon__row_ratio) - gen^(19 * trace_length / 32)) * - // (point^(trace_length / poseidon__row_ratio) - gen^(5 * trace_length / 8)) * - // (point^(trace_length / poseidon__row_ratio) - gen^(21 * trace_length / 32)) * domain145. - [[maybe_unused]] const FieldElementT& domain146 = precomp_domains[146]; - // domain147 = point^(trace_length / poseidon__row_ratio) - 1. + // (point^(trace_length / poseidon__row_ratio) - gen^(15 * trace_length / 16)) * domain145. [[maybe_unused]] const FieldElementT& domain147 = precomp_domains[147]; - // domain148 = point^(trace_length / range_check_builtin_row_ratio) - 1. + // domain148 = (point^(trace_length / poseidon__row_ratio) - gen^(19 * trace_length / 32)) * + // (point^(trace_length / poseidon__row_ratio) - gen^(5 * trace_length / 8)) * + // (point^(trace_length / poseidon__row_ratio) - gen^(21 * trace_length / 32)) * domain147. [[maybe_unused]] const FieldElementT& domain148 = precomp_domains[148]; - // domain149 = point^(trace_length / range_check_units_row_ratio) - 1. + // domain149 = point^(trace_length / poseidon__row_ratio) - 1. [[maybe_unused]] const FieldElementT& domain149 = precomp_domains[149]; - // domain150 = point - gen^(trace_length - 16 * cpu_component_step). - const FieldElementT& domain150 = (point) - (shifts[3510]); - // domain151 = point - 1. - const FieldElementT& domain151 = (point) - (FieldElementT::One()); - // domain152 = point - gen^(trace_length - memory_units_row_ratio). - const FieldElementT& domain152 = (point) - (shifts[3511]); - // domain153 = point - gen^(trace_length - range_check_units_row_ratio). - const FieldElementT& domain153 = (point) - (shifts[3512]); - // domain154 = point - gen^(trace_length - diluted_units_row_ratio). - const FieldElementT& domain154 = (point) - (shifts[3513]); - // domain155 = point - gen^(trace_length - pedersen_builtin_row_ratio). - const FieldElementT& domain155 = (point) - (shifts[3514]); - // domain156 = point - 1. - const FieldElementT& domain156 = (point) - (FieldElementT::One()); - // domain157 = point - gen^(trace_length - range_check_builtin_row_ratio). - const FieldElementT& domain157 = (point) - (shifts[3515]); - // domain158 = point - 1. - const FieldElementT& domain158 = (point) - (FieldElementT::One()); - // domain159 = point - gen^(trace_length - ecdsa_builtin_row_ratio). - const FieldElementT& domain159 = (point) - (shifts[3516]); - // domain160 = point - 1. - const FieldElementT& domain160 = (point) - (FieldElementT::One()); + // domain150 = point^(trace_length / range_check96_builtin_row_ratio) - 1. + [[maybe_unused]] const FieldElementT& domain150 = precomp_domains[150]; + // domain151 = point^(trace_length / range_check_builtin_row_ratio) - 1. + [[maybe_unused]] const FieldElementT& domain151 = precomp_domains[151]; + // domain152 = point^(trace_length / range_check_units_row_ratio) - 1. + [[maybe_unused]] const FieldElementT& domain152 = precomp_domains[152]; + // domain153 = point - gen^(trace_length - 16 * cpu_component_step). + const FieldElementT& domain153 = (point) - (shifts[3510]); + // domain154 = point - 1. + const FieldElementT& domain154 = (point) - (FieldElementT::One()); + // domain155 = point - gen^(trace_length - memory_units_row_ratio). + const FieldElementT& domain155 = (point) - (shifts[3511]); + // domain156 = point - gen^(trace_length - range_check_units_row_ratio). + const FieldElementT& domain156 = (point) - (shifts[3512]); + // domain157 = point - gen^(trace_length - diluted_units_row_ratio). + const FieldElementT& domain157 = (point) - (shifts[3513]); + // domain158 = point - gen^(trace_length - pedersen_builtin_row_ratio). + const FieldElementT& domain158 = (point) - (shifts[3514]); + // domain159 = point - 1. + const FieldElementT& domain159 = (point) - (FieldElementT::One()); + // domain160 = point - gen^(trace_length - range_check_builtin_row_ratio). + const FieldElementT& domain160 = (point) - (shifts[3515]); // domain161 = point - 1. const FieldElementT& domain161 = (point) - (FieldElementT::One()); - // domain162 = point - gen^(trace_length - bitwise__row_ratio). - const FieldElementT& domain162 = (point) - (shifts[3517]); + // domain162 = point - gen^(trace_length - ecdsa_builtin_row_ratio). + const FieldElementT& domain162 = (point) - (shifts[3516]); // domain163 = point - 1. const FieldElementT& domain163 = (point) - (FieldElementT::One()); - // domain164 = point - gen^(trace_length - ec_op_builtin_row_ratio). - const FieldElementT& domain164 = (point) - (shifts[3518]); - // domain165 = point - 1. - const FieldElementT& domain165 = (point) - (FieldElementT::One()); - // domain166 = point - gen^(trace_length - keccak__row_ratio / 16). - const FieldElementT& domain166 = (point) - (shifts[3519]); - // domain167 = point - 1. - const FieldElementT& domain167 = (point) - (FieldElementT::One()); - // domain168 = point - gen^(trace_length - poseidon__row_ratio / 2). - const FieldElementT& domain168 = (point) - (shifts[3520]); - - ASSERT_VERIFIER(neighbors.size() == 755, "neighbors should contain 755 elements."); + // domain164 = point - 1. + const FieldElementT& domain164 = (point) - (FieldElementT::One()); + // domain165 = point - gen^(trace_length - bitwise__row_ratio). + const FieldElementT& domain165 = (point) - (shifts[3517]); + // domain166 = point - 1. + const FieldElementT& domain166 = (point) - (FieldElementT::One()); + // domain167 = point - gen^(trace_length - ec_op_builtin_row_ratio). + const FieldElementT& domain167 = (point) - (shifts[3518]); + // domain168 = point - 1. + const FieldElementT& domain168 = (point) - (FieldElementT::One()); + // domain169 = point - gen^(trace_length - keccak__row_ratio / 16). + const FieldElementT& domain169 = (point) - (shifts[3519]); + // domain170 = point - 1. + const FieldElementT& domain170 = (point) - (FieldElementT::One()); + // domain171 = point - gen^(trace_length - poseidon__row_ratio / 2). + const FieldElementT& domain171 = (point) - (shifts[3520]); + // domain172 = point - gen^(trace_length - range_check96_builtin_row_ratio). + const FieldElementT& domain172 = (point) - (shifts[3521]); + // domain173 = point - 1. + const FieldElementT& domain173 = (point) - (FieldElementT::One()); + // domain174 = point - 1. + const FieldElementT& domain174 = (point) - (FieldElementT::One()); + // domain175 = point - gen^(trace_length - add_mod__row_ratio). + const FieldElementT& domain175 = (point) - (shifts[3522]); + // domain176 = point - 1. + const FieldElementT& domain176 = (point) - (FieldElementT::One()); + // domain177 = point - gen^(trace_length - mul_mod__row_ratio). + const FieldElementT& domain177 = (point) - (shifts[3523]); + + ASSERT_VERIFIER(neighbors.size() == 941, "neighbors should contain 941 elements."); const FieldElementT& cpu__decode__opcode_range_check__column_column_row_expr0 = neighbors[kCpu_Decode_OpcodeRangeCheck_ColumnColumnRowExpr0Neighbor]; @@ -16342,22 +16417,394 @@ FractionFieldElement CpuAirDefinition::Constra neighbors[kPoseidon_Poseidon_FullRoundsState1ColumnRowExpr745Neighbor]; const FieldElementT& poseidon__poseidon__full_rounds_state2_column_row_expr746 = neighbors[kPoseidon_Poseidon_FullRoundsState2ColumnRowExpr746Neighbor]; - const FieldElementT& memory__multi_column_perm__perm__cum_prod0_column_row_expr747 = - neighbors[kMemory_MultiColumnPerm_Perm_CumProd0ColumnRowExpr747Neighbor]; - const FieldElementT& memory__multi_column_perm__perm__cum_prod0_column_row_expr748 = - neighbors[kMemory_MultiColumnPerm_Perm_CumProd0ColumnRowExpr748Neighbor]; - const FieldElementT& range_check16__perm__cum_prod0_column_row_expr749 = - neighbors[kRangeCheck16_Perm_CumProd0ColumnRowExpr749Neighbor]; - const FieldElementT& range_check16__perm__cum_prod0_column_row_expr750 = - neighbors[kRangeCheck16_Perm_CumProd0ColumnRowExpr750Neighbor]; - const FieldElementT& diluted_check__permutation__cum_prod0_column_row_expr751 = - neighbors[kDilutedCheck_Permutation_CumProd0ColumnRowExpr751Neighbor]; - const FieldElementT& diluted_check__permutation__cum_prod0_column_row_expr752 = - neighbors[kDilutedCheck_Permutation_CumProd0ColumnRowExpr752Neighbor]; - const FieldElementT& diluted_check__cumulative_value_column_row_expr753 = - neighbors[kDilutedCheck_CumulativeValueColumnRowExpr753Neighbor]; - const FieldElementT& diluted_check__cumulative_value_column_row_expr754 = - neighbors[kDilutedCheck_CumulativeValueColumnRowExpr754Neighbor]; + const FieldElementT& mem_pool__value_column_row_expr747 = + neighbors[kMemPool_ValueColumnRowExpr747Neighbor]; + const FieldElementT& range_check16_pool_column_row_expr748 = + neighbors[kRangeCheck16PoolColumnRowExpr748Neighbor]; + const FieldElementT& range_check16_pool_column_row_expr749 = + neighbors[kRangeCheck16PoolColumnRowExpr749Neighbor]; + const FieldElementT& range_check16_pool_column_row_expr750 = + neighbors[kRangeCheck16PoolColumnRowExpr750Neighbor]; + const FieldElementT& range_check16_pool_column_row_expr751 = + neighbors[kRangeCheck16PoolColumnRowExpr751Neighbor]; + const FieldElementT& range_check16_pool_column_row_expr752 = + neighbors[kRangeCheck16PoolColumnRowExpr752Neighbor]; + const FieldElementT& range_check16_pool_column_row_expr753 = + neighbors[kRangeCheck16PoolColumnRowExpr753Neighbor]; + const FieldElementT& mem_pool__addr_column_row_expr754 = + neighbors[kMemPool_AddrColumnRowExpr754Neighbor]; + const FieldElementT& mem_pool__addr_column_row_expr755 = + neighbors[kMemPool_AddrColumnRowExpr755Neighbor]; + const FieldElementT& mem_pool__addr_column_row_expr756 = + neighbors[kMemPool_AddrColumnRowExpr756Neighbor]; + const FieldElementT& mem_pool__addr_column_row_expr757 = + neighbors[kMemPool_AddrColumnRowExpr757Neighbor]; + const FieldElementT& mem_pool__addr_column_row_expr758 = + neighbors[kMemPool_AddrColumnRowExpr758Neighbor]; + const FieldElementT& mem_pool__addr_column_row_expr759 = + neighbors[kMemPool_AddrColumnRowExpr759Neighbor]; + const FieldElementT& mem_pool__addr_column_row_expr760 = + neighbors[kMemPool_AddrColumnRowExpr760Neighbor]; + const FieldElementT& mem_pool__addr_column_row_expr761 = + neighbors[kMemPool_AddrColumnRowExpr761Neighbor]; + const FieldElementT& mem_pool__addr_column_row_expr762 = + neighbors[kMemPool_AddrColumnRowExpr762Neighbor]; + const FieldElementT& mem_pool__addr_column_row_expr763 = + neighbors[kMemPool_AddrColumnRowExpr763Neighbor]; + const FieldElementT& mem_pool__value_column_row_expr764 = + neighbors[kMemPool_ValueColumnRowExpr764Neighbor]; + const FieldElementT& mem_pool__value_column_row_expr765 = + neighbors[kMemPool_ValueColumnRowExpr765Neighbor]; + const FieldElementT& mem_pool__value_column_row_expr766 = + neighbors[kMemPool_ValueColumnRowExpr766Neighbor]; + const FieldElementT& mem_pool__value_column_row_expr767 = + neighbors[kMemPool_ValueColumnRowExpr767Neighbor]; + const FieldElementT& mem_pool__value_column_row_expr768 = + neighbors[kMemPool_ValueColumnRowExpr768Neighbor]; + const FieldElementT& mem_pool__value_column_row_expr769 = + neighbors[kMemPool_ValueColumnRowExpr769Neighbor]; + const FieldElementT& mem_pool__value_column_row_expr770 = + neighbors[kMemPool_ValueColumnRowExpr770Neighbor]; + const FieldElementT& mem_pool__value_column_row_expr771 = + neighbors[kMemPool_ValueColumnRowExpr771Neighbor]; + const FieldElementT& mem_pool__value_column_row_expr772 = + neighbors[kMemPool_ValueColumnRowExpr772Neighbor]; + const FieldElementT& mem_pool__value_column_row_expr773 = + neighbors[kMemPool_ValueColumnRowExpr773Neighbor]; + const FieldElementT& mem_pool__value_column_row_expr774 = + neighbors[kMemPool_ValueColumnRowExpr774Neighbor]; + const FieldElementT& mem_pool__value_column_row_expr775 = + neighbors[kMemPool_ValueColumnRowExpr775Neighbor]; + const FieldElementT& mem_pool__value_column_row_expr776 = + neighbors[kMemPool_ValueColumnRowExpr776Neighbor]; + const FieldElementT& mem_pool__value_column_row_expr777 = + neighbors[kMemPool_ValueColumnRowExpr777Neighbor]; + const FieldElementT& mem_pool__addr_column_row_expr778 = + neighbors[kMemPool_AddrColumnRowExpr778Neighbor]; + const FieldElementT& mem_pool__addr_column_row_expr779 = + neighbors[kMemPool_AddrColumnRowExpr779Neighbor]; + const FieldElementT& mem_pool__addr_column_row_expr780 = + neighbors[kMemPool_AddrColumnRowExpr780Neighbor]; + const FieldElementT& mem_pool__addr_column_row_expr781 = + neighbors[kMemPool_AddrColumnRowExpr781Neighbor]; + const FieldElementT& mem_pool__value_column_row_expr782 = + neighbors[kMemPool_ValueColumnRowExpr782Neighbor]; + const FieldElementT& mem_pool__addr_column_row_expr783 = + neighbors[kMemPool_AddrColumnRowExpr783Neighbor]; + const FieldElementT& mem_pool__addr_column_row_expr784 = + neighbors[kMemPool_AddrColumnRowExpr784Neighbor]; + const FieldElementT& mem_pool__addr_column_row_expr785 = + neighbors[kMemPool_AddrColumnRowExpr785Neighbor]; + const FieldElementT& mem_pool__addr_column_row_expr786 = + neighbors[kMemPool_AddrColumnRowExpr786Neighbor]; + const FieldElementT& mem_pool__value_column_row_expr787 = + neighbors[kMemPool_ValueColumnRowExpr787Neighbor]; + const FieldElementT& mem_pool__addr_column_row_expr788 = + neighbors[kMemPool_AddrColumnRowExpr788Neighbor]; + const FieldElementT& mem_pool__addr_column_row_expr789 = + neighbors[kMemPool_AddrColumnRowExpr789Neighbor]; + const FieldElementT& mem_pool__addr_column_row_expr790 = + neighbors[kMemPool_AddrColumnRowExpr790Neighbor]; + const FieldElementT& mem_pool__addr_column_row_expr791 = + neighbors[kMemPool_AddrColumnRowExpr791Neighbor]; + const FieldElementT& mem_pool__value_column_row_expr792 = + neighbors[kMemPool_ValueColumnRowExpr792Neighbor]; + const FieldElementT& mem_pool__addr_column_row_expr793 = + neighbors[kMemPool_AddrColumnRowExpr793Neighbor]; + const FieldElementT& mem_pool__addr_column_row_expr794 = + neighbors[kMemPool_AddrColumnRowExpr794Neighbor]; + const FieldElementT& mem_pool__addr_column_row_expr795 = + neighbors[kMemPool_AddrColumnRowExpr795Neighbor]; + const FieldElementT& add_mod__sub_p_bit_column_row_expr796 = + neighbors[kAddMod_SubPBitColumnRowExpr796Neighbor]; + const FieldElementT& add_mod__carry1_bit_column_row_expr797 = + neighbors[kAddMod_Carry1BitColumnRowExpr797Neighbor]; + const FieldElementT& add_mod__carry1_sign_column_row_expr798 = + neighbors[kAddMod_Carry1SignColumnRowExpr798Neighbor]; + const FieldElementT& add_mod__carry2_bit_column_row_expr799 = + neighbors[kAddMod_Carry2BitColumnRowExpr799Neighbor]; + const FieldElementT& add_mod__carry2_sign_column_row_expr800 = + neighbors[kAddMod_Carry2SignColumnRowExpr800Neighbor]; + const FieldElementT& add_mod__carry3_bit_column_row_expr801 = + neighbors[kAddMod_Carry3BitColumnRowExpr801Neighbor]; + const FieldElementT& add_mod__carry3_sign_column_row_expr802 = + neighbors[kAddMod_Carry3SignColumnRowExpr802Neighbor]; + const FieldElementT& mem_pool__value_column_row_expr803 = + neighbors[kMemPool_ValueColumnRowExpr803Neighbor]; + const FieldElementT& mem_pool__value_column_row_expr804 = + neighbors[kMemPool_ValueColumnRowExpr804Neighbor]; + const FieldElementT& mem_pool__value_column_row_expr805 = + neighbors[kMemPool_ValueColumnRowExpr805Neighbor]; + const FieldElementT& mem_pool__value_column_row_expr806 = + neighbors[kMemPool_ValueColumnRowExpr806Neighbor]; + const FieldElementT& mem_pool__value_column_row_expr807 = + neighbors[kMemPool_ValueColumnRowExpr807Neighbor]; + const FieldElementT& mem_pool__value_column_row_expr808 = + neighbors[kMemPool_ValueColumnRowExpr808Neighbor]; + const FieldElementT& mem_pool__value_column_row_expr809 = + neighbors[kMemPool_ValueColumnRowExpr809Neighbor]; + const FieldElementT& mem_pool__value_column_row_expr810 = + neighbors[kMemPool_ValueColumnRowExpr810Neighbor]; + const FieldElementT& mem_pool__value_column_row_expr811 = + neighbors[kMemPool_ValueColumnRowExpr811Neighbor]; + const FieldElementT& mem_pool__value_column_row_expr812 = + neighbors[kMemPool_ValueColumnRowExpr812Neighbor]; + const FieldElementT& mem_pool__value_column_row_expr813 = + neighbors[kMemPool_ValueColumnRowExpr813Neighbor]; + const FieldElementT& mem_pool__value_column_row_expr814 = + neighbors[kMemPool_ValueColumnRowExpr814Neighbor]; + const FieldElementT& mem_pool__addr_column_row_expr815 = + neighbors[kMemPool_AddrColumnRowExpr815Neighbor]; + const FieldElementT& mem_pool__addr_column_row_expr816 = + neighbors[kMemPool_AddrColumnRowExpr816Neighbor]; + const FieldElementT& mem_pool__addr_column_row_expr817 = + neighbors[kMemPool_AddrColumnRowExpr817Neighbor]; + const FieldElementT& mem_pool__addr_column_row_expr818 = + neighbors[kMemPool_AddrColumnRowExpr818Neighbor]; + const FieldElementT& mem_pool__addr_column_row_expr819 = + neighbors[kMemPool_AddrColumnRowExpr819Neighbor]; + const FieldElementT& mem_pool__addr_column_row_expr820 = + neighbors[kMemPool_AddrColumnRowExpr820Neighbor]; + const FieldElementT& mem_pool__addr_column_row_expr821 = + neighbors[kMemPool_AddrColumnRowExpr821Neighbor]; + const FieldElementT& mem_pool__addr_column_row_expr822 = + neighbors[kMemPool_AddrColumnRowExpr822Neighbor]; + const FieldElementT& mem_pool__value_column_row_expr823 = + neighbors[kMemPool_ValueColumnRowExpr823Neighbor]; + const FieldElementT& mem_pool__value_column_row_expr824 = + neighbors[kMemPool_ValueColumnRowExpr824Neighbor]; + const FieldElementT& mem_pool__value_column_row_expr825 = + neighbors[kMemPool_ValueColumnRowExpr825Neighbor]; + const FieldElementT& mem_pool__value_column_row_expr826 = + neighbors[kMemPool_ValueColumnRowExpr826Neighbor]; + const FieldElementT& mem_pool__value_column_row_expr827 = + neighbors[kMemPool_ValueColumnRowExpr827Neighbor]; + const FieldElementT& mem_pool__value_column_row_expr828 = + neighbors[kMemPool_ValueColumnRowExpr828Neighbor]; + const FieldElementT& mem_pool__value_column_row_expr829 = + neighbors[kMemPool_ValueColumnRowExpr829Neighbor]; + const FieldElementT& mem_pool__value_column_row_expr830 = + neighbors[kMemPool_ValueColumnRowExpr830Neighbor]; + const FieldElementT& mem_pool__value_column_row_expr831 = + neighbors[kMemPool_ValueColumnRowExpr831Neighbor]; + const FieldElementT& mem_pool__value_column_row_expr832 = + neighbors[kMemPool_ValueColumnRowExpr832Neighbor]; + const FieldElementT& mem_pool__value_column_row_expr833 = + neighbors[kMemPool_ValueColumnRowExpr833Neighbor]; + const FieldElementT& mem_pool__value_column_row_expr834 = + neighbors[kMemPool_ValueColumnRowExpr834Neighbor]; + const FieldElementT& mem_pool__value_column_row_expr835 = + neighbors[kMemPool_ValueColumnRowExpr835Neighbor]; + const FieldElementT& mem_pool__value_column_row_expr836 = + neighbors[kMemPool_ValueColumnRowExpr836Neighbor]; + const FieldElementT& mem_pool__addr_column_row_expr837 = + neighbors[kMemPool_AddrColumnRowExpr837Neighbor]; + const FieldElementT& mem_pool__addr_column_row_expr838 = + neighbors[kMemPool_AddrColumnRowExpr838Neighbor]; + const FieldElementT& mem_pool__addr_column_row_expr839 = + neighbors[kMemPool_AddrColumnRowExpr839Neighbor]; + const FieldElementT& mem_pool__addr_column_row_expr840 = + neighbors[kMemPool_AddrColumnRowExpr840Neighbor]; + const FieldElementT& mem_pool__value_column_row_expr841 = + neighbors[kMemPool_ValueColumnRowExpr841Neighbor]; + const FieldElementT& mem_pool__addr_column_row_expr842 = + neighbors[kMemPool_AddrColumnRowExpr842Neighbor]; + const FieldElementT& mem_pool__addr_column_row_expr843 = + neighbors[kMemPool_AddrColumnRowExpr843Neighbor]; + const FieldElementT& mem_pool__addr_column_row_expr844 = + neighbors[kMemPool_AddrColumnRowExpr844Neighbor]; + const FieldElementT& mem_pool__addr_column_row_expr845 = + neighbors[kMemPool_AddrColumnRowExpr845Neighbor]; + const FieldElementT& mem_pool__value_column_row_expr846 = + neighbors[kMemPool_ValueColumnRowExpr846Neighbor]; + const FieldElementT& mem_pool__addr_column_row_expr847 = + neighbors[kMemPool_AddrColumnRowExpr847Neighbor]; + const FieldElementT& mem_pool__addr_column_row_expr848 = + neighbors[kMemPool_AddrColumnRowExpr848Neighbor]; + const FieldElementT& mem_pool__addr_column_row_expr849 = + neighbors[kMemPool_AddrColumnRowExpr849Neighbor]; + const FieldElementT& mem_pool__addr_column_row_expr850 = + neighbors[kMemPool_AddrColumnRowExpr850Neighbor]; + const FieldElementT& mem_pool__value_column_row_expr851 = + neighbors[kMemPool_ValueColumnRowExpr851Neighbor]; + const FieldElementT& mem_pool__addr_column_row_expr852 = + neighbors[kMemPool_AddrColumnRowExpr852Neighbor]; + const FieldElementT& mem_pool__addr_column_row_expr853 = + neighbors[kMemPool_AddrColumnRowExpr853Neighbor]; + const FieldElementT& mem_pool__addr_column_row_expr854 = + neighbors[kMemPool_AddrColumnRowExpr854Neighbor]; + const FieldElementT& mem_pool__value_column_row_expr855 = + neighbors[kMemPool_ValueColumnRowExpr855Neighbor]; + const FieldElementT& mem_pool__value_column_row_expr856 = + neighbors[kMemPool_ValueColumnRowExpr856Neighbor]; + const FieldElementT& mem_pool__value_column_row_expr857 = + neighbors[kMemPool_ValueColumnRowExpr857Neighbor]; + const FieldElementT& mem_pool__value_column_row_expr858 = + neighbors[kMemPool_ValueColumnRowExpr858Neighbor]; + const FieldElementT& mem_pool__value_column_row_expr859 = + neighbors[kMemPool_ValueColumnRowExpr859Neighbor]; + const FieldElementT& mem_pool__value_column_row_expr860 = + neighbors[kMemPool_ValueColumnRowExpr860Neighbor]; + const FieldElementT& mem_pool__value_column_row_expr861 = + neighbors[kMemPool_ValueColumnRowExpr861Neighbor]; + const FieldElementT& mem_pool__value_column_row_expr862 = + neighbors[kMemPool_ValueColumnRowExpr862Neighbor]; + const FieldElementT& mem_pool__value_column_row_expr863 = + neighbors[kMemPool_ValueColumnRowExpr863Neighbor]; + const FieldElementT& mem_pool__value_column_row_expr864 = + neighbors[kMemPool_ValueColumnRowExpr864Neighbor]; + const FieldElementT& mem_pool__value_column_row_expr865 = + neighbors[kMemPool_ValueColumnRowExpr865Neighbor]; + const FieldElementT& mem_pool__value_column_row_expr866 = + neighbors[kMemPool_ValueColumnRowExpr866Neighbor]; + const FieldElementT& range_check16_pool_column_row_expr867 = + neighbors[kRangeCheck16PoolColumnRowExpr867Neighbor]; + const FieldElementT& range_check16_pool_column_row_expr868 = + neighbors[kRangeCheck16PoolColumnRowExpr868Neighbor]; + const FieldElementT& range_check16_pool_column_row_expr869 = + neighbors[kRangeCheck16PoolColumnRowExpr869Neighbor]; + const FieldElementT& range_check16_pool_column_row_expr870 = + neighbors[kRangeCheck16PoolColumnRowExpr870Neighbor]; + const FieldElementT& range_check16_pool_column_row_expr871 = + neighbors[kRangeCheck16PoolColumnRowExpr871Neighbor]; + const FieldElementT& range_check16_pool_column_row_expr872 = + neighbors[kRangeCheck16PoolColumnRowExpr872Neighbor]; + const FieldElementT& range_check16_pool_column_row_expr873 = + neighbors[kRangeCheck16PoolColumnRowExpr873Neighbor]; + const FieldElementT& range_check16_pool_column_row_expr874 = + neighbors[kRangeCheck16PoolColumnRowExpr874Neighbor]; + const FieldElementT& range_check16_pool_column_row_expr875 = + neighbors[kRangeCheck16PoolColumnRowExpr875Neighbor]; + const FieldElementT& range_check16_pool_column_row_expr876 = + neighbors[kRangeCheck16PoolColumnRowExpr876Neighbor]; + const FieldElementT& range_check16_pool_column_row_expr877 = + neighbors[kRangeCheck16PoolColumnRowExpr877Neighbor]; + const FieldElementT& range_check16_pool_column_row_expr878 = + neighbors[kRangeCheck16PoolColumnRowExpr878Neighbor]; + const FieldElementT& range_check16_pool_column_row_expr879 = + neighbors[kRangeCheck16PoolColumnRowExpr879Neighbor]; + const FieldElementT& range_check16_pool_column_row_expr880 = + neighbors[kRangeCheck16PoolColumnRowExpr880Neighbor]; + const FieldElementT& range_check16_pool_column_row_expr881 = + neighbors[kRangeCheck16PoolColumnRowExpr881Neighbor]; + const FieldElementT& range_check16_pool_column_row_expr882 = + neighbors[kRangeCheck16PoolColumnRowExpr882Neighbor]; + const FieldElementT& range_check16_pool_column_row_expr883 = + neighbors[kRangeCheck16PoolColumnRowExpr883Neighbor]; + const FieldElementT& range_check16_pool_column_row_expr884 = + neighbors[kRangeCheck16PoolColumnRowExpr884Neighbor]; + const FieldElementT& range_check16_pool_column_row_expr885 = + neighbors[kRangeCheck16PoolColumnRowExpr885Neighbor]; + const FieldElementT& range_check16_pool_column_row_expr886 = + neighbors[kRangeCheck16PoolColumnRowExpr886Neighbor]; + const FieldElementT& range_check16_pool_column_row_expr887 = + neighbors[kRangeCheck16PoolColumnRowExpr887Neighbor]; + const FieldElementT& range_check16_pool_column_row_expr888 = + neighbors[kRangeCheck16PoolColumnRowExpr888Neighbor]; + const FieldElementT& range_check16_pool_column_row_expr889 = + neighbors[kRangeCheck16PoolColumnRowExpr889Neighbor]; + const FieldElementT& range_check16_pool_column_row_expr890 = + neighbors[kRangeCheck16PoolColumnRowExpr890Neighbor]; + const FieldElementT& range_check16_pool_column_row_expr891 = + neighbors[kRangeCheck16PoolColumnRowExpr891Neighbor]; + const FieldElementT& range_check16_pool_column_row_expr892 = + neighbors[kRangeCheck16PoolColumnRowExpr892Neighbor]; + const FieldElementT& range_check16_pool_column_row_expr893 = + neighbors[kRangeCheck16PoolColumnRowExpr893Neighbor]; + const FieldElementT& range_check16_pool_column_row_expr894 = + neighbors[kRangeCheck16PoolColumnRowExpr894Neighbor]; + const FieldElementT& range_check16_pool_column_row_expr895 = + neighbors[kRangeCheck16PoolColumnRowExpr895Neighbor]; + const FieldElementT& range_check16_pool_column_row_expr896 = + neighbors[kRangeCheck16PoolColumnRowExpr896Neighbor]; + const FieldElementT& range_check16_pool_column_row_expr897 = + neighbors[kRangeCheck16PoolColumnRowExpr897Neighbor]; + const FieldElementT& range_check16_pool_column_row_expr898 = + neighbors[kRangeCheck16PoolColumnRowExpr898Neighbor]; + const FieldElementT& range_check16_pool_column_row_expr899 = + neighbors[kRangeCheck16PoolColumnRowExpr899Neighbor]; + const FieldElementT& range_check16_pool_column_row_expr900 = + neighbors[kRangeCheck16PoolColumnRowExpr900Neighbor]; + const FieldElementT& range_check16_pool_column_row_expr901 = + neighbors[kRangeCheck16PoolColumnRowExpr901Neighbor]; + const FieldElementT& range_check16_pool_column_row_expr902 = + neighbors[kRangeCheck16PoolColumnRowExpr902Neighbor]; + const FieldElementT& range_check16_pool_column_row_expr903 = + neighbors[kRangeCheck16PoolColumnRowExpr903Neighbor]; + const FieldElementT& range_check16_pool_column_row_expr904 = + neighbors[kRangeCheck16PoolColumnRowExpr904Neighbor]; + const FieldElementT& range_check16_pool_column_row_expr905 = + neighbors[kRangeCheck16PoolColumnRowExpr905Neighbor]; + const FieldElementT& range_check16_pool_column_row_expr906 = + neighbors[kRangeCheck16PoolColumnRowExpr906Neighbor]; + const FieldElementT& range_check16_pool_column_row_expr907 = + neighbors[kRangeCheck16PoolColumnRowExpr907Neighbor]; + const FieldElementT& range_check16_pool_column_row_expr908 = + neighbors[kRangeCheck16PoolColumnRowExpr908Neighbor]; + const FieldElementT& range_check16_pool_column_row_expr909 = + neighbors[kRangeCheck16PoolColumnRowExpr909Neighbor]; + const FieldElementT& range_check16_pool_column_row_expr910 = + neighbors[kRangeCheck16PoolColumnRowExpr910Neighbor]; + const FieldElementT& range_check16_pool_column_row_expr911 = + neighbors[kRangeCheck16PoolColumnRowExpr911Neighbor]; + const FieldElementT& range_check16_pool_column_row_expr912 = + neighbors[kRangeCheck16PoolColumnRowExpr912Neighbor]; + const FieldElementT& range_check16_pool_column_row_expr913 = + neighbors[kRangeCheck16PoolColumnRowExpr913Neighbor]; + const FieldElementT& range_check16_pool_column_row_expr914 = + neighbors[kRangeCheck16PoolColumnRowExpr914Neighbor]; + const FieldElementT& range_check16_pool_column_row_expr915 = + neighbors[kRangeCheck16PoolColumnRowExpr915Neighbor]; + const FieldElementT& range_check16_pool_column_row_expr916 = + neighbors[kRangeCheck16PoolColumnRowExpr916Neighbor]; + const FieldElementT& range_check16_pool_column_row_expr917 = + neighbors[kRangeCheck16PoolColumnRowExpr917Neighbor]; + const FieldElementT& range_check16_pool_column_row_expr918 = + neighbors[kRangeCheck16PoolColumnRowExpr918Neighbor]; + const FieldElementT& range_check16_pool_column_row_expr919 = + neighbors[kRangeCheck16PoolColumnRowExpr919Neighbor]; + const FieldElementT& range_check16_pool_column_row_expr920 = + neighbors[kRangeCheck16PoolColumnRowExpr920Neighbor]; + const FieldElementT& range_check16_pool_column_row_expr921 = + neighbors[kRangeCheck16PoolColumnRowExpr921Neighbor]; + const FieldElementT& range_check16_pool_column_row_expr922 = + neighbors[kRangeCheck16PoolColumnRowExpr922Neighbor]; + const FieldElementT& range_check16_pool_column_row_expr923 = + neighbors[kRangeCheck16PoolColumnRowExpr923Neighbor]; + const FieldElementT& range_check16_pool_column_row_expr924 = + neighbors[kRangeCheck16PoolColumnRowExpr924Neighbor]; + const FieldElementT& range_check16_pool_column_row_expr925 = + neighbors[kRangeCheck16PoolColumnRowExpr925Neighbor]; + const FieldElementT& range_check16_pool_column_row_expr926 = + neighbors[kRangeCheck16PoolColumnRowExpr926Neighbor]; + const FieldElementT& range_check16_pool_column_row_expr927 = + neighbors[kRangeCheck16PoolColumnRowExpr927Neighbor]; + const FieldElementT& range_check16_pool_column_row_expr928 = + neighbors[kRangeCheck16PoolColumnRowExpr928Neighbor]; + const FieldElementT& range_check16_pool_column_row_expr929 = + neighbors[kRangeCheck16PoolColumnRowExpr929Neighbor]; + const FieldElementT& range_check16_pool_column_row_expr930 = + neighbors[kRangeCheck16PoolColumnRowExpr930Neighbor]; + const FieldElementT& range_check16_pool_column_row_expr931 = + neighbors[kRangeCheck16PoolColumnRowExpr931Neighbor]; + const FieldElementT& range_check16_pool_column_row_expr932 = + neighbors[kRangeCheck16PoolColumnRowExpr932Neighbor]; + const FieldElementT& memory__multi_column_perm__perm__cum_prod0_column_row_expr933 = + neighbors[kMemory_MultiColumnPerm_Perm_CumProd0ColumnRowExpr933Neighbor]; + const FieldElementT& memory__multi_column_perm__perm__cum_prod0_column_row_expr934 = + neighbors[kMemory_MultiColumnPerm_Perm_CumProd0ColumnRowExpr934Neighbor]; + const FieldElementT& range_check16__perm__cum_prod0_column_row_expr935 = + neighbors[kRangeCheck16_Perm_CumProd0ColumnRowExpr935Neighbor]; + const FieldElementT& range_check16__perm__cum_prod0_column_row_expr936 = + neighbors[kRangeCheck16_Perm_CumProd0ColumnRowExpr936Neighbor]; + const FieldElementT& diluted_check__permutation__cum_prod0_column_row_expr937 = + neighbors[kDilutedCheck_Permutation_CumProd0ColumnRowExpr937Neighbor]; + const FieldElementT& diluted_check__permutation__cum_prod0_column_row_expr938 = + neighbors[kDilutedCheck_Permutation_CumProd0ColumnRowExpr938Neighbor]; + const FieldElementT& diluted_check__cumulative_value_column_row_expr939 = + neighbors[kDilutedCheck_CumulativeValueColumnRowExpr939Neighbor]; + const FieldElementT& diluted_check__cumulative_value_column_row_expr940 = + neighbors[kDilutedCheck_CumulativeValueColumnRowExpr940Neighbor]; ASSERT_VERIFIER(periodic_columns.size() == 16, "periodic_columns should contain 16 elements."); const FieldElementT& pedersen__points__x = periodic_columns[kPedersenPointsXPeriodicColumn]; @@ -16841,13 +17288,161 @@ FractionFieldElement CpuAirDefinition::Constra const FieldElementT poseidon__poseidon__partial_rounds_state1_cubed_21 = (poseidon__poseidon__partial_rounds_state1_column_row_expr743) * (poseidon__poseidon__partial_rounds_state1_squared_column_row_expr744); + const FieldElementT range_check96_builtin__value0_0 = range_check16_pool_column_row_expr748; + const FieldElementT range_check96_builtin__value1_0 = + ((range_check96_builtin__value0_0) * (offset_size_)) + + (range_check16_pool_column_row_expr749); + const FieldElementT range_check96_builtin__value2_0 = + ((range_check96_builtin__value1_0) * (offset_size_)) + + (range_check16_pool_column_row_expr750); + const FieldElementT range_check96_builtin__value3_0 = + ((range_check96_builtin__value2_0) * (offset_size_)) + + (range_check16_pool_column_row_expr751); + const FieldElementT range_check96_builtin__value4_0 = + ((range_check96_builtin__value3_0) * (offset_size_)) + + (range_check16_pool_column_row_expr752); + const FieldElementT range_check96_builtin__value5_0 = + ((range_check96_builtin__value4_0) * (offset_size_)) + + (range_check16_pool_column_row_expr753); + const FieldElementT mul_mod__p_multiplier1_0 = + (((((range_check16_pool_column_row_expr867) + + ((FieldElementT::ConstexprFromBigInt(0x10000_Z)) * + (range_check16_pool_column_row_expr868))) + + ((FieldElementT::ConstexprFromBigInt(0x100000000_Z)) * + (range_check16_pool_column_row_expr869))) + + ((FieldElementT::ConstexprFromBigInt(0x1000000000000_Z)) * + (range_check16_pool_column_row_expr870))) + + ((FieldElementT::ConstexprFromBigInt(0x10000000000000000_Z)) * + (range_check16_pool_column_row_expr871))) + + ((FieldElementT::ConstexprFromBigInt(0x100000000000000000000_Z)) * + (range_check16_pool_column_row_expr872)); + const FieldElementT mul_mod__p_multiplier2_0 = + (((((range_check16_pool_column_row_expr873) + + ((FieldElementT::ConstexprFromBigInt(0x10000_Z)) * + (range_check16_pool_column_row_expr874))) + + ((FieldElementT::ConstexprFromBigInt(0x100000000_Z)) * + (range_check16_pool_column_row_expr875))) + + ((FieldElementT::ConstexprFromBigInt(0x1000000000000_Z)) * + (range_check16_pool_column_row_expr876))) + + ((FieldElementT::ConstexprFromBigInt(0x10000000000000000_Z)) * + (range_check16_pool_column_row_expr877))) + + ((FieldElementT::ConstexprFromBigInt(0x100000000000000000000_Z)) * + (range_check16_pool_column_row_expr878)); + const FieldElementT mul_mod__p_multiplier3_0 = + (((((range_check16_pool_column_row_expr879) + + ((FieldElementT::ConstexprFromBigInt(0x10000_Z)) * + (range_check16_pool_column_row_expr880))) + + ((FieldElementT::ConstexprFromBigInt(0x100000000_Z)) * + (range_check16_pool_column_row_expr881))) + + ((FieldElementT::ConstexprFromBigInt(0x1000000000000_Z)) * + (range_check16_pool_column_row_expr882))) + + ((FieldElementT::ConstexprFromBigInt(0x10000000000000000_Z)) * + (range_check16_pool_column_row_expr883))) + + ((FieldElementT::ConstexprFromBigInt(0x100000000000000000000_Z)) * + (range_check16_pool_column_row_expr884)); + const FieldElementT mul_mod__p_multiplier0_0 = + (((((range_check16_pool_column_row_expr885) + + ((FieldElementT::ConstexprFromBigInt(0x10000_Z)) * + (range_check16_pool_column_row_expr886))) + + ((FieldElementT::ConstexprFromBigInt(0x100000000_Z)) * + (range_check16_pool_column_row_expr887))) + + ((FieldElementT::ConstexprFromBigInt(0x1000000000000_Z)) * + (range_check16_pool_column_row_expr888))) + + ((FieldElementT::ConstexprFromBigInt(0x10000000000000000_Z)) * + (range_check16_pool_column_row_expr889))) + + ((FieldElementT::ConstexprFromBigInt(0x100000000000000000000_Z)) * + (range_check16_pool_column_row_expr890)); + const FieldElementT mul_mod__carry1_0 = + ((((((range_check16_pool_column_row_expr891) + + ((FieldElementT::ConstexprFromBigInt(0x10000_Z)) * + (range_check16_pool_column_row_expr892))) + + ((FieldElementT::ConstexprFromBigInt(0x100000000_Z)) * + (range_check16_pool_column_row_expr893))) + + ((FieldElementT::ConstexprFromBigInt(0x1000000000000_Z)) * + (range_check16_pool_column_row_expr894))) + + ((FieldElementT::ConstexprFromBigInt(0x10000000000000000_Z)) * + (range_check16_pool_column_row_expr895))) + + ((FieldElementT::ConstexprFromBigInt(0x100000000000000000000_Z)) * + (range_check16_pool_column_row_expr896))) + + ((FieldElementT::ConstexprFromBigInt(0x1000000000000000000000000_Z)) * + (range_check16_pool_column_row_expr897)); + const FieldElementT mul_mod__carry2_0 = + ((((((range_check16_pool_column_row_expr898) + + ((FieldElementT::ConstexprFromBigInt(0x10000_Z)) * + (range_check16_pool_column_row_expr899))) + + ((FieldElementT::ConstexprFromBigInt(0x100000000_Z)) * + (range_check16_pool_column_row_expr900))) + + ((FieldElementT::ConstexprFromBigInt(0x1000000000000_Z)) * + (range_check16_pool_column_row_expr901))) + + ((FieldElementT::ConstexprFromBigInt(0x10000000000000000_Z)) * + (range_check16_pool_column_row_expr902))) + + ((FieldElementT::ConstexprFromBigInt(0x100000000000000000000_Z)) * + (range_check16_pool_column_row_expr903))) + + ((FieldElementT::ConstexprFromBigInt(0x1000000000000000000000000_Z)) * + (range_check16_pool_column_row_expr904)); + const FieldElementT mul_mod__carry3_0 = + ((((((range_check16_pool_column_row_expr905) + + ((FieldElementT::ConstexprFromBigInt(0x10000_Z)) * + (range_check16_pool_column_row_expr906))) + + ((FieldElementT::ConstexprFromBigInt(0x100000000_Z)) * + (range_check16_pool_column_row_expr907))) + + ((FieldElementT::ConstexprFromBigInt(0x1000000000000_Z)) * + (range_check16_pool_column_row_expr908))) + + ((FieldElementT::ConstexprFromBigInt(0x10000000000000000_Z)) * + (range_check16_pool_column_row_expr909))) + + ((FieldElementT::ConstexprFromBigInt(0x100000000000000000000_Z)) * + (range_check16_pool_column_row_expr910))) + + ((FieldElementT::ConstexprFromBigInt(0x1000000000000000000000000_Z)) * + (range_check16_pool_column_row_expr911)); + const FieldElementT mul_mod__carry4_0 = + ((((((range_check16_pool_column_row_expr912) + + ((FieldElementT::ConstexprFromBigInt(0x10000_Z)) * + (range_check16_pool_column_row_expr913))) + + ((FieldElementT::ConstexprFromBigInt(0x100000000_Z)) * + (range_check16_pool_column_row_expr914))) + + ((FieldElementT::ConstexprFromBigInt(0x1000000000000_Z)) * + (range_check16_pool_column_row_expr915))) + + ((FieldElementT::ConstexprFromBigInt(0x10000000000000000_Z)) * + (range_check16_pool_column_row_expr916))) + + ((FieldElementT::ConstexprFromBigInt(0x100000000000000000000_Z)) * + (range_check16_pool_column_row_expr917))) + + ((FieldElementT::ConstexprFromBigInt(0x1000000000000000000000000_Z)) * + (range_check16_pool_column_row_expr918)); + const FieldElementT mul_mod__carry5_0 = + ((((((range_check16_pool_column_row_expr919) + + ((FieldElementT::ConstexprFromBigInt(0x10000_Z)) * + (range_check16_pool_column_row_expr920))) + + ((FieldElementT::ConstexprFromBigInt(0x100000000_Z)) * + (range_check16_pool_column_row_expr921))) + + ((FieldElementT::ConstexprFromBigInt(0x1000000000000_Z)) * + (range_check16_pool_column_row_expr922))) + + ((FieldElementT::ConstexprFromBigInt(0x10000000000000000_Z)) * + (range_check16_pool_column_row_expr923))) + + ((FieldElementT::ConstexprFromBigInt(0x100000000000000000000_Z)) * + (range_check16_pool_column_row_expr924))) + + ((FieldElementT::ConstexprFromBigInt(0x1000000000000000000000000_Z)) * + (range_check16_pool_column_row_expr925)); + const FieldElementT mul_mod__carry0_0 = + ((((((range_check16_pool_column_row_expr926) + + ((FieldElementT::ConstexprFromBigInt(0x10000_Z)) * + (range_check16_pool_column_row_expr927))) + + ((FieldElementT::ConstexprFromBigInt(0x100000000_Z)) * + (range_check16_pool_column_row_expr928))) + + ((FieldElementT::ConstexprFromBigInt(0x1000000000000_Z)) * + (range_check16_pool_column_row_expr929))) + + ((FieldElementT::ConstexprFromBigInt(0x10000000000000000_Z)) * + (range_check16_pool_column_row_expr930))) + + ((FieldElementT::ConstexprFromBigInt(0x100000000000000000000_Z)) * + (range_check16_pool_column_row_expr931))) + + ((FieldElementT::ConstexprFromBigInt(0x1000000000000000000000000_Z)) * + (range_check16_pool_column_row_expr932)); FractionFieldElement res(FieldElementT::Zero()); { - // Compute a sum of constraints with denominator = domain4. + // Compute a sum of constraints with denominator = domain5. FieldElementT outer_sum = FieldElementT::Zero(); { - // Compute a sum of constraints with numerator = domain5. + // Compute a sum of constraints with numerator = domain6. FieldElementT inner_sum = FieldElementT::Zero(); { // Constraint expression for cpu/decode/opcode_range_check/bit: @@ -16856,13 +17451,13 @@ FractionFieldElement CpuAirDefinition::Constra (cpu__decode__opcode_range_check__bit_0); inner_sum += random_coefficients[0] * constraint; } - outer_sum += inner_sum * domain5; + outer_sum += inner_sum * domain6; } - res += FractionFieldElement(outer_sum, domain4); + res += FractionFieldElement(outer_sum, domain5); } { - // Compute a sum of constraints with denominator = domain5. + // Compute a sum of constraints with denominator = domain6. FieldElementT outer_sum = FieldElementT::Zero(); { @@ -16875,11 +17470,11 @@ FractionFieldElement CpuAirDefinition::Constra } outer_sum += inner_sum; // domain == FieldElementT::One() } - res += FractionFieldElement(outer_sum, domain5); + res += FractionFieldElement(outer_sum, domain6); } { - // Compute a sum of constraints with denominator = domain6. + // Compute a sum of constraints with denominator = domain7. FieldElementT outer_sum = FieldElementT::Zero(); { @@ -17056,7 +17651,7 @@ FractionFieldElement CpuAirDefinition::Constra } { - // Compute a sum of constraints with numerator = domain150. + // Compute a sum of constraints with numerator = domain153. FieldElementT inner_sum = FieldElementT::Zero(); { // Constraint expression for cpu/update_registers/update_pc/tmp0: @@ -17117,13 +17712,13 @@ FractionFieldElement CpuAirDefinition::Constra (FieldElementT::ConstexprFromBigInt(0x2_Z))))); inner_sum += random_coefficients[17] * constraint; } - outer_sum += inner_sum * domain150; + outer_sum += inner_sum * domain153; } - res += FractionFieldElement(outer_sum, domain6); + res += FractionFieldElement(outer_sum, domain7); } { - // Compute a sum of constraints with denominator = domain151. + // Compute a sum of constraints with denominator = domain154. FieldElementT outer_sum = FieldElementT::Zero(); { @@ -17151,7 +17746,7 @@ FractionFieldElement CpuAirDefinition::Constra ((memory__sorted__addr_column_row_expr49) + ((memory__multi_column_perm__hash_interaction_elm0_) * (memory__sorted__value_column_row_expr50)))) * - (memory__multi_column_perm__perm__cum_prod0_column_row_expr747)) + + (memory__multi_column_perm__perm__cum_prod0_column_row_expr933)) + (mem_pool__addr_column_row_expr51)) + ((memory__multi_column_perm__hash_interaction_elm0_) * (mem_pool__value_column_row_expr52))) - @@ -17168,7 +17763,7 @@ FractionFieldElement CpuAirDefinition::Constra // Constraint expression for range_check16/perm/init0: const FieldElementT constraint = ((((range_check16__perm__interaction_elm_) - (range_check16__sorted_column_row_expr59)) * - (range_check16__perm__cum_prod0_column_row_expr749)) + + (range_check16__perm__cum_prod0_column_row_expr935)) + (range_check16_pool_column_row_expr60)) - (range_check16__perm__interaction_elm_); inner_sum += random_coefficients[41] * constraint; @@ -17184,7 +17779,7 @@ FractionFieldElement CpuAirDefinition::Constra const FieldElementT constraint = ((((diluted_check__permutation__interaction_elm_) - (diluted_check__permuted_values_column_row_expr63)) * - (diluted_check__permutation__cum_prod0_column_row_expr751)) + + (diluted_check__permutation__cum_prod0_column_row_expr937)) + (diluted_pool_column_row_expr64)) - (diluted_check__permutation__interaction_elm_); inner_sum += random_coefficients[47] * constraint; @@ -17192,7 +17787,7 @@ FractionFieldElement CpuAirDefinition::Constra { // Constraint expression for diluted_check/init: const FieldElementT constraint = - (diluted_check__cumulative_value_column_row_expr753) - (FieldElementT::One()); + (diluted_check__cumulative_value_column_row_expr939) - (FieldElementT::One()); inner_sum += random_coefficients[50] * constraint; } { @@ -17203,11 +17798,11 @@ FractionFieldElement CpuAirDefinition::Constra } outer_sum += inner_sum; // domain == FieldElementT::One() } - res += FractionFieldElement(outer_sum, domain151); + res += FractionFieldElement(outer_sum, domain154); } { - // Compute a sum of constraints with denominator = domain150. + // Compute a sum of constraints with denominator = domain153. FieldElementT outer_sum = FieldElementT::Zero(); { @@ -17230,15 +17825,15 @@ FractionFieldElement CpuAirDefinition::Constra } outer_sum += inner_sum; // domain == FieldElementT::One() } - res += FractionFieldElement(outer_sum, domain150); + res += FractionFieldElement(outer_sum, domain153); } { - // Compute a sum of constraints with denominator = domain130. + // Compute a sum of constraints with denominator = domain131. FieldElementT outer_sum = FieldElementT::Zero(); { - // Compute a sum of constraints with numerator = domain152. + // Compute a sum of constraints with numerator = domain155. FieldElementT inner_sum = FieldElementT::Zero(); { // Constraint expression for memory/multi_column_perm/perm/step0: @@ -17247,12 +17842,12 @@ FractionFieldElement CpuAirDefinition::Constra ((memory__sorted__addr_column_row_expr53) + ((memory__multi_column_perm__hash_interaction_elm0_) * (memory__sorted__value_column_row_expr54)))) * - (memory__multi_column_perm__perm__cum_prod0_column_row_expr748)) - + (memory__multi_column_perm__perm__cum_prod0_column_row_expr934)) - (((memory__multi_column_perm__perm__interaction_elm_) - ((mem_pool__addr_column_row_expr55) + ((memory__multi_column_perm__hash_interaction_elm0_) * (mem_pool__value_column_row_expr56)))) * - (memory__multi_column_perm__perm__cum_prod0_column_row_expr747)); + (memory__multi_column_perm__perm__cum_prod0_column_row_expr933)); inner_sum += random_coefficients[34] * constraint; } { @@ -17268,13 +17863,13 @@ FractionFieldElement CpuAirDefinition::Constra ((memory__sorted__value_column_row_expr50) - (memory__sorted__value_column_row_expr54)); inner_sum += random_coefficients[37] * constraint; } - outer_sum += inner_sum * domain152; + outer_sum += inner_sum * domain155; } - res += FractionFieldElement(outer_sum, domain130); + res += FractionFieldElement(outer_sum, domain131); } { - // Compute a sum of constraints with denominator = domain152. + // Compute a sum of constraints with denominator = domain155. FieldElementT outer_sum = FieldElementT::Zero(); { @@ -17283,17 +17878,17 @@ FractionFieldElement CpuAirDefinition::Constra { // Constraint expression for memory/multi_column_perm/perm/last: const FieldElementT constraint = - (memory__multi_column_perm__perm__cum_prod0_column_row_expr747) - + (memory__multi_column_perm__perm__cum_prod0_column_row_expr933) - (memory__multi_column_perm__perm__public_memory_prod_); inner_sum += random_coefficients[35] * constraint; } outer_sum += inner_sum; // domain == FieldElementT::One() } - res += FractionFieldElement(outer_sum, domain152); + res += FractionFieldElement(outer_sum, domain155); } { - // Compute a sum of constraints with denominator = domain131. + // Compute a sum of constraints with denominator = domain132. FieldElementT outer_sum = FieldElementT::Zero(); { @@ -17311,23 +17906,23 @@ FractionFieldElement CpuAirDefinition::Constra } outer_sum += inner_sum; // domain == FieldElementT::One() } - res += FractionFieldElement(outer_sum, domain131); + res += FractionFieldElement(outer_sum, domain132); } { - // Compute a sum of constraints with denominator = domain149. + // Compute a sum of constraints with denominator = domain152. FieldElementT outer_sum = FieldElementT::Zero(); { - // Compute a sum of constraints with numerator = domain153. + // Compute a sum of constraints with numerator = domain156. FieldElementT inner_sum = FieldElementT::Zero(); { // Constraint expression for range_check16/perm/step0: const FieldElementT constraint = (((range_check16__perm__interaction_elm_) - (range_check16__sorted_column_row_expr61)) * - (range_check16__perm__cum_prod0_column_row_expr750)) - + (range_check16__perm__cum_prod0_column_row_expr936)) - (((range_check16__perm__interaction_elm_) - (range_check16_pool_column_row_expr62)) * - (range_check16__perm__cum_prod0_column_row_expr749)); + (range_check16__perm__cum_prod0_column_row_expr935)); inner_sum += random_coefficients[42] * constraint; } { @@ -17336,13 +17931,13 @@ FractionFieldElement CpuAirDefinition::Constra ((range_check16__diff_0) * (range_check16__diff_0)) - (range_check16__diff_0); inner_sum += random_coefficients[44] * constraint; } - outer_sum += inner_sum * domain153; + outer_sum += inner_sum * domain156; } - res += FractionFieldElement(outer_sum, domain149); + res += FractionFieldElement(outer_sum, domain152); } { - // Compute a sum of constraints with denominator = domain153. + // Compute a sum of constraints with denominator = domain156. FieldElementT outer_sum = FieldElementT::Zero(); { @@ -17350,7 +17945,7 @@ FractionFieldElement CpuAirDefinition::Constra FieldElementT inner_sum = FieldElementT::Zero(); { // Constraint expression for range_check16/perm/last: - const FieldElementT constraint = (range_check16__perm__cum_prod0_column_row_expr749) - + const FieldElementT constraint = (range_check16__perm__cum_prod0_column_row_expr935) - (range_check16__perm__public_memory_prod_); inner_sum += random_coefficients[43] * constraint; } @@ -17362,31 +17957,31 @@ FractionFieldElement CpuAirDefinition::Constra } outer_sum += inner_sum; // domain == FieldElementT::One() } - res += FractionFieldElement(outer_sum, domain153); + res += FractionFieldElement(outer_sum, domain156); } { - // Compute a sum of constraints with denominator = domain7. + // Compute a sum of constraints with denominator = domain8. FieldElementT outer_sum = FieldElementT::Zero(); { - // Compute a sum of constraints with numerator = domain154. + // Compute a sum of constraints with numerator = domain157. FieldElementT inner_sum = FieldElementT::Zero(); { // Constraint expression for diluted_check/permutation/step0: const FieldElementT constraint = (((diluted_check__permutation__interaction_elm_) - (diluted_check__permuted_values_column_row_expr65)) * - (diluted_check__permutation__cum_prod0_column_row_expr752)) - + (diluted_check__permutation__cum_prod0_column_row_expr938)) - (((diluted_check__permutation__interaction_elm_) - (diluted_pool_column_row_expr66)) * - (diluted_check__permutation__cum_prod0_column_row_expr751)); + (diluted_check__permutation__cum_prod0_column_row_expr937)); inner_sum += random_coefficients[48] * constraint; } { // Constraint expression for diluted_check/step: const FieldElementT constraint = - (diluted_check__cumulative_value_column_row_expr754) - - (((diluted_check__cumulative_value_column_row_expr753) * + (diluted_check__cumulative_value_column_row_expr940) - + (((diluted_check__cumulative_value_column_row_expr939) * ((FieldElementT::One()) + ((diluted_check__interaction_z_) * ((diluted_check__permuted_values_column_row_expr65) - (diluted_check__permuted_values_column_row_expr63))))) + @@ -17397,13 +17992,13 @@ FractionFieldElement CpuAirDefinition::Constra (diluted_check__permuted_values_column_row_expr63)))); inner_sum += random_coefficients[52] * constraint; } - outer_sum += inner_sum * domain154; + outer_sum += inner_sum * domain157; } - res += FractionFieldElement(outer_sum, domain7); + res += FractionFieldElement(outer_sum, domain8); } { - // Compute a sum of constraints with denominator = domain154. + // Compute a sum of constraints with denominator = domain157. FieldElementT outer_sum = FieldElementT::Zero(); { @@ -17412,24 +18007,24 @@ FractionFieldElement CpuAirDefinition::Constra { // Constraint expression for diluted_check/permutation/last: const FieldElementT constraint = - (diluted_check__permutation__cum_prod0_column_row_expr751) - + (diluted_check__permutation__cum_prod0_column_row_expr937) - (diluted_check__permutation__public_memory_prod_); inner_sum += random_coefficients[49] * constraint; } { // Constraint expression for diluted_check/last: const FieldElementT constraint = - (diluted_check__cumulative_value_column_row_expr753) - (diluted_check__final_cum_val_); + (diluted_check__cumulative_value_column_row_expr939) - (diluted_check__final_cum_val_); inner_sum += random_coefficients[53] * constraint; } outer_sum += inner_sum; // domain == FieldElementT::One() } - res += FractionFieldElement(outer_sum, domain154); + res += FractionFieldElement(outer_sum, domain157); } if ((uses_pedersen_builtin) != (0)) { { - // Compute a sum of constraints with denominator = domain133. + // Compute a sum of constraints with denominator = domain135. FieldElementT outer_sum = FieldElementT::Zero(); { @@ -17503,7 +18098,7 @@ FractionFieldElement CpuAirDefinition::Constra } { - // Compute a sum of constraints with numerator = domain136. + // Compute a sum of constraints with numerator = domain138. FieldElementT inner_sum = FieldElementT::Zero(); { // Constraint expression for pedersen/hash0/copy_point/x: @@ -17519,17 +18114,17 @@ FractionFieldElement CpuAirDefinition::Constra (pedersen__hash0__ec_subset_sum__partial_sum__y_column_row_expr83); inner_sum += random_coefficients[69] * constraint; } - outer_sum += inner_sum * domain136; + outer_sum += inner_sum * domain138; } - res += FractionFieldElement(outer_sum, domain133); + res += FractionFieldElement(outer_sum, domain135); } { - // Compute a sum of constraints with denominator = domain132. + // Compute a sum of constraints with denominator = domain134. FieldElementT outer_sum = FieldElementT::Zero(); { - // Compute a sum of constraints with numerator = domain134. + // Compute a sum of constraints with numerator = domain136. FieldElementT inner_sum = FieldElementT::Zero(); { // Constraint expression for pedersen/hash0/ec_subset_sum/booleanity_test: @@ -17587,13 +18182,13 @@ FractionFieldElement CpuAirDefinition::Constra (pedersen__hash0__ec_subset_sum__partial_sum__y_column_row_expr78)); inner_sum += random_coefficients[67] * constraint; } - outer_sum += inner_sum * domain134; + outer_sum += inner_sum * domain136; } - res += FractionFieldElement(outer_sum, domain132); + res += FractionFieldElement(outer_sum, domain134); } { - // Compute a sum of constraints with denominator = domain135. + // Compute a sum of constraints with denominator = domain137. FieldElementT outer_sum = FieldElementT::Zero(); { @@ -17607,11 +18202,11 @@ FractionFieldElement CpuAirDefinition::Constra } outer_sum += inner_sum; // domain == FieldElementT::One() } - res += FractionFieldElement(outer_sum, domain135); + res += FractionFieldElement(outer_sum, domain137); } { - // Compute a sum of constraints with denominator = domain134. + // Compute a sum of constraints with denominator = domain136. FieldElementT outer_sum = FieldElementT::Zero(); { @@ -17625,11 +18220,11 @@ FractionFieldElement CpuAirDefinition::Constra } outer_sum += inner_sum; // domain == FieldElementT::One() } - res += FractionFieldElement(outer_sum, domain134); + res += FractionFieldElement(outer_sum, domain136); } { - // Compute a sum of constraints with denominator = domain137. + // Compute a sum of constraints with denominator = domain139. FieldElementT outer_sum = FieldElementT::Zero(); { @@ -17688,7 +18283,7 @@ FractionFieldElement CpuAirDefinition::Constra } { - // Compute a sum of constraints with numerator = domain155. + // Compute a sum of constraints with numerator = domain158. FieldElementT inner_sum = FieldElementT::Zero(); { // Constraint expression for pedersen/input0_addr: @@ -17697,13 +18292,13 @@ FractionFieldElement CpuAirDefinition::Constra ((mem_pool__addr_column_row_expr88) + (FieldElementT::One())); inner_sum += random_coefficients[73] * constraint; } - outer_sum += inner_sum * domain155; + outer_sum += inner_sum * domain158; } - res += FractionFieldElement(outer_sum, domain137); + res += FractionFieldElement(outer_sum, domain139); } { - // Compute a sum of constraints with denominator = domain156. + // Compute a sum of constraints with denominator = domain159. FieldElementT outer_sum = FieldElementT::Zero(); { @@ -17717,13 +18312,13 @@ FractionFieldElement CpuAirDefinition::Constra } outer_sum += inner_sum; // domain == FieldElementT::One() } - res += FractionFieldElement(outer_sum, domain156); + res += FractionFieldElement(outer_sum, domain159); } } if ((uses_range_check_builtin) != (0)) { { - // Compute a sum of constraints with denominator = domain148. + // Compute a sum of constraints with denominator = domain151. FieldElementT outer_sum = FieldElementT::Zero(); { @@ -17739,7 +18334,7 @@ FractionFieldElement CpuAirDefinition::Constra } { - // Compute a sum of constraints with numerator = domain157. + // Compute a sum of constraints with numerator = domain160. FieldElementT inner_sum = FieldElementT::Zero(); { // Constraint expression for range_check_builtin/addr_step: @@ -17748,13 +18343,13 @@ FractionFieldElement CpuAirDefinition::Constra ((mem_pool__addr_column_row_expr105) + (FieldElementT::One())); inner_sum += random_coefficients[80] * constraint; } - outer_sum += inner_sum * domain157; + outer_sum += inner_sum * domain160; } - res += FractionFieldElement(outer_sum, domain148); + res += FractionFieldElement(outer_sum, domain151); } { - // Compute a sum of constraints with denominator = domain158. + // Compute a sum of constraints with denominator = domain161. FieldElementT outer_sum = FieldElementT::Zero(); { @@ -17768,17 +18363,17 @@ FractionFieldElement CpuAirDefinition::Constra } outer_sum += inner_sum; // domain == FieldElementT::One() } - res += FractionFieldElement(outer_sum, domain158); + res += FractionFieldElement(outer_sum, domain161); } } if ((uses_ecdsa_builtin) != (0)) { { - // Compute a sum of constraints with denominator = domain12. + // Compute a sum of constraints with denominator = domain13. FieldElementT outer_sum = FieldElementT::Zero(); { - // Compute a sum of constraints with numerator = domain14. + // Compute a sum of constraints with numerator = domain15. FieldElementT inner_sum = FieldElementT::Zero(); { // Constraint expression for ecdsa/signature0/doubling_key/slope: @@ -17877,17 +18472,17 @@ FractionFieldElement CpuAirDefinition::Constra (ecdsa__signature0__exponentiate_key__partial_sum__y_column_row_expr122)); inner_sum += random_coefficients[102] * constraint; } - outer_sum += inner_sum * domain14; + outer_sum += inner_sum * domain15; } - res += FractionFieldElement(outer_sum, domain12); + res += FractionFieldElement(outer_sum, domain13); } { - // Compute a sum of constraints with denominator = domain13. + // Compute a sum of constraints with denominator = domain14. FieldElementT outer_sum = FieldElementT::Zero(); { - // Compute a sum of constraints with numerator = domain17. + // Compute a sum of constraints with numerator = domain18. FieldElementT inner_sum = FieldElementT::Zero(); { // Constraint expression for ecdsa/signature0/exponentiate_generator/booleanity_test: @@ -17955,13 +18550,13 @@ FractionFieldElement CpuAirDefinition::Constra (ecdsa__signature0__exponentiate_generator__partial_sum__y_column_row_expr114)); inner_sum += random_coefficients[93] * constraint; } - outer_sum += inner_sum * domain17; + outer_sum += inner_sum * domain18; } - res += FractionFieldElement(outer_sum, domain13); + res += FractionFieldElement(outer_sum, domain14); } { - // Compute a sum of constraints with denominator = domain18. + // Compute a sum of constraints with denominator = domain19. FieldElementT outer_sum = FieldElementT::Zero(); { @@ -17975,11 +18570,11 @@ FractionFieldElement CpuAirDefinition::Constra } outer_sum += inner_sum; // domain == FieldElementT::One() } - res += FractionFieldElement(outer_sum, domain18); + res += FractionFieldElement(outer_sum, domain19); } { - // Compute a sum of constraints with denominator = domain17. + // Compute a sum of constraints with denominator = domain18. FieldElementT outer_sum = FieldElementT::Zero(); { @@ -17993,11 +18588,11 @@ FractionFieldElement CpuAirDefinition::Constra } outer_sum += inner_sum; // domain == FieldElementT::One() } - res += FractionFieldElement(outer_sum, domain17); + res += FractionFieldElement(outer_sum, domain18); } { - // Compute a sum of constraints with denominator = domain15. + // Compute a sum of constraints with denominator = domain16. FieldElementT outer_sum = FieldElementT::Zero(); { @@ -18011,11 +18606,11 @@ FractionFieldElement CpuAirDefinition::Constra } outer_sum += inner_sum; // domain == FieldElementT::One() } - res += FractionFieldElement(outer_sum, domain15); + res += FractionFieldElement(outer_sum, domain16); } { - // Compute a sum of constraints with denominator = domain14. + // Compute a sum of constraints with denominator = domain15. FieldElementT outer_sum = FieldElementT::Zero(); { @@ -18029,11 +18624,11 @@ FractionFieldElement CpuAirDefinition::Constra } outer_sum += inner_sum; // domain == FieldElementT::One() } - res += FractionFieldElement(outer_sum, domain14); + res += FractionFieldElement(outer_sum, domain15); } { - // Compute a sum of constraints with denominator = domain19. + // Compute a sum of constraints with denominator = domain20. FieldElementT outer_sum = FieldElementT::Zero(); { @@ -18172,7 +18767,7 @@ FractionFieldElement CpuAirDefinition::Constra } { - // Compute a sum of constraints with numerator = domain159. + // Compute a sum of constraints with numerator = domain162. FieldElementT inner_sum = FieldElementT::Zero(); { // Constraint expression for ecdsa/pubkey_addr: @@ -18181,13 +18776,13 @@ FractionFieldElement CpuAirDefinition::Constra ((mem_pool__addr_column_row_expr143) + (FieldElementT::One())); inner_sum += random_coefficients[120] * constraint; } - outer_sum += inner_sum * domain159; + outer_sum += inner_sum * domain162; } - res += FractionFieldElement(outer_sum, domain19); + res += FractionFieldElement(outer_sum, domain20); } { - // Compute a sum of constraints with denominator = domain16. + // Compute a sum of constraints with denominator = domain17. FieldElementT outer_sum = FieldElementT::Zero(); { @@ -18217,11 +18812,11 @@ FractionFieldElement CpuAirDefinition::Constra } outer_sum += inner_sum; // domain == FieldElementT::One() } - res += FractionFieldElement(outer_sum, domain16); + res += FractionFieldElement(outer_sum, domain17); } { - // Compute a sum of constraints with denominator = domain160. + // Compute a sum of constraints with denominator = domain163. FieldElementT outer_sum = FieldElementT::Zero(); { @@ -18235,13 +18830,13 @@ FractionFieldElement CpuAirDefinition::Constra } outer_sum += inner_sum; // domain == FieldElementT::One() } - res += FractionFieldElement(outer_sum, domain160); + res += FractionFieldElement(outer_sum, domain163); } } if ((uses_bitwise_builtin) != (0)) { { - // Compute a sum of constraints with denominator = domain161. + // Compute a sum of constraints with denominator = domain164. FieldElementT outer_sum = FieldElementT::Zero(); { @@ -18255,15 +18850,15 @@ FractionFieldElement CpuAirDefinition::Constra } outer_sum += inner_sum; // domain == FieldElementT::One() } - res += FractionFieldElement(outer_sum, domain161); + res += FractionFieldElement(outer_sum, domain164); } { - // Compute a sum of constraints with denominator = domain0. + // Compute a sum of constraints with denominator = domain1. FieldElementT outer_sum = FieldElementT::Zero(); { - // Compute a sum of constraints with numerator = domain1. + // Compute a sum of constraints with numerator = domain2. FieldElementT inner_sum = FieldElementT::Zero(); { // Constraint expression for bitwise/step_var_pool_addr: @@ -18272,7 +18867,7 @@ FractionFieldElement CpuAirDefinition::Constra ((mem_pool__addr_column_row_expr147) + (FieldElementT::One())); inner_sum += random_coefficients[124] * constraint; } - outer_sum += inner_sum * domain1; + outer_sum += inner_sum * domain2; } { @@ -18286,11 +18881,11 @@ FractionFieldElement CpuAirDefinition::Constra } outer_sum += inner_sum; // domain == FieldElementT::One() } - res += FractionFieldElement(outer_sum, domain0); + res += FractionFieldElement(outer_sum, domain1); } { - // Compute a sum of constraints with denominator = domain2. + // Compute a sum of constraints with denominator = domain3. FieldElementT outer_sum = FieldElementT::Zero(); { @@ -18346,7 +18941,7 @@ FractionFieldElement CpuAirDefinition::Constra } { - // Compute a sum of constraints with numerator = domain162. + // Compute a sum of constraints with numerator = domain165. FieldElementT inner_sum = FieldElementT::Zero(); { // Constraint expression for bitwise/next_var_pool_addr: @@ -18355,13 +18950,13 @@ FractionFieldElement CpuAirDefinition::Constra ((mem_pool__addr_column_row_expr149) + (FieldElementT::One())); inner_sum += random_coefficients[126] * constraint; } - outer_sum += inner_sum * domain162; + outer_sum += inner_sum * domain165; } - res += FractionFieldElement(outer_sum, domain2); + res += FractionFieldElement(outer_sum, domain3); } { - // Compute a sum of constraints with denominator = domain3. + // Compute a sum of constraints with denominator = domain4. FieldElementT outer_sum = FieldElementT::Zero(); { @@ -18377,13 +18972,13 @@ FractionFieldElement CpuAirDefinition::Constra } outer_sum += inner_sum; // domain == FieldElementT::One() } - res += FractionFieldElement(outer_sum, domain3); + res += FractionFieldElement(outer_sum, domain4); } } if ((uses_ec_op_builtin) != (0)) { { - // Compute a sum of constraints with denominator = domain163. + // Compute a sum of constraints with denominator = domain166. FieldElementT outer_sum = FieldElementT::Zero(); { @@ -18397,15 +18992,15 @@ FractionFieldElement CpuAirDefinition::Constra } outer_sum += inner_sum; // domain == FieldElementT::One() } - res += FractionFieldElement(outer_sum, domain163); + res += FractionFieldElement(outer_sum, domain166); } { - // Compute a sum of constraints with denominator = domain9. + // Compute a sum of constraints with denominator = domain10. FieldElementT outer_sum = FieldElementT::Zero(); { - // Compute a sum of constraints with numerator = domain164. + // Compute a sum of constraints with numerator = domain167. FieldElementT inner_sum = FieldElementT::Zero(); { // Constraint expression for ec_op/p_x_addr: @@ -18414,7 +19009,7 @@ FractionFieldElement CpuAirDefinition::Constra ((mem_pool__addr_column_row_expr187) + (FieldElementT::ConstexprFromBigInt(0x7_Z))); inner_sum += random_coefficients[135] * constraint; } - outer_sum += inner_sum * domain164; + outer_sum += inner_sum * domain167; } { @@ -18571,15 +19166,15 @@ FractionFieldElement CpuAirDefinition::Constra } outer_sum += inner_sum; // domain == FieldElementT::One() } - res += FractionFieldElement(outer_sum, domain9); + res += FractionFieldElement(outer_sum, domain10); } { - // Compute a sum of constraints with denominator = domain8. + // Compute a sum of constraints with denominator = domain9. FieldElementT outer_sum = FieldElementT::Zero(); { - // Compute a sum of constraints with numerator = domain10. + // Compute a sum of constraints with numerator = domain11. FieldElementT inner_sum = FieldElementT::Zero(); { // Constraint expression for ec_op/doubling_q/slope: @@ -18674,13 +19269,13 @@ FractionFieldElement CpuAirDefinition::Constra (ec_op__ec_subset_sum__partial_sum__y_column_row_expr213)); inner_sum += random_coefficients[161] * constraint; } - outer_sum += inner_sum * domain10; + outer_sum += inner_sum * domain11; } - res += FractionFieldElement(outer_sum, domain8); + res += FractionFieldElement(outer_sum, domain9); } { - // Compute a sum of constraints with denominator = domain11. + // Compute a sum of constraints with denominator = domain12. FieldElementT outer_sum = FieldElementT::Zero(); { @@ -18693,11 +19288,11 @@ FractionFieldElement CpuAirDefinition::Constra } outer_sum += inner_sum; // domain == FieldElementT::One() } - res += FractionFieldElement(outer_sum, domain11); + res += FractionFieldElement(outer_sum, domain12); } { - // Compute a sum of constraints with denominator = domain10. + // Compute a sum of constraints with denominator = domain11. FieldElementT outer_sum = FieldElementT::Zero(); { @@ -18710,13 +19305,13 @@ FractionFieldElement CpuAirDefinition::Constra } outer_sum += inner_sum; // domain == FieldElementT::One() } - res += FractionFieldElement(outer_sum, domain10); + res += FractionFieldElement(outer_sum, domain11); } } if ((uses_keccak_builtin) != (0)) { { - // Compute a sum of constraints with denominator = domain165. + // Compute a sum of constraints with denominator = domain168. FieldElementT outer_sum = FieldElementT::Zero(); { @@ -18730,15 +19325,15 @@ FractionFieldElement CpuAirDefinition::Constra } outer_sum += inner_sum; // domain == FieldElementT::One() } - res += FractionFieldElement(outer_sum, domain165); + res += FractionFieldElement(outer_sum, domain168); } { - // Compute a sum of constraints with denominator = domain23. + // Compute a sum of constraints with denominator = domain24. FieldElementT outer_sum = FieldElementT::Zero(); { - // Compute a sum of constraints with numerator = domain166. + // Compute a sum of constraints with numerator = domain169. FieldElementT inner_sum = FieldElementT::Zero(); { // Constraint expression for keccak/addr_input_output_step: @@ -18747,13 +19342,13 @@ FractionFieldElement CpuAirDefinition::Constra ((mem_pool__addr_column_row_expr225) + (FieldElementT::One())); inner_sum += random_coefficients[168] * constraint; } - outer_sum += inner_sum * domain166; + outer_sum += inner_sum * domain169; } - res += FractionFieldElement(outer_sum, domain23); + res += FractionFieldElement(outer_sum, domain24); } { - // Compute a sum of constraints with denominator = domain28. + // Compute a sum of constraints with denominator = domain29. FieldElementT outer_sum = FieldElementT::Zero(); { @@ -18873,11 +19468,11 @@ FractionFieldElement CpuAirDefinition::Constra } outer_sum += inner_sum; // domain == FieldElementT::One() } - res += FractionFieldElement(outer_sum, domain28); + res += FractionFieldElement(outer_sum, domain29); } { - // Compute a sum of constraints with denominator = domain31. + // Compute a sum of constraints with denominator = domain32. FieldElementT outer_sum = FieldElementT::Zero(); { @@ -18997,11 +19592,11 @@ FractionFieldElement CpuAirDefinition::Constra } outer_sum += inner_sum; // domain == FieldElementT::One() } - res += FractionFieldElement(outer_sum, domain31); + res += FractionFieldElement(outer_sum, domain32); } { - // Compute a sum of constraints with denominator = domain35. + // Compute a sum of constraints with denominator = domain36. FieldElementT outer_sum = FieldElementT::Zero(); { @@ -19015,11 +19610,11 @@ FractionFieldElement CpuAirDefinition::Constra } outer_sum += inner_sum; // domain == FieldElementT::One() } - res += FractionFieldElement(outer_sum, domain35); + res += FractionFieldElement(outer_sum, domain36); } { - // Compute a sum of constraints with denominator = domain30. + // Compute a sum of constraints with denominator = domain31. FieldElementT outer_sum = FieldElementT::Zero(); { @@ -19083,11 +19678,11 @@ FractionFieldElement CpuAirDefinition::Constra } outer_sum += inner_sum; // domain == FieldElementT::One() } - res += FractionFieldElement(outer_sum, domain30); + res += FractionFieldElement(outer_sum, domain31); } { - // Compute a sum of constraints with denominator = domain34. + // Compute a sum of constraints with denominator = domain35. FieldElementT outer_sum = FieldElementT::Zero(); { @@ -19167,11 +19762,11 @@ FractionFieldElement CpuAirDefinition::Constra } outer_sum += inner_sum; // domain == FieldElementT::One() } - res += FractionFieldElement(outer_sum, domain34); + res += FractionFieldElement(outer_sum, domain35); } { - // Compute a sum of constraints with denominator = domain38. + // Compute a sum of constraints with denominator = domain39. FieldElementT outer_sum = FieldElementT::Zero(); { @@ -19187,11 +19782,11 @@ FractionFieldElement CpuAirDefinition::Constra } outer_sum += inner_sum; // domain == FieldElementT::One() } - res += FractionFieldElement(outer_sum, domain38); + res += FractionFieldElement(outer_sum, domain39); } { - // Compute a sum of constraints with denominator = domain39. + // Compute a sum of constraints with denominator = domain40. FieldElementT outer_sum = FieldElementT::Zero(); { @@ -19207,11 +19802,11 @@ FractionFieldElement CpuAirDefinition::Constra } outer_sum += inner_sum; // domain == FieldElementT::One() } - res += FractionFieldElement(outer_sum, domain39); + res += FractionFieldElement(outer_sum, domain40); } { - // Compute a sum of constraints with denominator = domain40. + // Compute a sum of constraints with denominator = domain41. FieldElementT outer_sum = FieldElementT::Zero(); { @@ -19231,15 +19826,15 @@ FractionFieldElement CpuAirDefinition::Constra } outer_sum += inner_sum; // domain == FieldElementT::One() } - res += FractionFieldElement(outer_sum, domain40); + res += FractionFieldElement(outer_sum, domain41); } { - // Compute a sum of constraints with denominator = domain22. + // Compute a sum of constraints with denominator = domain23. FieldElementT outer_sum = FieldElementT::Zero(); { - // Compute a sum of constraints with numerator = domain44. + // Compute a sum of constraints with numerator = domain45. FieldElementT inner_sum = FieldElementT::Zero(); { // Constraint expression for keccak/keccak/parse_to_diluted/extract_bit_first_invocation0: @@ -19249,17 +19844,17 @@ FractionFieldElement CpuAirDefinition::Constra (keccak__keccak__parse_to_diluted__partial_diluted0_0); inner_sum += random_coefficients[222] * constraint; } - outer_sum += inner_sum * domain44; + outer_sum += inner_sum * domain45; } - res += FractionFieldElement(outer_sum, domain22); + res += FractionFieldElement(outer_sum, domain23); } { - // Compute a sum of constraints with denominator = domain20. + // Compute a sum of constraints with denominator = domain21. FieldElementT outer_sum = FieldElementT::Zero(); { - // Compute a sum of constraints with numerator = domain47. + // Compute a sum of constraints with numerator = domain48. FieldElementT inner_sum = FieldElementT::Zero(); { // Constraint expression for @@ -19269,17 +19864,17 @@ FractionFieldElement CpuAirDefinition::Constra (keccak__keccak__parse_to_diluted__bit_other0_0); inner_sum += random_coefficients[223] * constraint; } - outer_sum += inner_sum * domain47; + outer_sum += inner_sum * domain48; } - res += FractionFieldElement(outer_sum, domain20); + res += FractionFieldElement(outer_sum, domain21); } { - // Compute a sum of constraints with denominator = domain21. + // Compute a sum of constraints with denominator = domain22. FieldElementT outer_sum = FieldElementT::Zero(); { - // Compute a sum of constraints with numerator = domain48. + // Compute a sum of constraints with numerator = domain49. FieldElementT inner_sum = FieldElementT::Zero(); { // Constraint expression for keccak/keccak/parse_to_diluted/to_diluted0_p0: @@ -19293,13 +19888,13 @@ FractionFieldElement CpuAirDefinition::Constra (diluted_pool_column_row_expr337); inner_sum += random_coefficients[225] * constraint; } - outer_sum += inner_sum * domain48; + outer_sum += inner_sum * domain49; } - res += FractionFieldElement(outer_sum, domain21); + res += FractionFieldElement(outer_sum, domain22); } { - // Compute a sum of constraints with denominator = domain25. + // Compute a sum of constraints with denominator = domain26. FieldElementT outer_sum = FieldElementT::Zero(); { @@ -19377,7 +19972,7 @@ FractionFieldElement CpuAirDefinition::Constra } { - // Compute a sum of constraints with numerator = domain50. + // Compute a sum of constraints with numerator = domain51. FieldElementT inner_sum = FieldElementT::Zero(); { // Constraint expression for keccak/keccak/rotate_parity0/n1: @@ -19417,11 +20012,11 @@ FractionFieldElement CpuAirDefinition::Constra (diluted_pool_column_row_expr398)); inner_sum += random_coefficients[242] * constraint; } - outer_sum += inner_sum * domain50; + outer_sum += inner_sum * domain51; } { - // Compute a sum of constraints with numerator = domain52. + // Compute a sum of constraints with numerator = domain53. FieldElementT inner_sum = FieldElementT::Zero(); { // Constraint expression for keccak/keccak/theta_rho_pi_i0_j2/n1: @@ -19431,11 +20026,11 @@ FractionFieldElement CpuAirDefinition::Constra (diluted_pool_column_row_expr408)); inner_sum += random_coefficients[245] * constraint; } - outer_sum += inner_sum * domain52; + outer_sum += inner_sum * domain53; } { - // Compute a sum of constraints with numerator = domain78. + // Compute a sum of constraints with numerator = domain79. FieldElementT inner_sum = FieldElementT::Zero(); { // Constraint expression for keccak/keccak/theta_rho_pi_i0_j3/n0: @@ -19453,11 +20048,11 @@ FractionFieldElement CpuAirDefinition::Constra (diluted_pool_column_row_expr429)); inner_sum += random_coefficients[251] * constraint; } - outer_sum += inner_sum * domain78; + outer_sum += inner_sum * domain79; } { - // Compute a sum of constraints with numerator = domain77. + // Compute a sum of constraints with numerator = domain78. FieldElementT inner_sum = FieldElementT::Zero(); { // Constraint expression for keccak/keccak/theta_rho_pi_i0_j4/n0: @@ -19467,11 +20062,11 @@ FractionFieldElement CpuAirDefinition::Constra (diluted_pool_column_row_expr418)); inner_sum += random_coefficients[248] * constraint; } - outer_sum += inner_sum * domain77; + outer_sum += inner_sum * domain78; } { - // Compute a sum of constraints with numerator = domain71. + // Compute a sum of constraints with numerator = domain72. FieldElementT inner_sum = FieldElementT::Zero(); { // Constraint expression for keccak/keccak/theta_rho_pi_i1_j1/n1: @@ -19489,11 +20084,11 @@ FractionFieldElement CpuAirDefinition::Constra (diluted_pool_column_row_expr473)); inner_sum += random_coefficients[262] * constraint; } - outer_sum += inner_sum * domain71; + outer_sum += inner_sum * domain72; } { - // Compute a sum of constraints with numerator = domain56. + // Compute a sum of constraints with numerator = domain57. FieldElementT inner_sum = FieldElementT::Zero(); { // Constraint expression for keccak/keccak/theta_rho_pi_i1_j2/n0: @@ -19503,11 +20098,11 @@ FractionFieldElement CpuAirDefinition::Constra (diluted_pool_column_row_expr439)); inner_sum += random_coefficients[254] * constraint; } - outer_sum += inner_sum * domain56; + outer_sum += inner_sum * domain57; } { - // Compute a sum of constraints with numerator = domain54. + // Compute a sum of constraints with numerator = domain55. FieldElementT inner_sum = FieldElementT::Zero(); { // Constraint expression for keccak/keccak/theta_rho_pi_i2_j0/n0: @@ -19525,11 +20120,11 @@ FractionFieldElement CpuAirDefinition::Constra (diluted_pool_column_row_expr628)); inner_sum += random_coefficients[301] * constraint; } - outer_sum += inner_sum * domain54; + outer_sum += inner_sum * domain55; } { - // Compute a sum of constraints with numerator = domain61. + // Compute a sum of constraints with numerator = domain62. FieldElementT inner_sum = FieldElementT::Zero(); { // Constraint expression for keccak/keccak/theta_rho_pi_i2_j1/n0: @@ -19539,11 +20134,11 @@ FractionFieldElement CpuAirDefinition::Constra (diluted_pool_column_row_expr487)); inner_sum += random_coefficients[266] * constraint; } - outer_sum += inner_sum * domain61; + outer_sum += inner_sum * domain62; } { - // Compute a sum of constraints with numerator = domain73. + // Compute a sum of constraints with numerator = domain74. FieldElementT inner_sum = FieldElementT::Zero(); { // Constraint expression for keccak/keccak/theta_rho_pi_i2_j2/n1: @@ -19561,11 +20156,11 @@ FractionFieldElement CpuAirDefinition::Constra (diluted_pool_column_row_expr576)); inner_sum += random_coefficients[288] * constraint; } - outer_sum += inner_sum * domain73; + outer_sum += inner_sum * domain74; } { - // Compute a sum of constraints with numerator = domain76. + // Compute a sum of constraints with numerator = domain77. FieldElementT inner_sum = FieldElementT::Zero(); { // Constraint expression for keccak/keccak/theta_rho_pi_i2_j3/n0: @@ -19575,11 +20170,11 @@ FractionFieldElement CpuAirDefinition::Constra (diluted_pool_column_row_expr501)); inner_sum += random_coefficients[270] * constraint; } - outer_sum += inner_sum * domain76; + outer_sum += inner_sum * domain77; } { - // Compute a sum of constraints with numerator = domain69. + // Compute a sum of constraints with numerator = domain70. FieldElementT inner_sum = FieldElementT::Zero(); { // Constraint expression for keccak/keccak/theta_rho_pi_i3_j1/n1: @@ -19589,11 +20184,11 @@ FractionFieldElement CpuAirDefinition::Constra (diluted_pool_column_row_expr566)); inner_sum += random_coefficients[285] * constraint; } - outer_sum += inner_sum * domain69; + outer_sum += inner_sum * domain70; } { - // Compute a sum of constraints with numerator = domain65. + // Compute a sum of constraints with numerator = domain66. FieldElementT inner_sum = FieldElementT::Zero(); { // Constraint expression for keccak/keccak/theta_rho_pi_i3_j2/n0: @@ -19603,11 +20198,11 @@ FractionFieldElement CpuAirDefinition::Constra (diluted_pool_column_row_expr569)); inner_sum += random_coefficients[286] * constraint; } - outer_sum += inner_sum * domain65; + outer_sum += inner_sum * domain66; } { - // Compute a sum of constraints with numerator = domain58. + // Compute a sum of constraints with numerator = domain59. FieldElementT inner_sum = FieldElementT::Zero(); { // Constraint expression for keccak/keccak/theta_rho_pi_i3_j4/n0: @@ -19625,11 +20220,11 @@ FractionFieldElement CpuAirDefinition::Constra (diluted_pool_column_row_expr635)); inner_sum += random_coefficients[303] * constraint; } - outer_sum += inner_sum * domain58; + outer_sum += inner_sum * domain59; } { - // Compute a sum of constraints with numerator = domain67. + // Compute a sum of constraints with numerator = domain68. FieldElementT inner_sum = FieldElementT::Zero(); { // Constraint expression for keccak/keccak/theta_rho_pi_i4_j0/n0: @@ -19639,11 +20234,11 @@ FractionFieldElement CpuAirDefinition::Constra (diluted_pool_column_row_expr590)); inner_sum += random_coefficients[292] * constraint; } - outer_sum += inner_sum * domain67; + outer_sum += inner_sum * domain68; } { - // Compute a sum of constraints with numerator = domain63. + // Compute a sum of constraints with numerator = domain64. FieldElementT inner_sum = FieldElementT::Zero(); { // Constraint expression for keccak/keccak/theta_rho_pi_i4_j4/n0: @@ -19653,13 +20248,13 @@ FractionFieldElement CpuAirDefinition::Constra (diluted_pool_column_row_expr638)); inner_sum += random_coefficients[304] * constraint; } - outer_sum += inner_sum * domain63; + outer_sum += inner_sum * domain64; } - res += FractionFieldElement(outer_sum, domain25); + res += FractionFieldElement(outer_sum, domain26); } { - // Compute a sum of constraints with denominator = domain33. + // Compute a sum of constraints with denominator = domain34. FieldElementT outer_sum = FieldElementT::Zero(); { @@ -19789,11 +20384,11 @@ FractionFieldElement CpuAirDefinition::Constra } outer_sum += inner_sum; // domain == FieldElementT::One() } - res += FractionFieldElement(outer_sum, domain33); + res += FractionFieldElement(outer_sum, domain34); } { - // Compute a sum of constraints with denominator = domain81. + // Compute a sum of constraints with denominator = domain82. FieldElementT outer_sum = FieldElementT::Zero(); { @@ -19809,11 +20404,11 @@ FractionFieldElement CpuAirDefinition::Constra } outer_sum += inner_sum; // domain == FieldElementT::One() } - res += FractionFieldElement(outer_sum, domain81); + res += FractionFieldElement(outer_sum, domain82); } { - // Compute a sum of constraints with denominator = domain110. + // Compute a sum of constraints with denominator = domain111. FieldElementT outer_sum = FieldElementT::Zero(); { @@ -19837,11 +20432,11 @@ FractionFieldElement CpuAirDefinition::Constra } outer_sum += inner_sum; // domain == FieldElementT::One() } - res += FractionFieldElement(outer_sum, domain110); + res += FractionFieldElement(outer_sum, domain111); } { - // Compute a sum of constraints with denominator = domain109. + // Compute a sum of constraints with denominator = domain110. FieldElementT outer_sum = FieldElementT::Zero(); { @@ -19857,11 +20452,11 @@ FractionFieldElement CpuAirDefinition::Constra } outer_sum += inner_sum; // domain == FieldElementT::One() } - res += FractionFieldElement(outer_sum, domain109); + res += FractionFieldElement(outer_sum, domain110); } { - // Compute a sum of constraints with denominator = domain103. + // Compute a sum of constraints with denominator = domain104. FieldElementT outer_sum = FieldElementT::Zero(); { @@ -19885,11 +20480,11 @@ FractionFieldElement CpuAirDefinition::Constra } outer_sum += inner_sum; // domain == FieldElementT::One() } - res += FractionFieldElement(outer_sum, domain103); + res += FractionFieldElement(outer_sum, domain104); } { - // Compute a sum of constraints with denominator = domain86. + // Compute a sum of constraints with denominator = domain87. FieldElementT outer_sum = FieldElementT::Zero(); { @@ -19905,11 +20500,11 @@ FractionFieldElement CpuAirDefinition::Constra } outer_sum += inner_sum; // domain == FieldElementT::One() } - res += FractionFieldElement(outer_sum, domain86); + res += FractionFieldElement(outer_sum, domain87); } { - // Compute a sum of constraints with denominator = domain113. + // Compute a sum of constraints with denominator = domain114. FieldElementT outer_sum = FieldElementT::Zero(); { @@ -19941,15 +20536,15 @@ FractionFieldElement CpuAirDefinition::Constra } outer_sum += inner_sum; // domain == FieldElementT::One() } - res += FractionFieldElement(outer_sum, domain113); + res += FractionFieldElement(outer_sum, domain114); } { - // Compute a sum of constraints with denominator = domain24. + // Compute a sum of constraints with denominator = domain25. FieldElementT outer_sum = FieldElementT::Zero(); { - // Compute a sum of constraints with numerator = domain116. + // Compute a sum of constraints with numerator = domain117. FieldElementT inner_sum = FieldElementT::Zero(); { // Constraint expression for keccak/keccak/theta_rho_pi_i1_j3/n3: @@ -19975,11 +20570,11 @@ FractionFieldElement CpuAirDefinition::Constra (diluted_pool_column_row_expr470)); inner_sum += random_coefficients[261] * constraint; } - outer_sum += inner_sum * domain116; + outer_sum += inner_sum * domain117; } { - // Compute a sum of constraints with numerator = domain118. + // Compute a sum of constraints with numerator = domain119. FieldElementT inner_sum = FieldElementT::Zero(); { // Constraint expression for keccak/keccak/theta_rho_pi_i2_j4/n3: @@ -20005,11 +20600,11 @@ FractionFieldElement CpuAirDefinition::Constra (diluted_pool_column_row_expr532)); inner_sum += random_coefficients[277] * constraint; } - outer_sum += inner_sum * domain118; + outer_sum += inner_sum * domain119; } { - // Compute a sum of constraints with numerator = domain119. + // Compute a sum of constraints with numerator = domain120. FieldElementT inner_sum = FieldElementT::Zero(); { // Constraint expression for keccak/keccak/theta_rho_pi_i3_j0/n3: @@ -20035,11 +20630,11 @@ FractionFieldElement CpuAirDefinition::Constra (diluted_pool_column_row_expr559)); inner_sum += random_coefficients[283] * constraint; } - outer_sum += inner_sum * domain119; + outer_sum += inner_sum * domain120; } { - // Compute a sum of constraints with numerator = domain114. + // Compute a sum of constraints with numerator = domain115. FieldElementT inner_sum = FieldElementT::Zero(); { // Constraint expression for keccak/keccak/theta_rho_pi_i4_j1/n0: @@ -20065,13 +20660,13 @@ FractionFieldElement CpuAirDefinition::Constra (diluted_pool_column_row_expr607)); inner_sum += random_coefficients[296] * constraint; } - outer_sum += inner_sum * domain114; + outer_sum += inner_sum * domain115; } - res += FractionFieldElement(outer_sum, domain24); + res += FractionFieldElement(outer_sum, domain25); } { - // Compute a sum of constraints with denominator = domain120. + // Compute a sum of constraints with denominator = domain121. FieldElementT outer_sum = FieldElementT::Zero(); { @@ -20095,11 +20690,11 @@ FractionFieldElement CpuAirDefinition::Constra } outer_sum += inner_sum; // domain == FieldElementT::One() } - res += FractionFieldElement(outer_sum, domain120); + res += FractionFieldElement(outer_sum, domain121); } { - // Compute a sum of constraints with denominator = domain92. + // Compute a sum of constraints with denominator = domain93. FieldElementT outer_sum = FieldElementT::Zero(); { @@ -20115,11 +20710,11 @@ FractionFieldElement CpuAirDefinition::Constra } outer_sum += inner_sum; // domain == FieldElementT::One() } - res += FractionFieldElement(outer_sum, domain92); + res += FractionFieldElement(outer_sum, domain93); } { - // Compute a sum of constraints with denominator = domain105. + // Compute a sum of constraints with denominator = domain106. FieldElementT outer_sum = FieldElementT::Zero(); { @@ -20143,11 +20738,11 @@ FractionFieldElement CpuAirDefinition::Constra } outer_sum += inner_sum; // domain == FieldElementT::One() } - res += FractionFieldElement(outer_sum, domain105); + res += FractionFieldElement(outer_sum, domain106); } { - // Compute a sum of constraints with denominator = domain108. + // Compute a sum of constraints with denominator = domain109. FieldElementT outer_sum = FieldElementT::Zero(); { @@ -20163,11 +20758,11 @@ FractionFieldElement CpuAirDefinition::Constra } outer_sum += inner_sum; // domain == FieldElementT::One() } - res += FractionFieldElement(outer_sum, domain108); + res += FractionFieldElement(outer_sum, domain109); } { - // Compute a sum of constraints with denominator = domain122. + // Compute a sum of constraints with denominator = domain123. FieldElementT outer_sum = FieldElementT::Zero(); { @@ -20199,11 +20794,11 @@ FractionFieldElement CpuAirDefinition::Constra } outer_sum += inner_sum; // domain == FieldElementT::One() } - res += FractionFieldElement(outer_sum, domain122); + res += FractionFieldElement(outer_sum, domain123); } { - // Compute a sum of constraints with denominator = domain123. + // Compute a sum of constraints with denominator = domain124. FieldElementT outer_sum = FieldElementT::Zero(); { @@ -20235,11 +20830,11 @@ FractionFieldElement CpuAirDefinition::Constra } outer_sum += inner_sum; // domain == FieldElementT::One() } - res += FractionFieldElement(outer_sum, domain123); + res += FractionFieldElement(outer_sum, domain124); } { - // Compute a sum of constraints with denominator = domain124. + // Compute a sum of constraints with denominator = domain125. FieldElementT outer_sum = FieldElementT::Zero(); { @@ -20255,11 +20850,11 @@ FractionFieldElement CpuAirDefinition::Constra } outer_sum += inner_sum; // domain == FieldElementT::One() } - res += FractionFieldElement(outer_sum, domain124); + res += FractionFieldElement(outer_sum, domain125); } { - // Compute a sum of constraints with denominator = domain125. + // Compute a sum of constraints with denominator = domain126. FieldElementT outer_sum = FieldElementT::Zero(); { @@ -20275,11 +20870,11 @@ FractionFieldElement CpuAirDefinition::Constra } outer_sum += inner_sum; // domain == FieldElementT::One() } - res += FractionFieldElement(outer_sum, domain125); + res += FractionFieldElement(outer_sum, domain126); } { - // Compute a sum of constraints with denominator = domain126. + // Compute a sum of constraints with denominator = domain127. FieldElementT outer_sum = FieldElementT::Zero(); { @@ -20303,11 +20898,11 @@ FractionFieldElement CpuAirDefinition::Constra } outer_sum += inner_sum; // domain == FieldElementT::One() } - res += FractionFieldElement(outer_sum, domain126); + res += FractionFieldElement(outer_sum, domain127); } { - // Compute a sum of constraints with denominator = domain127. + // Compute a sum of constraints with denominator = domain128. FieldElementT outer_sum = FieldElementT::Zero(); { @@ -20323,11 +20918,11 @@ FractionFieldElement CpuAirDefinition::Constra } outer_sum += inner_sum; // domain == FieldElementT::One() } - res += FractionFieldElement(outer_sum, domain127); + res += FractionFieldElement(outer_sum, domain128); } { - // Compute a sum of constraints with denominator = domain111. + // Compute a sum of constraints with denominator = domain112. FieldElementT outer_sum = FieldElementT::Zero(); { @@ -20359,11 +20954,11 @@ FractionFieldElement CpuAirDefinition::Constra } outer_sum += inner_sum; // domain == FieldElementT::One() } - res += FractionFieldElement(outer_sum, domain111); + res += FractionFieldElement(outer_sum, domain112); } { - // Compute a sum of constraints with denominator = domain128. + // Compute a sum of constraints with denominator = domain129. FieldElementT outer_sum = FieldElementT::Zero(); { @@ -20379,15 +20974,15 @@ FractionFieldElement CpuAirDefinition::Constra } outer_sum += inner_sum; // domain == FieldElementT::One() } - res += FractionFieldElement(outer_sum, domain128); + res += FractionFieldElement(outer_sum, domain129); } { - // Compute a sum of constraints with denominator = domain27. + // Compute a sum of constraints with denominator = domain28. FieldElementT outer_sum = FieldElementT::Zero(); { - // Compute a sum of constraints with numerator = domain129. + // Compute a sum of constraints with numerator = domain130. FieldElementT inner_sum = FieldElementT::Zero(); { // Constraint expression for keccak/keccak/chi0: @@ -20400,13 +20995,13 @@ FractionFieldElement CpuAirDefinition::Constra ((diluted_pool_column_row_expr645) * (FieldElementT::ConstexprFromBigInt(0x4_Z)))); inner_sum += random_coefficients[313] * constraint; } - outer_sum += inner_sum * domain129; + outer_sum += inner_sum * domain130; } - res += FractionFieldElement(outer_sum, domain27); + res += FractionFieldElement(outer_sum, domain28); } { - // Compute a sum of constraints with denominator = domain26. + // Compute a sum of constraints with denominator = domain27. FieldElementT outer_sum = FieldElementT::Zero(); { @@ -20436,13 +21031,13 @@ FractionFieldElement CpuAirDefinition::Constra } outer_sum += inner_sum; // domain == FieldElementT::One() } - res += FractionFieldElement(outer_sum, domain26); + res += FractionFieldElement(outer_sum, domain27); } } if ((uses_poseidon_builtin) != (0)) { { - // Compute a sum of constraints with denominator = domain167. + // Compute a sum of constraints with denominator = domain170. FieldElementT outer_sum = FieldElementT::Zero(); { @@ -20469,15 +21064,15 @@ FractionFieldElement CpuAirDefinition::Constra } outer_sum += inner_sum; // domain == FieldElementT::One() } - res += FractionFieldElement(outer_sum, domain167); + res += FractionFieldElement(outer_sum, domain170); } { - // Compute a sum of constraints with denominator = domain141. + // Compute a sum of constraints with denominator = domain143. FieldElementT outer_sum = FieldElementT::Zero(); { - // Compute a sum of constraints with numerator = domain168. + // Compute a sum of constraints with numerator = domain171. FieldElementT inner_sum = FieldElementT::Zero(); { // Constraint expression for poseidon/param_0/addr_input_output_step: @@ -20500,13 +21095,13 @@ FractionFieldElement CpuAirDefinition::Constra ((mem_pool__addr_column_row_expr692) + (FieldElementT::ConstexprFromBigInt(0x3_Z))); inner_sum += random_coefficients[321] * constraint; } - outer_sum += inner_sum * domain168; + outer_sum += inner_sum * domain171; } - res += FractionFieldElement(outer_sum, domain141); + res += FractionFieldElement(outer_sum, domain143); } { - // Compute a sum of constraints with denominator = domain140. + // Compute a sum of constraints with denominator = domain142. FieldElementT outer_sum = FieldElementT::Zero(); { @@ -20540,7 +21135,7 @@ FractionFieldElement CpuAirDefinition::Constra } { - // Compute a sum of constraints with numerator = domain142. + // Compute a sum of constraints with numerator = domain144. FieldElementT inner_sum = FieldElementT::Zero(); { // Constraint expression for poseidon/poseidon/full_round0: @@ -20575,13 +21170,13 @@ FractionFieldElement CpuAirDefinition::Constra (poseidon__poseidon__full_round_key2)); inner_sum += random_coefficients[332] * constraint; } - outer_sum += inner_sum * domain142; + outer_sum += inner_sum * domain144; } - res += FractionFieldElement(outer_sum, domain140); + res += FractionFieldElement(outer_sum, domain142); } { - // Compute a sum of constraints with denominator = domain138. + // Compute a sum of constraints with denominator = domain140. FieldElementT outer_sum = FieldElementT::Zero(); { @@ -20599,7 +21194,7 @@ FractionFieldElement CpuAirDefinition::Constra } { - // Compute a sum of constraints with numerator = domain144. + // Compute a sum of constraints with numerator = domain146. FieldElementT inner_sum = FieldElementT::Zero(); { // Constraint expression for poseidon/poseidon/partial_round0: @@ -20619,17 +21214,17 @@ FractionFieldElement CpuAirDefinition::Constra (poseidon__poseidon__partial_round_key0)); inner_sum += random_coefficients[342] * constraint; } - outer_sum += inner_sum * domain144; + outer_sum += inner_sum * domain146; } - res += FractionFieldElement(outer_sum, domain138); + res += FractionFieldElement(outer_sum, domain140); } { - // Compute a sum of constraints with denominator = domain139. + // Compute a sum of constraints with denominator = domain141. FieldElementT outer_sum = FieldElementT::Zero(); { - // Compute a sum of constraints with numerator = domain145. + // Compute a sum of constraints with numerator = domain147. FieldElementT inner_sum = FieldElementT::Zero(); { // Constraint expression for poseidon/poseidon/partial_rounds_state1_squaring: @@ -20639,11 +21234,11 @@ FractionFieldElement CpuAirDefinition::Constra (poseidon__poseidon__partial_rounds_state1_squared_column_row_expr702); inner_sum += random_coefficients[326] * constraint; } - outer_sum += inner_sum * domain145; + outer_sum += inner_sum * domain147; } { - // Compute a sum of constraints with numerator = domain146. + // Compute a sum of constraints with numerator = domain148. FieldElementT inner_sum = FieldElementT::Zero(); { // Constraint expression for poseidon/poseidon/partial_round1: @@ -20663,13 +21258,13 @@ FractionFieldElement CpuAirDefinition::Constra (poseidon__poseidon__partial_round_key1)); inner_sum += random_coefficients[343] * constraint; } - outer_sum += inner_sum * domain146; + outer_sum += inner_sum * domain148; } - res += FractionFieldElement(outer_sum, domain139); + res += FractionFieldElement(outer_sum, domain141); } { - // Compute a sum of constraints with denominator = domain147. + // Compute a sum of constraints with denominator = domain149. FieldElementT outer_sum = FieldElementT::Zero(); { @@ -20850,5769 +21445,9244 @@ FractionFieldElement CpuAirDefinition::Constra } outer_sum += inner_sum; // domain == FieldElementT::One() } - res += FractionFieldElement(outer_sum, domain147); + res += FractionFieldElement(outer_sum, domain149); } } - return res; -} -template -std::vector CpuAirDefinition::DomainEvalsAtPoint( - gsl::span point_powers, - [[maybe_unused]] gsl::span shifts) const { - [[maybe_unused]] const FieldElementT& point = point_powers[0]; - const FieldElementT& domain0 = ((uses_bitwise_builtin) != (0)) - ? ((point_powers[1]) - (FieldElementT::One())) - : FieldElementT::Zero(); - const FieldElementT& domain1 = - ((uses_bitwise_builtin) != (0)) ? ((point_powers[2]) - (shifts[0])) : FieldElementT::Zero(); - const FieldElementT& domain2 = ((uses_bitwise_builtin) != (0)) - ? ((point_powers[2]) - (FieldElementT::One())) - : FieldElementT::Zero(); - const FieldElementT& domain3 = - ((uses_bitwise_builtin) != (0)) - ? (((point_powers[2]) - (shifts[1])) * ((point_powers[2]) - (shifts[2])) * - ((point_powers[2]) - (shifts[3])) * ((point_powers[2]) - (shifts[4])) * - ((point_powers[2]) - (shifts[5])) * ((point_powers[2]) - (shifts[6])) * - ((point_powers[2]) - (shifts[7])) * ((point_powers[2]) - (shifts[8])) * - ((point_powers[2]) - (shifts[9])) * ((point_powers[2]) - (shifts[10])) * - ((point_powers[2]) - (shifts[11])) * ((point_powers[2]) - (shifts[12])) * - ((point_powers[2]) - (shifts[13])) * ((point_powers[2]) - (shifts[14])) * - ((point_powers[2]) - (shifts[15])) * (domain2)) - : FieldElementT::Zero(); - const FieldElementT& domain4 = (point_powers[3]) - (FieldElementT::One()); - const FieldElementT& domain5 = (point_powers[4]) - (shifts[16]); - const FieldElementT& domain6 = (point_powers[4]) - (FieldElementT::One()); - const FieldElementT& domain7 = (point_powers[5]) - (FieldElementT::One()); - const FieldElementT& domain8 = ((uses_ec_op_builtin) != (0)) - ? ((point_powers[6]) - (FieldElementT::One())) - : FieldElementT::Zero(); - const FieldElementT& domain9 = ((uses_ec_op_builtin) != (0)) - ? ((point_powers[7]) - (FieldElementT::One())) - : FieldElementT::Zero(); - const FieldElementT& domain10 = - ((uses_ec_op_builtin) != (0)) ? ((point_powers[7]) - (shifts[17])) : FieldElementT::Zero(); - const FieldElementT& domain11 = - ((uses_ec_op_builtin) != (0)) ? ((point_powers[7]) - (shifts[18])) : FieldElementT::Zero(); - const FieldElementT& domain12 = ((uses_ecdsa_builtin) != (0)) - ? ((point_powers[8]) - (FieldElementT::One())) - : FieldElementT::Zero(); - const FieldElementT& domain13 = ((uses_ecdsa_builtin) != (0)) - ? ((point_powers[9]) - (FieldElementT::One())) - : FieldElementT::Zero(); - const FieldElementT& domain14 = - ((uses_ecdsa_builtin) != (0)) ? ((point_powers[10]) - (shifts[19])) : FieldElementT::Zero(); - const FieldElementT& domain15 = - ((uses_ecdsa_builtin) != (0)) ? ((point_powers[10]) - (shifts[20])) : FieldElementT::Zero(); - const FieldElementT& domain16 = ((uses_ecdsa_builtin) != (0)) - ? ((point_powers[10]) - (FieldElementT::One())) - : FieldElementT::Zero(); - const FieldElementT& domain17 = - ((uses_ecdsa_builtin) != (0)) ? ((point_powers[11]) - (shifts[19])) : FieldElementT::Zero(); - const FieldElementT& domain18 = - ((uses_ecdsa_builtin) != (0)) ? ((point_powers[11]) - (shifts[20])) : FieldElementT::Zero(); - const FieldElementT& domain19 = ((uses_ecdsa_builtin) != (0)) - ? ((point_powers[11]) - (FieldElementT::One())) - : FieldElementT::Zero(); - const FieldElementT& domain20 = ((uses_keccak_builtin) != (0)) - ? ((point_powers[12]) - (FieldElementT::One())) - : FieldElementT::Zero(); - const FieldElementT& domain21 = ((uses_keccak_builtin) != (0)) - ? ((point_powers[13]) - (FieldElementT::One())) - : FieldElementT::Zero(); - const FieldElementT& domain22 = ((uses_keccak_builtin) != (0)) - ? (((point_powers[13]) - (shifts[21])) * (domain21)) - : FieldElementT::Zero(); - const FieldElementT& domain23 = ((uses_keccak_builtin) != (0)) - ? ((point_powers[14]) - (FieldElementT::One())) - : FieldElementT::Zero(); - const FieldElementT& domain24 = - ((uses_keccak_builtin) != (0)) - ? (((point_powers[15]) - (FieldElementT::One())) * ((point_powers[15]) - (shifts[22])) * - ((point_powers[15]) - (shifts[23])) * ((point_powers[15]) - (shifts[24])) * - ((point_powers[15]) - (shifts[25])) * ((point_powers[15]) - (shifts[26])) * - ((point_powers[15]) - (shifts[27])) * ((point_powers[15]) - (shifts[28]))) - : FieldElementT::Zero(); - const FieldElementT& domain25 = - ((uses_keccak_builtin) != (0)) - ? (((point_powers[15]) - (shifts[29])) * ((point_powers[15]) - (shifts[30])) * - ((point_powers[15]) - (shifts[31])) * ((point_powers[15]) - (shifts[32])) * - ((point_powers[15]) - (shifts[33])) * ((point_powers[15]) - (shifts[34])) * - ((point_powers[15]) - (shifts[35])) * ((point_powers[15]) - (shifts[36])) * - ((point_powers[15]) - (shifts[37])) * ((point_powers[15]) - (shifts[38])) * - ((point_powers[15]) - (shifts[39])) * ((point_powers[15]) - (shifts[40])) * - ((point_powers[15]) - (shifts[41])) * ((point_powers[15]) - (shifts[42])) * - ((point_powers[15]) - (shifts[43])) * ((point_powers[15]) - (shifts[44])) * (domain24)) - : FieldElementT::Zero(); - const FieldElementT& domain26 = - ((uses_keccak_builtin) != (0)) - ? (((point_powers[15]) - (shifts[45])) * ((point_powers[15]) - (shifts[46])) * - ((point_powers[15]) - (shifts[47])) * ((point_powers[15]) - (shifts[48])) * - ((point_powers[15]) - (shifts[49])) * ((point_powers[15]) - (shifts[50])) * - ((point_powers[15]) - (shifts[51])) * ((point_powers[15]) - (shifts[52])) * - ((point_powers[15]) - (shifts[53])) * ((point_powers[15]) - (shifts[54])) * - ((point_powers[15]) - (shifts[55])) * ((point_powers[15]) - (shifts[56])) * - ((point_powers[15]) - (shifts[57])) * ((point_powers[15]) - (shifts[58])) * - ((point_powers[15]) - (shifts[59])) * ((point_powers[15]) - (shifts[60])) * - ((point_powers[15]) - (shifts[61])) * ((point_powers[15]) - (shifts[62])) * - ((point_powers[15]) - (shifts[63])) * ((point_powers[15]) - (shifts[64])) * - ((point_powers[15]) - (shifts[65])) * ((point_powers[15]) - (shifts[66])) * - ((point_powers[15]) - (shifts[67])) * ((point_powers[15]) - (shifts[68])) * - ((point_powers[15]) - (shifts[69])) * ((point_powers[15]) - (shifts[70])) * - ((point_powers[15]) - (shifts[71])) * ((point_powers[15]) - (shifts[72])) * - ((point_powers[15]) - (shifts[73])) * ((point_powers[15]) - (shifts[74])) * - ((point_powers[15]) - (shifts[75])) * ((point_powers[15]) - (shifts[76])) * - ((point_powers[15]) - (shifts[77])) * ((point_powers[15]) - (shifts[78])) * - ((point_powers[15]) - (shifts[79])) * ((point_powers[15]) - (shifts[80])) * - ((point_powers[15]) - (shifts[81])) * ((point_powers[15]) - (shifts[82])) * - ((point_powers[15]) - (shifts[83])) * ((point_powers[15]) - (shifts[84])) * - ((point_powers[15]) - (shifts[85])) * ((point_powers[15]) - (shifts[86])) * - ((point_powers[15]) - (shifts[87])) * ((point_powers[15]) - (shifts[88])) * - ((point_powers[15]) - (shifts[89])) * ((point_powers[15]) - (shifts[90])) * - ((point_powers[15]) - (shifts[91])) * ((point_powers[15]) - (shifts[92])) * - ((point_powers[15]) - (shifts[93])) * ((point_powers[15]) - (shifts[94])) * - ((point_powers[15]) - (shifts[95])) * ((point_powers[15]) - (shifts[96])) * - ((point_powers[15]) - (shifts[97])) * ((point_powers[15]) - (shifts[98])) * - ((point_powers[15]) - (shifts[99])) * ((point_powers[15]) - (shifts[100])) * - ((point_powers[15]) - (shifts[101])) * ((point_powers[15]) - (shifts[102])) * - ((point_powers[15]) - (shifts[103])) * ((point_powers[15]) - (shifts[104])) * - ((point_powers[15]) - (shifts[105])) * ((point_powers[15]) - (shifts[106])) * - ((point_powers[15]) - (shifts[107])) * ((point_powers[15]) - (shifts[108])) * - ((point_powers[15]) - (shifts[109])) * ((point_powers[15]) - (shifts[110])) * - ((point_powers[15]) - (shifts[111])) * ((point_powers[15]) - (shifts[112])) * - ((point_powers[15]) - (shifts[113])) * ((point_powers[15]) - (shifts[114])) * - ((point_powers[15]) - (shifts[115])) * ((point_powers[15]) - (shifts[116])) * - ((point_powers[15]) - (shifts[117])) * ((point_powers[15]) - (shifts[118])) * - ((point_powers[15]) - (shifts[119])) * ((point_powers[15]) - (shifts[120])) * - ((point_powers[15]) - (shifts[121])) * ((point_powers[15]) - (shifts[122])) * - ((point_powers[15]) - (shifts[123])) * ((point_powers[15]) - (shifts[124])) * - ((point_powers[15]) - (shifts[125])) * ((point_powers[15]) - (shifts[126])) * - ((point_powers[15]) - (shifts[127])) * ((point_powers[15]) - (shifts[128])) * - ((point_powers[15]) - (shifts[129])) * ((point_powers[15]) - (shifts[130])) * - ((point_powers[15]) - (shifts[131])) * ((point_powers[15]) - (shifts[132])) * - ((point_powers[15]) - (shifts[133])) * ((point_powers[15]) - (shifts[134])) * - ((point_powers[15]) - (shifts[135])) * ((point_powers[15]) - (shifts[136])) * - ((point_powers[15]) - (shifts[137])) * ((point_powers[15]) - (shifts[138])) * - ((point_powers[15]) - (shifts[139])) * ((point_powers[15]) - (shifts[140])) * - (domain25)) - : FieldElementT::Zero(); - const FieldElementT& domain27 = - ((uses_keccak_builtin) != (0)) - ? (((point_powers[15]) - (shifts[21])) * ((point_powers[15]) - (shifts[141])) * - ((point_powers[15]) - (shifts[142])) * ((point_powers[15]) - (shifts[143])) * - ((point_powers[15]) - (shifts[144])) * ((point_powers[15]) - (shifts[145])) * - ((point_powers[15]) - (shifts[146])) * ((point_powers[15]) - (shifts[147])) * - ((point_powers[15]) - (shifts[148])) * ((point_powers[15]) - (shifts[149])) * - ((point_powers[15]) - (shifts[150])) * ((point_powers[15]) - (shifts[151])) * - ((point_powers[15]) - (shifts[152])) * ((point_powers[15]) - (shifts[153])) * - ((point_powers[15]) - (shifts[154])) * ((point_powers[15]) - (shifts[155])) * - ((point_powers[15]) - (shifts[156])) * ((point_powers[15]) - (shifts[157])) * - ((point_powers[15]) - (shifts[158])) * ((point_powers[15]) - (shifts[159])) * - ((point_powers[15]) - (shifts[160])) * ((point_powers[15]) - (shifts[161])) * - ((point_powers[15]) - (shifts[162])) * ((point_powers[15]) - (shifts[163])) * - ((point_powers[15]) - (shifts[164])) * ((point_powers[15]) - (shifts[165])) * - ((point_powers[15]) - (shifts[166])) * ((point_powers[15]) - (shifts[167])) * - ((point_powers[15]) - (shifts[168])) * ((point_powers[15]) - (shifts[169])) * - ((point_powers[15]) - (shifts[170])) * ((point_powers[15]) - (shifts[171])) * - ((point_powers[15]) - (shifts[172])) * ((point_powers[15]) - (shifts[173])) * - ((point_powers[15]) - (shifts[174])) * ((point_powers[15]) - (shifts[175])) * - ((point_powers[15]) - (shifts[176])) * ((point_powers[15]) - (shifts[177])) * - ((point_powers[15]) - (shifts[178])) * ((point_powers[15]) - (shifts[179])) * - ((point_powers[15]) - (shifts[180])) * ((point_powers[15]) - (shifts[181])) * - ((point_powers[15]) - (shifts[182])) * ((point_powers[15]) - (shifts[183])) * - ((point_powers[15]) - (shifts[184])) * ((point_powers[15]) - (shifts[185])) * - ((point_powers[15]) - (shifts[186])) * ((point_powers[15]) - (shifts[187])) * - ((point_powers[15]) - (shifts[188])) * ((point_powers[15]) - (shifts[189])) * - ((point_powers[15]) - (shifts[190])) * ((point_powers[15]) - (shifts[191])) * - ((point_powers[15]) - (shifts[192])) * ((point_powers[15]) - (shifts[193])) * - ((point_powers[15]) - (shifts[194])) * ((point_powers[15]) - (shifts[195])) * - ((point_powers[15]) - (shifts[196])) * ((point_powers[15]) - (shifts[197])) * - ((point_powers[15]) - (shifts[198])) * ((point_powers[15]) - (shifts[199])) * - ((point_powers[15]) - (shifts[200])) * ((point_powers[15]) - (shifts[201])) * - ((point_powers[15]) - (shifts[202])) * ((point_powers[15]) - (shifts[203])) * - ((point_powers[15]) - (shifts[204])) * ((point_powers[15]) - (shifts[205])) * - ((point_powers[15]) - (shifts[206])) * ((point_powers[15]) - (shifts[207])) * - ((point_powers[15]) - (shifts[208])) * ((point_powers[15]) - (shifts[209])) * - ((point_powers[15]) - (shifts[210])) * ((point_powers[15]) - (shifts[211])) * - ((point_powers[15]) - (shifts[212])) * ((point_powers[15]) - (shifts[213])) * - ((point_powers[15]) - (shifts[214])) * ((point_powers[15]) - (shifts[215])) * - ((point_powers[15]) - (shifts[216])) * ((point_powers[15]) - (shifts[217])) * - ((point_powers[15]) - (shifts[218])) * ((point_powers[15]) - (shifts[219])) * - ((point_powers[15]) - (shifts[220])) * ((point_powers[15]) - (shifts[221])) * - ((point_powers[15]) - (shifts[222])) * ((point_powers[15]) - (shifts[223])) * - ((point_powers[15]) - (shifts[224])) * ((point_powers[15]) - (shifts[225])) * - ((point_powers[15]) - (shifts[226])) * ((point_powers[15]) - (shifts[227])) * - ((point_powers[15]) - (shifts[228])) * ((point_powers[15]) - (shifts[229])) * - ((point_powers[15]) - (shifts[230])) * ((point_powers[15]) - (shifts[231])) * - ((point_powers[15]) - (shifts[232])) * ((point_powers[15]) - (shifts[233])) * - ((point_powers[15]) - (shifts[234])) * ((point_powers[15]) - (shifts[235])) * - ((point_powers[15]) - (shifts[236])) * ((point_powers[15]) - (shifts[237])) * - ((point_powers[15]) - (shifts[238])) * ((point_powers[15]) - (shifts[239])) * - ((point_powers[15]) - (shifts[240])) * ((point_powers[15]) - (shifts[241])) * - ((point_powers[15]) - (shifts[242])) * ((point_powers[15]) - (shifts[243])) * - ((point_powers[15]) - (shifts[244])) * ((point_powers[15]) - (shifts[245])) * - ((point_powers[15]) - (shifts[246])) * ((point_powers[15]) - (shifts[247])) * - ((point_powers[15]) - (shifts[248])) * ((point_powers[15]) - (shifts[249])) * - ((point_powers[15]) - (shifts[250])) * ((point_powers[15]) - (shifts[251])) * - ((point_powers[15]) - (shifts[252])) * ((point_powers[15]) - (shifts[253])) * - ((point_powers[15]) - (shifts[254])) * ((point_powers[15]) - (shifts[255])) * - ((point_powers[15]) - (shifts[256])) * ((point_powers[15]) - (shifts[257])) * - ((point_powers[15]) - (shifts[258])) * ((point_powers[15]) - (shifts[259])) * - ((point_powers[15]) - (shifts[260])) * ((point_powers[15]) - (shifts[261])) * - ((point_powers[15]) - (shifts[262])) * ((point_powers[15]) - (shifts[263])) * - ((point_powers[15]) - (shifts[264])) * ((point_powers[15]) - (shifts[265])) * - ((point_powers[15]) - (shifts[266])) * ((point_powers[15]) - (shifts[267])) * - ((point_powers[15]) - (shifts[268])) * ((point_powers[15]) - (shifts[269])) * - ((point_powers[15]) - (shifts[270])) * ((point_powers[15]) - (shifts[271])) * - ((point_powers[15]) - (shifts[272])) * ((point_powers[15]) - (shifts[273])) * - ((point_powers[15]) - (shifts[274])) * ((point_powers[15]) - (shifts[275])) * - ((point_powers[15]) - (shifts[276])) * ((point_powers[15]) - (shifts[277])) * - ((point_powers[15]) - (shifts[278])) * ((point_powers[15]) - (shifts[279])) * - ((point_powers[15]) - (shifts[280])) * ((point_powers[15]) - (shifts[281])) * - ((point_powers[15]) - (shifts[282])) * ((point_powers[15]) - (shifts[283])) * - ((point_powers[15]) - (shifts[284])) * ((point_powers[15]) - (shifts[285])) * - ((point_powers[15]) - (shifts[286])) * ((point_powers[15]) - (shifts[287])) * - ((point_powers[15]) - (shifts[288])) * ((point_powers[15]) - (shifts[289])) * - ((point_powers[15]) - (shifts[290])) * ((point_powers[15]) - (shifts[291])) * - ((point_powers[15]) - (shifts[292])) * ((point_powers[15]) - (shifts[293])) * - ((point_powers[15]) - (shifts[294])) * ((point_powers[15]) - (shifts[295])) * - ((point_powers[15]) - (shifts[296])) * ((point_powers[15]) - (shifts[297])) * - ((point_powers[15]) - (shifts[298])) * ((point_powers[15]) - (shifts[299])) * - ((point_powers[15]) - (shifts[300])) * ((point_powers[15]) - (shifts[301])) * - ((point_powers[15]) - (shifts[302])) * ((point_powers[15]) - (shifts[303])) * - ((point_powers[15]) - (shifts[304])) * ((point_powers[15]) - (shifts[305])) * - ((point_powers[15]) - (shifts[306])) * ((point_powers[15]) - (shifts[307])) * - ((point_powers[15]) - (shifts[308])) * ((point_powers[15]) - (shifts[309])) * - ((point_powers[15]) - (shifts[310])) * ((point_powers[15]) - (shifts[311])) * - ((point_powers[15]) - (shifts[312])) * ((point_powers[15]) - (shifts[313])) * - ((point_powers[15]) - (shifts[314])) * ((point_powers[15]) - (shifts[315])) * - ((point_powers[15]) - (shifts[316])) * ((point_powers[15]) - (shifts[317])) * - ((point_powers[15]) - (shifts[318])) * ((point_powers[15]) - (shifts[319])) * - ((point_powers[15]) - (shifts[320])) * ((point_powers[15]) - (shifts[321])) * - ((point_powers[15]) - (shifts[322])) * ((point_powers[15]) - (shifts[323])) * - ((point_powers[15]) - (shifts[324])) * ((point_powers[15]) - (shifts[325])) * - ((point_powers[15]) - (shifts[326])) * ((point_powers[15]) - (shifts[327])) * - ((point_powers[15]) - (shifts[328])) * ((point_powers[15]) - (shifts[329])) * - ((point_powers[15]) - (shifts[330])) * ((point_powers[15]) - (shifts[331])) * - ((point_powers[15]) - (shifts[332])) * ((point_powers[15]) - (shifts[333])) * - ((point_powers[15]) - (shifts[334])) * ((point_powers[15]) - (shifts[335])) * - ((point_powers[15]) - (shifts[336])) * ((point_powers[15]) - (shifts[337])) * - ((point_powers[15]) - (shifts[338])) * ((point_powers[15]) - (shifts[339])) * - ((point_powers[15]) - (shifts[340])) * ((point_powers[15]) - (shifts[341])) * - ((point_powers[15]) - (shifts[342])) * ((point_powers[15]) - (shifts[343])) * - ((point_powers[15]) - (shifts[344])) * ((point_powers[15]) - (shifts[345])) * - ((point_powers[15]) - (shifts[346])) * ((point_powers[15]) - (shifts[347])) * - ((point_powers[15]) - (shifts[348])) * ((point_powers[15]) - (shifts[349])) * - ((point_powers[15]) - (shifts[350])) * ((point_powers[15]) - (shifts[351])) * - ((point_powers[15]) - (shifts[352])) * ((point_powers[15]) - (shifts[353])) * - ((point_powers[15]) - (shifts[354])) * ((point_powers[15]) - (shifts[355])) * - ((point_powers[15]) - (shifts[356])) * ((point_powers[15]) - (shifts[357])) * - ((point_powers[15]) - (shifts[358])) * ((point_powers[15]) - (shifts[359])) * - ((point_powers[15]) - (shifts[360])) * ((point_powers[15]) - (shifts[361])) * - ((point_powers[15]) - (shifts[362])) * ((point_powers[15]) - (shifts[363])) * - ((point_powers[15]) - (shifts[364])) * ((point_powers[15]) - (shifts[365])) * - ((point_powers[15]) - (shifts[366])) * ((point_powers[15]) - (shifts[367])) * - ((point_powers[15]) - (shifts[368])) * ((point_powers[15]) - (shifts[369])) * - ((point_powers[15]) - (shifts[370])) * ((point_powers[15]) - (shifts[371])) * - ((point_powers[15]) - (shifts[372])) * ((point_powers[15]) - (shifts[373])) * - ((point_powers[15]) - (shifts[374])) * ((point_powers[15]) - (shifts[375])) * - ((point_powers[15]) - (shifts[376])) * ((point_powers[15]) - (shifts[377])) * - ((point_powers[15]) - (shifts[378])) * ((point_powers[15]) - (shifts[379])) * - (domain26)) - : FieldElementT::Zero(); - const FieldElementT& domain28 = ((uses_keccak_builtin) != (0)) - ? ((point_powers[16]) - (FieldElementT::One())) - : FieldElementT::Zero(); - const FieldElementT& domain29 = ((uses_keccak_builtin) != (0)) - ? ((point_powers[17]) - (FieldElementT::One())) - : FieldElementT::Zero(); - const FieldElementT& domain30 = ((uses_keccak_builtin) != (0)) - ? (((point_powers[17]) - (shifts[380])) * (domain29)) - : FieldElementT::Zero(); - const FieldElementT& domain31 = - ((uses_keccak_builtin) != (0)) - ? (((point_powers[17]) - (shifts[381])) * ((point_powers[17]) - (shifts[382])) * - ((point_powers[17]) - (shifts[383])) * ((point_powers[17]) - (shifts[384])) * - ((point_powers[17]) - (shifts[385])) * ((point_powers[17]) - (shifts[386])) * - ((point_powers[17]) - (shifts[387])) * ((point_powers[17]) - (shifts[388])) * - ((point_powers[17]) - (shifts[389])) * ((point_powers[17]) - (shifts[390])) * - ((point_powers[17]) - (shifts[391])) * ((point_powers[17]) - (shifts[392])) * - ((point_powers[17]) - (shifts[393])) * ((point_powers[17]) - (shifts[394])) * - (domain30)) - : FieldElementT::Zero(); - const FieldElementT& domain32 = - ((uses_keccak_builtin) != (0)) - ? (((point_powers[17]) - (shifts[395])) * ((point_powers[17]) - (shifts[396])) * - ((point_powers[17]) - (shifts[397])) * ((point_powers[17]) - (shifts[398])) * - ((point_powers[17]) - (shifts[399])) * ((point_powers[17]) - (shifts[400])) * - (domain30)) - : FieldElementT::Zero(); - const FieldElementT& domain33 = - ((uses_keccak_builtin) != (0)) - ? (((point_powers[17]) - (shifts[401])) * ((point_powers[17]) - (shifts[402])) * - ((point_powers[17]) - (shifts[403])) * ((point_powers[17]) - (shifts[404])) * - ((point_powers[17]) - (shifts[405])) * ((point_powers[17]) - (shifts[406])) * - ((point_powers[17]) - (shifts[407])) * ((point_powers[17]) - (shifts[408])) * - ((point_powers[17]) - (shifts[409])) * ((point_powers[17]) - (shifts[410])) * - ((point_powers[17]) - (shifts[411])) * ((point_powers[17]) - (shifts[412])) * - ((point_powers[17]) - (shifts[413])) * ((point_powers[17]) - (shifts[414])) * - ((point_powers[17]) - (shifts[415])) * ((point_powers[17]) - (shifts[416])) * - (domain32)) - : FieldElementT::Zero(); - const FieldElementT& domain34 = - ((uses_keccak_builtin) != (0)) - ? (((point_powers[17]) - (shifts[417])) * ((point_powers[17]) - (shifts[418])) * - ((point_powers[17]) - (shifts[419])) * ((point_powers[17]) - (shifts[420])) * - ((point_powers[17]) - (shifts[421])) * ((point_powers[17]) - (shifts[422])) * - (domain33)) - : FieldElementT::Zero(); - const FieldElementT& domain35 = ((uses_keccak_builtin) != (0)) - ? (((point_powers[17]) - (shifts[423])) * - ((point_powers[17]) - (shifts[424])) * (domain34)) - : FieldElementT::Zero(); - const FieldElementT& domain36 = - ((uses_keccak_builtin) != (0)) - ? (((point_powers[17]) - (shifts[425])) * ((point_powers[17]) - (shifts[22])) * - ((point_powers[17]) - (shifts[426])) * ((point_powers[17]) - (shifts[23])) * - ((point_powers[17]) - (shifts[427])) * ((point_powers[17]) - (shifts[24])) * - ((point_powers[17]) - (shifts[428])) * ((point_powers[17]) - (shifts[25])) * - ((point_powers[17]) - (shifts[429])) * ((point_powers[17]) - (shifts[26])) * - ((point_powers[17]) - (shifts[430])) * ((point_powers[17]) - (shifts[27])) * - ((point_powers[17]) - (shifts[431])) * ((point_powers[17]) - (shifts[28])) * - ((point_powers[17]) - (shifts[432])) * ((point_powers[17]) - (shifts[29])) * - ((point_powers[17]) - (shifts[433])) * ((point_powers[17]) - (shifts[30])) * - ((point_powers[17]) - (shifts[434])) * ((point_powers[17]) - (shifts[31])) * - ((point_powers[17]) - (shifts[435])) * ((point_powers[17]) - (shifts[32])) * - ((point_powers[17]) - (shifts[436])) * ((point_powers[17]) - (shifts[33]))) - : FieldElementT::Zero(); - const FieldElementT& domain37 = - ((uses_keccak_builtin) != (0)) - ? (((point_powers[17]) - (shifts[437])) * ((point_powers[17]) - (shifts[438])) * - ((point_powers[17]) - (shifts[439])) * ((point_powers[17]) - (shifts[440])) * - ((point_powers[17]) - (shifts[441])) * ((point_powers[17]) - (shifts[442])) * - ((point_powers[17]) - (shifts[443])) * ((point_powers[17]) - (shifts[444])) * - ((point_powers[17]) - (shifts[445])) * ((point_powers[17]) - (shifts[446])) * - ((point_powers[17]) - (shifts[447])) * ((point_powers[17]) - (shifts[448])) * - ((point_powers[17]) - (shifts[449])) * ((point_powers[17]) - (shifts[450])) * - ((point_powers[17]) - (shifts[451])) * ((point_powers[17]) - (shifts[452])) * - ((point_powers[17]) - (shifts[453])) * ((point_powers[17]) - (shifts[454])) * - ((point_powers[17]) - (shifts[455])) * ((point_powers[17]) - (shifts[456])) * - ((point_powers[17]) - (shifts[457])) * ((point_powers[17]) - (shifts[458])) * - ((point_powers[17]) - (shifts[459])) * ((point_powers[17]) - (shifts[460])) * - (domain36)) - : FieldElementT::Zero(); - const FieldElementT& domain38 = - ((uses_keccak_builtin) != (0)) ? ((domain30) * (domain37)) : FieldElementT::Zero(); - const FieldElementT& domain39 = - ((uses_keccak_builtin) != (0)) - ? (((point_powers[17]) - (shifts[461])) * ((point_powers[17]) - (shifts[462])) * - ((point_powers[17]) - (shifts[463])) * ((point_powers[17]) - (shifts[464])) * - ((point_powers[17]) - (shifts[465])) * ((point_powers[17]) - (shifts[466])) * - ((point_powers[17]) - (shifts[467])) * ((point_powers[17]) - (shifts[468])) * - ((point_powers[17]) - (shifts[469])) * ((point_powers[17]) - (shifts[470])) * - ((point_powers[17]) - (shifts[471])) * ((point_powers[17]) - (shifts[472])) * - ((point_powers[17]) - (shifts[473])) * ((point_powers[17]) - (shifts[474])) * - ((point_powers[17]) - (shifts[475])) * ((point_powers[17]) - (shifts[476])) * - ((point_powers[17]) - (shifts[477])) * ((point_powers[17]) - (shifts[478])) * - ((point_powers[17]) - (shifts[479])) * ((point_powers[17]) - (shifts[480])) * - ((point_powers[17]) - (shifts[481])) * ((point_powers[17]) - (shifts[482])) * - ((point_powers[17]) - (shifts[483])) * ((point_powers[17]) - (shifts[484])) * - ((point_powers[17]) - (shifts[485])) * ((point_powers[17]) - (shifts[486])) * - ((point_powers[17]) - (shifts[487])) * ((point_powers[17]) - (shifts[488])) * - ((point_powers[17]) - (shifts[489])) * ((point_powers[17]) - (shifts[490])) * - ((point_powers[17]) - (shifts[491])) * ((point_powers[17]) - (shifts[492])) * - ((point_powers[17]) - (shifts[493])) * ((point_powers[17]) - (shifts[494])) * - ((point_powers[17]) - (shifts[495])) * ((point_powers[17]) - (shifts[496])) * - ((point_powers[17]) - (shifts[497])) * ((point_powers[17]) - (shifts[498])) * - ((point_powers[17]) - (shifts[499])) * ((point_powers[17]) - (shifts[500])) * - ((point_powers[17]) - (shifts[501])) * ((point_powers[17]) - (shifts[502])) * - ((point_powers[17]) - (shifts[503])) * ((point_powers[17]) - (shifts[504])) * - ((point_powers[17]) - (shifts[505])) * ((point_powers[17]) - (shifts[506])) * - ((point_powers[17]) - (shifts[507])) * ((point_powers[17]) - (shifts[508])) * - ((point_powers[17]) - (shifts[509])) * ((point_powers[17]) - (shifts[510])) * - ((point_powers[17]) - (shifts[511])) * ((point_powers[17]) - (shifts[512])) * - ((point_powers[17]) - (shifts[513])) * ((point_powers[17]) - (shifts[514])) * - ((point_powers[17]) - (shifts[515])) * ((point_powers[17]) - (shifts[516])) * - ((point_powers[17]) - (shifts[517])) * ((point_powers[17]) - (shifts[518])) * - ((point_powers[17]) - (shifts[519])) * ((point_powers[17]) - (shifts[520])) * - ((point_powers[17]) - (shifts[521])) * ((point_powers[17]) - (shifts[522])) * - ((point_powers[17]) - (shifts[523])) * ((point_powers[17]) - (shifts[524])) * - ((point_powers[17]) - (shifts[525])) * ((point_powers[17]) - (shifts[526])) * - ((point_powers[17]) - (shifts[527])) * ((point_powers[17]) - (shifts[528])) * - ((point_powers[17]) - (shifts[529])) * ((point_powers[17]) - (shifts[530])) * - ((point_powers[17]) - (shifts[531])) * ((point_powers[17]) - (shifts[532])) * - ((point_powers[17]) - (shifts[533])) * ((point_powers[17]) - (shifts[534])) * - ((point_powers[17]) - (shifts[535])) * ((point_powers[17]) - (shifts[536])) * - ((point_powers[17]) - (shifts[537])) * ((point_powers[17]) - (shifts[538])) * - ((point_powers[17]) - (shifts[539])) * ((point_powers[17]) - (shifts[540])) * - ((point_powers[17]) - (shifts[541])) * ((point_powers[17]) - (shifts[542])) * - ((point_powers[17]) - (shifts[543])) * ((point_powers[17]) - (shifts[544])) * - ((point_powers[17]) - (shifts[545])) * ((point_powers[17]) - (shifts[546])) * - ((point_powers[17]) - (shifts[547])) * ((point_powers[17]) - (shifts[548])) * - ((point_powers[17]) - (shifts[549])) * ((point_powers[17]) - (shifts[550])) * - ((point_powers[17]) - (shifts[551])) * ((point_powers[17]) - (shifts[552])) * - ((point_powers[17]) - (shifts[553])) * ((point_powers[17]) - (shifts[554])) * - ((point_powers[17]) - (shifts[555])) * ((point_powers[17]) - (shifts[556])) * - ((point_powers[17]) - (shifts[557])) * ((point_powers[17]) - (shifts[558])) * - ((point_powers[17]) - (shifts[559])) * ((point_powers[17]) - (shifts[560])) * - ((point_powers[17]) - (shifts[561])) * ((point_powers[17]) - (shifts[562])) * - ((point_powers[17]) - (shifts[563])) * ((point_powers[17]) - (shifts[564])) * - ((point_powers[17]) - (shifts[565])) * ((point_powers[17]) - (shifts[566])) * - ((point_powers[17]) - (shifts[567])) * ((point_powers[17]) - (shifts[568])) * - ((point_powers[17]) - (shifts[569])) * ((point_powers[17]) - (shifts[570])) * - ((point_powers[17]) - (shifts[571])) * ((point_powers[17]) - (shifts[572])) * - ((point_powers[17]) - (shifts[573])) * ((point_powers[17]) - (shifts[574])) * - ((point_powers[17]) - (shifts[575])) * ((point_powers[17]) - (shifts[576])) * - ((point_powers[17]) - (shifts[577])) * ((point_powers[17]) - (shifts[578])) * - ((point_powers[17]) - (shifts[579])) * ((point_powers[17]) - (shifts[580])) * - ((point_powers[17]) - (shifts[581])) * ((point_powers[17]) - (shifts[582])) * - ((point_powers[17]) - (shifts[583])) * ((point_powers[17]) - (shifts[584])) * - ((point_powers[17]) - (shifts[585])) * ((point_powers[17]) - (shifts[586])) * - ((point_powers[17]) - (shifts[587])) * ((point_powers[17]) - (shifts[588])) * - ((point_powers[17]) - (shifts[589])) * ((point_powers[17]) - (shifts[590])) * - ((point_powers[17]) - (shifts[591])) * ((point_powers[17]) - (shifts[592])) * - ((point_powers[17]) - (shifts[593])) * ((point_powers[17]) - (shifts[594])) * - ((point_powers[17]) - (shifts[595])) * ((point_powers[17]) - (shifts[596])) * - ((point_powers[17]) - (shifts[597])) * ((point_powers[17]) - (shifts[598])) * - ((point_powers[17]) - (shifts[599])) * ((point_powers[17]) - (shifts[600])) * - ((point_powers[17]) - (shifts[601])) * ((point_powers[17]) - (shifts[602])) * - ((point_powers[17]) - (shifts[603])) * ((point_powers[17]) - (shifts[604])) * - ((point_powers[17]) - (shifts[605])) * ((point_powers[17]) - (shifts[606])) * - ((point_powers[17]) - (shifts[607])) * ((point_powers[17]) - (shifts[608])) * - ((point_powers[17]) - (shifts[609])) * ((point_powers[17]) - (shifts[610])) * - ((point_powers[17]) - (shifts[611])) * ((point_powers[17]) - (shifts[612])) * - ((point_powers[17]) - (shifts[613])) * ((point_powers[17]) - (shifts[614])) * - ((point_powers[17]) - (shifts[615])) * ((point_powers[17]) - (shifts[616])) * - ((point_powers[17]) - (shifts[617])) * ((point_powers[17]) - (shifts[618])) * - ((point_powers[17]) - (shifts[619])) * ((point_powers[17]) - (shifts[620])) * - ((point_powers[17]) - (shifts[621])) * ((point_powers[17]) - (shifts[622])) * - ((point_powers[17]) - (shifts[623])) * ((point_powers[17]) - (shifts[624])) * - ((point_powers[17]) - (shifts[625])) * ((point_powers[17]) - (shifts[626])) * - ((point_powers[17]) - (shifts[627])) * ((point_powers[17]) - (shifts[628])) * - ((point_powers[17]) - (shifts[629])) * ((point_powers[17]) - (shifts[630])) * - ((point_powers[17]) - (shifts[631])) * ((point_powers[17]) - (shifts[632])) * - ((point_powers[17]) - (shifts[633])) * ((point_powers[17]) - (shifts[634])) * - ((point_powers[17]) - (shifts[635])) * ((point_powers[17]) - (shifts[636])) * - ((point_powers[17]) - (shifts[637])) * ((point_powers[17]) - (shifts[638])) * - ((point_powers[17]) - (shifts[639])) * ((point_powers[17]) - (shifts[640])) * - ((point_powers[17]) - (shifts[641])) * ((point_powers[17]) - (shifts[642])) * - ((point_powers[17]) - (shifts[643])) * ((point_powers[17]) - (shifts[644])) * - ((point_powers[17]) - (shifts[645])) * ((point_powers[17]) - (shifts[646])) * - ((point_powers[17]) - (shifts[647])) * ((point_powers[17]) - (shifts[648])) * - ((point_powers[17]) - (shifts[649])) * ((point_powers[17]) - (shifts[650])) * - ((point_powers[17]) - (shifts[651])) * ((point_powers[17]) - (shifts[652])) * - ((point_powers[17]) - (shifts[653])) * ((point_powers[17]) - (shifts[654])) * - ((point_powers[17]) - (shifts[655])) * ((point_powers[17]) - (shifts[656])) * - ((point_powers[17]) - (shifts[657])) * ((point_powers[17]) - (shifts[658])) * - ((point_powers[17]) - (shifts[659])) * ((point_powers[17]) - (shifts[660])) * - ((point_powers[17]) - (shifts[661])) * ((point_powers[17]) - (shifts[662])) * - ((point_powers[17]) - (shifts[663])) * ((point_powers[17]) - (shifts[664])) * - ((point_powers[17]) - (shifts[665])) * ((point_powers[17]) - (shifts[666])) * - ((point_powers[17]) - (shifts[667])) * ((point_powers[17]) - (shifts[668])) * - ((point_powers[17]) - (shifts[669])) * ((point_powers[17]) - (shifts[670])) * - ((point_powers[17]) - (shifts[671])) * ((point_powers[17]) - (shifts[672])) * - ((point_powers[17]) - (shifts[673])) * ((point_powers[17]) - (shifts[674])) * - ((point_powers[17]) - (shifts[675])) * ((point_powers[17]) - (shifts[676])) * - ((point_powers[17]) - (shifts[677])) * ((point_powers[17]) - (shifts[678])) * - ((point_powers[17]) - (shifts[679])) * ((point_powers[17]) - (shifts[680])) * - ((point_powers[17]) - (shifts[681])) * ((point_powers[17]) - (shifts[682])) * - ((point_powers[17]) - (shifts[683])) * ((point_powers[17]) - (shifts[684])) * - ((point_powers[17]) - (shifts[685])) * ((point_powers[17]) - (shifts[686])) * - ((point_powers[17]) - (shifts[687])) * ((point_powers[17]) - (shifts[688])) * - ((point_powers[17]) - (shifts[689])) * ((point_powers[17]) - (shifts[690])) * - ((point_powers[17]) - (shifts[691])) * ((point_powers[17]) - (shifts[692])) * - ((point_powers[17]) - (shifts[693])) * ((point_powers[17]) - (shifts[694])) * - ((point_powers[17]) - (shifts[695])) * ((point_powers[17]) - (shifts[696])) * - ((point_powers[17]) - (shifts[697])) * ((point_powers[17]) - (shifts[698])) * - ((point_powers[17]) - (shifts[699])) * ((point_powers[17]) - (shifts[700])) * - ((point_powers[17]) - (shifts[701])) * ((point_powers[17]) - (shifts[702])) * - ((point_powers[17]) - (shifts[703])) * ((point_powers[17]) - (shifts[704])) * - ((point_powers[17]) - (shifts[705])) * ((point_powers[17]) - (shifts[706])) * - ((point_powers[17]) - (shifts[707])) * ((point_powers[17]) - (shifts[708])) * - ((point_powers[17]) - (shifts[709])) * ((point_powers[17]) - (shifts[710])) * - ((point_powers[17]) - (shifts[711])) * ((point_powers[17]) - (shifts[712])) * - ((point_powers[17]) - (shifts[713])) * ((point_powers[17]) - (shifts[714])) * - ((point_powers[17]) - (shifts[715])) * ((point_powers[17]) - (shifts[716])) * - ((point_powers[17]) - (shifts[717])) * ((point_powers[17]) - (shifts[718])) * - ((point_powers[17]) - (shifts[719])) * ((point_powers[17]) - (shifts[720])) * - ((point_powers[17]) - (shifts[721])) * ((point_powers[17]) - (shifts[722])) * - ((point_powers[17]) - (shifts[723])) * ((point_powers[17]) - (shifts[724])) * - ((point_powers[17]) - (shifts[725])) * ((point_powers[17]) - (shifts[726])) * - ((point_powers[17]) - (shifts[727])) * ((point_powers[17]) - (shifts[728])) * - ((point_powers[17]) - (shifts[729])) * ((point_powers[17]) - (shifts[730])) * - ((point_powers[17]) - (shifts[731])) * ((point_powers[17]) - (shifts[732])) * - ((point_powers[17]) - (shifts[733])) * ((point_powers[17]) - (shifts[734])) * - ((point_powers[17]) - (shifts[735])) * ((point_powers[17]) - (shifts[736])) * - ((point_powers[17]) - (shifts[737])) * ((point_powers[17]) - (shifts[738])) * - ((point_powers[17]) - (shifts[739])) * ((point_powers[17]) - (shifts[740])) * - ((point_powers[17]) - (shifts[741])) * ((point_powers[17]) - (shifts[742])) * - ((point_powers[17]) - (shifts[743])) * ((point_powers[17]) - (shifts[744])) * - ((point_powers[17]) - (shifts[745])) * ((point_powers[17]) - (shifts[746])) * - ((point_powers[17]) - (shifts[747])) * ((point_powers[17]) - (shifts[748])) * - ((point_powers[17]) - (shifts[749])) * ((point_powers[17]) - (shifts[750])) * - ((point_powers[17]) - (shifts[751])) * ((point_powers[17]) - (shifts[752])) * - ((point_powers[17]) - (shifts[753])) * ((point_powers[17]) - (shifts[754])) * - ((point_powers[17]) - (shifts[755])) * ((point_powers[17]) - (shifts[756])) * - ((point_powers[17]) - (shifts[757])) * ((point_powers[17]) - (shifts[758])) * - ((point_powers[17]) - (shifts[759])) * ((point_powers[17]) - (shifts[760])) * - ((point_powers[17]) - (shifts[761])) * ((point_powers[17]) - (shifts[762])) * - ((point_powers[17]) - (shifts[763])) * ((point_powers[17]) - (shifts[764])) * - ((point_powers[17]) - (shifts[765])) * ((point_powers[17]) - (shifts[766])) * - ((point_powers[17]) - (shifts[767])) * ((point_powers[17]) - (shifts[768])) * - ((point_powers[17]) - (shifts[769])) * ((point_powers[17]) - (shifts[770])) * - ((point_powers[17]) - (shifts[771])) * ((point_powers[17]) - (shifts[772])) * - ((point_powers[17]) - (shifts[773])) * ((point_powers[17]) - (shifts[774])) * - ((point_powers[17]) - (shifts[775])) * ((point_powers[17]) - (shifts[776])) * - ((point_powers[17]) - (shifts[777])) * ((point_powers[17]) - (shifts[778])) * - ((point_powers[17]) - (shifts[779])) * ((point_powers[17]) - (shifts[780])) * - ((point_powers[17]) - (shifts[781])) * ((point_powers[17]) - (shifts[782])) * - ((point_powers[17]) - (shifts[783])) * ((point_powers[17]) - (shifts[784])) * - ((point_powers[17]) - (shifts[785])) * ((point_powers[17]) - (shifts[786])) * - ((point_powers[17]) - (shifts[787])) * ((point_powers[17]) - (shifts[788])) * - ((point_powers[17]) - (shifts[789])) * ((point_powers[17]) - (shifts[790])) * - ((point_powers[17]) - (shifts[791])) * ((point_powers[17]) - (shifts[792])) * - ((point_powers[17]) - (shifts[793])) * ((point_powers[17]) - (shifts[794])) * - ((point_powers[17]) - (shifts[795])) * ((point_powers[17]) - (shifts[796])) * - ((point_powers[17]) - (shifts[797])) * ((point_powers[17]) - (shifts[798])) * - ((point_powers[17]) - (shifts[799])) * ((point_powers[17]) - (shifts[800])) * - ((point_powers[17]) - (shifts[801])) * ((point_powers[17]) - (shifts[802])) * - ((point_powers[17]) - (shifts[803])) * ((point_powers[17]) - (shifts[804])) * - ((point_powers[17]) - (shifts[805])) * ((point_powers[17]) - (shifts[806])) * - ((point_powers[17]) - (shifts[807])) * ((point_powers[17]) - (shifts[808])) * - ((point_powers[17]) - (shifts[809])) * ((point_powers[17]) - (shifts[810])) * - ((point_powers[17]) - (shifts[811])) * ((point_powers[17]) - (shifts[812])) * - ((point_powers[17]) - (shifts[813])) * ((point_powers[17]) - (shifts[814])) * - ((point_powers[17]) - (shifts[815])) * ((point_powers[17]) - (shifts[816])) * - ((point_powers[17]) - (shifts[817])) * ((point_powers[17]) - (shifts[818])) * - ((point_powers[17]) - (shifts[819])) * ((point_powers[17]) - (shifts[820])) * - ((point_powers[17]) - (shifts[821])) * ((point_powers[17]) - (shifts[822])) * - ((point_powers[17]) - (shifts[823])) * ((point_powers[17]) - (shifts[824])) * - ((point_powers[17]) - (shifts[825])) * ((point_powers[17]) - (shifts[826])) * - ((point_powers[17]) - (shifts[827])) * ((point_powers[17]) - (shifts[828])) * - ((point_powers[17]) - (shifts[829])) * ((point_powers[17]) - (shifts[830])) * - ((point_powers[17]) - (shifts[831])) * ((point_powers[17]) - (shifts[832])) * - ((point_powers[17]) - (shifts[833])) * ((point_powers[17]) - (shifts[834])) * - ((point_powers[17]) - (shifts[835])) * ((point_powers[17]) - (shifts[836])) * - ((point_powers[17]) - (shifts[837])) * ((point_powers[17]) - (shifts[838])) * - ((point_powers[17]) - (shifts[839])) * ((point_powers[17]) - (shifts[840])) * - ((point_powers[17]) - (shifts[841])) * ((point_powers[17]) - (shifts[842])) * - ((point_powers[17]) - (shifts[843])) * ((point_powers[17]) - (shifts[844])) * - ((point_powers[17]) - (shifts[845])) * ((point_powers[17]) - (shifts[846])) * - ((point_powers[17]) - (shifts[847])) * ((point_powers[17]) - (shifts[848])) * - ((point_powers[17]) - (shifts[849])) * ((point_powers[17]) - (shifts[850])) * - ((point_powers[17]) - (shifts[851])) * ((point_powers[17]) - (shifts[852])) * - ((point_powers[17]) - (shifts[853])) * ((point_powers[17]) - (shifts[854])) * - ((point_powers[17]) - (shifts[855])) * ((point_powers[17]) - (shifts[856])) * - ((point_powers[17]) - (shifts[857])) * ((point_powers[17]) - (shifts[858])) * - ((point_powers[17]) - (shifts[859])) * ((point_powers[17]) - (shifts[860])) * - ((point_powers[17]) - (shifts[861])) * ((point_powers[17]) - (shifts[862])) * - ((point_powers[17]) - (shifts[863])) * ((point_powers[17]) - (shifts[864])) * - ((point_powers[17]) - (shifts[865])) * ((point_powers[17]) - (shifts[866])) * - ((point_powers[17]) - (shifts[867])) * ((point_powers[17]) - (shifts[868])) * - ((point_powers[17]) - (shifts[869])) * ((point_powers[17]) - (shifts[870])) * - ((point_powers[17]) - (shifts[871])) * ((point_powers[17]) - (shifts[872])) * - ((point_powers[17]) - (shifts[873])) * ((point_powers[17]) - (shifts[874])) * - ((point_powers[17]) - (shifts[875])) * ((point_powers[17]) - (shifts[876])) * - ((point_powers[17]) - (shifts[877])) * ((point_powers[17]) - (shifts[878])) * - ((point_powers[17]) - (shifts[879])) * ((point_powers[17]) - (shifts[880])) * - ((point_powers[17]) - (shifts[881])) * ((point_powers[17]) - (shifts[882])) * - ((point_powers[17]) - (shifts[883])) * ((point_powers[17]) - (shifts[884])) * - ((point_powers[17]) - (shifts[885])) * ((point_powers[17]) - (shifts[886])) * - ((point_powers[17]) - (shifts[887])) * ((point_powers[17]) - (shifts[888])) * - ((point_powers[17]) - (shifts[889])) * ((point_powers[17]) - (shifts[890])) * - ((point_powers[17]) - (shifts[891])) * ((point_powers[17]) - (shifts[892])) * - ((point_powers[17]) - (shifts[893])) * ((point_powers[17]) - (shifts[894])) * - ((point_powers[17]) - (shifts[895])) * ((point_powers[17]) - (shifts[896])) * - ((point_powers[17]) - (shifts[897])) * ((point_powers[17]) - (shifts[898])) * - ((point_powers[17]) - (shifts[899])) * ((point_powers[17]) - (shifts[900])) * - ((point_powers[17]) - (shifts[901])) * ((point_powers[17]) - (shifts[902])) * - ((point_powers[17]) - (shifts[903])) * ((point_powers[17]) - (shifts[904])) * - ((point_powers[17]) - (shifts[905])) * ((point_powers[17]) - (shifts[906])) * - ((point_powers[17]) - (shifts[907])) * ((point_powers[17]) - (shifts[908])) * - ((point_powers[17]) - (shifts[909])) * ((point_powers[17]) - (shifts[910])) * - ((point_powers[17]) - (shifts[911])) * ((point_powers[17]) - (shifts[912])) * - ((point_powers[17]) - (shifts[913])) * ((point_powers[17]) - (shifts[914])) * - ((point_powers[17]) - (shifts[915])) * ((point_powers[17]) - (shifts[916])) * - ((point_powers[17]) - (shifts[917])) * ((point_powers[17]) - (shifts[918])) * - ((point_powers[17]) - (shifts[919])) * ((point_powers[17]) - (shifts[920])) * - ((point_powers[17]) - (shifts[921])) * ((point_powers[17]) - (shifts[922])) * - ((point_powers[17]) - (shifts[923])) * ((point_powers[17]) - (shifts[924])) * - ((point_powers[17]) - (shifts[925])) * ((point_powers[17]) - (shifts[926])) * - ((point_powers[17]) - (shifts[927])) * ((point_powers[17]) - (shifts[928])) * - ((point_powers[17]) - (shifts[929])) * ((point_powers[17]) - (shifts[930])) * - ((point_powers[17]) - (shifts[931])) * ((point_powers[17]) - (shifts[932])) * - ((point_powers[17]) - (shifts[933])) * ((point_powers[17]) - (shifts[934])) * - ((point_powers[17]) - (shifts[935])) * ((point_powers[17]) - (shifts[936])) * - ((point_powers[17]) - (shifts[937])) * ((point_powers[17]) - (shifts[938])) * - ((point_powers[17]) - (shifts[939])) * ((point_powers[17]) - (shifts[940])) * - ((point_powers[17]) - (shifts[941])) * ((point_powers[17]) - (shifts[942])) * - ((point_powers[17]) - (shifts[943])) * ((point_powers[17]) - (shifts[944])) * - ((point_powers[17]) - (shifts[945])) * ((point_powers[17]) - (shifts[946])) * - ((point_powers[17]) - (shifts[947])) * ((point_powers[17]) - (shifts[948])) * - ((point_powers[17]) - (shifts[949])) * ((point_powers[17]) - (shifts[950])) * - ((point_powers[17]) - (shifts[951])) * ((point_powers[17]) - (shifts[952])) * - ((point_powers[17]) - (shifts[953])) * ((point_powers[17]) - (shifts[954])) * - ((point_powers[17]) - (shifts[955])) * ((point_powers[17]) - (shifts[956])) * - ((point_powers[17]) - (shifts[957])) * ((point_powers[17]) - (shifts[958])) * - ((point_powers[17]) - (shifts[959])) * ((point_powers[17]) - (shifts[960])) * - ((point_powers[17]) - (shifts[961])) * ((point_powers[17]) - (shifts[962])) * - ((point_powers[17]) - (shifts[963])) * ((point_powers[17]) - (shifts[964])) * - ((point_powers[17]) - (shifts[965])) * ((point_powers[17]) - (shifts[966])) * - ((point_powers[17]) - (shifts[967])) * ((point_powers[17]) - (shifts[968])) * - ((point_powers[17]) - (shifts[969])) * ((point_powers[17]) - (shifts[970])) * - ((point_powers[17]) - (shifts[971])) * ((point_powers[17]) - (shifts[972])) * - ((point_powers[17]) - (shifts[973])) * ((point_powers[17]) - (shifts[974])) * - ((point_powers[17]) - (shifts[975])) * ((point_powers[17]) - (shifts[976])) * - ((point_powers[17]) - (shifts[977])) * ((point_powers[17]) - (shifts[978])) * - ((point_powers[17]) - (shifts[979])) * ((point_powers[17]) - (shifts[980])) * - ((point_powers[17]) - (shifts[981])) * ((point_powers[17]) - (shifts[982])) * - ((point_powers[17]) - (shifts[983])) * ((point_powers[17]) - (shifts[984])) * - ((point_powers[17]) - (shifts[985])) * ((point_powers[17]) - (shifts[986])) * - ((point_powers[17]) - (shifts[987])) * ((point_powers[17]) - (shifts[988])) * - ((point_powers[17]) - (shifts[989])) * ((point_powers[17]) - (shifts[990])) * - ((point_powers[17]) - (shifts[991])) * ((point_powers[17]) - (shifts[992])) * - ((point_powers[17]) - (shifts[993])) * ((point_powers[17]) - (shifts[994])) * - ((point_powers[17]) - (shifts[995])) * ((point_powers[17]) - (shifts[996])) * - ((point_powers[17]) - (shifts[997])) * ((point_powers[17]) - (shifts[998])) * - ((point_powers[17]) - (shifts[999])) * ((point_powers[17]) - (shifts[1000])) * - ((point_powers[17]) - (shifts[1001])) * ((point_powers[17]) - (shifts[1002])) * - ((point_powers[17]) - (shifts[1003])) * ((point_powers[17]) - (shifts[1004])) * - ((point_powers[17]) - (shifts[1005])) * ((point_powers[17]) - (shifts[1006])) * - ((point_powers[17]) - (shifts[1007])) * ((point_powers[17]) - (shifts[1008])) * - ((point_powers[17]) - (shifts[1009])) * ((point_powers[17]) - (shifts[1010])) * - ((point_powers[17]) - (shifts[1011])) * ((point_powers[17]) - (shifts[1012])) * - ((point_powers[17]) - (shifts[1013])) * ((point_powers[17]) - (shifts[1014])) * - ((point_powers[17]) - (shifts[1015])) * ((point_powers[17]) - (shifts[1016])) * - ((point_powers[17]) - (shifts[1017])) * ((point_powers[17]) - (shifts[1018])) * - ((point_powers[17]) - (shifts[1019])) * ((point_powers[17]) - (shifts[1020])) * - ((point_powers[17]) - (shifts[1021])) * ((point_powers[17]) - (shifts[1022])) * - ((point_powers[17]) - (shifts[1023])) * ((point_powers[17]) - (shifts[1024])) * - ((point_powers[17]) - (shifts[1025])) * ((point_powers[17]) - (shifts[1026])) * - ((point_powers[17]) - (shifts[1027])) * ((point_powers[17]) - (shifts[1028])) * - ((point_powers[17]) - (shifts[1029])) * ((point_powers[17]) - (shifts[1030])) * - ((point_powers[17]) - (shifts[1031])) * ((point_powers[17]) - (shifts[1032])) * - ((point_powers[17]) - (shifts[1033])) * ((point_powers[17]) - (shifts[1034])) * - ((point_powers[17]) - (shifts[1035])) * ((point_powers[17]) - (shifts[1036])) * - ((point_powers[17]) - (shifts[1037])) * ((point_powers[17]) - (shifts[1038])) * - ((point_powers[17]) - (shifts[1039])) * ((point_powers[17]) - (shifts[1040])) * - ((point_powers[17]) - (shifts[1041])) * ((point_powers[17]) - (shifts[1042])) * - ((point_powers[17]) - (shifts[1043])) * ((point_powers[17]) - (shifts[1044])) * - ((point_powers[17]) - (shifts[1045])) * ((point_powers[17]) - (shifts[1046])) * - ((point_powers[17]) - (shifts[1047])) * ((point_powers[17]) - (shifts[1048])) * - ((point_powers[17]) - (shifts[1049])) * ((point_powers[17]) - (shifts[1050])) * - ((point_powers[17]) - (shifts[1051])) * ((point_powers[17]) - (shifts[1052])) * - ((point_powers[17]) - (shifts[1053])) * ((point_powers[17]) - (shifts[1054])) * - ((point_powers[17]) - (shifts[1055])) * ((point_powers[17]) - (shifts[1056])) * - ((point_powers[17]) - (shifts[1057])) * ((point_powers[17]) - (shifts[1058])) * - ((point_powers[17]) - (shifts[1059])) * ((point_powers[17]) - (shifts[1060])) * - ((point_powers[17]) - (shifts[1061])) * ((point_powers[17]) - (shifts[1062])) * - ((point_powers[17]) - (shifts[1063])) * ((point_powers[17]) - (shifts[1064])) * - ((point_powers[17]) - (shifts[1065])) * ((point_powers[17]) - (shifts[1066])) * - ((point_powers[17]) - (shifts[1067])) * ((point_powers[17]) - (shifts[1068])) * - ((point_powers[17]) - (shifts[1069])) * ((point_powers[17]) - (shifts[1070])) * - ((point_powers[17]) - (shifts[1071])) * ((point_powers[17]) - (shifts[1072])) * - ((point_powers[17]) - (shifts[1073])) * ((point_powers[17]) - (shifts[1074])) * - ((point_powers[17]) - (shifts[1075])) * ((point_powers[17]) - (shifts[1076])) * - ((point_powers[17]) - (shifts[1077])) * ((point_powers[17]) - (shifts[1078])) * - ((point_powers[17]) - (shifts[1079])) * ((point_powers[17]) - (shifts[1080])) * - ((point_powers[17]) - (shifts[1081])) * ((point_powers[17]) - (shifts[1082])) * - ((point_powers[17]) - (shifts[1083])) * ((point_powers[17]) - (shifts[1084])) * - ((point_powers[17]) - (shifts[1085])) * ((point_powers[17]) - (shifts[1086])) * - ((point_powers[17]) - (shifts[1087])) * ((point_powers[17]) - (shifts[1088])) * - ((point_powers[17]) - (shifts[1089])) * ((point_powers[17]) - (shifts[1090])) * - ((point_powers[17]) - (shifts[1091])) * ((point_powers[17]) - (shifts[1092])) * - ((point_powers[17]) - (shifts[1093])) * ((point_powers[17]) - (shifts[1094])) * - ((point_powers[17]) - (shifts[1095])) * ((point_powers[17]) - (shifts[1096])) * - ((point_powers[17]) - (shifts[1097])) * ((point_powers[17]) - (shifts[1098])) * - ((point_powers[17]) - (shifts[1099])) * ((point_powers[17]) - (shifts[1100])) * - ((point_powers[17]) - (shifts[1101])) * ((point_powers[17]) - (shifts[1102])) * - ((point_powers[17]) - (shifts[1103])) * ((point_powers[17]) - (shifts[1104])) * - ((point_powers[17]) - (shifts[1105])) * ((point_powers[17]) - (shifts[1106])) * - ((point_powers[17]) - (shifts[1107])) * ((point_powers[17]) - (shifts[1108])) * - ((point_powers[17]) - (shifts[1109])) * ((point_powers[17]) - (shifts[1110])) * - ((point_powers[17]) - (shifts[1111])) * ((point_powers[17]) - (shifts[1112])) * - ((point_powers[17]) - (shifts[1113])) * ((point_powers[17]) - (shifts[1114])) * - ((point_powers[17]) - (shifts[1115])) * ((point_powers[17]) - (shifts[1116])) * - ((point_powers[17]) - (shifts[1117])) * ((point_powers[17]) - (shifts[1118])) * - ((point_powers[17]) - (shifts[1119])) * ((point_powers[17]) - (shifts[1120])) * - ((point_powers[17]) - (shifts[1121])) * ((point_powers[17]) - (shifts[1122])) * - ((point_powers[17]) - (shifts[1123])) * ((point_powers[17]) - (shifts[1124])) * - ((point_powers[17]) - (shifts[1125])) * ((point_powers[17]) - (shifts[1126])) * - ((point_powers[17]) - (shifts[1127])) * ((point_powers[17]) - (shifts[1128])) * - ((point_powers[17]) - (shifts[1129])) * ((point_powers[17]) - (shifts[1130])) * - ((point_powers[17]) - (shifts[1131])) * ((point_powers[17]) - (shifts[1132])) * - (domain34) * (domain37)) - : FieldElementT::Zero(); - const FieldElementT& domain40 = - ((uses_keccak_builtin) != (0)) ? ((domain29) * (domain36)) : FieldElementT::Zero(); - const FieldElementT& domain41 = ((uses_keccak_builtin) != (0)) - ? ((point_powers[17]) - (shifts[1133])) - : FieldElementT::Zero(); - const FieldElementT& domain42 = - ((uses_keccak_builtin) != (0)) - ? (((point_powers[15]) - (shifts[1134])) * ((point_powers[15]) - (shifts[1135])) * - ((point_powers[15]) - (shifts[1136])) * ((point_powers[15]) - (shifts[1137])) * - ((point_powers[15]) - (shifts[1138])) * ((point_powers[15]) - (shifts[1139])) * - ((point_powers[17]) - (shifts[1140])) * ((point_powers[17]) - (shifts[1141])) * - ((point_powers[17]) - (shifts[1142])) * ((point_powers[17]) - (shifts[1143])) * - ((point_powers[17]) - (shifts[1144])) * ((point_powers[17]) - (shifts[1145])) * - ((point_powers[17]) - (shifts[1146])) * ((point_powers[17]) - (shifts[1147])) * - ((point_powers[17]) - (shifts[1148])) * ((point_powers[17]) - (shifts[1149])) * - ((point_powers[17]) - (shifts[1150])) * ((point_powers[17]) - (shifts[1151])) * - ((point_powers[17]) - (shifts[1152])) * ((point_powers[17]) - (shifts[1153])) * - ((point_powers[17]) - (shifts[1154])) * ((point_powers[17]) - (shifts[1155])) * - ((point_powers[17]) - (shifts[1156])) * ((point_powers[17]) - (shifts[1157])) * - ((point_powers[17]) - (shifts[1158])) * ((point_powers[17]) - (shifts[1159])) * - ((point_powers[17]) - (shifts[1160])) * ((point_powers[17]) - (shifts[1161])) * - ((point_powers[17]) - (shifts[1162])) * ((point_powers[17]) - (shifts[1163])) * - (domain41)) - : FieldElementT::Zero(); - const FieldElementT& domain43 = ((uses_keccak_builtin) != (0)) - ? ((point_powers[17]) - (shifts[1164])) - : FieldElementT::Zero(); - const FieldElementT& domain44 = - ((uses_keccak_builtin) != (0)) - ? (((point_powers[15]) - (shifts[1165])) * ((point_powers[15]) - (shifts[1166])) * - ((point_powers[15]) - (shifts[1167])) * ((point_powers[15]) - (shifts[1168])) * - ((point_powers[15]) - (shifts[1169])) * ((point_powers[15]) - (shifts[1170])) * - ((point_powers[17]) - (shifts[1171])) * ((point_powers[17]) - (shifts[1172])) * - ((point_powers[17]) - (shifts[1173])) * ((point_powers[17]) - (shifts[1174])) * - ((point_powers[17]) - (shifts[1175])) * ((point_powers[17]) - (shifts[1176])) * - ((point_powers[17]) - (shifts[1177])) * ((point_powers[17]) - (shifts[1178])) * - ((point_powers[17]) - (shifts[1179])) * ((point_powers[17]) - (shifts[1180])) * - ((point_powers[17]) - (shifts[1181])) * ((point_powers[17]) - (shifts[1182])) * - ((point_powers[17]) - (shifts[1183])) * ((point_powers[17]) - (shifts[1184])) * - ((point_powers[17]) - (shifts[1185])) * ((point_powers[17]) - (shifts[1186])) * - ((point_powers[17]) - (shifts[1187])) * ((point_powers[17]) - (shifts[1188])) * - ((point_powers[17]) - (shifts[1189])) * ((point_powers[17]) - (shifts[1190])) * - ((point_powers[17]) - (shifts[1191])) * ((point_powers[17]) - (shifts[1192])) * - ((point_powers[17]) - (shifts[1193])) * ((point_powers[17]) - (shifts[1194])) * - ((point_powers[17]) - (shifts[1195])) * ((point_powers[17]) - (shifts[1196])) * - (domain42) * (domain43)) - : FieldElementT::Zero(); - const FieldElementT& domain45 = - ((uses_keccak_builtin) != (0)) - ? (((point_powers[17]) - (shifts[1197])) * ((point_powers[17]) - (shifts[1198])) * - ((point_powers[17]) - (shifts[1199])) * ((point_powers[17]) - (shifts[1200])) * - ((point_powers[17]) - (shifts[1201])) * ((point_powers[17]) - (shifts[1202]))) - : FieldElementT::Zero(); - const FieldElementT& domain46 = - ((uses_keccak_builtin) != (0)) - ? (((point_powers[17]) - (shifts[1203])) * ((point_powers[17]) - (shifts[1204])) * - ((point_powers[17]) - (shifts[1205])) * ((point_powers[17]) - (shifts[1206])) * - ((point_powers[17]) - (shifts[1207])) * ((point_powers[17]) - (shifts[1208])) * - ((point_powers[17]) - (shifts[1209])) * ((point_powers[17]) - (shifts[1210])) * - ((point_powers[17]) - (shifts[1211])) * ((point_powers[17]) - (shifts[1212])) * - ((point_powers[17]) - (shifts[1213])) * ((point_powers[17]) - (shifts[1214])) * - ((point_powers[17]) - (shifts[1215])) * ((point_powers[17]) - (shifts[1216])) * - ((point_powers[17]) - (shifts[1217])) * ((point_powers[17]) - (shifts[1218])) * - (domain45)) - : FieldElementT::Zero(); - const FieldElementT& domain47 = - ((uses_keccak_builtin) != (0)) - ? (((point_powers[13]) - (shifts[1138])) * ((point_powers[13]) - (shifts[1139])) * - ((point_powers[15]) - (shifts[1219])) * ((point_powers[15]) - (shifts[1220])) * - ((point_powers[15]) - (shifts[1221])) * ((point_powers[15]) - (shifts[1222])) * - ((point_powers[15]) - (shifts[1223])) * ((point_powers[15]) - (shifts[1224])) * - ((point_powers[15]) - (shifts[1225])) * ((point_powers[15]) - (shifts[1226])) * - ((point_powers[15]) - (shifts[1227])) * ((point_powers[15]) - (shifts[1228])) * - ((point_powers[15]) - (shifts[1229])) * ((point_powers[15]) - (shifts[1230])) * - ((point_powers[15]) - (shifts[1231])) * ((point_powers[15]) - (shifts[1232])) * - ((point_powers[15]) - (shifts[1233])) * ((point_powers[15]) - (shifts[1234])) * - ((point_powers[15]) - (shifts[1235])) * ((point_powers[15]) - (shifts[1236])) * - ((point_powers[15]) - (shifts[1237])) * ((point_powers[15]) - (shifts[1238])) * - ((point_powers[15]) - (shifts[1239])) * ((point_powers[15]) - (shifts[1240])) * - ((point_powers[15]) - (shifts[1241])) * ((point_powers[15]) - (shifts[1242])) * - ((point_powers[15]) - (shifts[1243])) * ((point_powers[15]) - (shifts[1244])) * - ((point_powers[15]) - (shifts[1245])) * ((point_powers[15]) - (shifts[1246])) * - ((point_powers[15]) - (shifts[1247])) * ((point_powers[15]) - (shifts[1248])) * - ((point_powers[15]) - (shifts[1249])) * ((point_powers[15]) - (shifts[1250])) * - ((point_powers[15]) - (shifts[1251])) * ((point_powers[15]) - (shifts[1252])) * - ((point_powers[15]) - (shifts[1253])) * ((point_powers[15]) - (shifts[1254])) * - ((point_powers[15]) - (shifts[1255])) * ((point_powers[15]) - (shifts[1256])) * - ((point_powers[15]) - (shifts[1257])) * ((point_powers[15]) - (shifts[1258])) * - ((point_powers[15]) - (shifts[1259])) * ((point_powers[15]) - (shifts[1260])) * - ((point_powers[15]) - (shifts[1261])) * ((point_powers[15]) - (shifts[1262])) * - ((point_powers[15]) - (shifts[1263])) * ((point_powers[15]) - (shifts[1264])) * - ((point_powers[15]) - (shifts[1265])) * ((point_powers[15]) - (shifts[1266])) * - ((point_powers[15]) - (shifts[1267])) * ((point_powers[15]) - (shifts[1268])) * - ((point_powers[15]) - (shifts[1269])) * ((point_powers[15]) - (shifts[1270])) * - ((point_powers[15]) - (shifts[1271])) * ((point_powers[15]) - (shifts[1272])) * - ((point_powers[15]) - (shifts[1273])) * ((point_powers[15]) - (shifts[1274])) * - ((point_powers[15]) - (shifts[1275])) * ((point_powers[15]) - (shifts[1276])) * - ((point_powers[15]) - (shifts[1277])) * ((point_powers[15]) - (shifts[1278])) * - ((point_powers[15]) - (shifts[1279])) * ((point_powers[15]) - (shifts[1280])) * - ((point_powers[15]) - (shifts[1281])) * ((point_powers[15]) - (shifts[1282])) * - ((point_powers[15]) - (shifts[1283])) * ((point_powers[15]) - (shifts[1284])) * - ((point_powers[15]) - (shifts[1285])) * ((point_powers[15]) - (shifts[1286])) * - ((point_powers[15]) - (shifts[1287])) * ((point_powers[15]) - (shifts[1288])) * - ((point_powers[15]) - (shifts[1289])) * ((point_powers[15]) - (shifts[1290])) * - ((point_powers[15]) - (shifts[1291])) * ((point_powers[15]) - (shifts[1292])) * - ((point_powers[15]) - (shifts[1293])) * ((point_powers[15]) - (shifts[1294])) * - ((point_powers[15]) - (shifts[1295])) * ((point_powers[15]) - (shifts[1296])) * - ((point_powers[15]) - (shifts[1297])) * ((point_powers[15]) - (shifts[1298])) * - ((point_powers[15]) - (shifts[1299])) * ((point_powers[15]) - (shifts[1300])) * - ((point_powers[15]) - (shifts[1301])) * ((point_powers[15]) - (shifts[1302])) * - ((point_powers[15]) - (shifts[1303])) * ((point_powers[15]) - (shifts[1304])) * - ((point_powers[15]) - (shifts[1305])) * ((point_powers[15]) - (shifts[1306])) * - ((point_powers[15]) - (shifts[1307])) * ((point_powers[15]) - (shifts[1308])) * - ((point_powers[15]) - (shifts[1309])) * ((point_powers[15]) - (shifts[1310])) * - ((point_powers[15]) - (shifts[1311])) * ((point_powers[15]) - (shifts[1312])) * - ((point_powers[15]) - (shifts[1313])) * ((point_powers[15]) - (shifts[1314])) * - ((point_powers[15]) - (shifts[1315])) * ((point_powers[15]) - (shifts[1316])) * - ((point_powers[15]) - (shifts[1317])) * ((point_powers[15]) - (shifts[1318])) * - ((point_powers[15]) - (shifts[1319])) * ((point_powers[15]) - (shifts[1320])) * - ((point_powers[15]) - (shifts[1321])) * ((point_powers[15]) - (shifts[1322])) * - ((point_powers[15]) - (shifts[1323])) * ((point_powers[15]) - (shifts[1324])) * - ((point_powers[15]) - (shifts[1325])) * ((point_powers[15]) - (shifts[1326])) * - ((point_powers[15]) - (shifts[1327])) * ((point_powers[15]) - (shifts[1328])) * - ((point_powers[15]) - (shifts[1329])) * ((point_powers[15]) - (shifts[1330])) * - ((point_powers[15]) - (shifts[1331])) * ((point_powers[15]) - (shifts[1332])) * - ((point_powers[15]) - (shifts[1333])) * ((point_powers[15]) - (shifts[1334])) * - ((point_powers[15]) - (shifts[1335])) * ((point_powers[15]) - (shifts[1336])) * - ((point_powers[15]) - (shifts[1337])) * ((point_powers[15]) - (shifts[1338])) * - ((point_powers[15]) - (shifts[1339])) * ((point_powers[15]) - (shifts[1340])) * - ((point_powers[15]) - (shifts[1341])) * ((point_powers[15]) - (shifts[1342])) * - ((point_powers[15]) - (shifts[1343])) * ((point_powers[15]) - (shifts[1344])) * - ((point_powers[15]) - (shifts[1345])) * ((point_powers[15]) - (shifts[1346])) * - ((point_powers[15]) - (shifts[1347])) * ((point_powers[15]) - (shifts[1348])) * - ((point_powers[15]) - (shifts[1349])) * ((point_powers[15]) - (shifts[1350])) * - ((point_powers[15]) - (shifts[1351])) * ((point_powers[15]) - (shifts[1352])) * - ((point_powers[15]) - (shifts[1353])) * ((point_powers[15]) - (shifts[1354])) * - ((point_powers[15]) - (shifts[1355])) * ((point_powers[15]) - (shifts[1356])) * - ((point_powers[15]) - (shifts[1357])) * ((point_powers[15]) - (shifts[1358])) * - ((point_powers[15]) - (shifts[1359])) * ((point_powers[15]) - (shifts[1360])) * - ((point_powers[15]) - (shifts[1361])) * ((point_powers[15]) - (shifts[1362])) * - ((point_powers[15]) - (shifts[1363])) * ((point_powers[15]) - (shifts[1364])) * - ((point_powers[15]) - (shifts[1365])) * ((point_powers[15]) - (shifts[1366])) * - ((point_powers[15]) - (shifts[1367])) * ((point_powers[15]) - (shifts[1368])) * - ((point_powers[15]) - (shifts[1369])) * ((point_powers[15]) - (shifts[1370])) * - ((point_powers[15]) - (shifts[1371])) * ((point_powers[15]) - (shifts[1372])) * - ((point_powers[15]) - (shifts[1133])) * ((point_powers[15]) - (shifts[1141])) * - ((point_powers[15]) - (shifts[1143])) * ((point_powers[15]) - (shifts[1145])) * - ((point_powers[15]) - (shifts[1147])) * ((point_powers[15]) - (shifts[1149])) * - ((point_powers[15]) - (shifts[1151])) * ((point_powers[15]) - (shifts[1153])) * - ((point_powers[15]) - (shifts[1155])) * ((point_powers[15]) - (shifts[1157])) * - ((point_powers[15]) - (shifts[1159])) * ((point_powers[15]) - (shifts[1161])) * - ((point_powers[15]) - (shifts[1163])) * ((point_powers[15]) - (shifts[1373])) * - ((point_powers[17]) - (shifts[1374])) * ((point_powers[17]) - (shifts[1375])) * - ((point_powers[17]) - (shifts[1376])) * ((point_powers[17]) - (shifts[1377])) * - ((point_powers[17]) - (shifts[1378])) * ((point_powers[17]) - (shifts[1379])) * - ((point_powers[17]) - (shifts[1380])) * ((point_powers[17]) - (shifts[1381])) * - ((point_powers[17]) - (shifts[1382])) * ((point_powers[17]) - (shifts[1383])) * - ((point_powers[17]) - (shifts[1384])) * ((point_powers[17]) - (shifts[1385])) * - ((point_powers[17]) - (shifts[1386])) * ((point_powers[17]) - (shifts[1387])) * - ((point_powers[17]) - (shifts[1388])) * ((point_powers[17]) - (shifts[1389])) * - ((point_powers[17]) - (shifts[1390])) * ((point_powers[17]) - (shifts[1391])) * - ((point_powers[17]) - (shifts[1392])) * ((point_powers[17]) - (shifts[1393])) * - ((point_powers[17]) - (shifts[1394])) * ((point_powers[17]) - (shifts[1395])) * - ((point_powers[17]) - (shifts[1396])) * ((point_powers[17]) - (shifts[1397])) * - ((point_powers[17]) - (shifts[1398])) * ((point_powers[17]) - (shifts[1399])) * - ((point_powers[17]) - (shifts[1400])) * ((point_powers[17]) - (shifts[1401])) * - ((point_powers[17]) - (shifts[1402])) * ((point_powers[17]) - (shifts[1403])) * - ((point_powers[17]) - (shifts[1404])) * ((point_powers[17]) - (shifts[1405])) * - ((point_powers[17]) - (shifts[1406])) * ((point_powers[17]) - (shifts[1407])) * - ((point_powers[17]) - (shifts[1408])) * ((point_powers[17]) - (shifts[1409])) * - ((point_powers[17]) - (shifts[1410])) * ((point_powers[17]) - (shifts[1411])) * - ((point_powers[17]) - (shifts[1412])) * ((point_powers[17]) - (shifts[1413])) * - ((point_powers[17]) - (shifts[1414])) * ((point_powers[17]) - (shifts[1415])) * - ((point_powers[17]) - (shifts[1416])) * ((point_powers[17]) - (shifts[1417])) * - ((point_powers[17]) - (shifts[1418])) * ((point_powers[17]) - (shifts[1419])) * - ((point_powers[17]) - (shifts[1420])) * ((point_powers[17]) - (shifts[1421])) * - ((point_powers[17]) - (shifts[1422])) * ((point_powers[17]) - (shifts[1423])) * - ((point_powers[17]) - (shifts[1424])) * ((point_powers[17]) - (shifts[1425])) * - ((point_powers[17]) - (shifts[1426])) * ((point_powers[17]) - (shifts[1427])) * - ((point_powers[17]) - (shifts[1428])) * ((point_powers[17]) - (shifts[1429])) * - ((point_powers[17]) - (shifts[1430])) * ((point_powers[17]) - (shifts[1431])) * - ((point_powers[17]) - (shifts[1432])) * ((point_powers[17]) - (shifts[1433])) * - ((point_powers[17]) - (shifts[1434])) * ((point_powers[17]) - (shifts[1435])) * - ((point_powers[17]) - (shifts[1436])) * ((point_powers[17]) - (shifts[1437])) * - ((point_powers[17]) - (shifts[1438])) * ((point_powers[17]) - (shifts[1439])) * - ((point_powers[17]) - (shifts[1440])) * ((point_powers[17]) - (shifts[1441])) * - ((point_powers[17]) - (shifts[1442])) * ((point_powers[17]) - (shifts[1443])) * - ((point_powers[17]) - (shifts[1444])) * ((point_powers[17]) - (shifts[1445])) * - ((point_powers[17]) - (shifts[1446])) * ((point_powers[17]) - (shifts[1447])) * - ((point_powers[17]) - (shifts[1448])) * ((point_powers[17]) - (shifts[1449])) * - ((point_powers[17]) - (shifts[1450])) * ((point_powers[17]) - (shifts[1451])) * - ((point_powers[17]) - (shifts[1452])) * ((point_powers[17]) - (shifts[1453])) * - ((point_powers[17]) - (shifts[1454])) * ((point_powers[17]) - (shifts[1455])) * - ((point_powers[17]) - (shifts[1456])) * ((point_powers[17]) - (shifts[1457])) * - ((point_powers[17]) - (shifts[1458])) * ((point_powers[17]) - (shifts[1459])) * - ((point_powers[17]) - (shifts[1460])) * ((point_powers[17]) - (shifts[1461])) * - ((point_powers[17]) - (shifts[1462])) * ((point_powers[17]) - (shifts[1463])) * - ((point_powers[17]) - (shifts[1464])) * ((point_powers[17]) - (shifts[1465])) * - ((point_powers[17]) - (shifts[1466])) * ((point_powers[17]) - (shifts[1467])) * - ((point_powers[17]) - (shifts[1468])) * ((point_powers[17]) - (shifts[1469])) * - ((point_powers[17]) - (shifts[1470])) * ((point_powers[17]) - (shifts[1471])) * - ((point_powers[17]) - (shifts[1472])) * ((point_powers[17]) - (shifts[1473])) * - ((point_powers[17]) - (shifts[1474])) * ((point_powers[17]) - (shifts[1475])) * - ((point_powers[17]) - (shifts[1476])) * ((point_powers[17]) - (shifts[1477])) * - ((point_powers[17]) - (shifts[1478])) * ((point_powers[17]) - (shifts[1479])) * - ((point_powers[17]) - (shifts[1480])) * ((point_powers[17]) - (shifts[1481])) * - ((point_powers[17]) - (shifts[1482])) * ((point_powers[17]) - (shifts[1483])) * - ((point_powers[17]) - (shifts[1484])) * ((point_powers[17]) - (shifts[1485])) * - ((point_powers[17]) - (shifts[1486])) * ((point_powers[17]) - (shifts[1487])) * - ((point_powers[17]) - (shifts[1488])) * ((point_powers[17]) - (shifts[1489])) * - ((point_powers[17]) - (shifts[1490])) * ((point_powers[17]) - (shifts[1491])) * - ((point_powers[17]) - (shifts[1492])) * ((point_powers[17]) - (shifts[1493])) * - ((point_powers[17]) - (shifts[1494])) * ((point_powers[17]) - (shifts[1495])) * - ((point_powers[17]) - (shifts[1496])) * ((point_powers[17]) - (shifts[1497])) * - ((point_powers[17]) - (shifts[1498])) * ((point_powers[17]) - (shifts[1499])) * - ((point_powers[17]) - (shifts[1500])) * ((point_powers[17]) - (shifts[1501])) * - ((point_powers[17]) - (shifts[1502])) * ((point_powers[17]) - (shifts[1503])) * - ((point_powers[17]) - (shifts[1504])) * ((point_powers[17]) - (shifts[1505])) * - ((point_powers[17]) - (shifts[1506])) * ((point_powers[17]) - (shifts[1507])) * - ((point_powers[17]) - (shifts[1508])) * ((point_powers[17]) - (shifts[1509])) * - ((point_powers[17]) - (shifts[1510])) * ((point_powers[17]) - (shifts[1511])) * - ((point_powers[17]) - (shifts[1512])) * ((point_powers[17]) - (shifts[1513])) * - ((point_powers[17]) - (shifts[1514])) * ((point_powers[17]) - (shifts[1515])) * - ((point_powers[17]) - (shifts[1516])) * ((point_powers[17]) - (shifts[1517])) * - ((point_powers[17]) - (shifts[1518])) * ((point_powers[17]) - (shifts[1519])) * - ((point_powers[17]) - (shifts[1520])) * ((point_powers[17]) - (shifts[1521])) * - ((point_powers[17]) - (shifts[1522])) * ((point_powers[17]) - (shifts[1523])) * - ((point_powers[17]) - (shifts[1524])) * ((point_powers[17]) - (shifts[1525])) * - ((point_powers[17]) - (shifts[1526])) * ((point_powers[17]) - (shifts[1527])) * - ((point_powers[17]) - (shifts[1528])) * ((point_powers[17]) - (shifts[1529])) * - ((point_powers[17]) - (shifts[1530])) * ((point_powers[17]) - (shifts[1531])) * - ((point_powers[17]) - (shifts[1532])) * ((point_powers[17]) - (shifts[1533])) * - ((point_powers[17]) - (shifts[1534])) * ((point_powers[17]) - (shifts[1535])) * - ((point_powers[17]) - (shifts[1536])) * ((point_powers[17]) - (shifts[1537])) * - ((point_powers[17]) - (shifts[1538])) * ((point_powers[17]) - (shifts[1539])) * - ((point_powers[17]) - (shifts[1540])) * ((point_powers[17]) - (shifts[1541])) * - ((point_powers[17]) - (shifts[1542])) * ((point_powers[17]) - (shifts[1543])) * - ((point_powers[17]) - (shifts[1544])) * ((point_powers[17]) - (shifts[1545])) * - ((point_powers[17]) - (shifts[1546])) * ((point_powers[17]) - (shifts[1547])) * - ((point_powers[17]) - (shifts[1548])) * ((point_powers[17]) - (shifts[1549])) * - ((point_powers[17]) - (shifts[1550])) * ((point_powers[17]) - (shifts[1551])) * - ((point_powers[17]) - (shifts[1552])) * ((point_powers[17]) - (shifts[1553])) * - ((point_powers[17]) - (shifts[1554])) * ((point_powers[17]) - (shifts[1555])) * - ((point_powers[17]) - (shifts[1556])) * ((point_powers[17]) - (shifts[1557])) * - ((point_powers[17]) - (shifts[1558])) * ((point_powers[17]) - (shifts[1559])) * - ((point_powers[17]) - (shifts[1560])) * ((point_powers[17]) - (shifts[1561])) * - ((point_powers[17]) - (shifts[1562])) * ((point_powers[17]) - (shifts[1563])) * - ((point_powers[17]) - (shifts[1564])) * ((point_powers[17]) - (shifts[1565])) * - ((point_powers[17]) - (shifts[1566])) * ((point_powers[17]) - (shifts[1567])) * - ((point_powers[17]) - (shifts[1568])) * ((point_powers[17]) - (shifts[1569])) * - ((point_powers[17]) - (shifts[1570])) * ((point_powers[17]) - (shifts[1571])) * - ((point_powers[17]) - (shifts[1572])) * ((point_powers[17]) - (shifts[1573])) * - ((point_powers[17]) - (shifts[1574])) * ((point_powers[17]) - (shifts[1575])) * - ((point_powers[17]) - (shifts[1576])) * ((point_powers[17]) - (shifts[1577])) * - ((point_powers[17]) - (shifts[1578])) * ((point_powers[17]) - (shifts[1579])) * - ((point_powers[17]) - (shifts[1580])) * ((point_powers[17]) - (shifts[1581])) * - ((point_powers[17]) - (shifts[1582])) * ((point_powers[17]) - (shifts[1583])) * - ((point_powers[17]) - (shifts[1584])) * ((point_powers[17]) - (shifts[1585])) * - ((point_powers[17]) - (shifts[1586])) * ((point_powers[17]) - (shifts[1587])) * - ((point_powers[17]) - (shifts[1588])) * ((point_powers[17]) - (shifts[1589])) * - ((point_powers[17]) - (shifts[1590])) * ((point_powers[17]) - (shifts[1591])) * - ((point_powers[17]) - (shifts[1592])) * ((point_powers[17]) - (shifts[1593])) * - ((point_powers[17]) - (shifts[1594])) * ((point_powers[17]) - (shifts[1595])) * - ((point_powers[17]) - (shifts[1596])) * ((point_powers[17]) - (shifts[1597])) * - ((point_powers[17]) - (shifts[1598])) * ((point_powers[17]) - (shifts[1599])) * - ((point_powers[17]) - (shifts[1600])) * ((point_powers[17]) - (shifts[1601])) * - ((point_powers[17]) - (shifts[1602])) * ((point_powers[17]) - (shifts[1603])) * - ((point_powers[17]) - (shifts[1604])) * ((point_powers[17]) - (shifts[1605])) * - ((point_powers[17]) - (shifts[1606])) * ((point_powers[17]) - (shifts[1607])) * - ((point_powers[17]) - (shifts[1608])) * ((point_powers[17]) - (shifts[1609])) * - ((point_powers[17]) - (shifts[1610])) * ((point_powers[17]) - (shifts[1611])) * - ((point_powers[17]) - (shifts[1612])) * ((point_powers[17]) - (shifts[1613])) * - ((point_powers[17]) - (shifts[1614])) * ((point_powers[17]) - (shifts[1615])) * - ((point_powers[17]) - (shifts[1616])) * ((point_powers[17]) - (shifts[1617])) * - ((point_powers[17]) - (shifts[1618])) * ((point_powers[17]) - (shifts[1619])) * - ((point_powers[17]) - (shifts[1620])) * ((point_powers[17]) - (shifts[1621])) * - ((point_powers[17]) - (shifts[1622])) * ((point_powers[17]) - (shifts[1623])) * - ((point_powers[17]) - (shifts[1624])) * ((point_powers[17]) - (shifts[1625])) * - ((point_powers[17]) - (shifts[1626])) * ((point_powers[17]) - (shifts[1627])) * - ((point_powers[17]) - (shifts[1628])) * ((point_powers[17]) - (shifts[1629])) * - ((point_powers[17]) - (shifts[1630])) * ((point_powers[17]) - (shifts[1631])) * - ((point_powers[17]) - (shifts[1632])) * ((point_powers[17]) - (shifts[1633])) * - ((point_powers[17]) - (shifts[1634])) * ((point_powers[17]) - (shifts[1635])) * - ((point_powers[17]) - (shifts[1636])) * ((point_powers[17]) - (shifts[1637])) * - ((point_powers[17]) - (shifts[1638])) * ((point_powers[17]) - (shifts[1639])) * - ((point_powers[17]) - (shifts[1640])) * ((point_powers[17]) - (shifts[1641])) * - ((point_powers[17]) - (shifts[1642])) * ((point_powers[17]) - (shifts[1643])) * - ((point_powers[17]) - (shifts[1644])) * ((point_powers[17]) - (shifts[1645])) * - ((point_powers[17]) - (shifts[1646])) * ((point_powers[17]) - (shifts[1647])) * - ((point_powers[17]) - (shifts[1648])) * ((point_powers[17]) - (shifts[1649])) * - ((point_powers[17]) - (shifts[1650])) * ((point_powers[17]) - (shifts[1651])) * - ((point_powers[17]) - (shifts[1652])) * ((point_powers[17]) - (shifts[1653])) * - ((point_powers[17]) - (shifts[1654])) * ((point_powers[17]) - (shifts[1655])) * - ((point_powers[17]) - (shifts[1656])) * ((point_powers[17]) - (shifts[1657])) * - ((point_powers[17]) - (shifts[1658])) * ((point_powers[17]) - (shifts[1659])) * - ((point_powers[17]) - (shifts[1660])) * ((point_powers[17]) - (shifts[1661])) * - ((point_powers[17]) - (shifts[1662])) * ((point_powers[17]) - (shifts[1663])) * - ((point_powers[17]) - (shifts[1664])) * ((point_powers[17]) - (shifts[1665])) * - ((point_powers[17]) - (shifts[1666])) * ((point_powers[17]) - (shifts[1667])) * - ((point_powers[17]) - (shifts[1668])) * ((point_powers[17]) - (shifts[1669])) * - ((point_powers[17]) - (shifts[1670])) * ((point_powers[17]) - (shifts[1671])) * - ((point_powers[17]) - (shifts[1672])) * ((point_powers[17]) - (shifts[1673])) * - ((point_powers[17]) - (shifts[1674])) * ((point_powers[17]) - (shifts[1675])) * - ((point_powers[17]) - (shifts[1676])) * ((point_powers[17]) - (shifts[1677])) * - ((point_powers[17]) - (shifts[1678])) * ((point_powers[17]) - (shifts[1679])) * - ((point_powers[17]) - (shifts[1680])) * ((point_powers[17]) - (shifts[1681])) * - ((point_powers[17]) - (shifts[1682])) * ((point_powers[17]) - (shifts[1683])) * - ((point_powers[17]) - (shifts[1684])) * ((point_powers[17]) - (shifts[1685])) * - ((point_powers[17]) - (shifts[1686])) * ((point_powers[17]) - (shifts[1687])) * - ((point_powers[17]) - (shifts[1688])) * ((point_powers[17]) - (shifts[1689])) * - ((point_powers[17]) - (shifts[1690])) * ((point_powers[17]) - (shifts[1691])) * - ((point_powers[17]) - (shifts[1692])) * ((point_powers[17]) - (shifts[1693])) * - ((point_powers[17]) - (shifts[1694])) * ((point_powers[17]) - (shifts[1695])) * - ((point_powers[17]) - (shifts[1696])) * ((point_powers[17]) - (shifts[1697])) * - ((point_powers[17]) - (shifts[1698])) * ((point_powers[17]) - (shifts[1699])) * - ((point_powers[17]) - (shifts[1700])) * ((point_powers[17]) - (shifts[1701])) * - ((point_powers[17]) - (shifts[1702])) * ((point_powers[17]) - (shifts[1703])) * - ((point_powers[17]) - (shifts[1704])) * ((point_powers[17]) - (shifts[1705])) * - ((point_powers[17]) - (shifts[1706])) * ((point_powers[17]) - (shifts[1707])) * - ((point_powers[17]) - (shifts[1708])) * ((point_powers[17]) - (shifts[1709])) * - ((point_powers[17]) - (shifts[1710])) * ((point_powers[17]) - (shifts[1711])) * - ((point_powers[17]) - (shifts[1712])) * ((point_powers[17]) - (shifts[1713])) * - ((point_powers[17]) - (shifts[1714])) * ((point_powers[17]) - (shifts[1715])) * - ((point_powers[17]) - (shifts[1716])) * ((point_powers[17]) - (shifts[1717])) * - ((point_powers[17]) - (shifts[1718])) * ((point_powers[17]) - (shifts[1719])) * - ((point_powers[17]) - (shifts[1720])) * ((point_powers[17]) - (shifts[1721])) * - ((point_powers[17]) - (shifts[1722])) * ((point_powers[17]) - (shifts[1723])) * - ((point_powers[17]) - (shifts[1724])) * ((point_powers[17]) - (shifts[1725])) * - ((point_powers[17]) - (shifts[1726])) * ((point_powers[17]) - (shifts[1727])) * - ((point_powers[17]) - (shifts[1728])) * ((point_powers[17]) - (shifts[1729])) * - ((point_powers[17]) - (shifts[1730])) * ((point_powers[17]) - (shifts[1731])) * - ((point_powers[17]) - (shifts[1732])) * ((point_powers[17]) - (shifts[1733])) * - ((point_powers[17]) - (shifts[1734])) * ((point_powers[17]) - (shifts[1735])) * - ((point_powers[17]) - (shifts[1736])) * ((point_powers[17]) - (shifts[1737])) * - ((point_powers[17]) - (shifts[1738])) * ((point_powers[17]) - (shifts[1739])) * - ((point_powers[17]) - (shifts[1740])) * ((point_powers[17]) - (shifts[1741])) * - ((point_powers[17]) - (shifts[1742])) * ((point_powers[17]) - (shifts[1743])) * - ((point_powers[17]) - (shifts[1744])) * ((point_powers[17]) - (shifts[1745])) * - ((point_powers[17]) - (shifts[1746])) * ((point_powers[17]) - (shifts[1747])) * - ((point_powers[17]) - (shifts[1748])) * ((point_powers[17]) - (shifts[1749])) * - ((point_powers[17]) - (shifts[1750])) * ((point_powers[17]) - (shifts[1751])) * - ((point_powers[17]) - (shifts[1752])) * ((point_powers[17]) - (shifts[1753])) * - ((point_powers[17]) - (shifts[1754])) * ((point_powers[17]) - (shifts[1755])) * - ((point_powers[17]) - (shifts[1756])) * ((point_powers[17]) - (shifts[1757])) * - ((point_powers[17]) - (shifts[1758])) * ((point_powers[17]) - (shifts[1759])) * - ((point_powers[17]) - (shifts[1760])) * ((point_powers[17]) - (shifts[1761])) * - ((point_powers[17]) - (shifts[1762])) * ((point_powers[17]) - (shifts[1763])) * - ((point_powers[17]) - (shifts[1764])) * ((point_powers[17]) - (shifts[1765])) * - ((point_powers[17]) - (shifts[1766])) * ((point_powers[17]) - (shifts[1767])) * - ((point_powers[17]) - (shifts[1768])) * ((point_powers[17]) - (shifts[1769])) * - ((point_powers[17]) - (shifts[1770])) * ((point_powers[17]) - (shifts[1771])) * - ((point_powers[17]) - (shifts[1772])) * ((point_powers[17]) - (shifts[1773])) * - ((point_powers[17]) - (shifts[1774])) * ((point_powers[17]) - (shifts[1775])) * - ((point_powers[17]) - (shifts[1776])) * ((point_powers[17]) - (shifts[1777])) * - ((point_powers[17]) - (shifts[1778])) * ((point_powers[17]) - (shifts[1779])) * - ((point_powers[17]) - (shifts[1780])) * ((point_powers[17]) - (shifts[1781])) * - ((point_powers[17]) - (shifts[1782])) * ((point_powers[17]) - (shifts[1783])) * - ((point_powers[17]) - (shifts[1784])) * ((point_powers[17]) - (shifts[1785])) * - ((point_powers[17]) - (shifts[1786])) * ((point_powers[17]) - (shifts[1787])) * - ((point_powers[17]) - (shifts[1788])) * ((point_powers[17]) - (shifts[1789])) * - ((point_powers[17]) - (shifts[1790])) * ((point_powers[17]) - (shifts[1791])) * - ((point_powers[17]) - (shifts[1792])) * ((point_powers[17]) - (shifts[1793])) * - ((point_powers[17]) - (shifts[1794])) * ((point_powers[17]) - (shifts[1795])) * - ((point_powers[17]) - (shifts[1796])) * ((point_powers[17]) - (shifts[1797])) * - ((point_powers[17]) - (shifts[1798])) * ((point_powers[17]) - (shifts[1799])) * - ((point_powers[17]) - (shifts[1800])) * ((point_powers[17]) - (shifts[1801])) * - ((point_powers[17]) - (shifts[1802])) * ((point_powers[17]) - (shifts[1803])) * - ((point_powers[17]) - (shifts[1804])) * ((point_powers[17]) - (shifts[1805])) * - ((point_powers[17]) - (shifts[1806])) * ((point_powers[17]) - (shifts[1807])) * - ((point_powers[17]) - (shifts[1808])) * ((point_powers[17]) - (shifts[1809])) * - ((point_powers[17]) - (shifts[1810])) * ((point_powers[17]) - (shifts[1811])) * - ((point_powers[17]) - (shifts[1812])) * ((point_powers[17]) - (shifts[1813])) * - ((point_powers[17]) - (shifts[1814])) * ((point_powers[17]) - (shifts[1815])) * - ((point_powers[17]) - (shifts[1816])) * ((point_powers[17]) - (shifts[1817])) * - ((point_powers[17]) - (shifts[1818])) * ((point_powers[17]) - (shifts[1819])) * - ((point_powers[17]) - (shifts[1820])) * ((point_powers[17]) - (shifts[1821])) * - ((point_powers[17]) - (shifts[1822])) * ((point_powers[17]) - (shifts[1823])) * - ((point_powers[17]) - (shifts[1824])) * ((point_powers[17]) - (shifts[1825])) * - ((point_powers[17]) - (shifts[1826])) * ((point_powers[17]) - (shifts[1827])) * - ((point_powers[17]) - (shifts[1828])) * ((point_powers[17]) - (shifts[1829])) * - ((point_powers[17]) - (shifts[1830])) * ((point_powers[17]) - (shifts[1831])) * - ((point_powers[17]) - (shifts[1832])) * ((point_powers[17]) - (shifts[1833])) * - ((point_powers[17]) - (shifts[1834])) * ((point_powers[17]) - (shifts[1835])) * - ((point_powers[17]) - (shifts[1836])) * ((point_powers[17]) - (shifts[1837])) * - ((point_powers[17]) - (shifts[1838])) * ((point_powers[17]) - (shifts[1839])) * - ((point_powers[17]) - (shifts[1840])) * ((point_powers[17]) - (shifts[1841])) * - ((point_powers[17]) - (shifts[1842])) * ((point_powers[17]) - (shifts[1843])) * - ((point_powers[17]) - (shifts[1844])) * ((point_powers[17]) - (shifts[1845])) * - ((point_powers[17]) - (shifts[1846])) * ((point_powers[17]) - (shifts[1847])) * - ((point_powers[17]) - (shifts[1848])) * ((point_powers[17]) - (shifts[1849])) * - ((point_powers[17]) - (shifts[1850])) * ((point_powers[17]) - (shifts[1851])) * - ((point_powers[17]) - (shifts[1852])) * ((point_powers[17]) - (shifts[1853])) * - ((point_powers[17]) - (shifts[1854])) * ((point_powers[17]) - (shifts[1855])) * - ((point_powers[17]) - (shifts[1856])) * ((point_powers[17]) - (shifts[1857])) * - ((point_powers[17]) - (shifts[1858])) * ((point_powers[17]) - (shifts[1859])) * - ((point_powers[17]) - (shifts[1860])) * ((point_powers[17]) - (shifts[1861])) * - ((point_powers[17]) - (shifts[1862])) * ((point_powers[17]) - (shifts[1863])) * - ((point_powers[17]) - (shifts[1864])) * ((point_powers[17]) - (shifts[1865])) * - ((point_powers[17]) - (shifts[1866])) * ((point_powers[17]) - (shifts[1867])) * - ((point_powers[17]) - (shifts[1868])) * ((point_powers[17]) - (shifts[1869])) * - ((point_powers[17]) - (shifts[1870])) * ((point_powers[17]) - (shifts[1871])) * - ((point_powers[17]) - (shifts[1872])) * ((point_powers[17]) - (shifts[1873])) * - ((point_powers[17]) - (shifts[1874])) * ((point_powers[17]) - (shifts[1875])) * - ((point_powers[17]) - (shifts[1876])) * ((point_powers[17]) - (shifts[1877])) * - ((point_powers[17]) - (shifts[1878])) * ((point_powers[17]) - (shifts[1879])) * - ((point_powers[17]) - (shifts[1880])) * ((point_powers[17]) - (shifts[1881])) * - ((point_powers[17]) - (shifts[1882])) * ((point_powers[17]) - (shifts[1883])) * - ((point_powers[17]) - (shifts[1884])) * ((point_powers[17]) - (shifts[1885])) * - ((point_powers[17]) - (shifts[1886])) * ((point_powers[17]) - (shifts[1887])) * - ((point_powers[17]) - (shifts[1888])) * ((point_powers[17]) - (shifts[1889])) * - ((point_powers[17]) - (shifts[1890])) * ((point_powers[17]) - (shifts[1891])) * - ((point_powers[17]) - (shifts[1892])) * ((point_powers[17]) - (shifts[1893])) * - ((point_powers[17]) - (shifts[1894])) * ((point_powers[17]) - (shifts[1895])) * - ((point_powers[17]) - (shifts[1896])) * ((point_powers[17]) - (shifts[1897])) * - ((point_powers[17]) - (shifts[1898])) * ((point_powers[17]) - (shifts[1899])) * - ((point_powers[17]) - (shifts[1900])) * ((point_powers[17]) - (shifts[1901])) * - ((point_powers[17]) - (shifts[1902])) * ((point_powers[17]) - (shifts[1903])) * - ((point_powers[17]) - (shifts[1904])) * ((point_powers[17]) - (shifts[1905])) * - ((point_powers[17]) - (shifts[1906])) * ((point_powers[17]) - (shifts[1907])) * - ((point_powers[17]) - (shifts[1908])) * ((point_powers[17]) - (shifts[1909])) * - ((point_powers[17]) - (shifts[1910])) * ((point_powers[17]) - (shifts[1911])) * - ((point_powers[17]) - (shifts[1912])) * ((point_powers[17]) - (shifts[1913])) * - ((point_powers[17]) - (shifts[1914])) * ((point_powers[17]) - (shifts[1915])) * - ((point_powers[17]) - (shifts[1916])) * ((point_powers[17]) - (shifts[1917])) * - ((point_powers[17]) - (shifts[1918])) * ((point_powers[17]) - (shifts[1919])) * - ((point_powers[17]) - (shifts[1920])) * ((point_powers[17]) - (shifts[1921])) * - ((point_powers[17]) - (shifts[1922])) * ((point_powers[17]) - (shifts[1923])) * - ((point_powers[17]) - (shifts[1924])) * ((point_powers[17]) - (shifts[1925])) * - ((point_powers[17]) - (shifts[1926])) * ((point_powers[17]) - (shifts[1927])) * - ((point_powers[17]) - (shifts[1928])) * ((point_powers[17]) - (shifts[1929])) * - ((point_powers[17]) - (shifts[1930])) * ((point_powers[17]) - (shifts[1931])) * - ((point_powers[17]) - (shifts[1932])) * ((point_powers[17]) - (shifts[1933])) * - ((point_powers[17]) - (shifts[1934])) * ((point_powers[17]) - (shifts[1935])) * - ((point_powers[17]) - (shifts[1936])) * ((point_powers[17]) - (shifts[1937])) * - ((point_powers[17]) - (shifts[1938])) * ((point_powers[17]) - (shifts[1939])) * - ((point_powers[17]) - (shifts[1940])) * ((point_powers[17]) - (shifts[1941])) * - ((point_powers[17]) - (shifts[1942])) * ((point_powers[17]) - (shifts[1943])) * - ((point_powers[17]) - (shifts[1944])) * ((point_powers[17]) - (shifts[1945])) * - ((point_powers[17]) - (shifts[1946])) * ((point_powers[17]) - (shifts[1947])) * - ((point_powers[17]) - (shifts[1948])) * ((point_powers[17]) - (shifts[1949])) * - ((point_powers[17]) - (shifts[1950])) * ((point_powers[17]) - (shifts[1951])) * - ((point_powers[17]) - (shifts[1952])) * ((point_powers[17]) - (shifts[1953])) * - ((point_powers[17]) - (shifts[1954])) * ((point_powers[17]) - (shifts[1955])) * - ((point_powers[17]) - (shifts[1956])) * ((point_powers[17]) - (shifts[1957])) * - ((point_powers[17]) - (shifts[1958])) * ((point_powers[17]) - (shifts[1959])) * - ((point_powers[17]) - (shifts[1960])) * ((point_powers[17]) - (shifts[1961])) * - ((point_powers[17]) - (shifts[1962])) * ((point_powers[17]) - (shifts[1963])) * - ((point_powers[17]) - (shifts[1964])) * ((point_powers[17]) - (shifts[1965])) * - ((point_powers[17]) - (shifts[1966])) * ((point_powers[17]) - (shifts[1967])) * - ((point_powers[17]) - (shifts[1968])) * ((point_powers[17]) - (shifts[1969])) * - ((point_powers[17]) - (shifts[1970])) * ((point_powers[17]) - (shifts[1971])) * - ((point_powers[17]) - (shifts[1972])) * ((point_powers[17]) - (shifts[1973])) * - ((point_powers[17]) - (shifts[1974])) * ((point_powers[17]) - (shifts[1975])) * - ((point_powers[17]) - (shifts[1976])) * ((point_powers[17]) - (shifts[1977])) * - ((point_powers[17]) - (shifts[1978])) * ((point_powers[17]) - (shifts[1979])) * - ((point_powers[17]) - (shifts[1980])) * ((point_powers[17]) - (shifts[1981])) * - ((point_powers[17]) - (shifts[1982])) * ((point_powers[17]) - (shifts[1983])) * - ((point_powers[17]) - (shifts[1984])) * ((point_powers[17]) - (shifts[1985])) * - ((point_powers[17]) - (shifts[1986])) * ((point_powers[17]) - (shifts[1987])) * - ((point_powers[17]) - (shifts[1988])) * ((point_powers[17]) - (shifts[1989])) * - ((point_powers[17]) - (shifts[1990])) * ((point_powers[17]) - (shifts[1991])) * - ((point_powers[17]) - (shifts[1992])) * ((point_powers[17]) - (shifts[1993])) * - ((point_powers[17]) - (shifts[1994])) * ((point_powers[17]) - (shifts[1995])) * - ((point_powers[17]) - (shifts[1996])) * ((point_powers[17]) - (shifts[1997])) * - ((point_powers[17]) - (shifts[1998])) * ((point_powers[17]) - (shifts[1999])) * - ((point_powers[17]) - (shifts[2000])) * ((point_powers[17]) - (shifts[2001])) * - ((point_powers[17]) - (shifts[2002])) * ((point_powers[17]) - (shifts[2003])) * - ((point_powers[17]) - (shifts[2004])) * ((point_powers[17]) - (shifts[2005])) * - ((point_powers[17]) - (shifts[2006])) * ((point_powers[17]) - (shifts[2007])) * - ((point_powers[17]) - (shifts[2008])) * ((point_powers[17]) - (shifts[2009])) * - ((point_powers[17]) - (shifts[2010])) * ((point_powers[17]) - (shifts[2011])) * - ((point_powers[17]) - (shifts[2012])) * ((point_powers[17]) - (shifts[2013])) * - ((point_powers[17]) - (shifts[2014])) * ((point_powers[17]) - (shifts[2015])) * - ((point_powers[17]) - (shifts[2016])) * ((point_powers[17]) - (shifts[2017])) * - ((point_powers[17]) - (shifts[2018])) * ((point_powers[17]) - (shifts[2019])) * - ((point_powers[17]) - (shifts[2020])) * ((point_powers[17]) - (shifts[2021])) * - ((point_powers[17]) - (shifts[2022])) * ((point_powers[17]) - (shifts[2023])) * - ((point_powers[17]) - (shifts[2024])) * ((point_powers[17]) - (shifts[2025])) * - ((point_powers[17]) - (shifts[2026])) * ((point_powers[17]) - (shifts[2027])) * - ((point_powers[17]) - (shifts[2028])) * ((point_powers[17]) - (shifts[2029])) * - ((point_powers[17]) - (shifts[2030])) * ((point_powers[17]) - (shifts[2031])) * - ((point_powers[17]) - (shifts[2032])) * ((point_powers[17]) - (shifts[2033])) * - ((point_powers[17]) - (shifts[2034])) * ((point_powers[17]) - (shifts[2035])) * - ((point_powers[17]) - (shifts[2036])) * ((point_powers[17]) - (shifts[2037])) * - ((point_powers[17]) - (shifts[2038])) * ((point_powers[17]) - (shifts[2039])) * - ((point_powers[17]) - (shifts[2040])) * ((point_powers[17]) - (shifts[2041])) * - ((point_powers[17]) - (shifts[2042])) * ((point_powers[17]) - (shifts[2043])) * - ((point_powers[17]) - (shifts[2044])) * ((point_powers[17]) - (shifts[2045])) * - ((point_powers[17]) - (shifts[2046])) * ((point_powers[17]) - (shifts[2047])) * - ((point_powers[17]) - (shifts[2048])) * ((point_powers[17]) - (shifts[2049])) * - ((point_powers[17]) - (shifts[2050])) * ((point_powers[17]) - (shifts[2051])) * - ((point_powers[17]) - (shifts[2052])) * ((point_powers[17]) - (shifts[2053])) * - ((point_powers[17]) - (shifts[2054])) * ((point_powers[17]) - (shifts[2055])) * - ((point_powers[17]) - (shifts[2056])) * ((point_powers[17]) - (shifts[2057])) * - ((point_powers[17]) - (shifts[2058])) * ((point_powers[17]) - (shifts[2059])) * - ((point_powers[17]) - (shifts[2060])) * ((point_powers[17]) - (shifts[2061])) * - ((point_powers[17]) - (shifts[2062])) * ((point_powers[17]) - (shifts[2063])) * - ((point_powers[17]) - (shifts[2064])) * ((point_powers[17]) - (shifts[2065])) * - ((point_powers[17]) - (shifts[2066])) * ((point_powers[17]) - (shifts[2067])) * - ((point_powers[17]) - (shifts[2068])) * ((point_powers[17]) - (shifts[2069])) * - ((point_powers[17]) - (shifts[2070])) * ((point_powers[17]) - (shifts[2071])) * - ((point_powers[17]) - (shifts[2072])) * ((point_powers[17]) - (shifts[2073])) * - ((point_powers[17]) - (shifts[2074])) * ((point_powers[17]) - (shifts[2075])) * - ((point_powers[17]) - (shifts[2076])) * ((point_powers[17]) - (shifts[2077])) * - ((point_powers[17]) - (shifts[2078])) * ((point_powers[17]) - (shifts[2079])) * - (domain44) * (domain46)) - : FieldElementT::Zero(); - const FieldElementT& domain48 = ((uses_keccak_builtin) != (0)) - ? (((point_powers[15]) - (shifts[2080])) * (domain42)) - : FieldElementT::Zero(); - const FieldElementT& domain49 = - ((uses_keccak_builtin) != (0)) ? ((domain41) * (domain43)) : FieldElementT::Zero(); - const FieldElementT& domain50 = - ((uses_keccak_builtin) != (0)) ? ((domain46) * (domain49)) : FieldElementT::Zero(); - const FieldElementT& domain51 = - ((uses_keccak_builtin) != (0)) - ? (((point_powers[17]) - (shifts[1139])) * ((point_powers[17]) - (shifts[2081])) * - ((point_powers[17]) - (shifts[2082])) * ((point_powers[17]) - (shifts[2083])) * - ((point_powers[17]) - (shifts[2084])) * ((point_powers[17]) - (shifts[2085])) * - ((point_powers[17]) - (shifts[2086])) * ((point_powers[17]) - (shifts[2087]))) - : FieldElementT::Zero(); - const FieldElementT& domain52 = - ((uses_keccak_builtin) != (0)) - ? (((point_powers[17]) - (shifts[2088])) * ((point_powers[17]) - (shifts[2089])) * - ((point_powers[17]) - (shifts[2090])) * ((point_powers[17]) - (shifts[2091])) * - ((point_powers[17]) - (shifts[2092])) * ((point_powers[17]) - (shifts[2093])) * - ((point_powers[17]) - (shifts[2094])) * ((point_powers[17]) - (shifts[2095])) * - ((point_powers[17]) - (shifts[2096])) * ((point_powers[17]) - (shifts[2097])) * - ((point_powers[17]) - (shifts[2098])) * ((point_powers[17]) - (shifts[2099])) * - ((point_powers[17]) - (shifts[2100])) * ((point_powers[17]) - (shifts[2101])) * - ((point_powers[17]) - (shifts[2102])) * ((point_powers[17]) - (shifts[2103])) * - (domain50) * (domain51)) - : FieldElementT::Zero(); - const FieldElementT& domain53 = - ((uses_keccak_builtin) != (0)) - ? (((point_powers[17]) - (shifts[1345])) * ((point_powers[17]) - (shifts[2104])) * - ((point_powers[17]) - (shifts[2105])) * ((point_powers[17]) - (shifts[2106])) * - ((point_powers[17]) - (shifts[2107])) * ((point_powers[17]) - (shifts[2108])) * - ((point_powers[17]) - (shifts[2109])) * ((point_powers[17]) - (shifts[2110]))) - : FieldElementT::Zero(); - const FieldElementT& domain54 = - ((uses_keccak_builtin) != (0)) - ? (((point_powers[17]) - (shifts[2111])) * ((point_powers[17]) - (shifts[2112])) * - ((point_powers[17]) - (shifts[2113])) * ((point_powers[17]) - (shifts[2114])) * - ((point_powers[17]) - (shifts[2115])) * ((point_powers[17]) - (shifts[2116])) * - ((point_powers[17]) - (shifts[2117])) * ((point_powers[17]) - (shifts[2118])) * - ((point_powers[17]) - (shifts[2119])) * ((point_powers[17]) - (shifts[2120])) * - ((point_powers[17]) - (shifts[2121])) * ((point_powers[17]) - (shifts[2122])) * - ((point_powers[17]) - (shifts[2123])) * ((point_powers[17]) - (shifts[2124])) * - ((point_powers[17]) - (shifts[2125])) * ((point_powers[17]) - (shifts[2126])) * - (domain52) * (domain53)) - : FieldElementT::Zero(); - const FieldElementT& domain55 = - ((uses_keccak_builtin) != (0)) - ? (((point_powers[17]) - (shifts[1137])) * ((point_powers[17]) - (shifts[2127])) * - ((point_powers[17]) - (shifts[2128])) * ((point_powers[17]) - (shifts[2129])) * - ((point_powers[17]) - (shifts[2130])) * ((point_powers[17]) - (shifts[2131])) * - ((point_powers[17]) - (shifts[2132])) * ((point_powers[17]) - (shifts[2133])) * - ((point_powers[17]) - (shifts[1317])) * ((point_powers[17]) - (shifts[2134])) * - ((point_powers[17]) - (shifts[2135])) * ((point_powers[17]) - (shifts[2136])) * - ((point_powers[17]) - (shifts[2137])) * ((point_powers[17]) - (shifts[2138])) * - ((point_powers[17]) - (shifts[2139])) * ((point_powers[17]) - (shifts[2140])) * - ((point_powers[17]) - (shifts[1138])) * ((point_powers[17]) - (shifts[2141])) * - ((point_powers[17]) - (shifts[2142])) * ((point_powers[17]) - (shifts[2143])) * - ((point_powers[17]) - (shifts[2144])) * ((point_powers[17]) - (shifts[2145])) * - ((point_powers[17]) - (shifts[2146])) * ((point_powers[17]) - (shifts[2147]))) - : FieldElementT::Zero(); - const FieldElementT& domain56 = - ((uses_keccak_builtin) != (0)) - ? (((point_powers[17]) - (shifts[2148])) * ((point_powers[17]) - (shifts[2149])) * - ((point_powers[17]) - (shifts[2150])) * ((point_powers[17]) - (shifts[2151])) * - ((point_powers[17]) - (shifts[2152])) * ((point_powers[17]) - (shifts[2153])) * - ((point_powers[17]) - (shifts[2154])) * ((point_powers[17]) - (shifts[2155])) * - ((point_powers[17]) - (shifts[2156])) * ((point_powers[17]) - (shifts[2157])) * - ((point_powers[17]) - (shifts[2158])) * ((point_powers[17]) - (shifts[2159])) * - ((point_powers[17]) - (shifts[2160])) * ((point_powers[17]) - (shifts[2161])) * - ((point_powers[17]) - (shifts[2162])) * ((point_powers[17]) - (shifts[2163])) * - ((point_powers[17]) - (shifts[2164])) * ((point_powers[17]) - (shifts[2165])) * - ((point_powers[17]) - (shifts[2166])) * ((point_powers[17]) - (shifts[2167])) * - ((point_powers[17]) - (shifts[2168])) * ((point_powers[17]) - (shifts[2169])) * - ((point_powers[17]) - (shifts[2170])) * ((point_powers[17]) - (shifts[2171])) * - ((point_powers[17]) - (shifts[2172])) * ((point_powers[17]) - (shifts[2173])) * - ((point_powers[17]) - (shifts[2174])) * ((point_powers[17]) - (shifts[2175])) * - ((point_powers[17]) - (shifts[2176])) * ((point_powers[17]) - (shifts[2177])) * - ((point_powers[17]) - (shifts[2178])) * ((point_powers[17]) - (shifts[2179])) * - ((point_powers[17]) - (shifts[2180])) * ((point_powers[17]) - (shifts[2181])) * - ((point_powers[17]) - (shifts[2182])) * ((point_powers[17]) - (shifts[2183])) * - ((point_powers[17]) - (shifts[2184])) * ((point_powers[17]) - (shifts[2185])) * - ((point_powers[17]) - (shifts[2186])) * ((point_powers[17]) - (shifts[2187])) * - ((point_powers[17]) - (shifts[2188])) * ((point_powers[17]) - (shifts[2189])) * - ((point_powers[17]) - (shifts[2190])) * ((point_powers[17]) - (shifts[2191])) * - ((point_powers[17]) - (shifts[2192])) * ((point_powers[17]) - (shifts[2193])) * - ((point_powers[17]) - (shifts[2194])) * ((point_powers[17]) - (shifts[2195])) * - (domain54) * (domain55)) - : FieldElementT::Zero(); - const FieldElementT& domain57 = - ((uses_keccak_builtin) != (0)) - ? (((point_powers[17]) - (shifts[1136])) * ((point_powers[17]) - (shifts[2196])) * - ((point_powers[17]) - (shifts[2197])) * ((point_powers[17]) - (shifts[2198])) * - ((point_powers[17]) - (shifts[2199])) * ((point_powers[17]) - (shifts[2200])) * - ((point_powers[17]) - (shifts[2201])) * ((point_powers[17]) - (shifts[2202])) * - ((point_powers[17]) - (shifts[1289])) * ((point_powers[17]) - (shifts[2203])) * - ((point_powers[17]) - (shifts[2204])) * ((point_powers[17]) - (shifts[2205])) * - ((point_powers[17]) - (shifts[2206])) * ((point_powers[17]) - (shifts[2207])) * - ((point_powers[17]) - (shifts[2208])) * ((point_powers[17]) - (shifts[2209]))) - : FieldElementT::Zero(); - const FieldElementT& domain58 = - ((uses_keccak_builtin) != (0)) - ? (((point_powers[17]) - (shifts[2210])) * ((point_powers[17]) - (shifts[2211])) * - ((point_powers[17]) - (shifts[2212])) * ((point_powers[17]) - (shifts[2213])) * - ((point_powers[17]) - (shifts[2214])) * ((point_powers[17]) - (shifts[2215])) * - ((point_powers[17]) - (shifts[2216])) * ((point_powers[17]) - (shifts[2217])) * - ((point_powers[17]) - (shifts[2218])) * ((point_powers[17]) - (shifts[2219])) * - ((point_powers[17]) - (shifts[2220])) * ((point_powers[17]) - (shifts[2221])) * - ((point_powers[17]) - (shifts[2222])) * ((point_powers[17]) - (shifts[2223])) * - ((point_powers[17]) - (shifts[2224])) * ((point_powers[17]) - (shifts[2225])) * - ((point_powers[17]) - (shifts[2226])) * ((point_powers[17]) - (shifts[2227])) * - ((point_powers[17]) - (shifts[2228])) * ((point_powers[17]) - (shifts[2229])) * - ((point_powers[17]) - (shifts[2230])) * ((point_powers[17]) - (shifts[2231])) * - ((point_powers[17]) - (shifts[2232])) * ((point_powers[17]) - (shifts[2233])) * - ((point_powers[17]) - (shifts[2234])) * ((point_powers[17]) - (shifts[2235])) * - ((point_powers[17]) - (shifts[2236])) * ((point_powers[17]) - (shifts[2237])) * - ((point_powers[17]) - (shifts[2238])) * ((point_powers[17]) - (shifts[2239])) * - ((point_powers[17]) - (shifts[2240])) * ((point_powers[17]) - (shifts[2241])) * - (domain56) * (domain57)) - : FieldElementT::Zero(); - const FieldElementT& domain59 = - ((uses_keccak_builtin) != (0)) - ? (((point_powers[17]) - (shifts[1261])) * ((point_powers[17]) - (shifts[2242])) * - ((point_powers[17]) - (shifts[2243])) * ((point_powers[17]) - (shifts[2244])) * - ((point_powers[17]) - (shifts[2245])) * ((point_powers[17]) - (shifts[2246])) * - ((point_powers[17]) - (shifts[2247])) * ((point_powers[17]) - (shifts[2248]))) - : FieldElementT::Zero(); - const FieldElementT& domain60 = - ((uses_keccak_builtin) != (0)) - ? (((point_powers[17]) - (shifts[1135])) * ((point_powers[17]) - (shifts[2249])) * - ((point_powers[17]) - (shifts[2250])) * ((point_powers[17]) - (shifts[2251])) * - ((point_powers[17]) - (shifts[2252])) * ((point_powers[17]) - (shifts[2253])) * - ((point_powers[17]) - (shifts[2254])) * ((point_powers[17]) - (shifts[2255])) * - (domain59)) - : FieldElementT::Zero(); - const FieldElementT& domain61 = - ((uses_keccak_builtin) != (0)) - ? (((point_powers[17]) - (shifts[2256])) * ((point_powers[17]) - (shifts[2257])) * - ((point_powers[17]) - (shifts[2258])) * ((point_powers[17]) - (shifts[2259])) * - ((point_powers[17]) - (shifts[2260])) * ((point_powers[17]) - (shifts[2261])) * - ((point_powers[17]) - (shifts[2262])) * ((point_powers[17]) - (shifts[2263])) * - ((point_powers[17]) - (shifts[2264])) * ((point_powers[17]) - (shifts[2265])) * - ((point_powers[17]) - (shifts[2266])) * ((point_powers[17]) - (shifts[2267])) * - ((point_powers[17]) - (shifts[2268])) * ((point_powers[17]) - (shifts[2269])) * - ((point_powers[17]) - (shifts[2270])) * ((point_powers[17]) - (shifts[2271])) * - ((point_powers[17]) - (shifts[2272])) * ((point_powers[17]) - (shifts[2273])) * - ((point_powers[17]) - (shifts[2274])) * ((point_powers[17]) - (shifts[2275])) * - ((point_powers[17]) - (shifts[2276])) * ((point_powers[17]) - (shifts[2277])) * - ((point_powers[17]) - (shifts[2278])) * ((point_powers[17]) - (shifts[2279])) * - ((point_powers[17]) - (shifts[2280])) * ((point_powers[17]) - (shifts[2281])) * - ((point_powers[17]) - (shifts[2282])) * ((point_powers[17]) - (shifts[2283])) * - ((point_powers[17]) - (shifts[2284])) * ((point_powers[17]) - (shifts[2285])) * - ((point_powers[17]) - (shifts[2286])) * ((point_powers[17]) - (shifts[2287])) * - (domain58) * (domain60)) - : FieldElementT::Zero(); - const FieldElementT& domain62 = - ((uses_keccak_builtin) != (0)) - ? (((point_powers[17]) - (shifts[2080])) * ((point_powers[17]) - (shifts[2288])) * - ((point_powers[17]) - (shifts[2289])) * ((point_powers[17]) - (shifts[2290])) * - ((point_powers[17]) - (shifts[2291])) * ((point_powers[17]) - (shifts[2292])) * - ((point_powers[17]) - (shifts[2293])) * ((point_powers[17]) - (shifts[2294])) * - ((point_powers[17]) - (shifts[2295])) * ((point_powers[17]) - (shifts[2296])) * - ((point_powers[17]) - (shifts[2297])) * ((point_powers[17]) - (shifts[2298])) * - ((point_powers[17]) - (shifts[2299])) * ((point_powers[17]) - (shifts[2300])) * - ((point_powers[17]) - (shifts[2301])) * ((point_powers[17]) - (shifts[2302])) * - ((point_powers[17]) - (shifts[1134])) * ((point_powers[17]) - (shifts[2303])) * - ((point_powers[17]) - (shifts[2304])) * ((point_powers[17]) - (shifts[2305])) * - ((point_powers[17]) - (shifts[2306])) * ((point_powers[17]) - (shifts[2307])) * - ((point_powers[17]) - (shifts[2308])) * ((point_powers[17]) - (shifts[2309])) * - ((point_powers[17]) - (shifts[1233])) * ((point_powers[17]) - (shifts[2310])) * - ((point_powers[17]) - (shifts[2311])) * ((point_powers[17]) - (shifts[2312])) * - ((point_powers[17]) - (shifts[2313])) * ((point_powers[17]) - (shifts[2314])) * - ((point_powers[17]) - (shifts[2315])) * ((point_powers[17]) - (shifts[2316]))) - : FieldElementT::Zero(); - const FieldElementT& domain63 = - ((uses_keccak_builtin) != (0)) - ? (((point_powers[17]) - (shifts[2317])) * ((point_powers[17]) - (shifts[2318])) * - ((point_powers[17]) - (shifts[2319])) * ((point_powers[17]) - (shifts[2320])) * - ((point_powers[17]) - (shifts[2321])) * ((point_powers[17]) - (shifts[2322])) * - ((point_powers[17]) - (shifts[2323])) * ((point_powers[17]) - (shifts[2324])) * - ((point_powers[17]) - (shifts[2325])) * ((point_powers[17]) - (shifts[2326])) * - ((point_powers[17]) - (shifts[2327])) * ((point_powers[17]) - (shifts[2328])) * - ((point_powers[17]) - (shifts[2329])) * ((point_powers[17]) - (shifts[2330])) * - ((point_powers[17]) - (shifts[2331])) * ((point_powers[17]) - (shifts[2332])) * - ((point_powers[17]) - (shifts[2333])) * ((point_powers[17]) - (shifts[2334])) * - ((point_powers[17]) - (shifts[2335])) * ((point_powers[17]) - (shifts[2336])) * - ((point_powers[17]) - (shifts[2337])) * ((point_powers[17]) - (shifts[2338])) * - ((point_powers[17]) - (shifts[2339])) * ((point_powers[17]) - (shifts[2340])) * - ((point_powers[17]) - (shifts[2341])) * ((point_powers[17]) - (shifts[2342])) * - ((point_powers[17]) - (shifts[2343])) * ((point_powers[17]) - (shifts[2344])) * - ((point_powers[17]) - (shifts[2345])) * ((point_powers[17]) - (shifts[2346])) * - ((point_powers[17]) - (shifts[2347])) * ((point_powers[17]) - (shifts[2348])) * - ((point_powers[17]) - (shifts[2349])) * ((point_powers[17]) - (shifts[2350])) * - ((point_powers[17]) - (shifts[2351])) * ((point_powers[17]) - (shifts[2352])) * - ((point_powers[17]) - (shifts[2353])) * ((point_powers[17]) - (shifts[2354])) * - ((point_powers[17]) - (shifts[2355])) * ((point_powers[17]) - (shifts[2356])) * - ((point_powers[17]) - (shifts[2357])) * ((point_powers[17]) - (shifts[2358])) * - ((point_powers[17]) - (shifts[2359])) * ((point_powers[17]) - (shifts[2360])) * - ((point_powers[17]) - (shifts[2361])) * ((point_powers[17]) - (shifts[2362])) * - ((point_powers[17]) - (shifts[2363])) * ((point_powers[17]) - (shifts[2364])) * - ((point_powers[17]) - (shifts[2365])) * ((point_powers[17]) - (shifts[2366])) * - ((point_powers[17]) - (shifts[2367])) * ((point_powers[17]) - (shifts[2368])) * - ((point_powers[17]) - (shifts[2369])) * ((point_powers[17]) - (shifts[2370])) * - ((point_powers[17]) - (shifts[2371])) * ((point_powers[17]) - (shifts[2372])) * - ((point_powers[17]) - (shifts[2373])) * ((point_powers[17]) - (shifts[2374])) * - ((point_powers[17]) - (shifts[2375])) * ((point_powers[17]) - (shifts[2376])) * - ((point_powers[17]) - (shifts[2377])) * ((point_powers[17]) - (shifts[2378])) * - ((point_powers[17]) - (shifts[2379])) * ((point_powers[17]) - (shifts[2380])) * - (domain61) * (domain62)) - : FieldElementT::Zero(); - const FieldElementT& domain64 = - ((uses_keccak_builtin) != (0)) - ? (((point_powers[17]) - (shifts[2381])) * ((point_powers[17]) - (shifts[2382])) * - ((point_powers[17]) - (shifts[2383])) * ((point_powers[17]) - (shifts[2384])) * - ((point_powers[17]) - (shifts[2385])) * ((point_powers[17]) - (shifts[2386])) * - ((point_powers[17]) - (shifts[2387])) * ((point_powers[17]) - (shifts[2388]))) - : FieldElementT::Zero(); - const FieldElementT& domain65 = - ((uses_keccak_builtin) != (0)) - ? (((point_powers[17]) - (shifts[2389])) * ((point_powers[17]) - (shifts[2390])) * - ((point_powers[17]) - (shifts[2391])) * ((point_powers[17]) - (shifts[2392])) * - ((point_powers[17]) - (shifts[2393])) * ((point_powers[17]) - (shifts[2394])) * - ((point_powers[17]) - (shifts[2395])) * ((point_powers[17]) - (shifts[2396])) * - ((point_powers[17]) - (shifts[2397])) * ((point_powers[17]) - (shifts[2398])) * - ((point_powers[17]) - (shifts[2399])) * ((point_powers[17]) - (shifts[2400])) * - ((point_powers[17]) - (shifts[2401])) * ((point_powers[17]) - (shifts[2402])) * - ((point_powers[17]) - (shifts[2403])) * ((point_powers[17]) - (shifts[2404])) * - (domain63) * (domain64)) - : FieldElementT::Zero(); - const FieldElementT& domain66 = - ((uses_keccak_builtin) != (0)) - ? (((point_powers[17]) - (shifts[2405])) * ((point_powers[17]) - (shifts[2406])) * - ((point_powers[17]) - (shifts[2407])) * ((point_powers[17]) - (shifts[2408])) * - ((point_powers[17]) - (shifts[2409])) * ((point_powers[17]) - (shifts[2410])) * - ((point_powers[17]) - (shifts[2411])) * ((point_powers[17]) - (shifts[2412])) * - ((point_powers[17]) - (shifts[2413])) * ((point_powers[17]) - (shifts[2414])) * - ((point_powers[17]) - (shifts[2415])) * ((point_powers[17]) - (shifts[2416])) * - ((point_powers[17]) - (shifts[2417])) * ((point_powers[17]) - (shifts[2418])) * - ((point_powers[17]) - (shifts[2419])) * ((point_powers[17]) - (shifts[2420])) * - ((point_powers[17]) - (shifts[2421])) * ((point_powers[17]) - (shifts[2422])) * - ((point_powers[17]) - (shifts[2423])) * ((point_powers[17]) - (shifts[2424])) * - ((point_powers[17]) - (shifts[2425])) * ((point_powers[17]) - (shifts[2426])) * - ((point_powers[17]) - (shifts[2427])) * ((point_powers[17]) - (shifts[2428]))) - : FieldElementT::Zero(); - const FieldElementT& domain67 = - ((uses_keccak_builtin) != (0)) - ? (((point_powers[17]) - (shifts[2429])) * ((point_powers[17]) - (shifts[2430])) * - ((point_powers[17]) - (shifts[2431])) * ((point_powers[17]) - (shifts[2432])) * - ((point_powers[17]) - (shifts[2433])) * ((point_powers[17]) - (shifts[2434])) * - ((point_powers[17]) - (shifts[2435])) * ((point_powers[17]) - (shifts[2436])) * - ((point_powers[17]) - (shifts[2437])) * ((point_powers[17]) - (shifts[2438])) * - ((point_powers[17]) - (shifts[2439])) * ((point_powers[17]) - (shifts[2440])) * - ((point_powers[17]) - (shifts[2441])) * ((point_powers[17]) - (shifts[2442])) * - ((point_powers[17]) - (shifts[2443])) * ((point_powers[17]) - (shifts[2444])) * - ((point_powers[17]) - (shifts[2445])) * ((point_powers[17]) - (shifts[2446])) * - ((point_powers[17]) - (shifts[2447])) * ((point_powers[17]) - (shifts[2448])) * - ((point_powers[17]) - (shifts[2449])) * ((point_powers[17]) - (shifts[2450])) * - ((point_powers[17]) - (shifts[2451])) * ((point_powers[17]) - (shifts[2452])) * - ((point_powers[17]) - (shifts[2453])) * ((point_powers[17]) - (shifts[2454])) * - ((point_powers[17]) - (shifts[2455])) * ((point_powers[17]) - (shifts[2456])) * - ((point_powers[17]) - (shifts[2457])) * ((point_powers[17]) - (shifts[2458])) * - ((point_powers[17]) - (shifts[2459])) * ((point_powers[17]) - (shifts[2460])) * - ((point_powers[17]) - (shifts[2461])) * ((point_powers[17]) - (shifts[2462])) * - ((point_powers[17]) - (shifts[2463])) * ((point_powers[17]) - (shifts[2464])) * - ((point_powers[17]) - (shifts[2465])) * ((point_powers[17]) - (shifts[2466])) * - ((point_powers[17]) - (shifts[2467])) * ((point_powers[17]) - (shifts[2468])) * - ((point_powers[17]) - (shifts[2469])) * ((point_powers[17]) - (shifts[2470])) * - ((point_powers[17]) - (shifts[2471])) * ((point_powers[17]) - (shifts[2472])) * - ((point_powers[17]) - (shifts[2473])) * ((point_powers[17]) - (shifts[2474])) * - ((point_powers[17]) - (shifts[2475])) * ((point_powers[17]) - (shifts[2476])) * - (domain65) * (domain66)) - : FieldElementT::Zero(); - const FieldElementT& domain68 = - ((uses_keccak_builtin) != (0)) - ? (((point_powers[17]) - (shifts[2477])) * ((point_powers[17]) - (shifts[2478])) * - ((point_powers[17]) - (shifts[2479])) * ((point_powers[17]) - (shifts[2480])) * - ((point_powers[17]) - (shifts[2481])) * ((point_powers[17]) - (shifts[2482])) * - ((point_powers[17]) - (shifts[2483])) * ((point_powers[17]) - (shifts[2484]))) - : FieldElementT::Zero(); - const FieldElementT& domain69 = - ((uses_keccak_builtin) != (0)) - ? (((point_powers[17]) - (shifts[2485])) * ((point_powers[17]) - (shifts[2486])) * - ((point_powers[17]) - (shifts[2487])) * ((point_powers[17]) - (shifts[2488])) * - ((point_powers[17]) - (shifts[2489])) * ((point_powers[17]) - (shifts[2490])) * - ((point_powers[17]) - (shifts[2491])) * ((point_powers[17]) - (shifts[2492])) * - ((point_powers[17]) - (shifts[2493])) * ((point_powers[17]) - (shifts[2494])) * - ((point_powers[17]) - (shifts[2495])) * ((point_powers[17]) - (shifts[2496])) * - ((point_powers[17]) - (shifts[2497])) * ((point_powers[17]) - (shifts[2498])) * - ((point_powers[17]) - (shifts[2499])) * ((point_powers[17]) - (shifts[2500])) * - (domain67) * (domain68)) - : FieldElementT::Zero(); - const FieldElementT& domain70 = - ((uses_keccak_builtin) != (0)) - ? (((point_powers[17]) - (shifts[356])) * ((point_powers[17]) - (shifts[2501])) * - ((point_powers[17]) - (shifts[2502])) * ((point_powers[17]) - (shifts[2503])) * - ((point_powers[17]) - (shifts[2504])) * ((point_powers[17]) - (shifts[2505])) * - ((point_powers[17]) - (shifts[2506])) * ((point_powers[17]) - (shifts[2507]))) - : FieldElementT::Zero(); - const FieldElementT& domain71 = - ((uses_keccak_builtin) != (0)) - ? (((point_powers[17]) - (shifts[2508])) * ((point_powers[17]) - (shifts[2509])) * - ((point_powers[17]) - (shifts[2510])) * ((point_powers[17]) - (shifts[2511])) * - ((point_powers[17]) - (shifts[2512])) * ((point_powers[17]) - (shifts[2513])) * - ((point_powers[17]) - (shifts[2514])) * ((point_powers[17]) - (shifts[2515])) * - ((point_powers[17]) - (shifts[2516])) * ((point_powers[17]) - (shifts[2517])) * - ((point_powers[17]) - (shifts[2518])) * ((point_powers[17]) - (shifts[2519])) * - ((point_powers[17]) - (shifts[2520])) * ((point_powers[17]) - (shifts[2521])) * - ((point_powers[17]) - (shifts[2522])) * ((point_powers[17]) - (shifts[2523])) * - (domain69) * (domain70)) - : FieldElementT::Zero(); - const FieldElementT& domain72 = - ((uses_keccak_builtin) != (0)) - ? (((point_powers[17]) - (shifts[2524])) * ((point_powers[17]) - (shifts[2525])) * - ((point_powers[17]) - (shifts[2526])) * ((point_powers[17]) - (shifts[2527])) * - ((point_powers[17]) - (shifts[2528])) * ((point_powers[17]) - (shifts[2529])) * - ((point_powers[17]) - (shifts[2530])) * ((point_powers[17]) - (shifts[2531]))) - : FieldElementT::Zero(); - const FieldElementT& domain73 = - ((uses_keccak_builtin) != (0)) - ? (((point_powers[17]) - (shifts[2532])) * ((point_powers[17]) - (shifts[2533])) * - ((point_powers[17]) - (shifts[2534])) * ((point_powers[17]) - (shifts[2535])) * - ((point_powers[17]) - (shifts[2536])) * ((point_powers[17]) - (shifts[2537])) * - ((point_powers[17]) - (shifts[2538])) * ((point_powers[17]) - (shifts[2539])) * - ((point_powers[17]) - (shifts[2540])) * ((point_powers[17]) - (shifts[2541])) * - ((point_powers[17]) - (shifts[2542])) * ((point_powers[17]) - (shifts[2543])) * - ((point_powers[17]) - (shifts[2544])) * ((point_powers[17]) - (shifts[2545])) * - ((point_powers[17]) - (shifts[2546])) * ((point_powers[17]) - (shifts[2547])) * - (domain71) * (domain72)) - : FieldElementT::Zero(); - const FieldElementT& domain74 = - ((uses_keccak_builtin) != (0)) - ? (((point_powers[17]) - (shifts[2548])) * ((point_powers[17]) - (shifts[2549])) * - ((point_powers[17]) - (shifts[2550])) * ((point_powers[17]) - (shifts[2551])) * - ((point_powers[17]) - (shifts[2552])) * ((point_powers[17]) - (shifts[2553])) * - ((point_powers[17]) - (shifts[2554])) * ((point_powers[17]) - (shifts[2555])) * - ((point_powers[17]) - (shifts[332])) * ((point_powers[17]) - (shifts[2556])) * - ((point_powers[17]) - (shifts[2557])) * ((point_powers[17]) - (shifts[2558])) * - ((point_powers[17]) - (shifts[2559])) * ((point_powers[17]) - (shifts[2560])) * - ((point_powers[17]) - (shifts[2561])) * ((point_powers[17]) - (shifts[2562]))) - : FieldElementT::Zero(); - const FieldElementT& domain75 = - ((uses_keccak_builtin) != (0)) - ? (((point_powers[17]) - (shifts[2563])) * ((point_powers[17]) - (shifts[2564])) * - ((point_powers[17]) - (shifts[2565])) * ((point_powers[17]) - (shifts[2566])) * - ((point_powers[17]) - (shifts[2567])) * ((point_powers[17]) - (shifts[2568])) * - ((point_powers[17]) - (shifts[2569])) * ((point_powers[17]) - (shifts[2570])) * - ((point_powers[17]) - (shifts[117])) * ((point_powers[17]) - (shifts[2571])) * - ((point_powers[17]) - (shifts[2572])) * ((point_powers[17]) - (shifts[2573])) * - ((point_powers[17]) - (shifts[2574])) * ((point_powers[17]) - (shifts[2575])) * - ((point_powers[17]) - (shifts[2576])) * ((point_powers[17]) - (shifts[2577])) * - (domain74)) - : FieldElementT::Zero(); - const FieldElementT& domain76 = - ((uses_keccak_builtin) != (0)) - ? (((point_powers[17]) - (shifts[2578])) * ((point_powers[17]) - (shifts[2579])) * - ((point_powers[17]) - (shifts[2580])) * ((point_powers[17]) - (shifts[2581])) * - ((point_powers[17]) - (shifts[2582])) * ((point_powers[17]) - (shifts[2583])) * - ((point_powers[17]) - (shifts[2584])) * ((point_powers[17]) - (shifts[2585])) * - ((point_powers[17]) - (shifts[2586])) * ((point_powers[17]) - (shifts[2587])) * - ((point_powers[17]) - (shifts[2588])) * ((point_powers[17]) - (shifts[2589])) * - ((point_powers[17]) - (shifts[2590])) * ((point_powers[17]) - (shifts[2591])) * - ((point_powers[17]) - (shifts[2592])) * ((point_powers[17]) - (shifts[2593])) * - ((point_powers[17]) - (shifts[2594])) * ((point_powers[17]) - (shifts[2595])) * - ((point_powers[17]) - (shifts[2596])) * ((point_powers[17]) - (shifts[2597])) * - ((point_powers[17]) - (shifts[2598])) * ((point_powers[17]) - (shifts[2599])) * - ((point_powers[17]) - (shifts[2600])) * ((point_powers[17]) - (shifts[2601])) * - ((point_powers[17]) - (shifts[2602])) * ((point_powers[17]) - (shifts[2603])) * - ((point_powers[17]) - (shifts[2604])) * ((point_powers[17]) - (shifts[2605])) * - ((point_powers[17]) - (shifts[2606])) * ((point_powers[17]) - (shifts[2607])) * - ((point_powers[17]) - (shifts[2608])) * ((point_powers[17]) - (shifts[2609])) * - ((point_powers[17]) - (shifts[2610])) * ((point_powers[17]) - (shifts[2611])) * - ((point_powers[17]) - (shifts[2612])) * ((point_powers[17]) - (shifts[2613])) * - ((point_powers[17]) - (shifts[2614])) * ((point_powers[17]) - (shifts[2615])) * - ((point_powers[17]) - (shifts[2616])) * ((point_powers[17]) - (shifts[2617])) * - ((point_powers[17]) - (shifts[2618])) * ((point_powers[17]) - (shifts[2619])) * - ((point_powers[17]) - (shifts[2620])) * ((point_powers[17]) - (shifts[2621])) * - ((point_powers[17]) - (shifts[2622])) * ((point_powers[17]) - (shifts[2623])) * - ((point_powers[17]) - (shifts[2624])) * ((point_powers[17]) - (shifts[2625])) * - ((point_powers[17]) - (shifts[2626])) * ((point_powers[17]) - (shifts[2627])) * - ((point_powers[17]) - (shifts[2628])) * ((point_powers[17]) - (shifts[2629])) * - ((point_powers[17]) - (shifts[2630])) * ((point_powers[17]) - (shifts[2631])) * - ((point_powers[17]) - (shifts[2632])) * ((point_powers[17]) - (shifts[2633])) * - ((point_powers[17]) - (shifts[2634])) * ((point_powers[17]) - (shifts[2635])) * - ((point_powers[17]) - (shifts[2636])) * ((point_powers[17]) - (shifts[2637])) * - ((point_powers[17]) - (shifts[2638])) * ((point_powers[17]) - (shifts[2639])) * - ((point_powers[17]) - (shifts[2640])) * ((point_powers[17]) - (shifts[2641])) * - (domain73) * (domain75)) - : FieldElementT::Zero(); - const FieldElementT& domain77 = - ((uses_keccak_builtin) != (0)) - ? (((point_powers[17]) - (shifts[2642])) * ((point_powers[17]) - (shifts[2643])) * - ((point_powers[17]) - (shifts[2644])) * ((point_powers[17]) - (shifts[2645])) * - ((point_powers[17]) - (shifts[2646])) * ((point_powers[17]) - (shifts[2647])) * - ((point_powers[17]) - (shifts[2648])) * ((point_powers[17]) - (shifts[2649])) * - ((point_powers[17]) - (shifts[2650])) * ((point_powers[17]) - (shifts[2651])) * - ((point_powers[17]) - (shifts[2652])) * ((point_powers[17]) - (shifts[2653])) * - ((point_powers[17]) - (shifts[2654])) * ((point_powers[17]) - (shifts[2655])) * - ((point_powers[17]) - (shifts[2656])) * ((point_powers[17]) - (shifts[2657])) * - ((point_powers[17]) - (shifts[2658])) * ((point_powers[17]) - (shifts[2659])) * - ((point_powers[17]) - (shifts[2660])) * ((point_powers[17]) - (shifts[2661])) * - ((point_powers[17]) - (shifts[2662])) * ((point_powers[17]) - (shifts[2663])) * - ((point_powers[17]) - (shifts[2664])) * ((point_powers[17]) - (shifts[2665])) * - ((point_powers[17]) - (shifts[2666])) * ((point_powers[17]) - (shifts[2667])) * - ((point_powers[17]) - (shifts[2668])) * ((point_powers[17]) - (shifts[2669])) * - ((point_powers[17]) - (shifts[2670])) * ((point_powers[17]) - (shifts[2671])) * - ((point_powers[17]) - (shifts[2672])) * ((point_powers[17]) - (shifts[2673])) * - ((point_powers[17]) - (shifts[2674])) * ((point_powers[17]) - (shifts[2675])) * - ((point_powers[17]) - (shifts[2676])) * ((point_powers[17]) - (shifts[2677])) * - ((point_powers[17]) - (shifts[2678])) * ((point_powers[17]) - (shifts[2679])) * - ((point_powers[17]) - (shifts[2680])) * ((point_powers[17]) - (shifts[2681])) * - ((point_powers[17]) - (shifts[2682])) * ((point_powers[17]) - (shifts[2683])) * - ((point_powers[17]) - (shifts[2684])) * ((point_powers[17]) - (shifts[2685])) * - ((point_powers[17]) - (shifts[2686])) * ((point_powers[17]) - (shifts[2687])) * - ((point_powers[17]) - (shifts[2688])) * ((point_powers[17]) - (shifts[2689])) * - (domain76)) - : FieldElementT::Zero(); - const FieldElementT& domain78 = - ((uses_keccak_builtin) != (0)) - ? (((point_powers[17]) - (shifts[2690])) * ((point_powers[17]) - (shifts[2691])) * - ((point_powers[17]) - (shifts[2692])) * ((point_powers[17]) - (shifts[2693])) * - ((point_powers[17]) - (shifts[2694])) * ((point_powers[17]) - (shifts[2695])) * - ((point_powers[17]) - (shifts[2696])) * ((point_powers[17]) - (shifts[2697])) * - ((point_powers[17]) - (shifts[2698])) * ((point_powers[17]) - (shifts[2699])) * - ((point_powers[17]) - (shifts[2700])) * ((point_powers[17]) - (shifts[2701])) * - ((point_powers[17]) - (shifts[2702])) * ((point_powers[17]) - (shifts[2703])) * - ((point_powers[17]) - (shifts[2704])) * ((point_powers[17]) - (shifts[2705])) * - ((point_powers[17]) - (shifts[2706])) * ((point_powers[17]) - (shifts[2707])) * - ((point_powers[17]) - (shifts[2708])) * ((point_powers[17]) - (shifts[2709])) * - ((point_powers[17]) - (shifts[2710])) * ((point_powers[17]) - (shifts[2711])) * - ((point_powers[17]) - (shifts[2712])) * ((point_powers[17]) - (shifts[2713])) * - (domain77)) - : FieldElementT::Zero(); - const FieldElementT& domain79 = - ((uses_keccak_builtin) != (0)) ? ((point_powers[17]) - (shifts[37])) : FieldElementT::Zero(); - const FieldElementT& domain80 = - ((uses_keccak_builtin) != (0)) - ? (((point_powers[17]) - (shifts[2714])) * ((point_powers[17]) - (shifts[2715])) * - ((point_powers[17]) - (shifts[2716])) * ((point_powers[17]) - (shifts[2717])) * - ((point_powers[17]) - (shifts[2718])) * ((point_powers[17]) - (shifts[2719])) * - ((point_powers[17]) - (shifts[2720])) * (domain79)) - : FieldElementT::Zero(); - const FieldElementT& domain81 = - ((uses_keccak_builtin) != (0)) - ? (((point_powers[17]) - (shifts[2721])) * ((point_powers[17]) - (shifts[2722])) * - ((point_powers[17]) - (shifts[2723])) * ((point_powers[17]) - (shifts[2724])) * - ((point_powers[17]) - (shifts[2725])) * ((point_powers[17]) - (shifts[2726])) * - ((point_powers[17]) - (shifts[2727])) * ((point_powers[17]) - (shifts[2728])) * - ((point_powers[17]) - (shifts[2729])) * ((point_powers[17]) - (shifts[2730])) * - ((point_powers[17]) - (shifts[2731])) * ((point_powers[17]) - (shifts[2732])) * - ((point_powers[17]) - (shifts[2733])) * ((point_powers[17]) - (shifts[2734])) * - ((point_powers[17]) - (shifts[2735])) * ((point_powers[17]) - (shifts[2736])) * - (domain33) * (domain80)) - : FieldElementT::Zero(); - const FieldElementT& domain82 = - ((uses_keccak_builtin) != (0)) - ? (((point_powers[17]) - (shifts[21])) * ((point_powers[17]) - (shifts[2737])) * - ((point_powers[17]) - (shifts[2738])) * ((point_powers[17]) - (shifts[2739])) * - ((point_powers[17]) - (shifts[2740])) * ((point_powers[17]) - (shifts[2741])) * - ((point_powers[17]) - (shifts[2742])) * ((point_powers[17]) - (shifts[2743]))) - : FieldElementT::Zero(); - const FieldElementT& domain83 = ((uses_keccak_builtin) != (0)) - ? ((point_powers[17]) - (shifts[2744])) - : FieldElementT::Zero(); - const FieldElementT& domain84 = - ((uses_keccak_builtin) != (0)) - ? (((point_powers[17]) - (shifts[2745])) * ((point_powers[17]) - (shifts[2746])) * - ((point_powers[17]) - (shifts[2747])) * ((point_powers[17]) - (shifts[2748])) * - ((point_powers[17]) - (shifts[2749])) * ((point_powers[17]) - (shifts[2750])) * - ((point_powers[17]) - (shifts[2751])) * ((point_powers[17]) - (shifts[164])) * - ((point_powers[17]) - (shifts[2752])) * ((point_powers[17]) - (shifts[2753])) * - ((point_powers[17]) - (shifts[2754])) * ((point_powers[17]) - (shifts[2755])) * - ((point_powers[17]) - (shifts[2756])) * ((point_powers[17]) - (shifts[2757])) * - ((point_powers[17]) - (shifts[2758])) * ((point_powers[17]) - (shifts[2759])) * - ((point_powers[17]) - (shifts[2760])) * ((point_powers[17]) - (shifts[2761])) * - ((point_powers[17]) - (shifts[2762])) * ((point_powers[17]) - (shifts[2763])) * - ((point_powers[17]) - (shifts[2764])) * ((point_powers[17]) - (shifts[2765])) * - ((point_powers[17]) - (shifts[2766])) * (domain82) * (domain83)) - : FieldElementT::Zero(); - const FieldElementT& domain85 = - ((uses_keccak_builtin) != (0)) - ? (((point_powers[17]) - (shifts[2767])) * ((point_powers[17]) - (shifts[2768])) * - ((point_powers[17]) - (shifts[2769])) * ((point_powers[17]) - (shifts[2770])) * - ((point_powers[17]) - (shifts[2771])) * ((point_powers[17]) - (shifts[2772])) * - ((point_powers[17]) - (shifts[2773])) * ((point_powers[17]) - (shifts[2774])) * - ((point_powers[17]) - (shifts[2775])) * ((point_powers[17]) - (shifts[2776])) * - ((point_powers[17]) - (shifts[2777])) * ((point_powers[17]) - (shifts[2778])) * - ((point_powers[17]) - (shifts[2779])) * ((point_powers[17]) - (shifts[2780])) * - ((point_powers[17]) - (shifts[2781])) * ((point_powers[17]) - (shifts[2782])) * - (domain81)) - : FieldElementT::Zero(); - const FieldElementT& domain86 = - ((uses_keccak_builtin) != (0)) - ? (((point_powers[17]) - (shifts[2783])) * ((point_powers[17]) - (shifts[2784])) * - ((point_powers[17]) - (shifts[2785])) * ((point_powers[17]) - (shifts[2786])) * - ((point_powers[17]) - (shifts[2787])) * ((point_powers[17]) - (shifts[2788])) * - ((point_powers[17]) - (shifts[2789])) * ((point_powers[17]) - (shifts[2790])) * - ((point_powers[17]) - (shifts[2791])) * ((point_powers[17]) - (shifts[2792])) * - ((point_powers[17]) - (shifts[2793])) * ((point_powers[17]) - (shifts[2794])) * - ((point_powers[17]) - (shifts[2795])) * ((point_powers[17]) - (shifts[2796])) * - ((point_powers[17]) - (shifts[2797])) * ((point_powers[17]) - (shifts[2798])) * - ((point_powers[17]) - (shifts[2799])) * ((point_powers[17]) - (shifts[2800])) * - ((point_powers[17]) - (shifts[2801])) * ((point_powers[17]) - (shifts[2802])) * - ((point_powers[17]) - (shifts[2803])) * ((point_powers[17]) - (shifts[2804])) * - ((point_powers[17]) - (shifts[2805])) * ((point_powers[17]) - (shifts[2806])) * - ((point_powers[17]) - (shifts[2807])) * ((point_powers[17]) - (shifts[2808])) * - ((point_powers[17]) - (shifts[2809])) * ((point_powers[17]) - (shifts[2810])) * - ((point_powers[17]) - (shifts[2811])) * ((point_powers[17]) - (shifts[2812])) * - ((point_powers[17]) - (shifts[2813])) * ((point_powers[17]) - (shifts[2814])) * - ((point_powers[17]) - (shifts[2815])) * ((point_powers[17]) - (shifts[2816])) * - ((point_powers[17]) - (shifts[2817])) * ((point_powers[17]) - (shifts[2818])) * - ((point_powers[17]) - (shifts[2819])) * ((point_powers[17]) - (shifts[2820])) * - ((point_powers[17]) - (shifts[2821])) * ((point_powers[17]) - (shifts[2822])) * - ((point_powers[17]) - (shifts[2823])) * ((point_powers[17]) - (shifts[2824])) * - ((point_powers[17]) - (shifts[2825])) * ((point_powers[17]) - (shifts[2826])) * - ((point_powers[17]) - (shifts[2827])) * ((point_powers[17]) - (shifts[2828])) * - ((point_powers[17]) - (shifts[2829])) * ((point_powers[17]) - (shifts[2830])) * - (domain84) * (domain85)) - : FieldElementT::Zero(); - const FieldElementT& domain87 = ((uses_keccak_builtin) != (0)) - ? ((point_powers[17]) - (shifts[2831])) - : FieldElementT::Zero(); - const FieldElementT& domain88 = - ((uses_keccak_builtin) != (0)) - ? (((point_powers[17]) - (shifts[2832])) * ((point_powers[17]) - (shifts[2833])) * - ((point_powers[17]) - (shifts[2834])) * ((point_powers[17]) - (shifts[2835])) * - ((point_powers[17]) - (shifts[2836])) * ((point_powers[17]) - (shifts[2837])) * - ((point_powers[17]) - (shifts[2838])) * ((point_powers[17]) - (shifts[2839])) * - ((point_powers[17]) - (shifts[2840])) * ((point_powers[17]) - (shifts[2841])) * - ((point_powers[17]) - (shifts[2842])) * ((point_powers[17]) - (shifts[2843])) * - ((point_powers[17]) - (shifts[2844])) * ((point_powers[17]) - (shifts[2845])) * - ((point_powers[17]) - (shifts[2846])) * (domain87)) - : FieldElementT::Zero(); - const FieldElementT& domain89 = - ((uses_keccak_builtin) != (0)) - ? (((point_powers[17]) - (shifts[2847])) * ((point_powers[17]) - (shifts[2848])) * - ((point_powers[17]) - (shifts[2849])) * ((point_powers[17]) - (shifts[2850])) * - ((point_powers[17]) - (shifts[2851])) * ((point_powers[17]) - (shifts[2852])) * - ((point_powers[17]) - (shifts[2853])) * ((point_powers[17]) - (shifts[2854])) * - (domain88)) - : FieldElementT::Zero(); - const FieldElementT& domain90 = - ((uses_keccak_builtin) != (0)) - ? (((point_powers[17]) - (shifts[2855])) * ((point_powers[17]) - (shifts[2856])) * - ((point_powers[17]) - (shifts[2857])) * ((point_powers[17]) - (shifts[2858])) * - ((point_powers[17]) - (shifts[2859])) * ((point_powers[17]) - (shifts[2860])) * - ((point_powers[17]) - (shifts[2861])) * ((point_powers[17]) - (shifts[2862])) * - (domain89)) - : FieldElementT::Zero(); - const FieldElementT& domain91 = - ((uses_keccak_builtin) != (0)) - ? (((point_powers[17]) - (shifts[2863])) * ((point_powers[17]) - (shifts[2864])) * - ((point_powers[17]) - (shifts[2865])) * ((point_powers[17]) - (shifts[2866])) * - ((point_powers[17]) - (shifts[2867])) * ((point_powers[17]) - (shifts[2868])) * - ((point_powers[17]) - (shifts[2869])) * ((point_powers[17]) - (shifts[2870])) * - ((point_powers[17]) - (shifts[2871])) * ((point_powers[17]) - (shifts[2872])) * - ((point_powers[17]) - (shifts[2873])) * ((point_powers[17]) - (shifts[2874])) * - ((point_powers[17]) - (shifts[2875])) * ((point_powers[17]) - (shifts[2876])) * - ((point_powers[17]) - (shifts[2877])) * ((point_powers[17]) - (shifts[2878])) * - ((point_powers[17]) - (shifts[2879])) * ((point_powers[17]) - (shifts[2880])) * - ((point_powers[17]) - (shifts[2881])) * ((point_powers[17]) - (shifts[2882])) * - ((point_powers[17]) - (shifts[2883])) * ((point_powers[17]) - (shifts[2884])) * - ((point_powers[17]) - (shifts[2885])) * ((point_powers[17]) - (shifts[2886])) * - ((point_powers[17]) - (shifts[2887])) * ((point_powers[17]) - (shifts[2888])) * - ((point_powers[17]) - (shifts[2889])) * ((point_powers[17]) - (shifts[2890])) * - ((point_powers[17]) - (shifts[2891])) * ((point_powers[17]) - (shifts[2892])) * - ((point_powers[17]) - (shifts[2893])) * ((point_powers[17]) - (shifts[2894])) * - (domain86)) - : FieldElementT::Zero(); - const FieldElementT& domain92 = - ((uses_keccak_builtin) != (0)) - ? (((point_powers[17]) - (shifts[2895])) * ((point_powers[17]) - (shifts[2896])) * - ((point_powers[17]) - (shifts[2897])) * ((point_powers[17]) - (shifts[2898])) * - ((point_powers[17]) - (shifts[2899])) * ((point_powers[17]) - (shifts[2900])) * - ((point_powers[17]) - (shifts[2901])) * ((point_powers[17]) - (shifts[2902])) * - ((point_powers[17]) - (shifts[2903])) * ((point_powers[17]) - (shifts[2904])) * - ((point_powers[17]) - (shifts[2905])) * ((point_powers[17]) - (shifts[2906])) * - ((point_powers[17]) - (shifts[2907])) * ((point_powers[17]) - (shifts[2908])) * - ((point_powers[17]) - (shifts[2909])) * ((point_powers[17]) - (shifts[2910])) * - ((point_powers[17]) - (shifts[2911])) * ((point_powers[17]) - (shifts[2912])) * - ((point_powers[17]) - (shifts[2913])) * ((point_powers[17]) - (shifts[2914])) * - ((point_powers[17]) - (shifts[2915])) * ((point_powers[17]) - (shifts[2916])) * - ((point_powers[17]) - (shifts[2917])) * ((point_powers[17]) - (shifts[2918])) * - ((point_powers[17]) - (shifts[2919])) * ((point_powers[17]) - (shifts[2920])) * - ((point_powers[17]) - (shifts[2921])) * ((point_powers[17]) - (shifts[2922])) * - ((point_powers[17]) - (shifts[2923])) * ((point_powers[17]) - (shifts[2924])) * - ((point_powers[17]) - (shifts[2925])) * ((point_powers[17]) - (shifts[2926])) * - (domain90) * (domain91)) - : FieldElementT::Zero(); - const FieldElementT& domain93 = - ((uses_keccak_builtin) != (0)) - ? (((point_powers[17]) - (shifts[45])) * ((point_powers[17]) - (shifts[2927])) * - ((point_powers[17]) - (shifts[2928])) * ((point_powers[17]) - (shifts[2929])) * - ((point_powers[17]) - (shifts[2930])) * ((point_powers[17]) - (shifts[2931])) * - ((point_powers[17]) - (shifts[2932])) * ((point_powers[17]) - (shifts[2933])) * - ((point_powers[17]) - (shifts[2934])) * ((point_powers[17]) - (shifts[2935])) * - ((point_powers[17]) - (shifts[2936])) * ((point_powers[17]) - (shifts[2937])) * - ((point_powers[17]) - (shifts[2938])) * ((point_powers[17]) - (shifts[2939])) * - ((point_powers[17]) - (shifts[2940])) * ((point_powers[17]) - (shifts[2941])) * - ((point_powers[17]) - (shifts[188])) * ((point_powers[17]) - (shifts[2942])) * - ((point_powers[17]) - (shifts[2943])) * ((point_powers[17]) - (shifts[2944])) * - ((point_powers[17]) - (shifts[2945])) * ((point_powers[17]) - (shifts[2946])) * - ((point_powers[17]) - (shifts[2947])) * ((point_powers[17]) - (shifts[2948])) * - ((point_powers[17]) - (shifts[2949])) * ((point_powers[17]) - (shifts[2950])) * - ((point_powers[17]) - (shifts[2951])) * ((point_powers[17]) - (shifts[2952])) * - ((point_powers[17]) - (shifts[2953])) * ((point_powers[17]) - (shifts[2954])) * - ((point_powers[17]) - (shifts[2955])) * ((point_powers[17]) - (shifts[2956]))) - : FieldElementT::Zero(); - const FieldElementT& domain94 = - ((uses_keccak_builtin) != (0)) - ? (((point_powers[17]) - (shifts[212])) * ((point_powers[17]) - (shifts[2957])) * - ((point_powers[17]) - (shifts[2958])) * ((point_powers[17]) - (shifts[2959])) * - ((point_powers[17]) - (shifts[2960])) * ((point_powers[17]) - (shifts[2961])) * - ((point_powers[17]) - (shifts[2962])) * ((point_powers[17]) - (shifts[2963])) * - (domain93)) - : FieldElementT::Zero(); - const FieldElementT& domain95 = ((uses_keccak_builtin) != (0)) - ? ((point_powers[17]) - (shifts[2964])) - : FieldElementT::Zero(); - const FieldElementT& domain96 = - ((uses_keccak_builtin) != (0)) - ? (((point_powers[17]) - (shifts[2965])) * ((point_powers[17]) - (shifts[2966])) * - ((point_powers[17]) - (shifts[2967])) * ((point_powers[17]) - (shifts[2968])) * - ((point_powers[17]) - (shifts[2969])) * ((point_powers[17]) - (shifts[2970])) * - ((point_powers[17]) - (shifts[2971])) * ((point_powers[17]) - (shifts[2972])) * - ((point_powers[17]) - (shifts[2973])) * ((point_powers[17]) - (shifts[2974])) * - ((point_powers[17]) - (shifts[2975])) * ((point_powers[17]) - (shifts[2976])) * - ((point_powers[17]) - (shifts[2977])) * ((point_powers[17]) - (shifts[2978])) * - ((point_powers[17]) - (shifts[2979])) * ((point_powers[17]) - (shifts[2980])) * - ((point_powers[17]) - (shifts[2981])) * ((point_powers[17]) - (shifts[2982])) * - ((point_powers[17]) - (shifts[2983])) * ((point_powers[17]) - (shifts[2984])) * - ((point_powers[17]) - (shifts[2985])) * ((point_powers[17]) - (shifts[2986])) * - ((point_powers[17]) - (shifts[2987])) * (domain94) * (domain95)) - : FieldElementT::Zero(); - const FieldElementT& domain97 = - ((uses_keccak_builtin) != (0)) - ? (((point_powers[17]) - (shifts[2988])) * ((point_powers[17]) - (shifts[2989])) * - ((point_powers[17]) - (shifts[2990])) * ((point_powers[17]) - (shifts[2991])) * - ((point_powers[17]) - (shifts[2992])) * ((point_powers[17]) - (shifts[2993])) * - ((point_powers[17]) - (shifts[2994])) * ((point_powers[17]) - (shifts[2995])) * - (domain96)) - : FieldElementT::Zero(); - const FieldElementT& domain98 = - ((uses_keccak_builtin) != (0)) - ? (((point_powers[17]) - (shifts[2996])) * ((point_powers[17]) - (shifts[2997])) * - ((point_powers[17]) - (shifts[2998])) * ((point_powers[17]) - (shifts[2999])) * - ((point_powers[17]) - (shifts[3000])) * ((point_powers[17]) - (shifts[3001])) * - ((point_powers[17]) - (shifts[3002])) * ((point_powers[17]) - (shifts[3003])) * - (domain97)) - : FieldElementT::Zero(); - const FieldElementT& domain99 = - ((uses_keccak_builtin) != (0)) - ? (((point_powers[17]) - (shifts[3004])) * ((point_powers[17]) - (shifts[3005])) * - ((point_powers[17]) - (shifts[3006])) * ((point_powers[17]) - (shifts[3007])) * - ((point_powers[17]) - (shifts[3008])) * ((point_powers[17]) - (shifts[3009])) * - ((point_powers[17]) - (shifts[3010])) * ((point_powers[17]) - (shifts[3011])) * - ((point_powers[17]) - (shifts[3012])) * ((point_powers[17]) - (shifts[3013])) * - ((point_powers[17]) - (shifts[3014])) * ((point_powers[17]) - (shifts[3015])) * - ((point_powers[17]) - (shifts[3016])) * ((point_powers[17]) - (shifts[3017])) * - ((point_powers[17]) - (shifts[3018])) * ((point_powers[17]) - (shifts[3019])) * - ((point_powers[17]) - (shifts[3020])) * ((point_powers[17]) - (shifts[3021])) * - ((point_powers[17]) - (shifts[3022])) * ((point_powers[17]) - (shifts[3023])) * - ((point_powers[17]) - (shifts[3024])) * ((point_powers[17]) - (shifts[3025])) * - ((point_powers[17]) - (shifts[3026])) * ((point_powers[17]) - (shifts[3027])) * - ((point_powers[17]) - (shifts[3028])) * ((point_powers[17]) - (shifts[3029])) * - ((point_powers[17]) - (shifts[3030])) * ((point_powers[17]) - (shifts[3031])) * - ((point_powers[17]) - (shifts[3032])) * ((point_powers[17]) - (shifts[3033])) * - ((point_powers[17]) - (shifts[3034])) * ((point_powers[17]) - (shifts[3035])) * - ((point_powers[17]) - (shifts[3036])) * ((point_powers[17]) - (shifts[3037])) * - ((point_powers[17]) - (shifts[3038])) * ((point_powers[17]) - (shifts[3039])) * - ((point_powers[17]) - (shifts[3040])) * ((point_powers[17]) - (shifts[3041])) * - ((point_powers[17]) - (shifts[3042])) * ((point_powers[17]) - (shifts[3043])) * - ((point_powers[17]) - (shifts[3044])) * ((point_powers[17]) - (shifts[3045])) * - ((point_powers[17]) - (shifts[3046])) * ((point_powers[17]) - (shifts[3047])) * - ((point_powers[17]) - (shifts[3048])) * ((point_powers[17]) - (shifts[3049])) * - ((point_powers[17]) - (shifts[3050])) * ((point_powers[17]) - (shifts[3051])) * - ((point_powers[17]) - (shifts[3052])) * ((point_powers[17]) - (shifts[3053])) * - ((point_powers[17]) - (shifts[3054])) * ((point_powers[17]) - (shifts[3055])) * - ((point_powers[17]) - (shifts[3056])) * ((point_powers[17]) - (shifts[3057])) * - ((point_powers[17]) - (shifts[3058])) * ((point_powers[17]) - (shifts[3059])) * - ((point_powers[17]) - (shifts[3060])) * ((point_powers[17]) - (shifts[3061])) * - ((point_powers[17]) - (shifts[3062])) * ((point_powers[17]) - (shifts[3063])) * - ((point_powers[17]) - (shifts[3064])) * ((point_powers[17]) - (shifts[3065])) * - ((point_powers[17]) - (shifts[3066])) * ((point_powers[17]) - (shifts[3067])) * - (domain92)) - : FieldElementT::Zero(); - const FieldElementT& domain100 = - ((uses_keccak_builtin) != (0)) - ? (((point_powers[17]) - (shifts[3068])) * ((point_powers[17]) - (shifts[3069])) * - ((point_powers[17]) - (shifts[3070])) * ((point_powers[17]) - (shifts[3071])) * - ((point_powers[17]) - (shifts[3072])) * ((point_powers[17]) - (shifts[3073])) * - ((point_powers[17]) - (shifts[3074])) * ((point_powers[17]) - (shifts[3075])) * - ((point_powers[17]) - (shifts[3076])) * ((point_powers[17]) - (shifts[3077])) * - ((point_powers[17]) - (shifts[3078])) * ((point_powers[17]) - (shifts[3079])) * - ((point_powers[17]) - (shifts[3080])) * ((point_powers[17]) - (shifts[3081])) * - ((point_powers[17]) - (shifts[3082])) * ((point_powers[17]) - (shifts[3083])) * - (domain99)) - : FieldElementT::Zero(); - const FieldElementT& domain101 = - ((uses_keccak_builtin) != (0)) - ? (((point_powers[17]) - (shifts[3084])) * ((point_powers[17]) - (shifts[3085])) * - ((point_powers[17]) - (shifts[3086])) * ((point_powers[17]) - (shifts[3087])) * - ((point_powers[17]) - (shifts[3088])) * ((point_powers[17]) - (shifts[3089])) * - ((point_powers[17]) - (shifts[3090])) * ((point_powers[17]) - (shifts[3091])) * - ((point_powers[17]) - (shifts[3092])) * ((point_powers[17]) - (shifts[3093])) * - ((point_powers[17]) - (shifts[3094])) * ((point_powers[17]) - (shifts[3095])) * - ((point_powers[17]) - (shifts[3096])) * ((point_powers[17]) - (shifts[3097])) * - ((point_powers[17]) - (shifts[3098])) * ((point_powers[17]) - (shifts[3099])) * - ((point_powers[17]) - (shifts[3100])) * ((point_powers[17]) - (shifts[3101])) * - ((point_powers[17]) - (shifts[3102])) * ((point_powers[17]) - (shifts[3103])) * - ((point_powers[17]) - (shifts[3104])) * ((point_powers[17]) - (shifts[3105])) * - ((point_powers[17]) - (shifts[3106])) * ((point_powers[17]) - (shifts[3107])) * - ((point_powers[17]) - (shifts[3108])) * ((point_powers[17]) - (shifts[3109])) * - ((point_powers[17]) - (shifts[3110])) * ((point_powers[17]) - (shifts[3111])) * - ((point_powers[17]) - (shifts[3112])) * ((point_powers[17]) - (shifts[3113])) * - ((point_powers[17]) - (shifts[3114])) * ((point_powers[17]) - (shifts[3115])) * - ((point_powers[17]) - (shifts[3116])) * ((point_powers[17]) - (shifts[3117])) * - ((point_powers[17]) - (shifts[3118])) * ((point_powers[17]) - (shifts[3119])) * - ((point_powers[17]) - (shifts[3120])) * ((point_powers[17]) - (shifts[3121])) * - ((point_powers[17]) - (shifts[3122])) * ((point_powers[17]) - (shifts[3123])) * - ((point_powers[17]) - (shifts[3124])) * ((point_powers[17]) - (shifts[3125])) * - ((point_powers[17]) - (shifts[3126])) * ((point_powers[17]) - (shifts[3127])) * - ((point_powers[17]) - (shifts[3128])) * ((point_powers[17]) - (shifts[3129])) * - ((point_powers[17]) - (shifts[3130])) * ((point_powers[17]) - (shifts[3131])) * - (domain100)) - : FieldElementT::Zero(); - const FieldElementT& domain102 = - ((uses_keccak_builtin) != (0)) - ? (((point_powers[17]) - (shifts[3132])) * ((point_powers[17]) - (shifts[3133])) * - ((point_powers[17]) - (shifts[3134])) * ((point_powers[17]) - (shifts[3135])) * - ((point_powers[17]) - (shifts[3136])) * ((point_powers[17]) - (shifts[3137])) * - ((point_powers[17]) - (shifts[3138])) * ((point_powers[17]) - (shifts[3139])) * - ((point_powers[17]) - (shifts[3140])) * ((point_powers[17]) - (shifts[3141])) * - ((point_powers[17]) - (shifts[3142])) * ((point_powers[17]) - (shifts[3143])) * - ((point_powers[17]) - (shifts[3144])) * ((point_powers[17]) - (shifts[3145])) * - ((point_powers[17]) - (shifts[3146])) * ((point_powers[17]) - (shifts[3147])) * - (domain101)) - : FieldElementT::Zero(); - const FieldElementT& domain103 = - ((uses_keccak_builtin) != (0)) - ? (((point_powers[17]) - (shifts[3148])) * ((point_powers[17]) - (shifts[3149])) * - ((point_powers[17]) - (shifts[3150])) * ((point_powers[17]) - (shifts[3151])) * - ((point_powers[17]) - (shifts[3152])) * ((point_powers[17]) - (shifts[3153])) * - ((point_powers[17]) - (shifts[3154])) * ((point_powers[17]) - (shifts[3155])) * - ((point_powers[17]) - (shifts[3156])) * ((point_powers[17]) - (shifts[3157])) * - ((point_powers[17]) - (shifts[3158])) * ((point_powers[17]) - (shifts[3159])) * - ((point_powers[17]) - (shifts[3160])) * ((point_powers[17]) - (shifts[3161])) * - ((point_powers[17]) - (shifts[3162])) * ((point_powers[17]) - (shifts[3163])) * - (domain98) * (domain102)) - : FieldElementT::Zero(); - const FieldElementT& domain104 = - ((uses_keccak_builtin) != (0)) - ? (((point_powers[17]) - (shifts[69])) * ((point_powers[17]) - (shifts[3164])) * - ((point_powers[17]) - (shifts[3165])) * ((point_powers[17]) - (shifts[3166])) * - ((point_powers[17]) - (shifts[3167])) * ((point_powers[17]) - (shifts[3168])) * - ((point_powers[17]) - (shifts[3169])) * ((point_powers[17]) - (shifts[3170]))) - : FieldElementT::Zero(); - const FieldElementT& domain105 = - ((uses_keccak_builtin) != (0)) - ? (((point_powers[17]) - (shifts[3171])) * ((point_powers[17]) - (shifts[3172])) * - ((point_powers[17]) - (shifts[3173])) * ((point_powers[17]) - (shifts[3174])) * - ((point_powers[17]) - (shifts[3175])) * ((point_powers[17]) - (shifts[3176])) * - ((point_powers[17]) - (shifts[3177])) * ((point_powers[17]) - (shifts[3178])) * - ((point_powers[17]) - (shifts[3179])) * ((point_powers[17]) - (shifts[3180])) * - ((point_powers[17]) - (shifts[3181])) * ((point_powers[17]) - (shifts[3182])) * - ((point_powers[17]) - (shifts[3183])) * ((point_powers[17]) - (shifts[3184])) * - ((point_powers[17]) - (shifts[3185])) * ((point_powers[17]) - (shifts[3186])) * - (domain103) * (domain104)) - : FieldElementT::Zero(); - const FieldElementT& domain106 = - ((uses_keccak_builtin) != (0)) - ? (((point_powers[17]) - (shifts[3187])) * ((point_powers[17]) - (shifts[3188])) * - ((point_powers[17]) - (shifts[3189])) * ((point_powers[17]) - (shifts[3190])) * - ((point_powers[17]) - (shifts[3191])) * ((point_powers[17]) - (shifts[3192])) * - ((point_powers[17]) - (shifts[3193])) * ((point_powers[17]) - (shifts[3194])) * - ((point_powers[17]) - (shifts[236])) * ((point_powers[17]) - (shifts[3195])) * - ((point_powers[17]) - (shifts[3196])) * ((point_powers[17]) - (shifts[3197])) * - ((point_powers[17]) - (shifts[3198])) * ((point_powers[17]) - (shifts[3199])) * - ((point_powers[17]) - (shifts[3200])) * ((point_powers[17]) - (shifts[3201]))) - : FieldElementT::Zero(); - const FieldElementT& domain107 = - ((uses_keccak_builtin) != (0)) - ? (((point_powers[17]) - (shifts[3202])) * ((point_powers[17]) - (shifts[3203])) * - ((point_powers[17]) - (shifts[3204])) * ((point_powers[17]) - (shifts[3205])) * - ((point_powers[17]) - (shifts[3206])) * ((point_powers[17]) - (shifts[3207])) * - ((point_powers[17]) - (shifts[3208])) * ((point_powers[17]) - (shifts[3209])) * - ((point_powers[17]) - (shifts[260])) * ((point_powers[17]) - (shifts[3210])) * - ((point_powers[17]) - (shifts[3211])) * ((point_powers[17]) - (shifts[3212])) * - ((point_powers[17]) - (shifts[3213])) * ((point_powers[17]) - (shifts[3214])) * - ((point_powers[17]) - (shifts[3215])) * ((point_powers[17]) - (shifts[3216])) * - (domain106)) - : FieldElementT::Zero(); - const FieldElementT& domain108 = - ((uses_keccak_builtin) != (0)) - ? (((point_powers[17]) - (shifts[3217])) * ((point_powers[17]) - (shifts[3218])) * - ((point_powers[17]) - (shifts[3219])) * ((point_powers[17]) - (shifts[3220])) * - ((point_powers[17]) - (shifts[3221])) * ((point_powers[17]) - (shifts[3222])) * - ((point_powers[17]) - (shifts[3223])) * ((point_powers[17]) - (shifts[3224])) * - ((point_powers[17]) - (shifts[3225])) * ((point_powers[17]) - (shifts[3226])) * - ((point_powers[17]) - (shifts[3227])) * ((point_powers[17]) - (shifts[3228])) * - ((point_powers[17]) - (shifts[3229])) * ((point_powers[17]) - (shifts[3230])) * - ((point_powers[17]) - (shifts[3231])) * ((point_powers[17]) - (shifts[3232])) * - ((point_powers[17]) - (shifts[3233])) * ((point_powers[17]) - (shifts[3234])) * - ((point_powers[17]) - (shifts[3235])) * ((point_powers[17]) - (shifts[3236])) * - ((point_powers[17]) - (shifts[3237])) * ((point_powers[17]) - (shifts[3238])) * - ((point_powers[17]) - (shifts[3239])) * ((point_powers[17]) - (shifts[3240])) * - ((point_powers[17]) - (shifts[3241])) * ((point_powers[17]) - (shifts[3242])) * - ((point_powers[17]) - (shifts[3243])) * ((point_powers[17]) - (shifts[3244])) * - ((point_powers[17]) - (shifts[3245])) * ((point_powers[17]) - (shifts[3246])) * - ((point_powers[17]) - (shifts[3247])) * ((point_powers[17]) - (shifts[3248])) * - ((point_powers[17]) - (shifts[3249])) * ((point_powers[17]) - (shifts[3250])) * - ((point_powers[17]) - (shifts[3251])) * ((point_powers[17]) - (shifts[3252])) * - ((point_powers[17]) - (shifts[3253])) * ((point_powers[17]) - (shifts[3254])) * - ((point_powers[17]) - (shifts[3255])) * ((point_powers[17]) - (shifts[3256])) * - ((point_powers[17]) - (shifts[3257])) * ((point_powers[17]) - (shifts[3258])) * - ((point_powers[17]) - (shifts[3259])) * ((point_powers[17]) - (shifts[3260])) * - ((point_powers[17]) - (shifts[3261])) * ((point_powers[17]) - (shifts[3262])) * - ((point_powers[17]) - (shifts[3263])) * ((point_powers[17]) - (shifts[3264])) * - ((point_powers[17]) - (shifts[3265])) * ((point_powers[17]) - (shifts[3266])) * - ((point_powers[17]) - (shifts[3267])) * ((point_powers[17]) - (shifts[3268])) * - ((point_powers[17]) - (shifts[3269])) * ((point_powers[17]) - (shifts[3270])) * - ((point_powers[17]) - (shifts[3271])) * ((point_powers[17]) - (shifts[3272])) * - ((point_powers[17]) - (shifts[3273])) * ((point_powers[17]) - (shifts[3274])) * - ((point_powers[17]) - (shifts[3275])) * ((point_powers[17]) - (shifts[3276])) * - ((point_powers[17]) - (shifts[3277])) * ((point_powers[17]) - (shifts[3278])) * - ((point_powers[17]) - (shifts[3279])) * ((point_powers[17]) - (shifts[3280])) * - (domain105) * (domain107)) - : FieldElementT::Zero(); - const FieldElementT& domain109 = - ((uses_keccak_builtin) != (0)) - ? (((point_powers[17]) - (shifts[3281])) * ((point_powers[17]) - (shifts[3282])) * - ((point_powers[17]) - (shifts[3283])) * ((point_powers[17]) - (shifts[3284])) * - ((point_powers[17]) - (shifts[3285])) * ((point_powers[17]) - (shifts[3286])) * - ((point_powers[17]) - (shifts[3287])) * ((point_powers[17]) - (shifts[3288])) * - ((point_powers[17]) - (shifts[3289])) * ((point_powers[17]) - (shifts[3290])) * - ((point_powers[17]) - (shifts[3291])) * ((point_powers[17]) - (shifts[3292])) * - ((point_powers[17]) - (shifts[3293])) * ((point_powers[17]) - (shifts[3294])) * - ((point_powers[17]) - (shifts[3295])) * ((point_powers[17]) - (shifts[3296])) * - ((point_powers[17]) - (shifts[3297])) * ((point_powers[17]) - (shifts[3298])) * - ((point_powers[17]) - (shifts[3299])) * ((point_powers[17]) - (shifts[3300])) * - ((point_powers[17]) - (shifts[3301])) * ((point_powers[17]) - (shifts[3302])) * - ((point_powers[17]) - (shifts[3303])) * ((point_powers[17]) - (shifts[3304])) * - ((point_powers[17]) - (shifts[3305])) * ((point_powers[17]) - (shifts[3306])) * - ((point_powers[17]) - (shifts[3307])) * ((point_powers[17]) - (shifts[3308])) * - ((point_powers[17]) - (shifts[3309])) * ((point_powers[17]) - (shifts[3310])) * - ((point_powers[17]) - (shifts[3311])) * ((point_powers[17]) - (shifts[3312])) * - ((point_powers[17]) - (shifts[3313])) * ((point_powers[17]) - (shifts[3314])) * - ((point_powers[17]) - (shifts[3315])) * ((point_powers[17]) - (shifts[3316])) * - ((point_powers[17]) - (shifts[3317])) * ((point_powers[17]) - (shifts[3318])) * - ((point_powers[17]) - (shifts[3319])) * ((point_powers[17]) - (shifts[3320])) * - ((point_powers[17]) - (shifts[3321])) * ((point_powers[17]) - (shifts[3322])) * - ((point_powers[17]) - (shifts[3323])) * ((point_powers[17]) - (shifts[3324])) * - ((point_powers[17]) - (shifts[3325])) * ((point_powers[17]) - (shifts[3326])) * - ((point_powers[17]) - (shifts[3327])) * ((point_powers[17]) - (shifts[3328])) * - (domain108)) - : FieldElementT::Zero(); - const FieldElementT& domain110 = - ((uses_keccak_builtin) != (0)) - ? (((point_powers[17]) - (shifts[3329])) * ((point_powers[17]) - (shifts[3330])) * - ((point_powers[17]) - (shifts[3331])) * ((point_powers[17]) - (shifts[3332])) * - ((point_powers[17]) - (shifts[3333])) * ((point_powers[17]) - (shifts[3334])) * - ((point_powers[17]) - (shifts[3335])) * ((point_powers[17]) - (shifts[3336])) * - ((point_powers[17]) - (shifts[3337])) * ((point_powers[17]) - (shifts[3338])) * - ((point_powers[17]) - (shifts[3339])) * ((point_powers[17]) - (shifts[3340])) * - ((point_powers[17]) - (shifts[3341])) * ((point_powers[17]) - (shifts[3342])) * - ((point_powers[17]) - (shifts[3343])) * ((point_powers[17]) - (shifts[3344])) * - ((point_powers[17]) - (shifts[3345])) * ((point_powers[17]) - (shifts[3346])) * - ((point_powers[17]) - (shifts[3347])) * ((point_powers[17]) - (shifts[3348])) * - ((point_powers[17]) - (shifts[3349])) * ((point_powers[17]) - (shifts[3350])) * - ((point_powers[17]) - (shifts[3351])) * ((point_powers[17]) - (shifts[3352])) * - (domain109)) - : FieldElementT::Zero(); - const FieldElementT& domain111 = - ((uses_keccak_builtin) != (0)) ? ((domain32) * (domain80)) : FieldElementT::Zero(); - const FieldElementT& domain112 = - ((uses_keccak_builtin) != (0)) ? ((domain84) * (domain111)) : FieldElementT::Zero(); - const FieldElementT& domain113 = - ((uses_keccak_builtin) != (0)) ? ((domain89) * (domain112)) : FieldElementT::Zero(); - const FieldElementT& domain114 = ((uses_keccak_builtin) != (0)) - ? ((domain45) * (domain49) * (domain51)) - : FieldElementT::Zero(); - const FieldElementT& domain115 = ((uses_keccak_builtin) != (0)) - ? ((domain53) * (domain55) * (domain57) * (domain114)) - : FieldElementT::Zero(); - const FieldElementT& domain116 = - ((uses_keccak_builtin) != (0)) ? ((domain59) * (domain115)) : FieldElementT::Zero(); - const FieldElementT& domain117 = ((uses_keccak_builtin) != (0)) - ? ((domain60) * (domain62) * (domain64) * (domain66) * - (domain68) * (domain70) * (domain72) * (domain115)) - : FieldElementT::Zero(); - const FieldElementT& domain118 = - ((uses_keccak_builtin) != (0)) ? ((domain75) * (domain117)) : FieldElementT::Zero(); - const FieldElementT& domain119 = - ((uses_keccak_builtin) != (0)) ? ((domain74) * (domain117)) : FieldElementT::Zero(); - const FieldElementT& domain120 = - ((uses_keccak_builtin) != (0)) ? ((domain82) * (domain85)) : FieldElementT::Zero(); - const FieldElementT& domain121 = ((uses_keccak_builtin) != (0)) - ? ((domain90) * (domain98) * (domain104) * (domain112)) - : FieldElementT::Zero(); - const FieldElementT& domain122 = - ((uses_keccak_builtin) != (0)) ? ((domain107) * (domain121)) : FieldElementT::Zero(); - const FieldElementT& domain123 = - ((uses_keccak_builtin) != (0)) ? ((domain106) * (domain121)) : FieldElementT::Zero(); - const FieldElementT& domain124 = - ((uses_keccak_builtin) != (0)) ? ((domain97) * (domain102)) : FieldElementT::Zero(); - const FieldElementT& domain125 = - ((uses_keccak_builtin) != (0)) ? ((domain94) * (domain100)) : FieldElementT::Zero(); - const FieldElementT& domain126 = - ((uses_keccak_builtin) != (0)) ? ((domain88) * (domain91)) : FieldElementT::Zero(); - const FieldElementT& domain127 = - ((uses_keccak_builtin) != (0)) ? ((domain96) * (domain101)) : FieldElementT::Zero(); - const FieldElementT& domain128 = - ((uses_keccak_builtin) != (0)) ? ((domain93) * (domain99)) : FieldElementT::Zero(); - const FieldElementT& domain129 = - ((uses_keccak_builtin) != (0)) - ? (((point_powers[17]) - (shifts[3353])) * ((point_powers[17]) - (shifts[3354])) * - ((point_powers[17]) - (shifts[3355])) * ((point_powers[17]) - (shifts[3356])) * - ((point_powers[17]) - (shifts[3357])) * ((point_powers[17]) - (shifts[3358])) * - ((point_powers[17]) - (shifts[3359])) * ((point_powers[17]) - (shifts[3360])) * - ((point_powers[17]) - (shifts[3361])) * ((point_powers[17]) - (shifts[3362])) * - ((point_powers[17]) - (shifts[3363])) * ((point_powers[17]) - (shifts[3364])) * - ((point_powers[17]) - (shifts[3365])) * ((point_powers[17]) - (shifts[3366])) * - ((point_powers[17]) - (shifts[3367])) * ((point_powers[17]) - (shifts[3368])) * - ((point_powers[17]) - (shifts[3369])) * ((point_powers[17]) - (shifts[3370])) * - ((point_powers[17]) - (shifts[3371])) * ((point_powers[17]) - (shifts[3372])) * - ((point_powers[17]) - (shifts[3373])) * ((point_powers[17]) - (shifts[3374])) * - ((point_powers[17]) - (shifts[3375])) * ((point_powers[17]) - (shifts[3376])) * - ((point_powers[17]) - (shifts[3377])) * ((point_powers[17]) - (shifts[3378])) * - ((point_powers[17]) - (shifts[3379])) * ((point_powers[17]) - (shifts[3380])) * - ((point_powers[17]) - (shifts[3381])) * ((point_powers[17]) - (shifts[3382])) * - ((point_powers[17]) - (shifts[3383])) * ((point_powers[17]) - (shifts[3384])) * - ((point_powers[17]) - (shifts[3385])) * ((point_powers[17]) - (shifts[3386])) * - ((point_powers[17]) - (shifts[3387])) * ((point_powers[17]) - (shifts[3388])) * - ((point_powers[17]) - (shifts[3389])) * ((point_powers[17]) - (shifts[3390])) * - ((point_powers[17]) - (shifts[3391])) * ((point_powers[17]) - (shifts[3392])) * - ((point_powers[17]) - (shifts[3393])) * ((point_powers[17]) - (shifts[3394])) * - ((point_powers[17]) - (shifts[3395])) * ((point_powers[17]) - (shifts[3396])) * - ((point_powers[17]) - (shifts[3397])) * ((point_powers[17]) - (shifts[3398])) * - ((point_powers[17]) - (shifts[3399])) * ((point_powers[17]) - (shifts[3400])) * - ((point_powers[17]) - (shifts[3401])) * ((point_powers[17]) - (shifts[3402])) * - ((point_powers[17]) - (shifts[3403])) * ((point_powers[17]) - (shifts[3404])) * - ((point_powers[17]) - (shifts[3405])) * ((point_powers[17]) - (shifts[3406])) * - ((point_powers[17]) - (shifts[3407])) * ((point_powers[17]) - (shifts[3408])) * - ((point_powers[17]) - (shifts[3409])) * ((point_powers[17]) - (shifts[3410])) * - ((point_powers[17]) - (shifts[3411])) * ((point_powers[17]) - (shifts[3412])) * - ((point_powers[17]) - (shifts[3413])) * ((point_powers[17]) - (shifts[3414])) * - ((point_powers[17]) - (shifts[3415])) * ((point_powers[17]) - (shifts[3416])) * - ((point_powers[17]) - (shifts[3417])) * ((point_powers[17]) - (shifts[3418])) * - ((point_powers[17]) - (shifts[3419])) * ((point_powers[17]) - (shifts[3420])) * - ((point_powers[17]) - (shifts[3421])) * ((point_powers[17]) - (shifts[3422])) * - ((point_powers[17]) - (shifts[3423])) * ((point_powers[17]) - (shifts[3424])) * - ((point_powers[17]) - (shifts[3425])) * ((point_powers[17]) - (shifts[3426])) * - ((point_powers[17]) - (shifts[3427])) * ((point_powers[17]) - (shifts[3428])) * - ((point_powers[17]) - (shifts[3429])) * ((point_powers[17]) - (shifts[3430])) * - ((point_powers[17]) - (shifts[3431])) * ((point_powers[17]) - (shifts[3432])) * - ((point_powers[17]) - (shifts[3433])) * ((point_powers[17]) - (shifts[3434])) * - ((point_powers[17]) - (shifts[3435])) * ((point_powers[17]) - (shifts[3436])) * - ((point_powers[17]) - (shifts[3437])) * ((point_powers[17]) - (shifts[3438])) * - ((point_powers[17]) - (shifts[3439])) * ((point_powers[17]) - (shifts[3440])) * - ((point_powers[17]) - (shifts[3441])) * ((point_powers[17]) - (shifts[3442])) * - ((point_powers[17]) - (shifts[3443])) * ((point_powers[17]) - (shifts[3444])) * - ((point_powers[17]) - (shifts[3445])) * ((point_powers[17]) - (shifts[3446])) * - ((point_powers[17]) - (shifts[3447])) * ((point_powers[17]) - (shifts[3448])) * - ((point_powers[17]) - (shifts[3449])) * ((point_powers[17]) - (shifts[3450])) * - ((point_powers[17]) - (shifts[3451])) * ((point_powers[17]) - (shifts[3452])) * - ((point_powers[17]) - (shifts[3453])) * ((point_powers[17]) - (shifts[3454])) * - ((point_powers[17]) - (shifts[3455])) * ((point_powers[17]) - (shifts[3456])) * - ((point_powers[17]) - (shifts[3457])) * ((point_powers[17]) - (shifts[3458])) * - ((point_powers[17]) - (shifts[3459])) * ((point_powers[17]) - (shifts[3460])) * - ((point_powers[17]) - (shifts[3461])) * ((point_powers[17]) - (shifts[3462])) * - ((point_powers[17]) - (shifts[3463])) * ((point_powers[17]) - (shifts[3464])) * - ((point_powers[17]) - (shifts[3465])) * ((point_powers[17]) - (shifts[3466])) * - ((point_powers[17]) - (shifts[3467])) * ((point_powers[17]) - (shifts[3468])) * - ((point_powers[17]) - (shifts[3469])) * ((point_powers[17]) - (shifts[3470])) * - ((point_powers[17]) - (shifts[3471])) * ((point_powers[17]) - (shifts[3472])) * - ((point_powers[17]) - (shifts[3473])) * ((point_powers[17]) - (shifts[3474])) * - ((point_powers[17]) - (shifts[3475])) * ((point_powers[17]) - (shifts[3476])) * - ((point_powers[17]) - (shifts[3477])) * ((point_powers[17]) - (shifts[3478])) * - ((point_powers[17]) - (shifts[3479])) * ((point_powers[17]) - (shifts[3480])) * - ((point_powers[17]) - (shifts[3481])) * ((point_powers[17]) - (shifts[3482])) * - ((point_powers[17]) - (shifts[3483])) * ((point_powers[17]) - (shifts[3484])) * - ((point_powers[17]) - (shifts[3485])) * ((point_powers[17]) - (shifts[3486])) * - ((point_powers[17]) - (shifts[3487])) * ((point_powers[17]) - (shifts[3488])) * - ((point_powers[17]) - (shifts[3489])) * ((point_powers[17]) - (shifts[3490])) * - ((point_powers[17]) - (shifts[3491])) * (domain33) * (domain41) * (domain79) * - (domain83) * (domain87) * (domain95)) - : FieldElementT::Zero(); - const FieldElementT& domain130 = (point_powers[18]) - (FieldElementT::One()); - const FieldElementT& domain131 = (point_powers[19]) - (FieldElementT::One()); - const FieldElementT& domain132 = ((uses_pedersen_builtin) != (0)) - ? ((point_powers[20]) - (FieldElementT::One())) - : FieldElementT::Zero(); - const FieldElementT& domain133 = ((uses_pedersen_builtin) != (0)) - ? ((point_powers[21]) - (FieldElementT::One())) - : FieldElementT::Zero(); - const FieldElementT& domain134 = ((uses_pedersen_builtin) != (0)) - ? ((point_powers[21]) - (shifts[3492])) - : FieldElementT::Zero(); - const FieldElementT& domain135 = ((uses_pedersen_builtin) != (0)) - ? ((point_powers[21]) - (shifts[3493])) - : FieldElementT::Zero(); - const FieldElementT& domain136 = ((uses_pedersen_builtin) != (0)) - ? ((point_powers[22]) - (shifts[3494])) - : FieldElementT::Zero(); - const FieldElementT& domain137 = ((uses_pedersen_builtin) != (0)) - ? ((point_powers[22]) - (FieldElementT::One())) - : FieldElementT::Zero(); - const FieldElementT& domain138 = ((uses_poseidon_builtin) != (0)) - ? ((point_powers[23]) - (FieldElementT::One())) - : FieldElementT::Zero(); - const FieldElementT& domain139 = ((uses_poseidon_builtin) != (0)) - ? ((point_powers[24]) - (FieldElementT::One())) - : FieldElementT::Zero(); - const FieldElementT& domain140 = ((uses_poseidon_builtin) != (0)) - ? ((point_powers[25]) - (FieldElementT::One())) - : FieldElementT::Zero(); - const FieldElementT& domain141 = ((uses_poseidon_builtin) != (0)) - ? ((point_powers[26]) - (FieldElementT::One())) - : FieldElementT::Zero(); - const FieldElementT& domain142 = ((uses_poseidon_builtin) != (0)) - ? ((point_powers[26]) - (shifts[3495])) - : FieldElementT::Zero(); - const FieldElementT& domain143 = ((uses_poseidon_builtin) != (0)) - ? ((point_powers[27]) - (shifts[3496])) - : FieldElementT::Zero(); - const FieldElementT& domain144 = ((uses_poseidon_builtin) != (0)) - ? (((point_powers[27]) - (shifts[3497])) * - ((point_powers[27]) - (shifts[3498])) * (domain143)) - : FieldElementT::Zero(); - const FieldElementT& domain145 = - ((uses_poseidon_builtin) != (0)) - ? (((point_powers[27]) - (shifts[3499])) * ((point_powers[27]) - (shifts[3500])) * - ((point_powers[27]) - (shifts[3495])) * ((point_powers[27]) - (shifts[3501])) * - ((point_powers[27]) - (shifts[3502])) * ((point_powers[27]) - (shifts[3503])) * - ((point_powers[27]) - (shifts[3504])) * ((point_powers[27]) - (shifts[3505])) * - ((point_powers[27]) - (shifts[3506])) * (domain143)) - : FieldElementT::Zero(); - const FieldElementT& domain146 = - ((uses_poseidon_builtin) != (0)) - ? (((point_powers[27]) - (shifts[3507])) * ((point_powers[27]) - (shifts[3508])) * - ((point_powers[27]) - (shifts[3509])) * (domain145)) - : FieldElementT::Zero(); - const FieldElementT& domain147 = ((uses_poseidon_builtin) != (0)) - ? ((point_powers[27]) - (FieldElementT::One())) - : FieldElementT::Zero(); - const FieldElementT& domain148 = ((uses_range_check_builtin) != (0)) - ? ((point_powers[28]) - (FieldElementT::One())) - : FieldElementT::Zero(); - const FieldElementT& domain149 = (point_powers[29]) - (FieldElementT::One()); - return { - domain0, domain1, domain2, domain3, domain4, domain5, domain6, domain7, - domain8, domain9, domain10, domain11, domain12, domain13, domain14, domain15, - domain16, domain17, domain18, domain19, domain20, domain21, domain22, domain23, - domain24, domain25, domain26, domain27, domain28, domain29, domain30, domain31, - domain32, domain33, domain34, domain35, domain36, domain37, domain38, domain39, - domain40, domain41, domain42, domain43, domain44, domain45, domain46, domain47, - domain48, domain49, domain50, domain51, domain52, domain53, domain54, domain55, - domain56, domain57, domain58, domain59, domain60, domain61, domain62, domain63, - domain64, domain65, domain66, domain67, domain68, domain69, domain70, domain71, - domain72, domain73, domain74, domain75, domain76, domain77, domain78, domain79, - domain80, domain81, domain82, domain83, domain84, domain85, domain86, domain87, - domain88, domain89, domain90, domain91, domain92, domain93, domain94, domain95, - domain96, domain97, domain98, domain99, domain100, domain101, domain102, domain103, - domain104, domain105, domain106, domain107, domain108, domain109, domain110, domain111, - domain112, domain113, domain114, domain115, domain116, domain117, domain118, domain119, - domain120, domain121, domain122, domain123, domain124, domain125, domain126, domain127, - domain128, domain129, domain130, domain131, domain132, domain133, domain134, domain135, - domain136, domain137, domain138, domain139, domain140, domain141, domain142, domain143, - domain144, domain145, domain146, domain147, domain148, domain149, - }; -} + if ((uses_range_check96_builtin) != (0)) { + { + // Compute a sum of constraints with denominator = domain150. + FieldElementT outer_sum = FieldElementT::Zero(); -template -std::vector CpuAirDefinition::ParseDynamicParams( - [[maybe_unused]] const std::map& params) const { - std::vector result; + { + // Compute a sum of constraints with numerator = FieldElementT::One(). + FieldElementT inner_sum = FieldElementT::Zero(); + { + // Constraint expression for range_check96_builtin/value: + const FieldElementT constraint = + (range_check96_builtin__value5_0) - (mem_pool__value_column_row_expr747); + inner_sum += random_coefficients[347] * constraint; + } + outer_sum += inner_sum; // domain == FieldElementT::One() + } - ASSERT_RELEASE(params.size() == kNumDynamicParams, "Inconsistent dynamic data."); - result.reserve(kNumDynamicParams); - result.push_back(params.at("bitwise__diluted_var_pool_suboffset")); - result.push_back(params.at("bitwise__row_ratio")); - result.push_back(params.at("bitwise__trim_unpacking192_suboffset")); - result.push_back(params.at("bitwise__trim_unpacking193_suboffset")); - result.push_back(params.at("bitwise__trim_unpacking194_suboffset")); - result.push_back(params.at("bitwise__trim_unpacking195_suboffset")); - result.push_back(params.at("bitwise__var_pool_suboffset")); - result.push_back(params.at("bitwise__x_or_y_suboffset")); - result.push_back(params.at("cpu__decode__mem_inst_suboffset")); - result.push_back(params.at("cpu__decode__off0_suboffset")); - result.push_back(params.at("cpu__decode__off1_suboffset")); - result.push_back(params.at("cpu__decode__off2_suboffset")); - result.push_back(params.at("cpu__decode__opcode_range_check__column_column")); - result.push_back(params.at("cpu__decode__opcode_range_check__column_offset")); - result.push_back(params.at("cpu__operands__mem_dst_suboffset")); - result.push_back(params.at("cpu__operands__mem_op0_suboffset")); - result.push_back(params.at("cpu__operands__mem_op1_suboffset")); - result.push_back(params.at("cpu__operands__ops_mul_column")); - result.push_back(params.at("cpu__operands__ops_mul_offset")); - result.push_back(params.at("cpu__operands__res_column")); - result.push_back(params.at("cpu__operands__res_offset")); - result.push_back(params.at("cpu__registers__ap_column")); - result.push_back(params.at("cpu__registers__ap_offset")); - result.push_back(params.at("cpu__registers__fp_column")); - result.push_back(params.at("cpu__registers__fp_offset")); - result.push_back(params.at("cpu__update_registers__update_pc__tmp0_column")); - result.push_back(params.at("cpu__update_registers__update_pc__tmp0_offset")); - result.push_back(params.at("cpu__update_registers__update_pc__tmp1_column")); - result.push_back(params.at("cpu__update_registers__update_pc__tmp1_offset")); - result.push_back(params.at("cpu_component_step")); - result.push_back(params.at("diluted_check__cumulative_value_column")); - result.push_back(params.at("diluted_check__cumulative_value_offset")); - result.push_back(params.at("diluted_check__permutation__cum_prod0_column")); - result.push_back(params.at("diluted_check__permutation__cum_prod0_offset")); - result.push_back(params.at("diluted_check__permuted_values_column")); - result.push_back(params.at("diluted_check__permuted_values_offset")); - result.push_back(params.at("diluted_pool_column")); - result.push_back(params.at("diluted_pool_offset")); - result.push_back(params.at("diluted_units_row_ratio")); - result.push_back(params.at("ec_op__doubled_points__x_column")); - result.push_back(params.at("ec_op__doubled_points__x_offset")); - result.push_back(params.at("ec_op__doubled_points__y_column")); - result.push_back(params.at("ec_op__doubled_points__y_offset")); - result.push_back(params.at("ec_op__doubling_slope_column")); - result.push_back(params.at("ec_op__doubling_slope_offset")); - result.push_back(params.at("ec_op__ec_subset_sum__bit_unpacking__prod_ones192_column")); - result.push_back(params.at("ec_op__ec_subset_sum__bit_unpacking__prod_ones192_offset")); - result.push_back(params.at("ec_op__ec_subset_sum__bit_unpacking__prod_ones196_column")); - result.push_back(params.at("ec_op__ec_subset_sum__bit_unpacking__prod_ones196_offset")); - result.push_back(params.at("ec_op__ec_subset_sum__partial_sum__x_column")); - result.push_back(params.at("ec_op__ec_subset_sum__partial_sum__x_offset")); - result.push_back(params.at("ec_op__ec_subset_sum__partial_sum__y_column")); - result.push_back(params.at("ec_op__ec_subset_sum__partial_sum__y_offset")); - result.push_back(params.at("ec_op__ec_subset_sum__selector_column")); - result.push_back(params.at("ec_op__ec_subset_sum__selector_offset")); - result.push_back(params.at("ec_op__ec_subset_sum__slope_column")); - result.push_back(params.at("ec_op__ec_subset_sum__slope_offset")); - result.push_back(params.at("ec_op__ec_subset_sum__x_diff_inv_column")); - result.push_back(params.at("ec_op__ec_subset_sum__x_diff_inv_offset")); - result.push_back(params.at("ec_op__m_suboffset")); - result.push_back(params.at("ec_op__p_x_suboffset")); - result.push_back(params.at("ec_op__p_y_suboffset")); - result.push_back(params.at("ec_op__q_x_suboffset")); - result.push_back(params.at("ec_op__q_y_suboffset")); - result.push_back(params.at("ec_op__r_x_suboffset")); - result.push_back(params.at("ec_op__r_y_suboffset")); - result.push_back(params.at("ec_op_builtin_row_ratio")); - result.push_back(params.at("ecdsa__message_suboffset")); - result.push_back(params.at("ecdsa__pubkey_suboffset")); - result.push_back(params.at("ecdsa__signature0__add_results_inv_column")); - result.push_back(params.at("ecdsa__signature0__add_results_inv_offset")); - result.push_back(params.at("ecdsa__signature0__add_results_slope_column")); - result.push_back(params.at("ecdsa__signature0__add_results_slope_offset")); - result.push_back(params.at("ecdsa__signature0__doubling_slope_column")); - result.push_back(params.at("ecdsa__signature0__doubling_slope_offset")); - result.push_back(params.at("ecdsa__signature0__exponentiate_generator__partial_sum__x_column")); - result.push_back(params.at("ecdsa__signature0__exponentiate_generator__partial_sum__x_offset")); - result.push_back(params.at("ecdsa__signature0__exponentiate_generator__partial_sum__y_column")); - result.push_back(params.at("ecdsa__signature0__exponentiate_generator__partial_sum__y_offset")); - result.push_back(params.at("ecdsa__signature0__exponentiate_generator__selector_column")); - result.push_back(params.at("ecdsa__signature0__exponentiate_generator__selector_offset")); - result.push_back(params.at("ecdsa__signature0__exponentiate_generator__slope_column")); - result.push_back(params.at("ecdsa__signature0__exponentiate_generator__slope_offset")); - result.push_back(params.at("ecdsa__signature0__exponentiate_generator__x_diff_inv_column")); - result.push_back(params.at("ecdsa__signature0__exponentiate_generator__x_diff_inv_offset")); - result.push_back(params.at("ecdsa__signature0__exponentiate_key__partial_sum__x_column")); - result.push_back(params.at("ecdsa__signature0__exponentiate_key__partial_sum__x_offset")); - result.push_back(params.at("ecdsa__signature0__exponentiate_key__partial_sum__y_column")); - result.push_back(params.at("ecdsa__signature0__exponentiate_key__partial_sum__y_offset")); - result.push_back(params.at("ecdsa__signature0__exponentiate_key__selector_column")); - result.push_back(params.at("ecdsa__signature0__exponentiate_key__selector_offset")); - result.push_back(params.at("ecdsa__signature0__exponentiate_key__slope_column")); - result.push_back(params.at("ecdsa__signature0__exponentiate_key__slope_offset")); - result.push_back(params.at("ecdsa__signature0__exponentiate_key__x_diff_inv_column")); - result.push_back(params.at("ecdsa__signature0__exponentiate_key__x_diff_inv_offset")); - result.push_back(params.at("ecdsa__signature0__extract_r_inv_column")); - result.push_back(params.at("ecdsa__signature0__extract_r_inv_offset")); - result.push_back(params.at("ecdsa__signature0__extract_r_slope_column")); - result.push_back(params.at("ecdsa__signature0__extract_r_slope_offset")); - result.push_back(params.at("ecdsa__signature0__key_points__x_column")); - result.push_back(params.at("ecdsa__signature0__key_points__x_offset")); - result.push_back(params.at("ecdsa__signature0__key_points__y_column")); - result.push_back(params.at("ecdsa__signature0__key_points__y_offset")); - result.push_back(params.at("ecdsa__signature0__q_x_squared_column")); - result.push_back(params.at("ecdsa__signature0__q_x_squared_offset")); - result.push_back(params.at("ecdsa__signature0__r_w_inv_column")); - result.push_back(params.at("ecdsa__signature0__r_w_inv_offset")); - result.push_back(params.at("ecdsa__signature0__z_inv_column")); - result.push_back(params.at("ecdsa__signature0__z_inv_offset")); - result.push_back(params.at("ecdsa_builtin_row_ratio")); - result.push_back(params.at("keccak__input_output_suboffset")); - result.push_back(params.at("keccak__keccak__diluted_column0_suboffset")); - result.push_back(params.at("keccak__keccak__diluted_column1_suboffset")); - result.push_back(params.at("keccak__keccak__diluted_column2_suboffset")); - result.push_back(params.at("keccak__keccak__diluted_column3_suboffset")); - result.push_back(params.at("keccak__keccak__parse_to_diluted__cumulative_sum_column")); - result.push_back(params.at("keccak__keccak__parse_to_diluted__cumulative_sum_offset")); - result.push_back(params.at("keccak__keccak__parse_to_diluted__final_reshaped_input_column")); - result.push_back(params.at("keccak__keccak__parse_to_diluted__final_reshaped_input_offset")); - result.push_back(params.at("keccak__keccak__parse_to_diluted__reshaped_intermediate_column")); - result.push_back(params.at("keccak__keccak__parse_to_diluted__reshaped_intermediate_offset")); - result.push_back(params.at("keccak__keccak__rotated_parity0_column")); - result.push_back(params.at("keccak__keccak__rotated_parity0_offset")); - result.push_back(params.at("keccak__keccak__rotated_parity1_column")); - result.push_back(params.at("keccak__keccak__rotated_parity1_offset")); - result.push_back(params.at("keccak__keccak__rotated_parity2_column")); - result.push_back(params.at("keccak__keccak__rotated_parity2_offset")); - result.push_back(params.at("keccak__keccak__rotated_parity3_column")); - result.push_back(params.at("keccak__keccak__rotated_parity3_offset")); - result.push_back(params.at("keccak__keccak__rotated_parity4_column")); - result.push_back(params.at("keccak__keccak__rotated_parity4_offset")); - result.push_back(params.at("keccak__row_ratio")); - result.push_back(params.at("mem_pool__addr_column")); - result.push_back(params.at("mem_pool__addr_offset")); - result.push_back(params.at("mem_pool__value_column")); - result.push_back(params.at("mem_pool__value_offset")); - result.push_back(params.at("memory__multi_column_perm__perm__cum_prod0_column")); - result.push_back(params.at("memory__multi_column_perm__perm__cum_prod0_offset")); - result.push_back(params.at("memory__sorted__addr_column")); - result.push_back(params.at("memory__sorted__addr_offset")); - result.push_back(params.at("memory__sorted__value_column")); - result.push_back(params.at("memory__sorted__value_offset")); - result.push_back(params.at("memory_units_row_ratio")); - result.push_back(params.at("num_columns_first")); - result.push_back(params.at("num_columns_second")); - result.push_back(params.at("orig__public_memory_suboffset")); - result.push_back(params.at("pedersen__hash0__ec_subset_sum__bit_unpacking__prod_ones192_column")); - result.push_back(params.at("pedersen__hash0__ec_subset_sum__bit_unpacking__prod_ones192_offset")); - result.push_back(params.at("pedersen__hash0__ec_subset_sum__bit_unpacking__prod_ones196_column")); - result.push_back(params.at("pedersen__hash0__ec_subset_sum__bit_unpacking__prod_ones196_offset")); - result.push_back(params.at("pedersen__hash0__ec_subset_sum__partial_sum__x_column")); - result.push_back(params.at("pedersen__hash0__ec_subset_sum__partial_sum__x_offset")); - result.push_back(params.at("pedersen__hash0__ec_subset_sum__partial_sum__y_column")); - result.push_back(params.at("pedersen__hash0__ec_subset_sum__partial_sum__y_offset")); - result.push_back(params.at("pedersen__hash0__ec_subset_sum__selector_column")); - result.push_back(params.at("pedersen__hash0__ec_subset_sum__selector_offset")); - result.push_back(params.at("pedersen__hash0__ec_subset_sum__slope_column")); - result.push_back(params.at("pedersen__hash0__ec_subset_sum__slope_offset")); - result.push_back(params.at("pedersen__input0_suboffset")); - result.push_back(params.at("pedersen__input1_suboffset")); - result.push_back(params.at("pedersen__output_suboffset")); - result.push_back(params.at("pedersen_builtin_row_ratio")); - result.push_back(params.at("poseidon__param_0__input_output_suboffset")); - result.push_back(params.at("poseidon__param_1__input_output_suboffset")); - result.push_back(params.at("poseidon__param_2__input_output_suboffset")); - result.push_back(params.at("poseidon__poseidon__full_rounds_state0_column")); - result.push_back(params.at("poseidon__poseidon__full_rounds_state0_offset")); - result.push_back(params.at("poseidon__poseidon__full_rounds_state0_squared_column")); - result.push_back(params.at("poseidon__poseidon__full_rounds_state0_squared_offset")); - result.push_back(params.at("poseidon__poseidon__full_rounds_state1_column")); - result.push_back(params.at("poseidon__poseidon__full_rounds_state1_offset")); - result.push_back(params.at("poseidon__poseidon__full_rounds_state1_squared_column")); - result.push_back(params.at("poseidon__poseidon__full_rounds_state1_squared_offset")); - result.push_back(params.at("poseidon__poseidon__full_rounds_state2_column")); - result.push_back(params.at("poseidon__poseidon__full_rounds_state2_offset")); - result.push_back(params.at("poseidon__poseidon__full_rounds_state2_squared_column")); - result.push_back(params.at("poseidon__poseidon__full_rounds_state2_squared_offset")); - result.push_back(params.at("poseidon__poseidon__partial_rounds_state0_column")); - result.push_back(params.at("poseidon__poseidon__partial_rounds_state0_offset")); - result.push_back(params.at("poseidon__poseidon__partial_rounds_state0_squared_column")); - result.push_back(params.at("poseidon__poseidon__partial_rounds_state0_squared_offset")); - result.push_back(params.at("poseidon__poseidon__partial_rounds_state1_column")); - result.push_back(params.at("poseidon__poseidon__partial_rounds_state1_offset")); - result.push_back(params.at("poseidon__poseidon__partial_rounds_state1_squared_column")); - result.push_back(params.at("poseidon__poseidon__partial_rounds_state1_squared_offset")); - result.push_back(params.at("poseidon__row_ratio")); - result.push_back(params.at("range_check16__perm__cum_prod0_column")); - result.push_back(params.at("range_check16__perm__cum_prod0_offset")); - result.push_back(params.at("range_check16__sorted_column")); - result.push_back(params.at("range_check16__sorted_offset")); - result.push_back(params.at("range_check16_pool_column")); - result.push_back(params.at("range_check16_pool_offset")); - result.push_back(params.at("range_check_builtin__inner_range_check_suboffset")); - result.push_back(params.at("range_check_builtin__mem_suboffset")); - result.push_back(params.at("range_check_builtin_row_ratio")); - result.push_back(params.at("range_check_units_row_ratio")); - result.push_back(params.at("uses_bitwise_builtin")); - result.push_back(params.at("uses_ec_op_builtin")); - result.push_back(params.at("uses_ecdsa_builtin")); - result.push_back(params.at("uses_keccak_builtin")); - result.push_back(params.at("uses_pedersen_builtin")); - result.push_back(params.at("uses_poseidon_builtin")); - result.push_back(params.at("uses_range_check_builtin")); - - return result; -} - -template -TraceGenerationContext CpuAirDefinition::GetTraceGenerationContext() const { - TraceGenerationContext ctx; - - ASSERT_RELEASE( - IsPowerOfTwo(diluted_units_row_ratio), - "Coset step (DynamicParam(diluted_units_row_ratio)) must be a power of two"); - - ASSERT_RELEASE( - IsPowerOfTwo(SafeDiv(trace_length_, diluted_units_row_ratio)), - "Dimension should be a power of 2."); - - ASSERT_RELEASE( - ((SafeDiv(trace_length_, diluted_units_row_ratio)) - (1)) >= (0), "Index out of range."); - - ASSERT_RELEASE( - IsPowerOfTwo(trace_length_), - "Coset step (MemberExpression(trace_length)) must be a power of two"); - - ASSERT_RELEASE( - (SafeDiv(trace_length_, diluted_units_row_ratio)) >= (0), "Index should be non negative."); - - ASSERT_RELEASE( - IsPowerOfTwo(range_check_units_row_ratio), - "Coset step (DynamicParam(range_check_units_row_ratio)) must be a power of two"); - - ASSERT_RELEASE( - IsPowerOfTwo(SafeDiv(trace_length_, range_check_units_row_ratio)), - "Dimension should be a power of 2."); - - ASSERT_RELEASE( - ((SafeDiv(trace_length_, range_check_units_row_ratio)) - (1)) >= (0), "Index out of range."); - - ASSERT_RELEASE( - (SafeDiv(trace_length_, range_check_units_row_ratio)) >= (0), - "Index should be non negative."); - - ASSERT_RELEASE( - IsPowerOfTwo((8) * (memory_units_row_ratio)), - "Coset step ((8) * (DynamicParam(memory_units_row_ratio))) must be a power of two"); - - ASSERT_RELEASE( - IsPowerOfTwo(SafeDiv(trace_length_, (8) * (memory_units_row_ratio))), - "Dimension should be a power of 2."); - - ASSERT_RELEASE( - IsPowerOfTwo(memory_units_row_ratio), - "Coset step (DynamicParam(memory_units_row_ratio)) must be a power of two"); - - ASSERT_RELEASE( - IsPowerOfTwo(SafeDiv(trace_length_, memory_units_row_ratio)), - "Dimension should be a power of 2."); - - ASSERT_RELEASE( - ((SafeDiv(trace_length_, memory_units_row_ratio)) - (1)) >= (0), "Index out of range."); - - ASSERT_RELEASE( - (SafeDiv(trace_length_, memory_units_row_ratio)) >= (0), "Index should be non negative."); - - ASSERT_RELEASE( - IsPowerOfTwo((16) * (cpu_component_step)), - "Coset step ((16) * (DynamicParam(cpu_component_step))) must be a power of two"); - - ASSERT_RELEASE( - IsPowerOfTwo(SafeDiv(trace_length_, (16) * (cpu_component_step))), - "Dimension should be a power of 2."); + { + // Compute a sum of constraints with numerator = domain172. + FieldElementT inner_sum = FieldElementT::Zero(); + { + // Constraint expression for range_check96_builtin/addr_step: + const FieldElementT constraint = + (mem_pool__addr_column_row_expr754) - + ((mem_pool__addr_column_row_expr755) + (FieldElementT::One())); + inner_sum += random_coefficients[348] * constraint; + } + outer_sum += inner_sum * domain172; + } + res += FractionFieldElement(outer_sum, domain150); + } - ASSERT_RELEASE( - ((SafeDiv(trace_length_, (16) * (cpu_component_step))) - (1)) >= (0), - "step must not exceed dimension."); + { + // Compute a sum of constraints with denominator = domain173. + FieldElementT outer_sum = FieldElementT::Zero(); - ASSERT_RELEASE( - IsPowerOfTwo(cpu_component_step), - "Coset step (DynamicParam(cpu_component_step)) must be a power of two"); + { + // Compute a sum of constraints with numerator = FieldElementT::One(). + FieldElementT inner_sum = FieldElementT::Zero(); + { + // Constraint expression for range_check96_builtin/init_addr: + const FieldElementT constraint = + (mem_pool__addr_column_row_expr755) - (initial_range_check96_addr_); + inner_sum += random_coefficients[349] * constraint; + } + outer_sum += inner_sum; // domain == FieldElementT::One() + } + res += FractionFieldElement(outer_sum, domain173); + } + } - ASSERT_RELEASE( - (SafeDiv(trace_length_, (16) * (cpu_component_step))) >= (0), "Index out of range."); + if ((uses_add_mod_builtin) != (0)) { + { + // Compute a sum of constraints with denominator = domain174. + FieldElementT outer_sum = FieldElementT::Zero(); - ASSERT_RELEASE(((64) - (cpu_component_step)) >= (0), "cpu_component_step is out of range."); + { + // Compute a sum of constraints with numerator = FieldElementT::One(). + FieldElementT inner_sum = FieldElementT::Zero(); + { + // Constraint expression for add_mod/init_p0_address: + const FieldElementT constraint = + (mem_pool__addr_column_row_expr756) - (add_mod__initial_mod_addr_); + inner_sum += random_coefficients[350] * constraint; + } + outer_sum += inner_sum; // domain == FieldElementT::One() + } + res += FractionFieldElement(outer_sum, domain174); + } - ASSERT_RELEASE( - (((16) * (cpu_component_step)) - ((4) * (memory_units_row_ratio))) >= (0), - "memory_units_row_ratio is out of range."); + { + // Compute a sum of constraints with denominator = domain0. + FieldElementT outer_sum = FieldElementT::Zero(); - ASSERT_RELEASE( - (cpu__decode__mem_inst_suboffset) >= (0), - "Offset of cpu/decode/mem_inst must be nonnegative."); + { + // Compute a sum of constraints with numerator = FieldElementT::One(). + FieldElementT inner_sum = FieldElementT::Zero(); + { + // Constraint expression for add_mod/step_p1_addr: + const FieldElementT constraint = + (mem_pool__addr_column_row_expr757) - + ((mem_pool__addr_column_row_expr756) + (FieldElementT::One())); + inner_sum += random_coefficients[351] * constraint; + } + { + // Constraint expression for add_mod/step_p2_addr: + const FieldElementT constraint = + (mem_pool__addr_column_row_expr758) - + ((mem_pool__addr_column_row_expr757) + (FieldElementT::One())); + inner_sum += random_coefficients[352] * constraint; + } + { + // Constraint expression for add_mod/step_p3_addr: + const FieldElementT constraint = + (mem_pool__addr_column_row_expr759) - + ((mem_pool__addr_column_row_expr758) + (FieldElementT::One())); + inner_sum += random_coefficients[353] * constraint; + } + { + // Constraint expression for add_mod/step_values_ptr_addr: + const FieldElementT constraint = + (mem_pool__addr_column_row_expr760) - + ((mem_pool__addr_column_row_expr759) + (FieldElementT::One())); + inner_sum += random_coefficients[354] * constraint; + } + { + // Constraint expression for add_mod/step_offsets_ptr_addr: + const FieldElementT constraint = + (mem_pool__addr_column_row_expr761) - + ((mem_pool__addr_column_row_expr760) + (FieldElementT::One())); + inner_sum += random_coefficients[355] * constraint; + } + { + // Constraint expression for add_mod/step_n_addr: + const FieldElementT constraint = + (mem_pool__addr_column_row_expr762) - + ((mem_pool__addr_column_row_expr761) + (FieldElementT::One())); + inner_sum += random_coefficients[356] * constraint; + } + { + // Constraint expression for add_mod/a_offset0: + const FieldElementT constraint = + (mem_pool__addr_column_row_expr778) - (mem_pool__value_column_row_expr776); + inner_sum += random_coefficients[365] * constraint; + } + { + // Constraint expression for add_mod/b_offset: + const FieldElementT constraint = + (mem_pool__addr_column_row_expr779) - + ((mem_pool__addr_column_row_expr778) + (FieldElementT::One())); + inner_sum += random_coefficients[366] * constraint; + } + { + // Constraint expression for add_mod/c_offset: + const FieldElementT constraint = + (mem_pool__addr_column_row_expr780) - + ((mem_pool__addr_column_row_expr779) + (FieldElementT::One())); + inner_sum += random_coefficients[367] * constraint; + } + { + // Constraint expression for add_mod/a0_value_ind0: + const FieldElementT constraint = + (mem_pool__addr_column_row_expr781) - + ((mem_pool__value_column_row_expr782) + (mem_pool__value_column_row_expr774)); + inner_sum += random_coefficients[368] * constraint; + } + { + // Constraint expression for add_mod/a1_value: + const FieldElementT constraint = + (mem_pool__addr_column_row_expr783) - + ((mem_pool__addr_column_row_expr781) + (FieldElementT::One())); + inner_sum += random_coefficients[369] * constraint; + } + { + // Constraint expression for add_mod/a2_value: + const FieldElementT constraint = + (mem_pool__addr_column_row_expr784) - + ((mem_pool__addr_column_row_expr783) + (FieldElementT::One())); + inner_sum += random_coefficients[370] * constraint; + } + { + // Constraint expression for add_mod/a3_value: + const FieldElementT constraint = + (mem_pool__addr_column_row_expr785) - + ((mem_pool__addr_column_row_expr784) + (FieldElementT::One())); + inner_sum += random_coefficients[371] * constraint; + } + { + // Constraint expression for add_mod/b0_value_ind0: + const FieldElementT constraint = + (mem_pool__addr_column_row_expr786) - + ((mem_pool__value_column_row_expr787) + (mem_pool__value_column_row_expr774)); + inner_sum += random_coefficients[372] * constraint; + } + { + // Constraint expression for add_mod/b1_value: + const FieldElementT constraint = + (mem_pool__addr_column_row_expr788) - + ((mem_pool__addr_column_row_expr786) + (FieldElementT::One())); + inner_sum += random_coefficients[373] * constraint; + } + { + // Constraint expression for add_mod/b2_value: + const FieldElementT constraint = + (mem_pool__addr_column_row_expr789) - + ((mem_pool__addr_column_row_expr788) + (FieldElementT::One())); + inner_sum += random_coefficients[374] * constraint; + } + { + // Constraint expression for add_mod/b3_value: + const FieldElementT constraint = + (mem_pool__addr_column_row_expr790) - + ((mem_pool__addr_column_row_expr789) + (FieldElementT::One())); + inner_sum += random_coefficients[375] * constraint; + } + { + // Constraint expression for add_mod/c0_value_ind0: + const FieldElementT constraint = + (mem_pool__addr_column_row_expr791) - + ((mem_pool__value_column_row_expr792) + (mem_pool__value_column_row_expr774)); + inner_sum += random_coefficients[376] * constraint; + } + { + // Constraint expression for add_mod/c1_value: + const FieldElementT constraint = + (mem_pool__addr_column_row_expr793) - + ((mem_pool__addr_column_row_expr791) + (FieldElementT::One())); + inner_sum += random_coefficients[377] * constraint; + } + { + // Constraint expression for add_mod/c2_value: + const FieldElementT constraint = + (mem_pool__addr_column_row_expr794) - + ((mem_pool__addr_column_row_expr793) + (FieldElementT::One())); + inner_sum += random_coefficients[378] * constraint; + } + { + // Constraint expression for add_mod/c3_value: + const FieldElementT constraint = + (mem_pool__addr_column_row_expr795) - + ((mem_pool__addr_column_row_expr794) + (FieldElementT::One())); + inner_sum += random_coefficients[379] * constraint; + } + { + // Constraint expression for add_mod/sub_p_bit: + const FieldElementT constraint = + (add_mod__sub_p_bit_column_row_expr796) * + ((add_mod__sub_p_bit_column_row_expr796) - (FieldElementT::One())); + inner_sum += random_coefficients[380] * constraint; + } + { + // Constraint expression for add_mod/carry1_bit: + const FieldElementT constraint = + (add_mod__carry1_bit_column_row_expr797) * + ((add_mod__carry1_bit_column_row_expr797) - (FieldElementT::One())); + inner_sum += random_coefficients[381] * constraint; + } + { + // Constraint expression for add_mod/carry1_sign: + const FieldElementT constraint = ((add_mod__carry1_sign_column_row_expr798) * + (add_mod__carry1_sign_column_row_expr798)) - + (FieldElementT::One()); + inner_sum += random_coefficients[382] * constraint; + } + { + // Constraint expression for add_mod/carry2_bit: + const FieldElementT constraint = + (add_mod__carry2_bit_column_row_expr799) * + ((add_mod__carry2_bit_column_row_expr799) - (FieldElementT::One())); + inner_sum += random_coefficients[383] * constraint; + } + { + // Constraint expression for add_mod/carry2_sign: + const FieldElementT constraint = ((add_mod__carry2_sign_column_row_expr800) * + (add_mod__carry2_sign_column_row_expr800)) - + (FieldElementT::One()); + inner_sum += random_coefficients[384] * constraint; + } + { + // Constraint expression for add_mod/carry3_bit: + const FieldElementT constraint = + (add_mod__carry3_bit_column_row_expr801) * + ((add_mod__carry3_bit_column_row_expr801) - (FieldElementT::One())); + inner_sum += random_coefficients[385] * constraint; + } + { + // Constraint expression for add_mod/carry3_sign: + const FieldElementT constraint = ((add_mod__carry3_sign_column_row_expr802) * + (add_mod__carry3_sign_column_row_expr802)) - + (FieldElementT::One()); + inner_sum += random_coefficients[386] * constraint; + } + { + // Constraint expression for add_mod/addition_constraint_0: + const FieldElementT constraint = + (((((((mem_pool__value_column_row_expr803) + + (((mem_pool__value_column_row_expr804) + + ((mem_pool__value_column_row_expr805) * (add_mod__interaction_elm_))) * + (add_mod__interaction_elm_))) * + (add_mod__interaction_elm_)) + + (mem_pool__value_column_row_expr806)) + + (((mem_pool__value_column_row_expr807) + + (((mem_pool__value_column_row_expr808) + + ((mem_pool__value_column_row_expr809) * (add_mod__interaction_elm_))) * + (add_mod__interaction_elm_))) * + (add_mod__interaction_elm_))) + + (mem_pool__value_column_row_expr810)) + + ((((((add_mod__carry2_bit_column_row_expr799) * + (add_mod__carry2_sign_column_row_expr800)) + + (((add_mod__carry3_bit_column_row_expr801) * + (add_mod__carry3_sign_column_row_expr802)) * + (add_mod__interaction_elm_))) * + (add_mod__interaction_elm_)) + + ((add_mod__carry1_bit_column_row_expr797) * + (add_mod__carry1_sign_column_row_expr798))) * + ((add_mod__interaction_elm_) - + (FieldElementT::ConstexprFromBigInt(0x1000000000000000000000000_Z))))) - + (((((mem_pool__value_column_row_expr811) + + (((mem_pool__value_column_row_expr812) + + ((mem_pool__value_column_row_expr813) * (add_mod__interaction_elm_))) * + (add_mod__interaction_elm_))) * + (add_mod__interaction_elm_)) + + (mem_pool__value_column_row_expr814)) + + (((((mem_pool__value_column_row_expr768) + + (((mem_pool__value_column_row_expr770) + + ((mem_pool__value_column_row_expr772) * (add_mod__interaction_elm_))) * + (add_mod__interaction_elm_))) * + (add_mod__interaction_elm_)) + + (mem_pool__value_column_row_expr765)) * + (add_mod__sub_p_bit_column_row_expr796))); + inner_sum += random_coefficients[387] * constraint; + } + outer_sum += inner_sum; // domain == FieldElementT::One() + } - ASSERT_RELEASE( - (((trace_length_) - (cpu__decode__mem_inst_suboffset)) - (1)) >= (0), - "Offset of cpu/decode/mem_inst is too big."); + { + // Compute a sum of constraints with numerator = domain175. + FieldElementT inner_sum = FieldElementT::Zero(); + { + // Constraint expression for add_mod/step_p0_addr: + const FieldElementT constraint = + (mem_pool__addr_column_row_expr763) - + ((mem_pool__addr_column_row_expr762) + (FieldElementT::One())); + inner_sum += random_coefficients[357] * constraint; + } + { + // Constraint expression for add_mod/step_p0_value: + const FieldElementT constraint = + ((mem_pool__value_column_row_expr764) - (mem_pool__value_column_row_expr765)) * + ((mem_pool__value_column_row_expr766) - (FieldElementT::One())); + inner_sum += random_coefficients[358] * constraint; + } + { + // Constraint expression for add_mod/step_p1_value: + const FieldElementT constraint = + ((mem_pool__value_column_row_expr767) - (mem_pool__value_column_row_expr768)) * + ((mem_pool__value_column_row_expr766) - (FieldElementT::One())); + inner_sum += random_coefficients[359] * constraint; + } + { + // Constraint expression for add_mod/step_p2_value: + const FieldElementT constraint = + ((mem_pool__value_column_row_expr769) - (mem_pool__value_column_row_expr770)) * + ((mem_pool__value_column_row_expr766) - (FieldElementT::One())); + inner_sum += random_coefficients[360] * constraint; + } + { + // Constraint expression for add_mod/step_p3_value: + const FieldElementT constraint = + ((mem_pool__value_column_row_expr771) - (mem_pool__value_column_row_expr772)) * + ((mem_pool__value_column_row_expr766) - (FieldElementT::One())); + inner_sum += random_coefficients[361] * constraint; + } + { + // Constraint expression for add_mod/step_values_ptr_value: + const FieldElementT constraint = + ((mem_pool__value_column_row_expr773) - (mem_pool__value_column_row_expr774)) * + ((mem_pool__value_column_row_expr766) - (FieldElementT::One())); + inner_sum += random_coefficients[362] * constraint; + } + { + // Constraint expression for add_mod/step_offsets_ptr_value: + const FieldElementT constraint = + ((mem_pool__value_column_row_expr775) - + ((mem_pool__value_column_row_expr776) + + (FieldElementT::ConstexprFromBigInt(0x3_Z)))) * + ((mem_pool__value_column_row_expr766) - (FieldElementT::One())); + inner_sum += random_coefficients[363] * constraint; + } + { + // Constraint expression for add_mod/step_n_value: + const FieldElementT constraint = + (((mem_pool__value_column_row_expr777) + (FieldElementT::One())) - + (mem_pool__value_column_row_expr766)) * + ((mem_pool__value_column_row_expr766) - (FieldElementT::One())); + inner_sum += random_coefficients[364] * constraint; + } + outer_sum += inner_sum * domain175; + } + res += FractionFieldElement(outer_sum, domain0); + } + } - ASSERT_RELEASE( - ((((16) * (cpu_component_step)) - - ((cpu__decode__mem_inst_suboffset) * (memory_units_row_ratio))) - - (1)) >= (0), - "Offset of cpu/decode/mem_inst is too big."); + if ((uses_mul_mod_builtin) != (0)) { + { + // Compute a sum of constraints with denominator = domain176. + FieldElementT outer_sum = FieldElementT::Zero(); - ASSERT_RELEASE( - (cpu__decode__off0_suboffset) >= (0), "Offset of cpu/decode/off0 must be nonnegative."); + { + // Compute a sum of constraints with numerator = FieldElementT::One(). + FieldElementT inner_sum = FieldElementT::Zero(); + { + // Constraint expression for mul_mod/init_p0_address: + const FieldElementT constraint = + (mem_pool__addr_column_row_expr815) - (mul_mod__initial_mod_addr_); + inner_sum += random_coefficients[388] * constraint; + } + outer_sum += inner_sum; // domain == FieldElementT::One() + } + res += FractionFieldElement(outer_sum, domain176); + } - ASSERT_RELEASE( - (((trace_length_) - (cpu__decode__off0_suboffset)) - (1)) >= (0), - "Offset of cpu/decode/off0 is too big."); + { + // Compute a sum of constraints with denominator = domain133. + FieldElementT outer_sum = FieldElementT::Zero(); - ASSERT_RELEASE( - ((((16) * (cpu_component_step)) - - ((cpu__decode__off0_suboffset) * (range_check_units_row_ratio))) - - (1)) >= (0), - "Offset of cpu/decode/off0 is too big."); + { + // Compute a sum of constraints with numerator = FieldElementT::One(). + FieldElementT inner_sum = FieldElementT::Zero(); + { + // Constraint expression for mul_mod/step_p1_addr: + const FieldElementT constraint = + (mem_pool__addr_column_row_expr816) - + ((mem_pool__addr_column_row_expr815) + (FieldElementT::One())); + inner_sum += random_coefficients[389] * constraint; + } + { + // Constraint expression for mul_mod/step_p2_addr: + const FieldElementT constraint = + (mem_pool__addr_column_row_expr817) - + ((mem_pool__addr_column_row_expr816) + (FieldElementT::One())); + inner_sum += random_coefficients[390] * constraint; + } + { + // Constraint expression for mul_mod/step_p3_addr: + const FieldElementT constraint = + (mem_pool__addr_column_row_expr818) - + ((mem_pool__addr_column_row_expr817) + (FieldElementT::One())); + inner_sum += random_coefficients[391] * constraint; + } + { + // Constraint expression for mul_mod/step_values_ptr_addr: + const FieldElementT constraint = + (mem_pool__addr_column_row_expr819) - + ((mem_pool__addr_column_row_expr818) + (FieldElementT::One())); + inner_sum += random_coefficients[392] * constraint; + } + { + // Constraint expression for mul_mod/step_offsets_ptr_addr: + const FieldElementT constraint = + (mem_pool__addr_column_row_expr820) - + ((mem_pool__addr_column_row_expr819) + (FieldElementT::One())); + inner_sum += random_coefficients[393] * constraint; + } + { + // Constraint expression for mul_mod/step_n_addr: + const FieldElementT constraint = + (mem_pool__addr_column_row_expr821) - + ((mem_pool__addr_column_row_expr820) + (FieldElementT::One())); + inner_sum += random_coefficients[394] * constraint; + } + { + // Constraint expression for mul_mod/a_offset0: + const FieldElementT constraint = + (mem_pool__addr_column_row_expr837) - (mem_pool__value_column_row_expr835); + inner_sum += random_coefficients[403] * constraint; + } + { + // Constraint expression for mul_mod/b_offset: + const FieldElementT constraint = + (mem_pool__addr_column_row_expr838) - + ((mem_pool__addr_column_row_expr837) + (FieldElementT::One())); + inner_sum += random_coefficients[404] * constraint; + } + { + // Constraint expression for mul_mod/c_offset: + const FieldElementT constraint = + (mem_pool__addr_column_row_expr839) - + ((mem_pool__addr_column_row_expr838) + (FieldElementT::One())); + inner_sum += random_coefficients[405] * constraint; + } + { + // Constraint expression for mul_mod/a0_value_ind0: + const FieldElementT constraint = + (mem_pool__addr_column_row_expr840) - + ((mem_pool__value_column_row_expr841) + (mem_pool__value_column_row_expr833)); + inner_sum += random_coefficients[406] * constraint; + } + { + // Constraint expression for mul_mod/a1_value: + const FieldElementT constraint = + (mem_pool__addr_column_row_expr842) - + ((mem_pool__addr_column_row_expr840) + (FieldElementT::One())); + inner_sum += random_coefficients[407] * constraint; + } + { + // Constraint expression for mul_mod/a2_value: + const FieldElementT constraint = + (mem_pool__addr_column_row_expr843) - + ((mem_pool__addr_column_row_expr842) + (FieldElementT::One())); + inner_sum += random_coefficients[408] * constraint; + } + { + // Constraint expression for mul_mod/a3_value: + const FieldElementT constraint = + (mem_pool__addr_column_row_expr844) - + ((mem_pool__addr_column_row_expr843) + (FieldElementT::One())); + inner_sum += random_coefficients[409] * constraint; + } + { + // Constraint expression for mul_mod/b0_value_ind0: + const FieldElementT constraint = + (mem_pool__addr_column_row_expr845) - + ((mem_pool__value_column_row_expr846) + (mem_pool__value_column_row_expr833)); + inner_sum += random_coefficients[410] * constraint; + } + { + // Constraint expression for mul_mod/b1_value: + const FieldElementT constraint = + (mem_pool__addr_column_row_expr847) - + ((mem_pool__addr_column_row_expr845) + (FieldElementT::One())); + inner_sum += random_coefficients[411] * constraint; + } + { + // Constraint expression for mul_mod/b2_value: + const FieldElementT constraint = + (mem_pool__addr_column_row_expr848) - + ((mem_pool__addr_column_row_expr847) + (FieldElementT::One())); + inner_sum += random_coefficients[412] * constraint; + } + { + // Constraint expression for mul_mod/b3_value: + const FieldElementT constraint = + (mem_pool__addr_column_row_expr849) - + ((mem_pool__addr_column_row_expr848) + (FieldElementT::One())); + inner_sum += random_coefficients[413] * constraint; + } + { + // Constraint expression for mul_mod/c0_value_ind0: + const FieldElementT constraint = + (mem_pool__addr_column_row_expr850) - + ((mem_pool__value_column_row_expr851) + (mem_pool__value_column_row_expr833)); + inner_sum += random_coefficients[414] * constraint; + } + { + // Constraint expression for mul_mod/c1_value: + const FieldElementT constraint = + (mem_pool__addr_column_row_expr852) - + ((mem_pool__addr_column_row_expr850) + (FieldElementT::One())); + inner_sum += random_coefficients[415] * constraint; + } + { + // Constraint expression for mul_mod/c2_value: + const FieldElementT constraint = + (mem_pool__addr_column_row_expr853) - + ((mem_pool__addr_column_row_expr852) + (FieldElementT::One())); + inner_sum += random_coefficients[416] * constraint; + } + { + // Constraint expression for mul_mod/c3_value: + const FieldElementT constraint = + (mem_pool__addr_column_row_expr854) - + ((mem_pool__addr_column_row_expr853) + (FieldElementT::One())); + inner_sum += random_coefficients[417] * constraint; + } + { + // Constraint expression for mul_mod/multiplication_constraint_0: + const FieldElementT constraint = + ((((((mem_pool__value_column_row_expr855) + + (((mem_pool__value_column_row_expr856) + + ((mem_pool__value_column_row_expr857) * (mul_mod__interaction_elm_))) * + (mul_mod__interaction_elm_))) * + (mul_mod__interaction_elm_)) + + (mem_pool__value_column_row_expr858)) * + ((((mem_pool__value_column_row_expr859) + + (((mem_pool__value_column_row_expr860) + + ((mem_pool__value_column_row_expr861) * (mul_mod__interaction_elm_))) * + (mul_mod__interaction_elm_))) * + (mul_mod__interaction_elm_)) + + (mem_pool__value_column_row_expr862))) + + (((((((mul_mod__carry1_0) + + ((((mul_mod__carry2_0) + + ((((mul_mod__carry3_0) + + ((((mul_mod__carry4_0) + + (((mul_mod__carry5_0) - (FieldElementT::ConstexprFromBigInt( + 0x4000000000000000000000000_Z))) * + (mul_mod__interaction_elm_))) - + (FieldElementT::ConstexprFromBigInt(0x4000000000000000000000000_Z))) * + (mul_mod__interaction_elm_))) - + (FieldElementT::ConstexprFromBigInt(0x4000000000000000000000000_Z))) * + (mul_mod__interaction_elm_))) - + (FieldElementT::ConstexprFromBigInt(0x4000000000000000000000000_Z))) * + (mul_mod__interaction_elm_))) - + (FieldElementT::ConstexprFromBigInt(0x4000000000000000000000000_Z))) * + (mul_mod__interaction_elm_)) + + (mul_mod__carry0_0)) - + (FieldElementT::ConstexprFromBigInt(0x4000000000000000000000000_Z))) * + ((mul_mod__interaction_elm_) - + (FieldElementT::ConstexprFromBigInt(0x1000000000000000000000000_Z))))) - + (((((mem_pool__value_column_row_expr863) + + (((mem_pool__value_column_row_expr864) + + ((mem_pool__value_column_row_expr865) * (mul_mod__interaction_elm_))) * + (mul_mod__interaction_elm_))) * + (mul_mod__interaction_elm_)) + + (mem_pool__value_column_row_expr866)) + + (((((mem_pool__value_column_row_expr827) + + (((mem_pool__value_column_row_expr829) + + ((mem_pool__value_column_row_expr831) * (mul_mod__interaction_elm_))) * + (mul_mod__interaction_elm_))) * + (mul_mod__interaction_elm_)) + + (mem_pool__value_column_row_expr824)) * + ((((mul_mod__p_multiplier1_0) + + (((mul_mod__p_multiplier2_0) + + ((mul_mod__p_multiplier3_0) * (mul_mod__interaction_elm_))) * + (mul_mod__interaction_elm_))) * + (mul_mod__interaction_elm_)) + + (mul_mod__p_multiplier0_0)))); + inner_sum += random_coefficients[418] * constraint; + } + outer_sum += inner_sum; // domain == FieldElementT::One() + } - ASSERT_RELEASE( - (cpu__decode__off1_suboffset) >= (0), "Offset of cpu/decode/off1 must be nonnegative."); + { + // Compute a sum of constraints with numerator = domain177. + FieldElementT inner_sum = FieldElementT::Zero(); + { + // Constraint expression for mul_mod/step_p0_addr: + const FieldElementT constraint = + (mem_pool__addr_column_row_expr822) - + ((mem_pool__addr_column_row_expr821) + (FieldElementT::One())); + inner_sum += random_coefficients[395] * constraint; + } + { + // Constraint expression for mul_mod/step_p0_value: + const FieldElementT constraint = + ((mem_pool__value_column_row_expr823) - (mem_pool__value_column_row_expr824)) * + ((mem_pool__value_column_row_expr825) - (FieldElementT::One())); + inner_sum += random_coefficients[396] * constraint; + } + { + // Constraint expression for mul_mod/step_p1_value: + const FieldElementT constraint = + ((mem_pool__value_column_row_expr826) - (mem_pool__value_column_row_expr827)) * + ((mem_pool__value_column_row_expr825) - (FieldElementT::One())); + inner_sum += random_coefficients[397] * constraint; + } + { + // Constraint expression for mul_mod/step_p2_value: + const FieldElementT constraint = + ((mem_pool__value_column_row_expr828) - (mem_pool__value_column_row_expr829)) * + ((mem_pool__value_column_row_expr825) - (FieldElementT::One())); + inner_sum += random_coefficients[398] * constraint; + } + { + // Constraint expression for mul_mod/step_p3_value: + const FieldElementT constraint = + ((mem_pool__value_column_row_expr830) - (mem_pool__value_column_row_expr831)) * + ((mem_pool__value_column_row_expr825) - (FieldElementT::One())); + inner_sum += random_coefficients[399] * constraint; + } + { + // Constraint expression for mul_mod/step_values_ptr_value: + const FieldElementT constraint = + ((mem_pool__value_column_row_expr832) - (mem_pool__value_column_row_expr833)) * + ((mem_pool__value_column_row_expr825) - (FieldElementT::One())); + inner_sum += random_coefficients[400] * constraint; + } + { + // Constraint expression for mul_mod/step_offsets_ptr_value: + const FieldElementT constraint = + ((mem_pool__value_column_row_expr834) - + ((mem_pool__value_column_row_expr835) + + (FieldElementT::ConstexprFromBigInt(0x3_Z)))) * + ((mem_pool__value_column_row_expr825) - (FieldElementT::One())); + inner_sum += random_coefficients[401] * constraint; + } + { + // Constraint expression for mul_mod/step_n_value: + const FieldElementT constraint = + (((mem_pool__value_column_row_expr836) + (FieldElementT::One())) - + (mem_pool__value_column_row_expr825)) * + ((mem_pool__value_column_row_expr825) - (FieldElementT::One())); + inner_sum += random_coefficients[402] * constraint; + } + outer_sum += inner_sum * domain177; + } + res += FractionFieldElement(outer_sum, domain133); + } + } + return res; +} + +template +std::vector CpuAirDefinition::DomainEvalsAtPoint( + gsl::span point_powers, + [[maybe_unused]] gsl::span shifts) const { + [[maybe_unused]] const FieldElementT& point = point_powers[0]; + const FieldElementT& domain0 = ((uses_add_mod_builtin) != (0)) + ? ((point_powers[1]) - (FieldElementT::One())) + : FieldElementT::Zero(); + const FieldElementT& domain1 = ((uses_bitwise_builtin) != (0)) + ? ((point_powers[2]) - (FieldElementT::One())) + : FieldElementT::Zero(); + const FieldElementT& domain2 = + ((uses_bitwise_builtin) != (0)) ? ((point_powers[3]) - (shifts[0])) : FieldElementT::Zero(); + const FieldElementT& domain3 = ((uses_bitwise_builtin) != (0)) + ? ((point_powers[3]) - (FieldElementT::One())) + : FieldElementT::Zero(); + const FieldElementT& domain4 = + ((uses_bitwise_builtin) != (0)) + ? (((point_powers[3]) - (shifts[1])) * ((point_powers[3]) - (shifts[2])) * + ((point_powers[3]) - (shifts[3])) * ((point_powers[3]) - (shifts[4])) * + ((point_powers[3]) - (shifts[5])) * ((point_powers[3]) - (shifts[6])) * + ((point_powers[3]) - (shifts[7])) * ((point_powers[3]) - (shifts[8])) * + ((point_powers[3]) - (shifts[9])) * ((point_powers[3]) - (shifts[10])) * + ((point_powers[3]) - (shifts[11])) * ((point_powers[3]) - (shifts[12])) * + ((point_powers[3]) - (shifts[13])) * ((point_powers[3]) - (shifts[14])) * + ((point_powers[3]) - (shifts[15])) * (domain3)) + : FieldElementT::Zero(); + const FieldElementT& domain5 = (point_powers[4]) - (FieldElementT::One()); + const FieldElementT& domain6 = (point_powers[5]) - (shifts[16]); + const FieldElementT& domain7 = (point_powers[5]) - (FieldElementT::One()); + const FieldElementT& domain8 = (point_powers[6]) - (FieldElementT::One()); + const FieldElementT& domain9 = ((uses_ec_op_builtin) != (0)) + ? ((point_powers[7]) - (FieldElementT::One())) + : FieldElementT::Zero(); + const FieldElementT& domain10 = ((uses_ec_op_builtin) != (0)) + ? ((point_powers[8]) - (FieldElementT::One())) + : FieldElementT::Zero(); + const FieldElementT& domain11 = + ((uses_ec_op_builtin) != (0)) ? ((point_powers[8]) - (shifts[17])) : FieldElementT::Zero(); + const FieldElementT& domain12 = + ((uses_ec_op_builtin) != (0)) ? ((point_powers[8]) - (shifts[18])) : FieldElementT::Zero(); + const FieldElementT& domain13 = ((uses_ecdsa_builtin) != (0)) + ? ((point_powers[9]) - (FieldElementT::One())) + : FieldElementT::Zero(); + const FieldElementT& domain14 = ((uses_ecdsa_builtin) != (0)) + ? ((point_powers[10]) - (FieldElementT::One())) + : FieldElementT::Zero(); + const FieldElementT& domain15 = + ((uses_ecdsa_builtin) != (0)) ? ((point_powers[11]) - (shifts[19])) : FieldElementT::Zero(); + const FieldElementT& domain16 = + ((uses_ecdsa_builtin) != (0)) ? ((point_powers[11]) - (shifts[20])) : FieldElementT::Zero(); + const FieldElementT& domain17 = ((uses_ecdsa_builtin) != (0)) + ? ((point_powers[11]) - (FieldElementT::One())) + : FieldElementT::Zero(); + const FieldElementT& domain18 = + ((uses_ecdsa_builtin) != (0)) ? ((point_powers[12]) - (shifts[19])) : FieldElementT::Zero(); + const FieldElementT& domain19 = + ((uses_ecdsa_builtin) != (0)) ? ((point_powers[12]) - (shifts[20])) : FieldElementT::Zero(); + const FieldElementT& domain20 = ((uses_ecdsa_builtin) != (0)) + ? ((point_powers[12]) - (FieldElementT::One())) + : FieldElementT::Zero(); + const FieldElementT& domain21 = ((uses_keccak_builtin) != (0)) + ? ((point_powers[13]) - (FieldElementT::One())) + : FieldElementT::Zero(); + const FieldElementT& domain22 = ((uses_keccak_builtin) != (0)) + ? ((point_powers[14]) - (FieldElementT::One())) + : FieldElementT::Zero(); + const FieldElementT& domain23 = ((uses_keccak_builtin) != (0)) + ? (((point_powers[14]) - (shifts[21])) * (domain22)) + : FieldElementT::Zero(); + const FieldElementT& domain24 = ((uses_keccak_builtin) != (0)) + ? ((point_powers[15]) - (FieldElementT::One())) + : FieldElementT::Zero(); + const FieldElementT& domain25 = + ((uses_keccak_builtin) != (0)) + ? (((point_powers[16]) - (FieldElementT::One())) * ((point_powers[16]) - (shifts[22])) * + ((point_powers[16]) - (shifts[23])) * ((point_powers[16]) - (shifts[24])) * + ((point_powers[16]) - (shifts[25])) * ((point_powers[16]) - (shifts[26])) * + ((point_powers[16]) - (shifts[27])) * ((point_powers[16]) - (shifts[28]))) + : FieldElementT::Zero(); + const FieldElementT& domain26 = + ((uses_keccak_builtin) != (0)) + ? (((point_powers[16]) - (shifts[29])) * ((point_powers[16]) - (shifts[30])) * + ((point_powers[16]) - (shifts[31])) * ((point_powers[16]) - (shifts[32])) * + ((point_powers[16]) - (shifts[33])) * ((point_powers[16]) - (shifts[34])) * + ((point_powers[16]) - (shifts[35])) * ((point_powers[16]) - (shifts[36])) * + ((point_powers[16]) - (shifts[37])) * ((point_powers[16]) - (shifts[38])) * + ((point_powers[16]) - (shifts[39])) * ((point_powers[16]) - (shifts[40])) * + ((point_powers[16]) - (shifts[41])) * ((point_powers[16]) - (shifts[42])) * + ((point_powers[16]) - (shifts[43])) * ((point_powers[16]) - (shifts[44])) * (domain25)) + : FieldElementT::Zero(); + const FieldElementT& domain27 = + ((uses_keccak_builtin) != (0)) + ? (((point_powers[16]) - (shifts[45])) * ((point_powers[16]) - (shifts[46])) * + ((point_powers[16]) - (shifts[47])) * ((point_powers[16]) - (shifts[48])) * + ((point_powers[16]) - (shifts[49])) * ((point_powers[16]) - (shifts[50])) * + ((point_powers[16]) - (shifts[51])) * ((point_powers[16]) - (shifts[52])) * + ((point_powers[16]) - (shifts[53])) * ((point_powers[16]) - (shifts[54])) * + ((point_powers[16]) - (shifts[55])) * ((point_powers[16]) - (shifts[56])) * + ((point_powers[16]) - (shifts[57])) * ((point_powers[16]) - (shifts[58])) * + ((point_powers[16]) - (shifts[59])) * ((point_powers[16]) - (shifts[60])) * + ((point_powers[16]) - (shifts[61])) * ((point_powers[16]) - (shifts[62])) * + ((point_powers[16]) - (shifts[63])) * ((point_powers[16]) - (shifts[64])) * + ((point_powers[16]) - (shifts[65])) * ((point_powers[16]) - (shifts[66])) * + ((point_powers[16]) - (shifts[67])) * ((point_powers[16]) - (shifts[68])) * + ((point_powers[16]) - (shifts[69])) * ((point_powers[16]) - (shifts[70])) * + ((point_powers[16]) - (shifts[71])) * ((point_powers[16]) - (shifts[72])) * + ((point_powers[16]) - (shifts[73])) * ((point_powers[16]) - (shifts[74])) * + ((point_powers[16]) - (shifts[75])) * ((point_powers[16]) - (shifts[76])) * + ((point_powers[16]) - (shifts[77])) * ((point_powers[16]) - (shifts[78])) * + ((point_powers[16]) - (shifts[79])) * ((point_powers[16]) - (shifts[80])) * + ((point_powers[16]) - (shifts[81])) * ((point_powers[16]) - (shifts[82])) * + ((point_powers[16]) - (shifts[83])) * ((point_powers[16]) - (shifts[84])) * + ((point_powers[16]) - (shifts[85])) * ((point_powers[16]) - (shifts[86])) * + ((point_powers[16]) - (shifts[87])) * ((point_powers[16]) - (shifts[88])) * + ((point_powers[16]) - (shifts[89])) * ((point_powers[16]) - (shifts[90])) * + ((point_powers[16]) - (shifts[91])) * ((point_powers[16]) - (shifts[92])) * + ((point_powers[16]) - (shifts[93])) * ((point_powers[16]) - (shifts[94])) * + ((point_powers[16]) - (shifts[95])) * ((point_powers[16]) - (shifts[96])) * + ((point_powers[16]) - (shifts[97])) * ((point_powers[16]) - (shifts[98])) * + ((point_powers[16]) - (shifts[99])) * ((point_powers[16]) - (shifts[100])) * + ((point_powers[16]) - (shifts[101])) * ((point_powers[16]) - (shifts[102])) * + ((point_powers[16]) - (shifts[103])) * ((point_powers[16]) - (shifts[104])) * + ((point_powers[16]) - (shifts[105])) * ((point_powers[16]) - (shifts[106])) * + ((point_powers[16]) - (shifts[107])) * ((point_powers[16]) - (shifts[108])) * + ((point_powers[16]) - (shifts[109])) * ((point_powers[16]) - (shifts[110])) * + ((point_powers[16]) - (shifts[111])) * ((point_powers[16]) - (shifts[112])) * + ((point_powers[16]) - (shifts[113])) * ((point_powers[16]) - (shifts[114])) * + ((point_powers[16]) - (shifts[115])) * ((point_powers[16]) - (shifts[116])) * + ((point_powers[16]) - (shifts[117])) * ((point_powers[16]) - (shifts[118])) * + ((point_powers[16]) - (shifts[119])) * ((point_powers[16]) - (shifts[120])) * + ((point_powers[16]) - (shifts[121])) * ((point_powers[16]) - (shifts[122])) * + ((point_powers[16]) - (shifts[123])) * ((point_powers[16]) - (shifts[124])) * + ((point_powers[16]) - (shifts[125])) * ((point_powers[16]) - (shifts[126])) * + ((point_powers[16]) - (shifts[127])) * ((point_powers[16]) - (shifts[128])) * + ((point_powers[16]) - (shifts[129])) * ((point_powers[16]) - (shifts[130])) * + ((point_powers[16]) - (shifts[131])) * ((point_powers[16]) - (shifts[132])) * + ((point_powers[16]) - (shifts[133])) * ((point_powers[16]) - (shifts[134])) * + ((point_powers[16]) - (shifts[135])) * ((point_powers[16]) - (shifts[136])) * + ((point_powers[16]) - (shifts[137])) * ((point_powers[16]) - (shifts[138])) * + ((point_powers[16]) - (shifts[139])) * ((point_powers[16]) - (shifts[140])) * + (domain26)) + : FieldElementT::Zero(); + const FieldElementT& domain28 = + ((uses_keccak_builtin) != (0)) + ? (((point_powers[16]) - (shifts[21])) * ((point_powers[16]) - (shifts[141])) * + ((point_powers[16]) - (shifts[142])) * ((point_powers[16]) - (shifts[143])) * + ((point_powers[16]) - (shifts[144])) * ((point_powers[16]) - (shifts[145])) * + ((point_powers[16]) - (shifts[146])) * ((point_powers[16]) - (shifts[147])) * + ((point_powers[16]) - (shifts[148])) * ((point_powers[16]) - (shifts[149])) * + ((point_powers[16]) - (shifts[150])) * ((point_powers[16]) - (shifts[151])) * + ((point_powers[16]) - (shifts[152])) * ((point_powers[16]) - (shifts[153])) * + ((point_powers[16]) - (shifts[154])) * ((point_powers[16]) - (shifts[155])) * + ((point_powers[16]) - (shifts[156])) * ((point_powers[16]) - (shifts[157])) * + ((point_powers[16]) - (shifts[158])) * ((point_powers[16]) - (shifts[159])) * + ((point_powers[16]) - (shifts[160])) * ((point_powers[16]) - (shifts[161])) * + ((point_powers[16]) - (shifts[162])) * ((point_powers[16]) - (shifts[163])) * + ((point_powers[16]) - (shifts[164])) * ((point_powers[16]) - (shifts[165])) * + ((point_powers[16]) - (shifts[166])) * ((point_powers[16]) - (shifts[167])) * + ((point_powers[16]) - (shifts[168])) * ((point_powers[16]) - (shifts[169])) * + ((point_powers[16]) - (shifts[170])) * ((point_powers[16]) - (shifts[171])) * + ((point_powers[16]) - (shifts[172])) * ((point_powers[16]) - (shifts[173])) * + ((point_powers[16]) - (shifts[174])) * ((point_powers[16]) - (shifts[175])) * + ((point_powers[16]) - (shifts[176])) * ((point_powers[16]) - (shifts[177])) * + ((point_powers[16]) - (shifts[178])) * ((point_powers[16]) - (shifts[179])) * + ((point_powers[16]) - (shifts[180])) * ((point_powers[16]) - (shifts[181])) * + ((point_powers[16]) - (shifts[182])) * ((point_powers[16]) - (shifts[183])) * + ((point_powers[16]) - (shifts[184])) * ((point_powers[16]) - (shifts[185])) * + ((point_powers[16]) - (shifts[186])) * ((point_powers[16]) - (shifts[187])) * + ((point_powers[16]) - (shifts[188])) * ((point_powers[16]) - (shifts[189])) * + ((point_powers[16]) - (shifts[190])) * ((point_powers[16]) - (shifts[191])) * + ((point_powers[16]) - (shifts[192])) * ((point_powers[16]) - (shifts[193])) * + ((point_powers[16]) - (shifts[194])) * ((point_powers[16]) - (shifts[195])) * + ((point_powers[16]) - (shifts[196])) * ((point_powers[16]) - (shifts[197])) * + ((point_powers[16]) - (shifts[198])) * ((point_powers[16]) - (shifts[199])) * + ((point_powers[16]) - (shifts[200])) * ((point_powers[16]) - (shifts[201])) * + ((point_powers[16]) - (shifts[202])) * ((point_powers[16]) - (shifts[203])) * + ((point_powers[16]) - (shifts[204])) * ((point_powers[16]) - (shifts[205])) * + ((point_powers[16]) - (shifts[206])) * ((point_powers[16]) - (shifts[207])) * + ((point_powers[16]) - (shifts[208])) * ((point_powers[16]) - (shifts[209])) * + ((point_powers[16]) - (shifts[210])) * ((point_powers[16]) - (shifts[211])) * + ((point_powers[16]) - (shifts[212])) * ((point_powers[16]) - (shifts[213])) * + ((point_powers[16]) - (shifts[214])) * ((point_powers[16]) - (shifts[215])) * + ((point_powers[16]) - (shifts[216])) * ((point_powers[16]) - (shifts[217])) * + ((point_powers[16]) - (shifts[218])) * ((point_powers[16]) - (shifts[219])) * + ((point_powers[16]) - (shifts[220])) * ((point_powers[16]) - (shifts[221])) * + ((point_powers[16]) - (shifts[222])) * ((point_powers[16]) - (shifts[223])) * + ((point_powers[16]) - (shifts[224])) * ((point_powers[16]) - (shifts[225])) * + ((point_powers[16]) - (shifts[226])) * ((point_powers[16]) - (shifts[227])) * + ((point_powers[16]) - (shifts[228])) * ((point_powers[16]) - (shifts[229])) * + ((point_powers[16]) - (shifts[230])) * ((point_powers[16]) - (shifts[231])) * + ((point_powers[16]) - (shifts[232])) * ((point_powers[16]) - (shifts[233])) * + ((point_powers[16]) - (shifts[234])) * ((point_powers[16]) - (shifts[235])) * + ((point_powers[16]) - (shifts[236])) * ((point_powers[16]) - (shifts[237])) * + ((point_powers[16]) - (shifts[238])) * ((point_powers[16]) - (shifts[239])) * + ((point_powers[16]) - (shifts[240])) * ((point_powers[16]) - (shifts[241])) * + ((point_powers[16]) - (shifts[242])) * ((point_powers[16]) - (shifts[243])) * + ((point_powers[16]) - (shifts[244])) * ((point_powers[16]) - (shifts[245])) * + ((point_powers[16]) - (shifts[246])) * ((point_powers[16]) - (shifts[247])) * + ((point_powers[16]) - (shifts[248])) * ((point_powers[16]) - (shifts[249])) * + ((point_powers[16]) - (shifts[250])) * ((point_powers[16]) - (shifts[251])) * + ((point_powers[16]) - (shifts[252])) * ((point_powers[16]) - (shifts[253])) * + ((point_powers[16]) - (shifts[254])) * ((point_powers[16]) - (shifts[255])) * + ((point_powers[16]) - (shifts[256])) * ((point_powers[16]) - (shifts[257])) * + ((point_powers[16]) - (shifts[258])) * ((point_powers[16]) - (shifts[259])) * + ((point_powers[16]) - (shifts[260])) * ((point_powers[16]) - (shifts[261])) * + ((point_powers[16]) - (shifts[262])) * ((point_powers[16]) - (shifts[263])) * + ((point_powers[16]) - (shifts[264])) * ((point_powers[16]) - (shifts[265])) * + ((point_powers[16]) - (shifts[266])) * ((point_powers[16]) - (shifts[267])) * + ((point_powers[16]) - (shifts[268])) * ((point_powers[16]) - (shifts[269])) * + ((point_powers[16]) - (shifts[270])) * ((point_powers[16]) - (shifts[271])) * + ((point_powers[16]) - (shifts[272])) * ((point_powers[16]) - (shifts[273])) * + ((point_powers[16]) - (shifts[274])) * ((point_powers[16]) - (shifts[275])) * + ((point_powers[16]) - (shifts[276])) * ((point_powers[16]) - (shifts[277])) * + ((point_powers[16]) - (shifts[278])) * ((point_powers[16]) - (shifts[279])) * + ((point_powers[16]) - (shifts[280])) * ((point_powers[16]) - (shifts[281])) * + ((point_powers[16]) - (shifts[282])) * ((point_powers[16]) - (shifts[283])) * + ((point_powers[16]) - (shifts[284])) * ((point_powers[16]) - (shifts[285])) * + ((point_powers[16]) - (shifts[286])) * ((point_powers[16]) - (shifts[287])) * + ((point_powers[16]) - (shifts[288])) * ((point_powers[16]) - (shifts[289])) * + ((point_powers[16]) - (shifts[290])) * ((point_powers[16]) - (shifts[291])) * + ((point_powers[16]) - (shifts[292])) * ((point_powers[16]) - (shifts[293])) * + ((point_powers[16]) - (shifts[294])) * ((point_powers[16]) - (shifts[295])) * + ((point_powers[16]) - (shifts[296])) * ((point_powers[16]) - (shifts[297])) * + ((point_powers[16]) - (shifts[298])) * ((point_powers[16]) - (shifts[299])) * + ((point_powers[16]) - (shifts[300])) * ((point_powers[16]) - (shifts[301])) * + ((point_powers[16]) - (shifts[302])) * ((point_powers[16]) - (shifts[303])) * + ((point_powers[16]) - (shifts[304])) * ((point_powers[16]) - (shifts[305])) * + ((point_powers[16]) - (shifts[306])) * ((point_powers[16]) - (shifts[307])) * + ((point_powers[16]) - (shifts[308])) * ((point_powers[16]) - (shifts[309])) * + ((point_powers[16]) - (shifts[310])) * ((point_powers[16]) - (shifts[311])) * + ((point_powers[16]) - (shifts[312])) * ((point_powers[16]) - (shifts[313])) * + ((point_powers[16]) - (shifts[314])) * ((point_powers[16]) - (shifts[315])) * + ((point_powers[16]) - (shifts[316])) * ((point_powers[16]) - (shifts[317])) * + ((point_powers[16]) - (shifts[318])) * ((point_powers[16]) - (shifts[319])) * + ((point_powers[16]) - (shifts[320])) * ((point_powers[16]) - (shifts[321])) * + ((point_powers[16]) - (shifts[322])) * ((point_powers[16]) - (shifts[323])) * + ((point_powers[16]) - (shifts[324])) * ((point_powers[16]) - (shifts[325])) * + ((point_powers[16]) - (shifts[326])) * ((point_powers[16]) - (shifts[327])) * + ((point_powers[16]) - (shifts[328])) * ((point_powers[16]) - (shifts[329])) * + ((point_powers[16]) - (shifts[330])) * ((point_powers[16]) - (shifts[331])) * + ((point_powers[16]) - (shifts[332])) * ((point_powers[16]) - (shifts[333])) * + ((point_powers[16]) - (shifts[334])) * ((point_powers[16]) - (shifts[335])) * + ((point_powers[16]) - (shifts[336])) * ((point_powers[16]) - (shifts[337])) * + ((point_powers[16]) - (shifts[338])) * ((point_powers[16]) - (shifts[339])) * + ((point_powers[16]) - (shifts[340])) * ((point_powers[16]) - (shifts[341])) * + ((point_powers[16]) - (shifts[342])) * ((point_powers[16]) - (shifts[343])) * + ((point_powers[16]) - (shifts[344])) * ((point_powers[16]) - (shifts[345])) * + ((point_powers[16]) - (shifts[346])) * ((point_powers[16]) - (shifts[347])) * + ((point_powers[16]) - (shifts[348])) * ((point_powers[16]) - (shifts[349])) * + ((point_powers[16]) - (shifts[350])) * ((point_powers[16]) - (shifts[351])) * + ((point_powers[16]) - (shifts[352])) * ((point_powers[16]) - (shifts[353])) * + ((point_powers[16]) - (shifts[354])) * ((point_powers[16]) - (shifts[355])) * + ((point_powers[16]) - (shifts[356])) * ((point_powers[16]) - (shifts[357])) * + ((point_powers[16]) - (shifts[358])) * ((point_powers[16]) - (shifts[359])) * + ((point_powers[16]) - (shifts[360])) * ((point_powers[16]) - (shifts[361])) * + ((point_powers[16]) - (shifts[362])) * ((point_powers[16]) - (shifts[363])) * + ((point_powers[16]) - (shifts[364])) * ((point_powers[16]) - (shifts[365])) * + ((point_powers[16]) - (shifts[366])) * ((point_powers[16]) - (shifts[367])) * + ((point_powers[16]) - (shifts[368])) * ((point_powers[16]) - (shifts[369])) * + ((point_powers[16]) - (shifts[370])) * ((point_powers[16]) - (shifts[371])) * + ((point_powers[16]) - (shifts[372])) * ((point_powers[16]) - (shifts[373])) * + ((point_powers[16]) - (shifts[374])) * ((point_powers[16]) - (shifts[375])) * + ((point_powers[16]) - (shifts[376])) * ((point_powers[16]) - (shifts[377])) * + ((point_powers[16]) - (shifts[378])) * ((point_powers[16]) - (shifts[379])) * + (domain27)) + : FieldElementT::Zero(); + const FieldElementT& domain29 = ((uses_keccak_builtin) != (0)) + ? ((point_powers[17]) - (FieldElementT::One())) + : FieldElementT::Zero(); + const FieldElementT& domain30 = ((uses_keccak_builtin) != (0)) + ? ((point_powers[18]) - (FieldElementT::One())) + : FieldElementT::Zero(); + const FieldElementT& domain31 = ((uses_keccak_builtin) != (0)) + ? (((point_powers[18]) - (shifts[380])) * (domain30)) + : FieldElementT::Zero(); + const FieldElementT& domain32 = + ((uses_keccak_builtin) != (0)) + ? (((point_powers[18]) - (shifts[381])) * ((point_powers[18]) - (shifts[382])) * + ((point_powers[18]) - (shifts[383])) * ((point_powers[18]) - (shifts[384])) * + ((point_powers[18]) - (shifts[385])) * ((point_powers[18]) - (shifts[386])) * + ((point_powers[18]) - (shifts[387])) * ((point_powers[18]) - (shifts[388])) * + ((point_powers[18]) - (shifts[389])) * ((point_powers[18]) - (shifts[390])) * + ((point_powers[18]) - (shifts[391])) * ((point_powers[18]) - (shifts[392])) * + ((point_powers[18]) - (shifts[393])) * ((point_powers[18]) - (shifts[394])) * + (domain31)) + : FieldElementT::Zero(); + const FieldElementT& domain33 = + ((uses_keccak_builtin) != (0)) + ? (((point_powers[18]) - (shifts[395])) * ((point_powers[18]) - (shifts[396])) * + ((point_powers[18]) - (shifts[397])) * ((point_powers[18]) - (shifts[398])) * + ((point_powers[18]) - (shifts[399])) * ((point_powers[18]) - (shifts[400])) * + (domain31)) + : FieldElementT::Zero(); + const FieldElementT& domain34 = + ((uses_keccak_builtin) != (0)) + ? (((point_powers[18]) - (shifts[401])) * ((point_powers[18]) - (shifts[402])) * + ((point_powers[18]) - (shifts[403])) * ((point_powers[18]) - (shifts[404])) * + ((point_powers[18]) - (shifts[405])) * ((point_powers[18]) - (shifts[406])) * + ((point_powers[18]) - (shifts[407])) * ((point_powers[18]) - (shifts[408])) * + ((point_powers[18]) - (shifts[409])) * ((point_powers[18]) - (shifts[410])) * + ((point_powers[18]) - (shifts[411])) * ((point_powers[18]) - (shifts[412])) * + ((point_powers[18]) - (shifts[413])) * ((point_powers[18]) - (shifts[414])) * + ((point_powers[18]) - (shifts[415])) * ((point_powers[18]) - (shifts[416])) * + (domain33)) + : FieldElementT::Zero(); + const FieldElementT& domain35 = + ((uses_keccak_builtin) != (0)) + ? (((point_powers[18]) - (shifts[417])) * ((point_powers[18]) - (shifts[418])) * + ((point_powers[18]) - (shifts[419])) * ((point_powers[18]) - (shifts[420])) * + ((point_powers[18]) - (shifts[421])) * ((point_powers[18]) - (shifts[422])) * + (domain34)) + : FieldElementT::Zero(); + const FieldElementT& domain36 = ((uses_keccak_builtin) != (0)) + ? (((point_powers[18]) - (shifts[423])) * + ((point_powers[18]) - (shifts[424])) * (domain35)) + : FieldElementT::Zero(); + const FieldElementT& domain37 = + ((uses_keccak_builtin) != (0)) + ? (((point_powers[18]) - (shifts[425])) * ((point_powers[18]) - (shifts[22])) * + ((point_powers[18]) - (shifts[426])) * ((point_powers[18]) - (shifts[23])) * + ((point_powers[18]) - (shifts[427])) * ((point_powers[18]) - (shifts[24])) * + ((point_powers[18]) - (shifts[428])) * ((point_powers[18]) - (shifts[25])) * + ((point_powers[18]) - (shifts[429])) * ((point_powers[18]) - (shifts[26])) * + ((point_powers[18]) - (shifts[430])) * ((point_powers[18]) - (shifts[27])) * + ((point_powers[18]) - (shifts[431])) * ((point_powers[18]) - (shifts[28])) * + ((point_powers[18]) - (shifts[432])) * ((point_powers[18]) - (shifts[29])) * + ((point_powers[18]) - (shifts[433])) * ((point_powers[18]) - (shifts[30])) * + ((point_powers[18]) - (shifts[434])) * ((point_powers[18]) - (shifts[31])) * + ((point_powers[18]) - (shifts[435])) * ((point_powers[18]) - (shifts[32])) * + ((point_powers[18]) - (shifts[436])) * ((point_powers[18]) - (shifts[33]))) + : FieldElementT::Zero(); + const FieldElementT& domain38 = + ((uses_keccak_builtin) != (0)) + ? (((point_powers[18]) - (shifts[437])) * ((point_powers[18]) - (shifts[438])) * + ((point_powers[18]) - (shifts[439])) * ((point_powers[18]) - (shifts[440])) * + ((point_powers[18]) - (shifts[441])) * ((point_powers[18]) - (shifts[442])) * + ((point_powers[18]) - (shifts[443])) * ((point_powers[18]) - (shifts[444])) * + ((point_powers[18]) - (shifts[445])) * ((point_powers[18]) - (shifts[446])) * + ((point_powers[18]) - (shifts[447])) * ((point_powers[18]) - (shifts[448])) * + ((point_powers[18]) - (shifts[449])) * ((point_powers[18]) - (shifts[450])) * + ((point_powers[18]) - (shifts[451])) * ((point_powers[18]) - (shifts[452])) * + ((point_powers[18]) - (shifts[453])) * ((point_powers[18]) - (shifts[454])) * + ((point_powers[18]) - (shifts[455])) * ((point_powers[18]) - (shifts[456])) * + ((point_powers[18]) - (shifts[457])) * ((point_powers[18]) - (shifts[458])) * + ((point_powers[18]) - (shifts[459])) * ((point_powers[18]) - (shifts[460])) * + (domain37)) + : FieldElementT::Zero(); + const FieldElementT& domain39 = + ((uses_keccak_builtin) != (0)) ? ((domain31) * (domain38)) : FieldElementT::Zero(); + const FieldElementT& domain40 = + ((uses_keccak_builtin) != (0)) + ? (((point_powers[18]) - (shifts[461])) * ((point_powers[18]) - (shifts[462])) * + ((point_powers[18]) - (shifts[463])) * ((point_powers[18]) - (shifts[464])) * + ((point_powers[18]) - (shifts[465])) * ((point_powers[18]) - (shifts[466])) * + ((point_powers[18]) - (shifts[467])) * ((point_powers[18]) - (shifts[468])) * + ((point_powers[18]) - (shifts[469])) * ((point_powers[18]) - (shifts[470])) * + ((point_powers[18]) - (shifts[471])) * ((point_powers[18]) - (shifts[472])) * + ((point_powers[18]) - (shifts[473])) * ((point_powers[18]) - (shifts[474])) * + ((point_powers[18]) - (shifts[475])) * ((point_powers[18]) - (shifts[476])) * + ((point_powers[18]) - (shifts[477])) * ((point_powers[18]) - (shifts[478])) * + ((point_powers[18]) - (shifts[479])) * ((point_powers[18]) - (shifts[480])) * + ((point_powers[18]) - (shifts[481])) * ((point_powers[18]) - (shifts[482])) * + ((point_powers[18]) - (shifts[483])) * ((point_powers[18]) - (shifts[484])) * + ((point_powers[18]) - (shifts[485])) * ((point_powers[18]) - (shifts[486])) * + ((point_powers[18]) - (shifts[487])) * ((point_powers[18]) - (shifts[488])) * + ((point_powers[18]) - (shifts[489])) * ((point_powers[18]) - (shifts[490])) * + ((point_powers[18]) - (shifts[491])) * ((point_powers[18]) - (shifts[492])) * + ((point_powers[18]) - (shifts[493])) * ((point_powers[18]) - (shifts[494])) * + ((point_powers[18]) - (shifts[495])) * ((point_powers[18]) - (shifts[496])) * + ((point_powers[18]) - (shifts[497])) * ((point_powers[18]) - (shifts[498])) * + ((point_powers[18]) - (shifts[499])) * ((point_powers[18]) - (shifts[500])) * + ((point_powers[18]) - (shifts[501])) * ((point_powers[18]) - (shifts[502])) * + ((point_powers[18]) - (shifts[503])) * ((point_powers[18]) - (shifts[504])) * + ((point_powers[18]) - (shifts[505])) * ((point_powers[18]) - (shifts[506])) * + ((point_powers[18]) - (shifts[507])) * ((point_powers[18]) - (shifts[508])) * + ((point_powers[18]) - (shifts[509])) * ((point_powers[18]) - (shifts[510])) * + ((point_powers[18]) - (shifts[511])) * ((point_powers[18]) - (shifts[512])) * + ((point_powers[18]) - (shifts[513])) * ((point_powers[18]) - (shifts[514])) * + ((point_powers[18]) - (shifts[515])) * ((point_powers[18]) - (shifts[516])) * + ((point_powers[18]) - (shifts[517])) * ((point_powers[18]) - (shifts[518])) * + ((point_powers[18]) - (shifts[519])) * ((point_powers[18]) - (shifts[520])) * + ((point_powers[18]) - (shifts[521])) * ((point_powers[18]) - (shifts[522])) * + ((point_powers[18]) - (shifts[523])) * ((point_powers[18]) - (shifts[524])) * + ((point_powers[18]) - (shifts[525])) * ((point_powers[18]) - (shifts[526])) * + ((point_powers[18]) - (shifts[527])) * ((point_powers[18]) - (shifts[528])) * + ((point_powers[18]) - (shifts[529])) * ((point_powers[18]) - (shifts[530])) * + ((point_powers[18]) - (shifts[531])) * ((point_powers[18]) - (shifts[532])) * + ((point_powers[18]) - (shifts[533])) * ((point_powers[18]) - (shifts[534])) * + ((point_powers[18]) - (shifts[535])) * ((point_powers[18]) - (shifts[536])) * + ((point_powers[18]) - (shifts[537])) * ((point_powers[18]) - (shifts[538])) * + ((point_powers[18]) - (shifts[539])) * ((point_powers[18]) - (shifts[540])) * + ((point_powers[18]) - (shifts[541])) * ((point_powers[18]) - (shifts[542])) * + ((point_powers[18]) - (shifts[543])) * ((point_powers[18]) - (shifts[544])) * + ((point_powers[18]) - (shifts[545])) * ((point_powers[18]) - (shifts[546])) * + ((point_powers[18]) - (shifts[547])) * ((point_powers[18]) - (shifts[548])) * + ((point_powers[18]) - (shifts[549])) * ((point_powers[18]) - (shifts[550])) * + ((point_powers[18]) - (shifts[551])) * ((point_powers[18]) - (shifts[552])) * + ((point_powers[18]) - (shifts[553])) * ((point_powers[18]) - (shifts[554])) * + ((point_powers[18]) - (shifts[555])) * ((point_powers[18]) - (shifts[556])) * + ((point_powers[18]) - (shifts[557])) * ((point_powers[18]) - (shifts[558])) * + ((point_powers[18]) - (shifts[559])) * ((point_powers[18]) - (shifts[560])) * + ((point_powers[18]) - (shifts[561])) * ((point_powers[18]) - (shifts[562])) * + ((point_powers[18]) - (shifts[563])) * ((point_powers[18]) - (shifts[564])) * + ((point_powers[18]) - (shifts[565])) * ((point_powers[18]) - (shifts[566])) * + ((point_powers[18]) - (shifts[567])) * ((point_powers[18]) - (shifts[568])) * + ((point_powers[18]) - (shifts[569])) * ((point_powers[18]) - (shifts[570])) * + ((point_powers[18]) - (shifts[571])) * ((point_powers[18]) - (shifts[572])) * + ((point_powers[18]) - (shifts[573])) * ((point_powers[18]) - (shifts[574])) * + ((point_powers[18]) - (shifts[575])) * ((point_powers[18]) - (shifts[576])) * + ((point_powers[18]) - (shifts[577])) * ((point_powers[18]) - (shifts[578])) * + ((point_powers[18]) - (shifts[579])) * ((point_powers[18]) - (shifts[580])) * + ((point_powers[18]) - (shifts[581])) * ((point_powers[18]) - (shifts[582])) * + ((point_powers[18]) - (shifts[583])) * ((point_powers[18]) - (shifts[584])) * + ((point_powers[18]) - (shifts[585])) * ((point_powers[18]) - (shifts[586])) * + ((point_powers[18]) - (shifts[587])) * ((point_powers[18]) - (shifts[588])) * + ((point_powers[18]) - (shifts[589])) * ((point_powers[18]) - (shifts[590])) * + ((point_powers[18]) - (shifts[591])) * ((point_powers[18]) - (shifts[592])) * + ((point_powers[18]) - (shifts[593])) * ((point_powers[18]) - (shifts[594])) * + ((point_powers[18]) - (shifts[595])) * ((point_powers[18]) - (shifts[596])) * + ((point_powers[18]) - (shifts[597])) * ((point_powers[18]) - (shifts[598])) * + ((point_powers[18]) - (shifts[599])) * ((point_powers[18]) - (shifts[600])) * + ((point_powers[18]) - (shifts[601])) * ((point_powers[18]) - (shifts[602])) * + ((point_powers[18]) - (shifts[603])) * ((point_powers[18]) - (shifts[604])) * + ((point_powers[18]) - (shifts[605])) * ((point_powers[18]) - (shifts[606])) * + ((point_powers[18]) - (shifts[607])) * ((point_powers[18]) - (shifts[608])) * + ((point_powers[18]) - (shifts[609])) * ((point_powers[18]) - (shifts[610])) * + ((point_powers[18]) - (shifts[611])) * ((point_powers[18]) - (shifts[612])) * + ((point_powers[18]) - (shifts[613])) * ((point_powers[18]) - (shifts[614])) * + ((point_powers[18]) - (shifts[615])) * ((point_powers[18]) - (shifts[616])) * + ((point_powers[18]) - (shifts[617])) * ((point_powers[18]) - (shifts[618])) * + ((point_powers[18]) - (shifts[619])) * ((point_powers[18]) - (shifts[620])) * + ((point_powers[18]) - (shifts[621])) * ((point_powers[18]) - (shifts[622])) * + ((point_powers[18]) - (shifts[623])) * ((point_powers[18]) - (shifts[624])) * + ((point_powers[18]) - (shifts[625])) * ((point_powers[18]) - (shifts[626])) * + ((point_powers[18]) - (shifts[627])) * ((point_powers[18]) - (shifts[628])) * + ((point_powers[18]) - (shifts[629])) * ((point_powers[18]) - (shifts[630])) * + ((point_powers[18]) - (shifts[631])) * ((point_powers[18]) - (shifts[632])) * + ((point_powers[18]) - (shifts[633])) * ((point_powers[18]) - (shifts[634])) * + ((point_powers[18]) - (shifts[635])) * ((point_powers[18]) - (shifts[636])) * + ((point_powers[18]) - (shifts[637])) * ((point_powers[18]) - (shifts[638])) * + ((point_powers[18]) - (shifts[639])) * ((point_powers[18]) - (shifts[640])) * + ((point_powers[18]) - (shifts[641])) * ((point_powers[18]) - (shifts[642])) * + ((point_powers[18]) - (shifts[643])) * ((point_powers[18]) - (shifts[644])) * + ((point_powers[18]) - (shifts[645])) * ((point_powers[18]) - (shifts[646])) * + ((point_powers[18]) - (shifts[647])) * ((point_powers[18]) - (shifts[648])) * + ((point_powers[18]) - (shifts[649])) * ((point_powers[18]) - (shifts[650])) * + ((point_powers[18]) - (shifts[651])) * ((point_powers[18]) - (shifts[652])) * + ((point_powers[18]) - (shifts[653])) * ((point_powers[18]) - (shifts[654])) * + ((point_powers[18]) - (shifts[655])) * ((point_powers[18]) - (shifts[656])) * + ((point_powers[18]) - (shifts[657])) * ((point_powers[18]) - (shifts[658])) * + ((point_powers[18]) - (shifts[659])) * ((point_powers[18]) - (shifts[660])) * + ((point_powers[18]) - (shifts[661])) * ((point_powers[18]) - (shifts[662])) * + ((point_powers[18]) - (shifts[663])) * ((point_powers[18]) - (shifts[664])) * + ((point_powers[18]) - (shifts[665])) * ((point_powers[18]) - (shifts[666])) * + ((point_powers[18]) - (shifts[667])) * ((point_powers[18]) - (shifts[668])) * + ((point_powers[18]) - (shifts[669])) * ((point_powers[18]) - (shifts[670])) * + ((point_powers[18]) - (shifts[671])) * ((point_powers[18]) - (shifts[672])) * + ((point_powers[18]) - (shifts[673])) * ((point_powers[18]) - (shifts[674])) * + ((point_powers[18]) - (shifts[675])) * ((point_powers[18]) - (shifts[676])) * + ((point_powers[18]) - (shifts[677])) * ((point_powers[18]) - (shifts[678])) * + ((point_powers[18]) - (shifts[679])) * ((point_powers[18]) - (shifts[680])) * + ((point_powers[18]) - (shifts[681])) * ((point_powers[18]) - (shifts[682])) * + ((point_powers[18]) - (shifts[683])) * ((point_powers[18]) - (shifts[684])) * + ((point_powers[18]) - (shifts[685])) * ((point_powers[18]) - (shifts[686])) * + ((point_powers[18]) - (shifts[687])) * ((point_powers[18]) - (shifts[688])) * + ((point_powers[18]) - (shifts[689])) * ((point_powers[18]) - (shifts[690])) * + ((point_powers[18]) - (shifts[691])) * ((point_powers[18]) - (shifts[692])) * + ((point_powers[18]) - (shifts[693])) * ((point_powers[18]) - (shifts[694])) * + ((point_powers[18]) - (shifts[695])) * ((point_powers[18]) - (shifts[696])) * + ((point_powers[18]) - (shifts[697])) * ((point_powers[18]) - (shifts[698])) * + ((point_powers[18]) - (shifts[699])) * ((point_powers[18]) - (shifts[700])) * + ((point_powers[18]) - (shifts[701])) * ((point_powers[18]) - (shifts[702])) * + ((point_powers[18]) - (shifts[703])) * ((point_powers[18]) - (shifts[704])) * + ((point_powers[18]) - (shifts[705])) * ((point_powers[18]) - (shifts[706])) * + ((point_powers[18]) - (shifts[707])) * ((point_powers[18]) - (shifts[708])) * + ((point_powers[18]) - (shifts[709])) * ((point_powers[18]) - (shifts[710])) * + ((point_powers[18]) - (shifts[711])) * ((point_powers[18]) - (shifts[712])) * + ((point_powers[18]) - (shifts[713])) * ((point_powers[18]) - (shifts[714])) * + ((point_powers[18]) - (shifts[715])) * ((point_powers[18]) - (shifts[716])) * + ((point_powers[18]) - (shifts[717])) * ((point_powers[18]) - (shifts[718])) * + ((point_powers[18]) - (shifts[719])) * ((point_powers[18]) - (shifts[720])) * + ((point_powers[18]) - (shifts[721])) * ((point_powers[18]) - (shifts[722])) * + ((point_powers[18]) - (shifts[723])) * ((point_powers[18]) - (shifts[724])) * + ((point_powers[18]) - (shifts[725])) * ((point_powers[18]) - (shifts[726])) * + ((point_powers[18]) - (shifts[727])) * ((point_powers[18]) - (shifts[728])) * + ((point_powers[18]) - (shifts[729])) * ((point_powers[18]) - (shifts[730])) * + ((point_powers[18]) - (shifts[731])) * ((point_powers[18]) - (shifts[732])) * + ((point_powers[18]) - (shifts[733])) * ((point_powers[18]) - (shifts[734])) * + ((point_powers[18]) - (shifts[735])) * ((point_powers[18]) - (shifts[736])) * + ((point_powers[18]) - (shifts[737])) * ((point_powers[18]) - (shifts[738])) * + ((point_powers[18]) - (shifts[739])) * ((point_powers[18]) - (shifts[740])) * + ((point_powers[18]) - (shifts[741])) * ((point_powers[18]) - (shifts[742])) * + ((point_powers[18]) - (shifts[743])) * ((point_powers[18]) - (shifts[744])) * + ((point_powers[18]) - (shifts[745])) * ((point_powers[18]) - (shifts[746])) * + ((point_powers[18]) - (shifts[747])) * ((point_powers[18]) - (shifts[748])) * + ((point_powers[18]) - (shifts[749])) * ((point_powers[18]) - (shifts[750])) * + ((point_powers[18]) - (shifts[751])) * ((point_powers[18]) - (shifts[752])) * + ((point_powers[18]) - (shifts[753])) * ((point_powers[18]) - (shifts[754])) * + ((point_powers[18]) - (shifts[755])) * ((point_powers[18]) - (shifts[756])) * + ((point_powers[18]) - (shifts[757])) * ((point_powers[18]) - (shifts[758])) * + ((point_powers[18]) - (shifts[759])) * ((point_powers[18]) - (shifts[760])) * + ((point_powers[18]) - (shifts[761])) * ((point_powers[18]) - (shifts[762])) * + ((point_powers[18]) - (shifts[763])) * ((point_powers[18]) - (shifts[764])) * + ((point_powers[18]) - (shifts[765])) * ((point_powers[18]) - (shifts[766])) * + ((point_powers[18]) - (shifts[767])) * ((point_powers[18]) - (shifts[768])) * + ((point_powers[18]) - (shifts[769])) * ((point_powers[18]) - (shifts[770])) * + ((point_powers[18]) - (shifts[771])) * ((point_powers[18]) - (shifts[772])) * + ((point_powers[18]) - (shifts[773])) * ((point_powers[18]) - (shifts[774])) * + ((point_powers[18]) - (shifts[775])) * ((point_powers[18]) - (shifts[776])) * + ((point_powers[18]) - (shifts[777])) * ((point_powers[18]) - (shifts[778])) * + ((point_powers[18]) - (shifts[779])) * ((point_powers[18]) - (shifts[780])) * + ((point_powers[18]) - (shifts[781])) * ((point_powers[18]) - (shifts[782])) * + ((point_powers[18]) - (shifts[783])) * ((point_powers[18]) - (shifts[784])) * + ((point_powers[18]) - (shifts[785])) * ((point_powers[18]) - (shifts[786])) * + ((point_powers[18]) - (shifts[787])) * ((point_powers[18]) - (shifts[788])) * + ((point_powers[18]) - (shifts[789])) * ((point_powers[18]) - (shifts[790])) * + ((point_powers[18]) - (shifts[791])) * ((point_powers[18]) - (shifts[792])) * + ((point_powers[18]) - (shifts[793])) * ((point_powers[18]) - (shifts[794])) * + ((point_powers[18]) - (shifts[795])) * ((point_powers[18]) - (shifts[796])) * + ((point_powers[18]) - (shifts[797])) * ((point_powers[18]) - (shifts[798])) * + ((point_powers[18]) - (shifts[799])) * ((point_powers[18]) - (shifts[800])) * + ((point_powers[18]) - (shifts[801])) * ((point_powers[18]) - (shifts[802])) * + ((point_powers[18]) - (shifts[803])) * ((point_powers[18]) - (shifts[804])) * + ((point_powers[18]) - (shifts[805])) * ((point_powers[18]) - (shifts[806])) * + ((point_powers[18]) - (shifts[807])) * ((point_powers[18]) - (shifts[808])) * + ((point_powers[18]) - (shifts[809])) * ((point_powers[18]) - (shifts[810])) * + ((point_powers[18]) - (shifts[811])) * ((point_powers[18]) - (shifts[812])) * + ((point_powers[18]) - (shifts[813])) * ((point_powers[18]) - (shifts[814])) * + ((point_powers[18]) - (shifts[815])) * ((point_powers[18]) - (shifts[816])) * + ((point_powers[18]) - (shifts[817])) * ((point_powers[18]) - (shifts[818])) * + ((point_powers[18]) - (shifts[819])) * ((point_powers[18]) - (shifts[820])) * + ((point_powers[18]) - (shifts[821])) * ((point_powers[18]) - (shifts[822])) * + ((point_powers[18]) - (shifts[823])) * ((point_powers[18]) - (shifts[824])) * + ((point_powers[18]) - (shifts[825])) * ((point_powers[18]) - (shifts[826])) * + ((point_powers[18]) - (shifts[827])) * ((point_powers[18]) - (shifts[828])) * + ((point_powers[18]) - (shifts[829])) * ((point_powers[18]) - (shifts[830])) * + ((point_powers[18]) - (shifts[831])) * ((point_powers[18]) - (shifts[832])) * + ((point_powers[18]) - (shifts[833])) * ((point_powers[18]) - (shifts[834])) * + ((point_powers[18]) - (shifts[835])) * ((point_powers[18]) - (shifts[836])) * + ((point_powers[18]) - (shifts[837])) * ((point_powers[18]) - (shifts[838])) * + ((point_powers[18]) - (shifts[839])) * ((point_powers[18]) - (shifts[840])) * + ((point_powers[18]) - (shifts[841])) * ((point_powers[18]) - (shifts[842])) * + ((point_powers[18]) - (shifts[843])) * ((point_powers[18]) - (shifts[844])) * + ((point_powers[18]) - (shifts[845])) * ((point_powers[18]) - (shifts[846])) * + ((point_powers[18]) - (shifts[847])) * ((point_powers[18]) - (shifts[848])) * + ((point_powers[18]) - (shifts[849])) * ((point_powers[18]) - (shifts[850])) * + ((point_powers[18]) - (shifts[851])) * ((point_powers[18]) - (shifts[852])) * + ((point_powers[18]) - (shifts[853])) * ((point_powers[18]) - (shifts[854])) * + ((point_powers[18]) - (shifts[855])) * ((point_powers[18]) - (shifts[856])) * + ((point_powers[18]) - (shifts[857])) * ((point_powers[18]) - (shifts[858])) * + ((point_powers[18]) - (shifts[859])) * ((point_powers[18]) - (shifts[860])) * + ((point_powers[18]) - (shifts[861])) * ((point_powers[18]) - (shifts[862])) * + ((point_powers[18]) - (shifts[863])) * ((point_powers[18]) - (shifts[864])) * + ((point_powers[18]) - (shifts[865])) * ((point_powers[18]) - (shifts[866])) * + ((point_powers[18]) - (shifts[867])) * ((point_powers[18]) - (shifts[868])) * + ((point_powers[18]) - (shifts[869])) * ((point_powers[18]) - (shifts[870])) * + ((point_powers[18]) - (shifts[871])) * ((point_powers[18]) - (shifts[872])) * + ((point_powers[18]) - (shifts[873])) * ((point_powers[18]) - (shifts[874])) * + ((point_powers[18]) - (shifts[875])) * ((point_powers[18]) - (shifts[876])) * + ((point_powers[18]) - (shifts[877])) * ((point_powers[18]) - (shifts[878])) * + ((point_powers[18]) - (shifts[879])) * ((point_powers[18]) - (shifts[880])) * + ((point_powers[18]) - (shifts[881])) * ((point_powers[18]) - (shifts[882])) * + ((point_powers[18]) - (shifts[883])) * ((point_powers[18]) - (shifts[884])) * + ((point_powers[18]) - (shifts[885])) * ((point_powers[18]) - (shifts[886])) * + ((point_powers[18]) - (shifts[887])) * ((point_powers[18]) - (shifts[888])) * + ((point_powers[18]) - (shifts[889])) * ((point_powers[18]) - (shifts[890])) * + ((point_powers[18]) - (shifts[891])) * ((point_powers[18]) - (shifts[892])) * + ((point_powers[18]) - (shifts[893])) * ((point_powers[18]) - (shifts[894])) * + ((point_powers[18]) - (shifts[895])) * ((point_powers[18]) - (shifts[896])) * + ((point_powers[18]) - (shifts[897])) * ((point_powers[18]) - (shifts[898])) * + ((point_powers[18]) - (shifts[899])) * ((point_powers[18]) - (shifts[900])) * + ((point_powers[18]) - (shifts[901])) * ((point_powers[18]) - (shifts[902])) * + ((point_powers[18]) - (shifts[903])) * ((point_powers[18]) - (shifts[904])) * + ((point_powers[18]) - (shifts[905])) * ((point_powers[18]) - (shifts[906])) * + ((point_powers[18]) - (shifts[907])) * ((point_powers[18]) - (shifts[908])) * + ((point_powers[18]) - (shifts[909])) * ((point_powers[18]) - (shifts[910])) * + ((point_powers[18]) - (shifts[911])) * ((point_powers[18]) - (shifts[912])) * + ((point_powers[18]) - (shifts[913])) * ((point_powers[18]) - (shifts[914])) * + ((point_powers[18]) - (shifts[915])) * ((point_powers[18]) - (shifts[916])) * + ((point_powers[18]) - (shifts[917])) * ((point_powers[18]) - (shifts[918])) * + ((point_powers[18]) - (shifts[919])) * ((point_powers[18]) - (shifts[920])) * + ((point_powers[18]) - (shifts[921])) * ((point_powers[18]) - (shifts[922])) * + ((point_powers[18]) - (shifts[923])) * ((point_powers[18]) - (shifts[924])) * + ((point_powers[18]) - (shifts[925])) * ((point_powers[18]) - (shifts[926])) * + ((point_powers[18]) - (shifts[927])) * ((point_powers[18]) - (shifts[928])) * + ((point_powers[18]) - (shifts[929])) * ((point_powers[18]) - (shifts[930])) * + ((point_powers[18]) - (shifts[931])) * ((point_powers[18]) - (shifts[932])) * + ((point_powers[18]) - (shifts[933])) * ((point_powers[18]) - (shifts[934])) * + ((point_powers[18]) - (shifts[935])) * ((point_powers[18]) - (shifts[936])) * + ((point_powers[18]) - (shifts[937])) * ((point_powers[18]) - (shifts[938])) * + ((point_powers[18]) - (shifts[939])) * ((point_powers[18]) - (shifts[940])) * + ((point_powers[18]) - (shifts[941])) * ((point_powers[18]) - (shifts[942])) * + ((point_powers[18]) - (shifts[943])) * ((point_powers[18]) - (shifts[944])) * + ((point_powers[18]) - (shifts[945])) * ((point_powers[18]) - (shifts[946])) * + ((point_powers[18]) - (shifts[947])) * ((point_powers[18]) - (shifts[948])) * + ((point_powers[18]) - (shifts[949])) * ((point_powers[18]) - (shifts[950])) * + ((point_powers[18]) - (shifts[951])) * ((point_powers[18]) - (shifts[952])) * + ((point_powers[18]) - (shifts[953])) * ((point_powers[18]) - (shifts[954])) * + ((point_powers[18]) - (shifts[955])) * ((point_powers[18]) - (shifts[956])) * + ((point_powers[18]) - (shifts[957])) * ((point_powers[18]) - (shifts[958])) * + ((point_powers[18]) - (shifts[959])) * ((point_powers[18]) - (shifts[960])) * + ((point_powers[18]) - (shifts[961])) * ((point_powers[18]) - (shifts[962])) * + ((point_powers[18]) - (shifts[963])) * ((point_powers[18]) - (shifts[964])) * + ((point_powers[18]) - (shifts[965])) * ((point_powers[18]) - (shifts[966])) * + ((point_powers[18]) - (shifts[967])) * ((point_powers[18]) - (shifts[968])) * + ((point_powers[18]) - (shifts[969])) * ((point_powers[18]) - (shifts[970])) * + ((point_powers[18]) - (shifts[971])) * ((point_powers[18]) - (shifts[972])) * + ((point_powers[18]) - (shifts[973])) * ((point_powers[18]) - (shifts[974])) * + ((point_powers[18]) - (shifts[975])) * ((point_powers[18]) - (shifts[976])) * + ((point_powers[18]) - (shifts[977])) * ((point_powers[18]) - (shifts[978])) * + ((point_powers[18]) - (shifts[979])) * ((point_powers[18]) - (shifts[980])) * + ((point_powers[18]) - (shifts[981])) * ((point_powers[18]) - (shifts[982])) * + ((point_powers[18]) - (shifts[983])) * ((point_powers[18]) - (shifts[984])) * + ((point_powers[18]) - (shifts[985])) * ((point_powers[18]) - (shifts[986])) * + ((point_powers[18]) - (shifts[987])) * ((point_powers[18]) - (shifts[988])) * + ((point_powers[18]) - (shifts[989])) * ((point_powers[18]) - (shifts[990])) * + ((point_powers[18]) - (shifts[991])) * ((point_powers[18]) - (shifts[992])) * + ((point_powers[18]) - (shifts[993])) * ((point_powers[18]) - (shifts[994])) * + ((point_powers[18]) - (shifts[995])) * ((point_powers[18]) - (shifts[996])) * + ((point_powers[18]) - (shifts[997])) * ((point_powers[18]) - (shifts[998])) * + ((point_powers[18]) - (shifts[999])) * ((point_powers[18]) - (shifts[1000])) * + ((point_powers[18]) - (shifts[1001])) * ((point_powers[18]) - (shifts[1002])) * + ((point_powers[18]) - (shifts[1003])) * ((point_powers[18]) - (shifts[1004])) * + ((point_powers[18]) - (shifts[1005])) * ((point_powers[18]) - (shifts[1006])) * + ((point_powers[18]) - (shifts[1007])) * ((point_powers[18]) - (shifts[1008])) * + ((point_powers[18]) - (shifts[1009])) * ((point_powers[18]) - (shifts[1010])) * + ((point_powers[18]) - (shifts[1011])) * ((point_powers[18]) - (shifts[1012])) * + ((point_powers[18]) - (shifts[1013])) * ((point_powers[18]) - (shifts[1014])) * + ((point_powers[18]) - (shifts[1015])) * ((point_powers[18]) - (shifts[1016])) * + ((point_powers[18]) - (shifts[1017])) * ((point_powers[18]) - (shifts[1018])) * + ((point_powers[18]) - (shifts[1019])) * ((point_powers[18]) - (shifts[1020])) * + ((point_powers[18]) - (shifts[1021])) * ((point_powers[18]) - (shifts[1022])) * + ((point_powers[18]) - (shifts[1023])) * ((point_powers[18]) - (shifts[1024])) * + ((point_powers[18]) - (shifts[1025])) * ((point_powers[18]) - (shifts[1026])) * + ((point_powers[18]) - (shifts[1027])) * ((point_powers[18]) - (shifts[1028])) * + ((point_powers[18]) - (shifts[1029])) * ((point_powers[18]) - (shifts[1030])) * + ((point_powers[18]) - (shifts[1031])) * ((point_powers[18]) - (shifts[1032])) * + ((point_powers[18]) - (shifts[1033])) * ((point_powers[18]) - (shifts[1034])) * + ((point_powers[18]) - (shifts[1035])) * ((point_powers[18]) - (shifts[1036])) * + ((point_powers[18]) - (shifts[1037])) * ((point_powers[18]) - (shifts[1038])) * + ((point_powers[18]) - (shifts[1039])) * ((point_powers[18]) - (shifts[1040])) * + ((point_powers[18]) - (shifts[1041])) * ((point_powers[18]) - (shifts[1042])) * + ((point_powers[18]) - (shifts[1043])) * ((point_powers[18]) - (shifts[1044])) * + ((point_powers[18]) - (shifts[1045])) * ((point_powers[18]) - (shifts[1046])) * + ((point_powers[18]) - (shifts[1047])) * ((point_powers[18]) - (shifts[1048])) * + ((point_powers[18]) - (shifts[1049])) * ((point_powers[18]) - (shifts[1050])) * + ((point_powers[18]) - (shifts[1051])) * ((point_powers[18]) - (shifts[1052])) * + ((point_powers[18]) - (shifts[1053])) * ((point_powers[18]) - (shifts[1054])) * + ((point_powers[18]) - (shifts[1055])) * ((point_powers[18]) - (shifts[1056])) * + ((point_powers[18]) - (shifts[1057])) * ((point_powers[18]) - (shifts[1058])) * + ((point_powers[18]) - (shifts[1059])) * ((point_powers[18]) - (shifts[1060])) * + ((point_powers[18]) - (shifts[1061])) * ((point_powers[18]) - (shifts[1062])) * + ((point_powers[18]) - (shifts[1063])) * ((point_powers[18]) - (shifts[1064])) * + ((point_powers[18]) - (shifts[1065])) * ((point_powers[18]) - (shifts[1066])) * + ((point_powers[18]) - (shifts[1067])) * ((point_powers[18]) - (shifts[1068])) * + ((point_powers[18]) - (shifts[1069])) * ((point_powers[18]) - (shifts[1070])) * + ((point_powers[18]) - (shifts[1071])) * ((point_powers[18]) - (shifts[1072])) * + ((point_powers[18]) - (shifts[1073])) * ((point_powers[18]) - (shifts[1074])) * + ((point_powers[18]) - (shifts[1075])) * ((point_powers[18]) - (shifts[1076])) * + ((point_powers[18]) - (shifts[1077])) * ((point_powers[18]) - (shifts[1078])) * + ((point_powers[18]) - (shifts[1079])) * ((point_powers[18]) - (shifts[1080])) * + ((point_powers[18]) - (shifts[1081])) * ((point_powers[18]) - (shifts[1082])) * + ((point_powers[18]) - (shifts[1083])) * ((point_powers[18]) - (shifts[1084])) * + ((point_powers[18]) - (shifts[1085])) * ((point_powers[18]) - (shifts[1086])) * + ((point_powers[18]) - (shifts[1087])) * ((point_powers[18]) - (shifts[1088])) * + ((point_powers[18]) - (shifts[1089])) * ((point_powers[18]) - (shifts[1090])) * + ((point_powers[18]) - (shifts[1091])) * ((point_powers[18]) - (shifts[1092])) * + ((point_powers[18]) - (shifts[1093])) * ((point_powers[18]) - (shifts[1094])) * + ((point_powers[18]) - (shifts[1095])) * ((point_powers[18]) - (shifts[1096])) * + ((point_powers[18]) - (shifts[1097])) * ((point_powers[18]) - (shifts[1098])) * + ((point_powers[18]) - (shifts[1099])) * ((point_powers[18]) - (shifts[1100])) * + ((point_powers[18]) - (shifts[1101])) * ((point_powers[18]) - (shifts[1102])) * + ((point_powers[18]) - (shifts[1103])) * ((point_powers[18]) - (shifts[1104])) * + ((point_powers[18]) - (shifts[1105])) * ((point_powers[18]) - (shifts[1106])) * + ((point_powers[18]) - (shifts[1107])) * ((point_powers[18]) - (shifts[1108])) * + ((point_powers[18]) - (shifts[1109])) * ((point_powers[18]) - (shifts[1110])) * + ((point_powers[18]) - (shifts[1111])) * ((point_powers[18]) - (shifts[1112])) * + ((point_powers[18]) - (shifts[1113])) * ((point_powers[18]) - (shifts[1114])) * + ((point_powers[18]) - (shifts[1115])) * ((point_powers[18]) - (shifts[1116])) * + ((point_powers[18]) - (shifts[1117])) * ((point_powers[18]) - (shifts[1118])) * + ((point_powers[18]) - (shifts[1119])) * ((point_powers[18]) - (shifts[1120])) * + ((point_powers[18]) - (shifts[1121])) * ((point_powers[18]) - (shifts[1122])) * + ((point_powers[18]) - (shifts[1123])) * ((point_powers[18]) - (shifts[1124])) * + ((point_powers[18]) - (shifts[1125])) * ((point_powers[18]) - (shifts[1126])) * + ((point_powers[18]) - (shifts[1127])) * ((point_powers[18]) - (shifts[1128])) * + ((point_powers[18]) - (shifts[1129])) * ((point_powers[18]) - (shifts[1130])) * + ((point_powers[18]) - (shifts[1131])) * ((point_powers[18]) - (shifts[1132])) * + (domain35) * (domain38)) + : FieldElementT::Zero(); + const FieldElementT& domain41 = + ((uses_keccak_builtin) != (0)) ? ((domain30) * (domain37)) : FieldElementT::Zero(); + const FieldElementT& domain42 = ((uses_keccak_builtin) != (0)) + ? ((point_powers[18]) - (shifts[1133])) + : FieldElementT::Zero(); + const FieldElementT& domain43 = + ((uses_keccak_builtin) != (0)) + ? (((point_powers[16]) - (shifts[1134])) * ((point_powers[16]) - (shifts[1135])) * + ((point_powers[16]) - (shifts[1136])) * ((point_powers[16]) - (shifts[1137])) * + ((point_powers[16]) - (shifts[1138])) * ((point_powers[16]) - (shifts[1139])) * + ((point_powers[18]) - (shifts[1140])) * ((point_powers[18]) - (shifts[1141])) * + ((point_powers[18]) - (shifts[1142])) * ((point_powers[18]) - (shifts[1143])) * + ((point_powers[18]) - (shifts[1144])) * ((point_powers[18]) - (shifts[1145])) * + ((point_powers[18]) - (shifts[1146])) * ((point_powers[18]) - (shifts[1147])) * + ((point_powers[18]) - (shifts[1148])) * ((point_powers[18]) - (shifts[1149])) * + ((point_powers[18]) - (shifts[1150])) * ((point_powers[18]) - (shifts[1151])) * + ((point_powers[18]) - (shifts[1152])) * ((point_powers[18]) - (shifts[1153])) * + ((point_powers[18]) - (shifts[1154])) * ((point_powers[18]) - (shifts[1155])) * + ((point_powers[18]) - (shifts[1156])) * ((point_powers[18]) - (shifts[1157])) * + ((point_powers[18]) - (shifts[1158])) * ((point_powers[18]) - (shifts[1159])) * + ((point_powers[18]) - (shifts[1160])) * ((point_powers[18]) - (shifts[1161])) * + ((point_powers[18]) - (shifts[1162])) * ((point_powers[18]) - (shifts[1163])) * + (domain42)) + : FieldElementT::Zero(); + const FieldElementT& domain44 = ((uses_keccak_builtin) != (0)) + ? ((point_powers[18]) - (shifts[1164])) + : FieldElementT::Zero(); + const FieldElementT& domain45 = + ((uses_keccak_builtin) != (0)) + ? (((point_powers[16]) - (shifts[1165])) * ((point_powers[16]) - (shifts[1166])) * + ((point_powers[16]) - (shifts[1167])) * ((point_powers[16]) - (shifts[1168])) * + ((point_powers[16]) - (shifts[1169])) * ((point_powers[16]) - (shifts[1170])) * + ((point_powers[18]) - (shifts[1171])) * ((point_powers[18]) - (shifts[1172])) * + ((point_powers[18]) - (shifts[1173])) * ((point_powers[18]) - (shifts[1174])) * + ((point_powers[18]) - (shifts[1175])) * ((point_powers[18]) - (shifts[1176])) * + ((point_powers[18]) - (shifts[1177])) * ((point_powers[18]) - (shifts[1178])) * + ((point_powers[18]) - (shifts[1179])) * ((point_powers[18]) - (shifts[1180])) * + ((point_powers[18]) - (shifts[1181])) * ((point_powers[18]) - (shifts[1182])) * + ((point_powers[18]) - (shifts[1183])) * ((point_powers[18]) - (shifts[1184])) * + ((point_powers[18]) - (shifts[1185])) * ((point_powers[18]) - (shifts[1186])) * + ((point_powers[18]) - (shifts[1187])) * ((point_powers[18]) - (shifts[1188])) * + ((point_powers[18]) - (shifts[1189])) * ((point_powers[18]) - (shifts[1190])) * + ((point_powers[18]) - (shifts[1191])) * ((point_powers[18]) - (shifts[1192])) * + ((point_powers[18]) - (shifts[1193])) * ((point_powers[18]) - (shifts[1194])) * + ((point_powers[18]) - (shifts[1195])) * ((point_powers[18]) - (shifts[1196])) * + (domain43) * (domain44)) + : FieldElementT::Zero(); + const FieldElementT& domain46 = + ((uses_keccak_builtin) != (0)) + ? (((point_powers[18]) - (shifts[1197])) * ((point_powers[18]) - (shifts[1198])) * + ((point_powers[18]) - (shifts[1199])) * ((point_powers[18]) - (shifts[1200])) * + ((point_powers[18]) - (shifts[1201])) * ((point_powers[18]) - (shifts[1202]))) + : FieldElementT::Zero(); + const FieldElementT& domain47 = + ((uses_keccak_builtin) != (0)) + ? (((point_powers[18]) - (shifts[1203])) * ((point_powers[18]) - (shifts[1204])) * + ((point_powers[18]) - (shifts[1205])) * ((point_powers[18]) - (shifts[1206])) * + ((point_powers[18]) - (shifts[1207])) * ((point_powers[18]) - (shifts[1208])) * + ((point_powers[18]) - (shifts[1209])) * ((point_powers[18]) - (shifts[1210])) * + ((point_powers[18]) - (shifts[1211])) * ((point_powers[18]) - (shifts[1212])) * + ((point_powers[18]) - (shifts[1213])) * ((point_powers[18]) - (shifts[1214])) * + ((point_powers[18]) - (shifts[1215])) * ((point_powers[18]) - (shifts[1216])) * + ((point_powers[18]) - (shifts[1217])) * ((point_powers[18]) - (shifts[1218])) * + (domain46)) + : FieldElementT::Zero(); + const FieldElementT& domain48 = + ((uses_keccak_builtin) != (0)) + ? (((point_powers[14]) - (shifts[1138])) * ((point_powers[14]) - (shifts[1139])) * + ((point_powers[16]) - (shifts[1219])) * ((point_powers[16]) - (shifts[1220])) * + ((point_powers[16]) - (shifts[1221])) * ((point_powers[16]) - (shifts[1222])) * + ((point_powers[16]) - (shifts[1223])) * ((point_powers[16]) - (shifts[1224])) * + ((point_powers[16]) - (shifts[1225])) * ((point_powers[16]) - (shifts[1226])) * + ((point_powers[16]) - (shifts[1227])) * ((point_powers[16]) - (shifts[1228])) * + ((point_powers[16]) - (shifts[1229])) * ((point_powers[16]) - (shifts[1230])) * + ((point_powers[16]) - (shifts[1231])) * ((point_powers[16]) - (shifts[1232])) * + ((point_powers[16]) - (shifts[1233])) * ((point_powers[16]) - (shifts[1234])) * + ((point_powers[16]) - (shifts[1235])) * ((point_powers[16]) - (shifts[1236])) * + ((point_powers[16]) - (shifts[1237])) * ((point_powers[16]) - (shifts[1238])) * + ((point_powers[16]) - (shifts[1239])) * ((point_powers[16]) - (shifts[1240])) * + ((point_powers[16]) - (shifts[1241])) * ((point_powers[16]) - (shifts[1242])) * + ((point_powers[16]) - (shifts[1243])) * ((point_powers[16]) - (shifts[1244])) * + ((point_powers[16]) - (shifts[1245])) * ((point_powers[16]) - (shifts[1246])) * + ((point_powers[16]) - (shifts[1247])) * ((point_powers[16]) - (shifts[1248])) * + ((point_powers[16]) - (shifts[1249])) * ((point_powers[16]) - (shifts[1250])) * + ((point_powers[16]) - (shifts[1251])) * ((point_powers[16]) - (shifts[1252])) * + ((point_powers[16]) - (shifts[1253])) * ((point_powers[16]) - (shifts[1254])) * + ((point_powers[16]) - (shifts[1255])) * ((point_powers[16]) - (shifts[1256])) * + ((point_powers[16]) - (shifts[1257])) * ((point_powers[16]) - (shifts[1258])) * + ((point_powers[16]) - (shifts[1259])) * ((point_powers[16]) - (shifts[1260])) * + ((point_powers[16]) - (shifts[1261])) * ((point_powers[16]) - (shifts[1262])) * + ((point_powers[16]) - (shifts[1263])) * ((point_powers[16]) - (shifts[1264])) * + ((point_powers[16]) - (shifts[1265])) * ((point_powers[16]) - (shifts[1266])) * + ((point_powers[16]) - (shifts[1267])) * ((point_powers[16]) - (shifts[1268])) * + ((point_powers[16]) - (shifts[1269])) * ((point_powers[16]) - (shifts[1270])) * + ((point_powers[16]) - (shifts[1271])) * ((point_powers[16]) - (shifts[1272])) * + ((point_powers[16]) - (shifts[1273])) * ((point_powers[16]) - (shifts[1274])) * + ((point_powers[16]) - (shifts[1275])) * ((point_powers[16]) - (shifts[1276])) * + ((point_powers[16]) - (shifts[1277])) * ((point_powers[16]) - (shifts[1278])) * + ((point_powers[16]) - (shifts[1279])) * ((point_powers[16]) - (shifts[1280])) * + ((point_powers[16]) - (shifts[1281])) * ((point_powers[16]) - (shifts[1282])) * + ((point_powers[16]) - (shifts[1283])) * ((point_powers[16]) - (shifts[1284])) * + ((point_powers[16]) - (shifts[1285])) * ((point_powers[16]) - (shifts[1286])) * + ((point_powers[16]) - (shifts[1287])) * ((point_powers[16]) - (shifts[1288])) * + ((point_powers[16]) - (shifts[1289])) * ((point_powers[16]) - (shifts[1290])) * + ((point_powers[16]) - (shifts[1291])) * ((point_powers[16]) - (shifts[1292])) * + ((point_powers[16]) - (shifts[1293])) * ((point_powers[16]) - (shifts[1294])) * + ((point_powers[16]) - (shifts[1295])) * ((point_powers[16]) - (shifts[1296])) * + ((point_powers[16]) - (shifts[1297])) * ((point_powers[16]) - (shifts[1298])) * + ((point_powers[16]) - (shifts[1299])) * ((point_powers[16]) - (shifts[1300])) * + ((point_powers[16]) - (shifts[1301])) * ((point_powers[16]) - (shifts[1302])) * + ((point_powers[16]) - (shifts[1303])) * ((point_powers[16]) - (shifts[1304])) * + ((point_powers[16]) - (shifts[1305])) * ((point_powers[16]) - (shifts[1306])) * + ((point_powers[16]) - (shifts[1307])) * ((point_powers[16]) - (shifts[1308])) * + ((point_powers[16]) - (shifts[1309])) * ((point_powers[16]) - (shifts[1310])) * + ((point_powers[16]) - (shifts[1311])) * ((point_powers[16]) - (shifts[1312])) * + ((point_powers[16]) - (shifts[1313])) * ((point_powers[16]) - (shifts[1314])) * + ((point_powers[16]) - (shifts[1315])) * ((point_powers[16]) - (shifts[1316])) * + ((point_powers[16]) - (shifts[1317])) * ((point_powers[16]) - (shifts[1318])) * + ((point_powers[16]) - (shifts[1319])) * ((point_powers[16]) - (shifts[1320])) * + ((point_powers[16]) - (shifts[1321])) * ((point_powers[16]) - (shifts[1322])) * + ((point_powers[16]) - (shifts[1323])) * ((point_powers[16]) - (shifts[1324])) * + ((point_powers[16]) - (shifts[1325])) * ((point_powers[16]) - (shifts[1326])) * + ((point_powers[16]) - (shifts[1327])) * ((point_powers[16]) - (shifts[1328])) * + ((point_powers[16]) - (shifts[1329])) * ((point_powers[16]) - (shifts[1330])) * + ((point_powers[16]) - (shifts[1331])) * ((point_powers[16]) - (shifts[1332])) * + ((point_powers[16]) - (shifts[1333])) * ((point_powers[16]) - (shifts[1334])) * + ((point_powers[16]) - (shifts[1335])) * ((point_powers[16]) - (shifts[1336])) * + ((point_powers[16]) - (shifts[1337])) * ((point_powers[16]) - (shifts[1338])) * + ((point_powers[16]) - (shifts[1339])) * ((point_powers[16]) - (shifts[1340])) * + ((point_powers[16]) - (shifts[1341])) * ((point_powers[16]) - (shifts[1342])) * + ((point_powers[16]) - (shifts[1343])) * ((point_powers[16]) - (shifts[1344])) * + ((point_powers[16]) - (shifts[1345])) * ((point_powers[16]) - (shifts[1346])) * + ((point_powers[16]) - (shifts[1347])) * ((point_powers[16]) - (shifts[1348])) * + ((point_powers[16]) - (shifts[1349])) * ((point_powers[16]) - (shifts[1350])) * + ((point_powers[16]) - (shifts[1351])) * ((point_powers[16]) - (shifts[1352])) * + ((point_powers[16]) - (shifts[1353])) * ((point_powers[16]) - (shifts[1354])) * + ((point_powers[16]) - (shifts[1355])) * ((point_powers[16]) - (shifts[1356])) * + ((point_powers[16]) - (shifts[1357])) * ((point_powers[16]) - (shifts[1358])) * + ((point_powers[16]) - (shifts[1359])) * ((point_powers[16]) - (shifts[1360])) * + ((point_powers[16]) - (shifts[1361])) * ((point_powers[16]) - (shifts[1362])) * + ((point_powers[16]) - (shifts[1363])) * ((point_powers[16]) - (shifts[1364])) * + ((point_powers[16]) - (shifts[1365])) * ((point_powers[16]) - (shifts[1366])) * + ((point_powers[16]) - (shifts[1367])) * ((point_powers[16]) - (shifts[1368])) * + ((point_powers[16]) - (shifts[1369])) * ((point_powers[16]) - (shifts[1370])) * + ((point_powers[16]) - (shifts[1371])) * ((point_powers[16]) - (shifts[1372])) * + ((point_powers[16]) - (shifts[1133])) * ((point_powers[16]) - (shifts[1141])) * + ((point_powers[16]) - (shifts[1143])) * ((point_powers[16]) - (shifts[1145])) * + ((point_powers[16]) - (shifts[1147])) * ((point_powers[16]) - (shifts[1149])) * + ((point_powers[16]) - (shifts[1151])) * ((point_powers[16]) - (shifts[1153])) * + ((point_powers[16]) - (shifts[1155])) * ((point_powers[16]) - (shifts[1157])) * + ((point_powers[16]) - (shifts[1159])) * ((point_powers[16]) - (shifts[1161])) * + ((point_powers[16]) - (shifts[1163])) * ((point_powers[16]) - (shifts[1373])) * + ((point_powers[18]) - (shifts[1374])) * ((point_powers[18]) - (shifts[1375])) * + ((point_powers[18]) - (shifts[1376])) * ((point_powers[18]) - (shifts[1377])) * + ((point_powers[18]) - (shifts[1378])) * ((point_powers[18]) - (shifts[1379])) * + ((point_powers[18]) - (shifts[1380])) * ((point_powers[18]) - (shifts[1381])) * + ((point_powers[18]) - (shifts[1382])) * ((point_powers[18]) - (shifts[1383])) * + ((point_powers[18]) - (shifts[1384])) * ((point_powers[18]) - (shifts[1385])) * + ((point_powers[18]) - (shifts[1386])) * ((point_powers[18]) - (shifts[1387])) * + ((point_powers[18]) - (shifts[1388])) * ((point_powers[18]) - (shifts[1389])) * + ((point_powers[18]) - (shifts[1390])) * ((point_powers[18]) - (shifts[1391])) * + ((point_powers[18]) - (shifts[1392])) * ((point_powers[18]) - (shifts[1393])) * + ((point_powers[18]) - (shifts[1394])) * ((point_powers[18]) - (shifts[1395])) * + ((point_powers[18]) - (shifts[1396])) * ((point_powers[18]) - (shifts[1397])) * + ((point_powers[18]) - (shifts[1398])) * ((point_powers[18]) - (shifts[1399])) * + ((point_powers[18]) - (shifts[1400])) * ((point_powers[18]) - (shifts[1401])) * + ((point_powers[18]) - (shifts[1402])) * ((point_powers[18]) - (shifts[1403])) * + ((point_powers[18]) - (shifts[1404])) * ((point_powers[18]) - (shifts[1405])) * + ((point_powers[18]) - (shifts[1406])) * ((point_powers[18]) - (shifts[1407])) * + ((point_powers[18]) - (shifts[1408])) * ((point_powers[18]) - (shifts[1409])) * + ((point_powers[18]) - (shifts[1410])) * ((point_powers[18]) - (shifts[1411])) * + ((point_powers[18]) - (shifts[1412])) * ((point_powers[18]) - (shifts[1413])) * + ((point_powers[18]) - (shifts[1414])) * ((point_powers[18]) - (shifts[1415])) * + ((point_powers[18]) - (shifts[1416])) * ((point_powers[18]) - (shifts[1417])) * + ((point_powers[18]) - (shifts[1418])) * ((point_powers[18]) - (shifts[1419])) * + ((point_powers[18]) - (shifts[1420])) * ((point_powers[18]) - (shifts[1421])) * + ((point_powers[18]) - (shifts[1422])) * ((point_powers[18]) - (shifts[1423])) * + ((point_powers[18]) - (shifts[1424])) * ((point_powers[18]) - (shifts[1425])) * + ((point_powers[18]) - (shifts[1426])) * ((point_powers[18]) - (shifts[1427])) * + ((point_powers[18]) - (shifts[1428])) * ((point_powers[18]) - (shifts[1429])) * + ((point_powers[18]) - (shifts[1430])) * ((point_powers[18]) - (shifts[1431])) * + ((point_powers[18]) - (shifts[1432])) * ((point_powers[18]) - (shifts[1433])) * + ((point_powers[18]) - (shifts[1434])) * ((point_powers[18]) - (shifts[1435])) * + ((point_powers[18]) - (shifts[1436])) * ((point_powers[18]) - (shifts[1437])) * + ((point_powers[18]) - (shifts[1438])) * ((point_powers[18]) - (shifts[1439])) * + ((point_powers[18]) - (shifts[1440])) * ((point_powers[18]) - (shifts[1441])) * + ((point_powers[18]) - (shifts[1442])) * ((point_powers[18]) - (shifts[1443])) * + ((point_powers[18]) - (shifts[1444])) * ((point_powers[18]) - (shifts[1445])) * + ((point_powers[18]) - (shifts[1446])) * ((point_powers[18]) - (shifts[1447])) * + ((point_powers[18]) - (shifts[1448])) * ((point_powers[18]) - (shifts[1449])) * + ((point_powers[18]) - (shifts[1450])) * ((point_powers[18]) - (shifts[1451])) * + ((point_powers[18]) - (shifts[1452])) * ((point_powers[18]) - (shifts[1453])) * + ((point_powers[18]) - (shifts[1454])) * ((point_powers[18]) - (shifts[1455])) * + ((point_powers[18]) - (shifts[1456])) * ((point_powers[18]) - (shifts[1457])) * + ((point_powers[18]) - (shifts[1458])) * ((point_powers[18]) - (shifts[1459])) * + ((point_powers[18]) - (shifts[1460])) * ((point_powers[18]) - (shifts[1461])) * + ((point_powers[18]) - (shifts[1462])) * ((point_powers[18]) - (shifts[1463])) * + ((point_powers[18]) - (shifts[1464])) * ((point_powers[18]) - (shifts[1465])) * + ((point_powers[18]) - (shifts[1466])) * ((point_powers[18]) - (shifts[1467])) * + ((point_powers[18]) - (shifts[1468])) * ((point_powers[18]) - (shifts[1469])) * + ((point_powers[18]) - (shifts[1470])) * ((point_powers[18]) - (shifts[1471])) * + ((point_powers[18]) - (shifts[1472])) * ((point_powers[18]) - (shifts[1473])) * + ((point_powers[18]) - (shifts[1474])) * ((point_powers[18]) - (shifts[1475])) * + ((point_powers[18]) - (shifts[1476])) * ((point_powers[18]) - (shifts[1477])) * + ((point_powers[18]) - (shifts[1478])) * ((point_powers[18]) - (shifts[1479])) * + ((point_powers[18]) - (shifts[1480])) * ((point_powers[18]) - (shifts[1481])) * + ((point_powers[18]) - (shifts[1482])) * ((point_powers[18]) - (shifts[1483])) * + ((point_powers[18]) - (shifts[1484])) * ((point_powers[18]) - (shifts[1485])) * + ((point_powers[18]) - (shifts[1486])) * ((point_powers[18]) - (shifts[1487])) * + ((point_powers[18]) - (shifts[1488])) * ((point_powers[18]) - (shifts[1489])) * + ((point_powers[18]) - (shifts[1490])) * ((point_powers[18]) - (shifts[1491])) * + ((point_powers[18]) - (shifts[1492])) * ((point_powers[18]) - (shifts[1493])) * + ((point_powers[18]) - (shifts[1494])) * ((point_powers[18]) - (shifts[1495])) * + ((point_powers[18]) - (shifts[1496])) * ((point_powers[18]) - (shifts[1497])) * + ((point_powers[18]) - (shifts[1498])) * ((point_powers[18]) - (shifts[1499])) * + ((point_powers[18]) - (shifts[1500])) * ((point_powers[18]) - (shifts[1501])) * + ((point_powers[18]) - (shifts[1502])) * ((point_powers[18]) - (shifts[1503])) * + ((point_powers[18]) - (shifts[1504])) * ((point_powers[18]) - (shifts[1505])) * + ((point_powers[18]) - (shifts[1506])) * ((point_powers[18]) - (shifts[1507])) * + ((point_powers[18]) - (shifts[1508])) * ((point_powers[18]) - (shifts[1509])) * + ((point_powers[18]) - (shifts[1510])) * ((point_powers[18]) - (shifts[1511])) * + ((point_powers[18]) - (shifts[1512])) * ((point_powers[18]) - (shifts[1513])) * + ((point_powers[18]) - (shifts[1514])) * ((point_powers[18]) - (shifts[1515])) * + ((point_powers[18]) - (shifts[1516])) * ((point_powers[18]) - (shifts[1517])) * + ((point_powers[18]) - (shifts[1518])) * ((point_powers[18]) - (shifts[1519])) * + ((point_powers[18]) - (shifts[1520])) * ((point_powers[18]) - (shifts[1521])) * + ((point_powers[18]) - (shifts[1522])) * ((point_powers[18]) - (shifts[1523])) * + ((point_powers[18]) - (shifts[1524])) * ((point_powers[18]) - (shifts[1525])) * + ((point_powers[18]) - (shifts[1526])) * ((point_powers[18]) - (shifts[1527])) * + ((point_powers[18]) - (shifts[1528])) * ((point_powers[18]) - (shifts[1529])) * + ((point_powers[18]) - (shifts[1530])) * ((point_powers[18]) - (shifts[1531])) * + ((point_powers[18]) - (shifts[1532])) * ((point_powers[18]) - (shifts[1533])) * + ((point_powers[18]) - (shifts[1534])) * ((point_powers[18]) - (shifts[1535])) * + ((point_powers[18]) - (shifts[1536])) * ((point_powers[18]) - (shifts[1537])) * + ((point_powers[18]) - (shifts[1538])) * ((point_powers[18]) - (shifts[1539])) * + ((point_powers[18]) - (shifts[1540])) * ((point_powers[18]) - (shifts[1541])) * + ((point_powers[18]) - (shifts[1542])) * ((point_powers[18]) - (shifts[1543])) * + ((point_powers[18]) - (shifts[1544])) * ((point_powers[18]) - (shifts[1545])) * + ((point_powers[18]) - (shifts[1546])) * ((point_powers[18]) - (shifts[1547])) * + ((point_powers[18]) - (shifts[1548])) * ((point_powers[18]) - (shifts[1549])) * + ((point_powers[18]) - (shifts[1550])) * ((point_powers[18]) - (shifts[1551])) * + ((point_powers[18]) - (shifts[1552])) * ((point_powers[18]) - (shifts[1553])) * + ((point_powers[18]) - (shifts[1554])) * ((point_powers[18]) - (shifts[1555])) * + ((point_powers[18]) - (shifts[1556])) * ((point_powers[18]) - (shifts[1557])) * + ((point_powers[18]) - (shifts[1558])) * ((point_powers[18]) - (shifts[1559])) * + ((point_powers[18]) - (shifts[1560])) * ((point_powers[18]) - (shifts[1561])) * + ((point_powers[18]) - (shifts[1562])) * ((point_powers[18]) - (shifts[1563])) * + ((point_powers[18]) - (shifts[1564])) * ((point_powers[18]) - (shifts[1565])) * + ((point_powers[18]) - (shifts[1566])) * ((point_powers[18]) - (shifts[1567])) * + ((point_powers[18]) - (shifts[1568])) * ((point_powers[18]) - (shifts[1569])) * + ((point_powers[18]) - (shifts[1570])) * ((point_powers[18]) - (shifts[1571])) * + ((point_powers[18]) - (shifts[1572])) * ((point_powers[18]) - (shifts[1573])) * + ((point_powers[18]) - (shifts[1574])) * ((point_powers[18]) - (shifts[1575])) * + ((point_powers[18]) - (shifts[1576])) * ((point_powers[18]) - (shifts[1577])) * + ((point_powers[18]) - (shifts[1578])) * ((point_powers[18]) - (shifts[1579])) * + ((point_powers[18]) - (shifts[1580])) * ((point_powers[18]) - (shifts[1581])) * + ((point_powers[18]) - (shifts[1582])) * ((point_powers[18]) - (shifts[1583])) * + ((point_powers[18]) - (shifts[1584])) * ((point_powers[18]) - (shifts[1585])) * + ((point_powers[18]) - (shifts[1586])) * ((point_powers[18]) - (shifts[1587])) * + ((point_powers[18]) - (shifts[1588])) * ((point_powers[18]) - (shifts[1589])) * + ((point_powers[18]) - (shifts[1590])) * ((point_powers[18]) - (shifts[1591])) * + ((point_powers[18]) - (shifts[1592])) * ((point_powers[18]) - (shifts[1593])) * + ((point_powers[18]) - (shifts[1594])) * ((point_powers[18]) - (shifts[1595])) * + ((point_powers[18]) - (shifts[1596])) * ((point_powers[18]) - (shifts[1597])) * + ((point_powers[18]) - (shifts[1598])) * ((point_powers[18]) - (shifts[1599])) * + ((point_powers[18]) - (shifts[1600])) * ((point_powers[18]) - (shifts[1601])) * + ((point_powers[18]) - (shifts[1602])) * ((point_powers[18]) - (shifts[1603])) * + ((point_powers[18]) - (shifts[1604])) * ((point_powers[18]) - (shifts[1605])) * + ((point_powers[18]) - (shifts[1606])) * ((point_powers[18]) - (shifts[1607])) * + ((point_powers[18]) - (shifts[1608])) * ((point_powers[18]) - (shifts[1609])) * + ((point_powers[18]) - (shifts[1610])) * ((point_powers[18]) - (shifts[1611])) * + ((point_powers[18]) - (shifts[1612])) * ((point_powers[18]) - (shifts[1613])) * + ((point_powers[18]) - (shifts[1614])) * ((point_powers[18]) - (shifts[1615])) * + ((point_powers[18]) - (shifts[1616])) * ((point_powers[18]) - (shifts[1617])) * + ((point_powers[18]) - (shifts[1618])) * ((point_powers[18]) - (shifts[1619])) * + ((point_powers[18]) - (shifts[1620])) * ((point_powers[18]) - (shifts[1621])) * + ((point_powers[18]) - (shifts[1622])) * ((point_powers[18]) - (shifts[1623])) * + ((point_powers[18]) - (shifts[1624])) * ((point_powers[18]) - (shifts[1625])) * + ((point_powers[18]) - (shifts[1626])) * ((point_powers[18]) - (shifts[1627])) * + ((point_powers[18]) - (shifts[1628])) * ((point_powers[18]) - (shifts[1629])) * + ((point_powers[18]) - (shifts[1630])) * ((point_powers[18]) - (shifts[1631])) * + ((point_powers[18]) - (shifts[1632])) * ((point_powers[18]) - (shifts[1633])) * + ((point_powers[18]) - (shifts[1634])) * ((point_powers[18]) - (shifts[1635])) * + ((point_powers[18]) - (shifts[1636])) * ((point_powers[18]) - (shifts[1637])) * + ((point_powers[18]) - (shifts[1638])) * ((point_powers[18]) - (shifts[1639])) * + ((point_powers[18]) - (shifts[1640])) * ((point_powers[18]) - (shifts[1641])) * + ((point_powers[18]) - (shifts[1642])) * ((point_powers[18]) - (shifts[1643])) * + ((point_powers[18]) - (shifts[1644])) * ((point_powers[18]) - (shifts[1645])) * + ((point_powers[18]) - (shifts[1646])) * ((point_powers[18]) - (shifts[1647])) * + ((point_powers[18]) - (shifts[1648])) * ((point_powers[18]) - (shifts[1649])) * + ((point_powers[18]) - (shifts[1650])) * ((point_powers[18]) - (shifts[1651])) * + ((point_powers[18]) - (shifts[1652])) * ((point_powers[18]) - (shifts[1653])) * + ((point_powers[18]) - (shifts[1654])) * ((point_powers[18]) - (shifts[1655])) * + ((point_powers[18]) - (shifts[1656])) * ((point_powers[18]) - (shifts[1657])) * + ((point_powers[18]) - (shifts[1658])) * ((point_powers[18]) - (shifts[1659])) * + ((point_powers[18]) - (shifts[1660])) * ((point_powers[18]) - (shifts[1661])) * + ((point_powers[18]) - (shifts[1662])) * ((point_powers[18]) - (shifts[1663])) * + ((point_powers[18]) - (shifts[1664])) * ((point_powers[18]) - (shifts[1665])) * + ((point_powers[18]) - (shifts[1666])) * ((point_powers[18]) - (shifts[1667])) * + ((point_powers[18]) - (shifts[1668])) * ((point_powers[18]) - (shifts[1669])) * + ((point_powers[18]) - (shifts[1670])) * ((point_powers[18]) - (shifts[1671])) * + ((point_powers[18]) - (shifts[1672])) * ((point_powers[18]) - (shifts[1673])) * + ((point_powers[18]) - (shifts[1674])) * ((point_powers[18]) - (shifts[1675])) * + ((point_powers[18]) - (shifts[1676])) * ((point_powers[18]) - (shifts[1677])) * + ((point_powers[18]) - (shifts[1678])) * ((point_powers[18]) - (shifts[1679])) * + ((point_powers[18]) - (shifts[1680])) * ((point_powers[18]) - (shifts[1681])) * + ((point_powers[18]) - (shifts[1682])) * ((point_powers[18]) - (shifts[1683])) * + ((point_powers[18]) - (shifts[1684])) * ((point_powers[18]) - (shifts[1685])) * + ((point_powers[18]) - (shifts[1686])) * ((point_powers[18]) - (shifts[1687])) * + ((point_powers[18]) - (shifts[1688])) * ((point_powers[18]) - (shifts[1689])) * + ((point_powers[18]) - (shifts[1690])) * ((point_powers[18]) - (shifts[1691])) * + ((point_powers[18]) - (shifts[1692])) * ((point_powers[18]) - (shifts[1693])) * + ((point_powers[18]) - (shifts[1694])) * ((point_powers[18]) - (shifts[1695])) * + ((point_powers[18]) - (shifts[1696])) * ((point_powers[18]) - (shifts[1697])) * + ((point_powers[18]) - (shifts[1698])) * ((point_powers[18]) - (shifts[1699])) * + ((point_powers[18]) - (shifts[1700])) * ((point_powers[18]) - (shifts[1701])) * + ((point_powers[18]) - (shifts[1702])) * ((point_powers[18]) - (shifts[1703])) * + ((point_powers[18]) - (shifts[1704])) * ((point_powers[18]) - (shifts[1705])) * + ((point_powers[18]) - (shifts[1706])) * ((point_powers[18]) - (shifts[1707])) * + ((point_powers[18]) - (shifts[1708])) * ((point_powers[18]) - (shifts[1709])) * + ((point_powers[18]) - (shifts[1710])) * ((point_powers[18]) - (shifts[1711])) * + ((point_powers[18]) - (shifts[1712])) * ((point_powers[18]) - (shifts[1713])) * + ((point_powers[18]) - (shifts[1714])) * ((point_powers[18]) - (shifts[1715])) * + ((point_powers[18]) - (shifts[1716])) * ((point_powers[18]) - (shifts[1717])) * + ((point_powers[18]) - (shifts[1718])) * ((point_powers[18]) - (shifts[1719])) * + ((point_powers[18]) - (shifts[1720])) * ((point_powers[18]) - (shifts[1721])) * + ((point_powers[18]) - (shifts[1722])) * ((point_powers[18]) - (shifts[1723])) * + ((point_powers[18]) - (shifts[1724])) * ((point_powers[18]) - (shifts[1725])) * + ((point_powers[18]) - (shifts[1726])) * ((point_powers[18]) - (shifts[1727])) * + ((point_powers[18]) - (shifts[1728])) * ((point_powers[18]) - (shifts[1729])) * + ((point_powers[18]) - (shifts[1730])) * ((point_powers[18]) - (shifts[1731])) * + ((point_powers[18]) - (shifts[1732])) * ((point_powers[18]) - (shifts[1733])) * + ((point_powers[18]) - (shifts[1734])) * ((point_powers[18]) - (shifts[1735])) * + ((point_powers[18]) - (shifts[1736])) * ((point_powers[18]) - (shifts[1737])) * + ((point_powers[18]) - (shifts[1738])) * ((point_powers[18]) - (shifts[1739])) * + ((point_powers[18]) - (shifts[1740])) * ((point_powers[18]) - (shifts[1741])) * + ((point_powers[18]) - (shifts[1742])) * ((point_powers[18]) - (shifts[1743])) * + ((point_powers[18]) - (shifts[1744])) * ((point_powers[18]) - (shifts[1745])) * + ((point_powers[18]) - (shifts[1746])) * ((point_powers[18]) - (shifts[1747])) * + ((point_powers[18]) - (shifts[1748])) * ((point_powers[18]) - (shifts[1749])) * + ((point_powers[18]) - (shifts[1750])) * ((point_powers[18]) - (shifts[1751])) * + ((point_powers[18]) - (shifts[1752])) * ((point_powers[18]) - (shifts[1753])) * + ((point_powers[18]) - (shifts[1754])) * ((point_powers[18]) - (shifts[1755])) * + ((point_powers[18]) - (shifts[1756])) * ((point_powers[18]) - (shifts[1757])) * + ((point_powers[18]) - (shifts[1758])) * ((point_powers[18]) - (shifts[1759])) * + ((point_powers[18]) - (shifts[1760])) * ((point_powers[18]) - (shifts[1761])) * + ((point_powers[18]) - (shifts[1762])) * ((point_powers[18]) - (shifts[1763])) * + ((point_powers[18]) - (shifts[1764])) * ((point_powers[18]) - (shifts[1765])) * + ((point_powers[18]) - (shifts[1766])) * ((point_powers[18]) - (shifts[1767])) * + ((point_powers[18]) - (shifts[1768])) * ((point_powers[18]) - (shifts[1769])) * + ((point_powers[18]) - (shifts[1770])) * ((point_powers[18]) - (shifts[1771])) * + ((point_powers[18]) - (shifts[1772])) * ((point_powers[18]) - (shifts[1773])) * + ((point_powers[18]) - (shifts[1774])) * ((point_powers[18]) - (shifts[1775])) * + ((point_powers[18]) - (shifts[1776])) * ((point_powers[18]) - (shifts[1777])) * + ((point_powers[18]) - (shifts[1778])) * ((point_powers[18]) - (shifts[1779])) * + ((point_powers[18]) - (shifts[1780])) * ((point_powers[18]) - (shifts[1781])) * + ((point_powers[18]) - (shifts[1782])) * ((point_powers[18]) - (shifts[1783])) * + ((point_powers[18]) - (shifts[1784])) * ((point_powers[18]) - (shifts[1785])) * + ((point_powers[18]) - (shifts[1786])) * ((point_powers[18]) - (shifts[1787])) * + ((point_powers[18]) - (shifts[1788])) * ((point_powers[18]) - (shifts[1789])) * + ((point_powers[18]) - (shifts[1790])) * ((point_powers[18]) - (shifts[1791])) * + ((point_powers[18]) - (shifts[1792])) * ((point_powers[18]) - (shifts[1793])) * + ((point_powers[18]) - (shifts[1794])) * ((point_powers[18]) - (shifts[1795])) * + ((point_powers[18]) - (shifts[1796])) * ((point_powers[18]) - (shifts[1797])) * + ((point_powers[18]) - (shifts[1798])) * ((point_powers[18]) - (shifts[1799])) * + ((point_powers[18]) - (shifts[1800])) * ((point_powers[18]) - (shifts[1801])) * + ((point_powers[18]) - (shifts[1802])) * ((point_powers[18]) - (shifts[1803])) * + ((point_powers[18]) - (shifts[1804])) * ((point_powers[18]) - (shifts[1805])) * + ((point_powers[18]) - (shifts[1806])) * ((point_powers[18]) - (shifts[1807])) * + ((point_powers[18]) - (shifts[1808])) * ((point_powers[18]) - (shifts[1809])) * + ((point_powers[18]) - (shifts[1810])) * ((point_powers[18]) - (shifts[1811])) * + ((point_powers[18]) - (shifts[1812])) * ((point_powers[18]) - (shifts[1813])) * + ((point_powers[18]) - (shifts[1814])) * ((point_powers[18]) - (shifts[1815])) * + ((point_powers[18]) - (shifts[1816])) * ((point_powers[18]) - (shifts[1817])) * + ((point_powers[18]) - (shifts[1818])) * ((point_powers[18]) - (shifts[1819])) * + ((point_powers[18]) - (shifts[1820])) * ((point_powers[18]) - (shifts[1821])) * + ((point_powers[18]) - (shifts[1822])) * ((point_powers[18]) - (shifts[1823])) * + ((point_powers[18]) - (shifts[1824])) * ((point_powers[18]) - (shifts[1825])) * + ((point_powers[18]) - (shifts[1826])) * ((point_powers[18]) - (shifts[1827])) * + ((point_powers[18]) - (shifts[1828])) * ((point_powers[18]) - (shifts[1829])) * + ((point_powers[18]) - (shifts[1830])) * ((point_powers[18]) - (shifts[1831])) * + ((point_powers[18]) - (shifts[1832])) * ((point_powers[18]) - (shifts[1833])) * + ((point_powers[18]) - (shifts[1834])) * ((point_powers[18]) - (shifts[1835])) * + ((point_powers[18]) - (shifts[1836])) * ((point_powers[18]) - (shifts[1837])) * + ((point_powers[18]) - (shifts[1838])) * ((point_powers[18]) - (shifts[1839])) * + ((point_powers[18]) - (shifts[1840])) * ((point_powers[18]) - (shifts[1841])) * + ((point_powers[18]) - (shifts[1842])) * ((point_powers[18]) - (shifts[1843])) * + ((point_powers[18]) - (shifts[1844])) * ((point_powers[18]) - (shifts[1845])) * + ((point_powers[18]) - (shifts[1846])) * ((point_powers[18]) - (shifts[1847])) * + ((point_powers[18]) - (shifts[1848])) * ((point_powers[18]) - (shifts[1849])) * + ((point_powers[18]) - (shifts[1850])) * ((point_powers[18]) - (shifts[1851])) * + ((point_powers[18]) - (shifts[1852])) * ((point_powers[18]) - (shifts[1853])) * + ((point_powers[18]) - (shifts[1854])) * ((point_powers[18]) - (shifts[1855])) * + ((point_powers[18]) - (shifts[1856])) * ((point_powers[18]) - (shifts[1857])) * + ((point_powers[18]) - (shifts[1858])) * ((point_powers[18]) - (shifts[1859])) * + ((point_powers[18]) - (shifts[1860])) * ((point_powers[18]) - (shifts[1861])) * + ((point_powers[18]) - (shifts[1862])) * ((point_powers[18]) - (shifts[1863])) * + ((point_powers[18]) - (shifts[1864])) * ((point_powers[18]) - (shifts[1865])) * + ((point_powers[18]) - (shifts[1866])) * ((point_powers[18]) - (shifts[1867])) * + ((point_powers[18]) - (shifts[1868])) * ((point_powers[18]) - (shifts[1869])) * + ((point_powers[18]) - (shifts[1870])) * ((point_powers[18]) - (shifts[1871])) * + ((point_powers[18]) - (shifts[1872])) * ((point_powers[18]) - (shifts[1873])) * + ((point_powers[18]) - (shifts[1874])) * ((point_powers[18]) - (shifts[1875])) * + ((point_powers[18]) - (shifts[1876])) * ((point_powers[18]) - (shifts[1877])) * + ((point_powers[18]) - (shifts[1878])) * ((point_powers[18]) - (shifts[1879])) * + ((point_powers[18]) - (shifts[1880])) * ((point_powers[18]) - (shifts[1881])) * + ((point_powers[18]) - (shifts[1882])) * ((point_powers[18]) - (shifts[1883])) * + ((point_powers[18]) - (shifts[1884])) * ((point_powers[18]) - (shifts[1885])) * + ((point_powers[18]) - (shifts[1886])) * ((point_powers[18]) - (shifts[1887])) * + ((point_powers[18]) - (shifts[1888])) * ((point_powers[18]) - (shifts[1889])) * + ((point_powers[18]) - (shifts[1890])) * ((point_powers[18]) - (shifts[1891])) * + ((point_powers[18]) - (shifts[1892])) * ((point_powers[18]) - (shifts[1893])) * + ((point_powers[18]) - (shifts[1894])) * ((point_powers[18]) - (shifts[1895])) * + ((point_powers[18]) - (shifts[1896])) * ((point_powers[18]) - (shifts[1897])) * + ((point_powers[18]) - (shifts[1898])) * ((point_powers[18]) - (shifts[1899])) * + ((point_powers[18]) - (shifts[1900])) * ((point_powers[18]) - (shifts[1901])) * + ((point_powers[18]) - (shifts[1902])) * ((point_powers[18]) - (shifts[1903])) * + ((point_powers[18]) - (shifts[1904])) * ((point_powers[18]) - (shifts[1905])) * + ((point_powers[18]) - (shifts[1906])) * ((point_powers[18]) - (shifts[1907])) * + ((point_powers[18]) - (shifts[1908])) * ((point_powers[18]) - (shifts[1909])) * + ((point_powers[18]) - (shifts[1910])) * ((point_powers[18]) - (shifts[1911])) * + ((point_powers[18]) - (shifts[1912])) * ((point_powers[18]) - (shifts[1913])) * + ((point_powers[18]) - (shifts[1914])) * ((point_powers[18]) - (shifts[1915])) * + ((point_powers[18]) - (shifts[1916])) * ((point_powers[18]) - (shifts[1917])) * + ((point_powers[18]) - (shifts[1918])) * ((point_powers[18]) - (shifts[1919])) * + ((point_powers[18]) - (shifts[1920])) * ((point_powers[18]) - (shifts[1921])) * + ((point_powers[18]) - (shifts[1922])) * ((point_powers[18]) - (shifts[1923])) * + ((point_powers[18]) - (shifts[1924])) * ((point_powers[18]) - (shifts[1925])) * + ((point_powers[18]) - (shifts[1926])) * ((point_powers[18]) - (shifts[1927])) * + ((point_powers[18]) - (shifts[1928])) * ((point_powers[18]) - (shifts[1929])) * + ((point_powers[18]) - (shifts[1930])) * ((point_powers[18]) - (shifts[1931])) * + ((point_powers[18]) - (shifts[1932])) * ((point_powers[18]) - (shifts[1933])) * + ((point_powers[18]) - (shifts[1934])) * ((point_powers[18]) - (shifts[1935])) * + ((point_powers[18]) - (shifts[1936])) * ((point_powers[18]) - (shifts[1937])) * + ((point_powers[18]) - (shifts[1938])) * ((point_powers[18]) - (shifts[1939])) * + ((point_powers[18]) - (shifts[1940])) * ((point_powers[18]) - (shifts[1941])) * + ((point_powers[18]) - (shifts[1942])) * ((point_powers[18]) - (shifts[1943])) * + ((point_powers[18]) - (shifts[1944])) * ((point_powers[18]) - (shifts[1945])) * + ((point_powers[18]) - (shifts[1946])) * ((point_powers[18]) - (shifts[1947])) * + ((point_powers[18]) - (shifts[1948])) * ((point_powers[18]) - (shifts[1949])) * + ((point_powers[18]) - (shifts[1950])) * ((point_powers[18]) - (shifts[1951])) * + ((point_powers[18]) - (shifts[1952])) * ((point_powers[18]) - (shifts[1953])) * + ((point_powers[18]) - (shifts[1954])) * ((point_powers[18]) - (shifts[1955])) * + ((point_powers[18]) - (shifts[1956])) * ((point_powers[18]) - (shifts[1957])) * + ((point_powers[18]) - (shifts[1958])) * ((point_powers[18]) - (shifts[1959])) * + ((point_powers[18]) - (shifts[1960])) * ((point_powers[18]) - (shifts[1961])) * + ((point_powers[18]) - (shifts[1962])) * ((point_powers[18]) - (shifts[1963])) * + ((point_powers[18]) - (shifts[1964])) * ((point_powers[18]) - (shifts[1965])) * + ((point_powers[18]) - (shifts[1966])) * ((point_powers[18]) - (shifts[1967])) * + ((point_powers[18]) - (shifts[1968])) * ((point_powers[18]) - (shifts[1969])) * + ((point_powers[18]) - (shifts[1970])) * ((point_powers[18]) - (shifts[1971])) * + ((point_powers[18]) - (shifts[1972])) * ((point_powers[18]) - (shifts[1973])) * + ((point_powers[18]) - (shifts[1974])) * ((point_powers[18]) - (shifts[1975])) * + ((point_powers[18]) - (shifts[1976])) * ((point_powers[18]) - (shifts[1977])) * + ((point_powers[18]) - (shifts[1978])) * ((point_powers[18]) - (shifts[1979])) * + ((point_powers[18]) - (shifts[1980])) * ((point_powers[18]) - (shifts[1981])) * + ((point_powers[18]) - (shifts[1982])) * ((point_powers[18]) - (shifts[1983])) * + ((point_powers[18]) - (shifts[1984])) * ((point_powers[18]) - (shifts[1985])) * + ((point_powers[18]) - (shifts[1986])) * ((point_powers[18]) - (shifts[1987])) * + ((point_powers[18]) - (shifts[1988])) * ((point_powers[18]) - (shifts[1989])) * + ((point_powers[18]) - (shifts[1990])) * ((point_powers[18]) - (shifts[1991])) * + ((point_powers[18]) - (shifts[1992])) * ((point_powers[18]) - (shifts[1993])) * + ((point_powers[18]) - (shifts[1994])) * ((point_powers[18]) - (shifts[1995])) * + ((point_powers[18]) - (shifts[1996])) * ((point_powers[18]) - (shifts[1997])) * + ((point_powers[18]) - (shifts[1998])) * ((point_powers[18]) - (shifts[1999])) * + ((point_powers[18]) - (shifts[2000])) * ((point_powers[18]) - (shifts[2001])) * + ((point_powers[18]) - (shifts[2002])) * ((point_powers[18]) - (shifts[2003])) * + ((point_powers[18]) - (shifts[2004])) * ((point_powers[18]) - (shifts[2005])) * + ((point_powers[18]) - (shifts[2006])) * ((point_powers[18]) - (shifts[2007])) * + ((point_powers[18]) - (shifts[2008])) * ((point_powers[18]) - (shifts[2009])) * + ((point_powers[18]) - (shifts[2010])) * ((point_powers[18]) - (shifts[2011])) * + ((point_powers[18]) - (shifts[2012])) * ((point_powers[18]) - (shifts[2013])) * + ((point_powers[18]) - (shifts[2014])) * ((point_powers[18]) - (shifts[2015])) * + ((point_powers[18]) - (shifts[2016])) * ((point_powers[18]) - (shifts[2017])) * + ((point_powers[18]) - (shifts[2018])) * ((point_powers[18]) - (shifts[2019])) * + ((point_powers[18]) - (shifts[2020])) * ((point_powers[18]) - (shifts[2021])) * + ((point_powers[18]) - (shifts[2022])) * ((point_powers[18]) - (shifts[2023])) * + ((point_powers[18]) - (shifts[2024])) * ((point_powers[18]) - (shifts[2025])) * + ((point_powers[18]) - (shifts[2026])) * ((point_powers[18]) - (shifts[2027])) * + ((point_powers[18]) - (shifts[2028])) * ((point_powers[18]) - (shifts[2029])) * + ((point_powers[18]) - (shifts[2030])) * ((point_powers[18]) - (shifts[2031])) * + ((point_powers[18]) - (shifts[2032])) * ((point_powers[18]) - (shifts[2033])) * + ((point_powers[18]) - (shifts[2034])) * ((point_powers[18]) - (shifts[2035])) * + ((point_powers[18]) - (shifts[2036])) * ((point_powers[18]) - (shifts[2037])) * + ((point_powers[18]) - (shifts[2038])) * ((point_powers[18]) - (shifts[2039])) * + ((point_powers[18]) - (shifts[2040])) * ((point_powers[18]) - (shifts[2041])) * + ((point_powers[18]) - (shifts[2042])) * ((point_powers[18]) - (shifts[2043])) * + ((point_powers[18]) - (shifts[2044])) * ((point_powers[18]) - (shifts[2045])) * + ((point_powers[18]) - (shifts[2046])) * ((point_powers[18]) - (shifts[2047])) * + ((point_powers[18]) - (shifts[2048])) * ((point_powers[18]) - (shifts[2049])) * + ((point_powers[18]) - (shifts[2050])) * ((point_powers[18]) - (shifts[2051])) * + ((point_powers[18]) - (shifts[2052])) * ((point_powers[18]) - (shifts[2053])) * + ((point_powers[18]) - (shifts[2054])) * ((point_powers[18]) - (shifts[2055])) * + ((point_powers[18]) - (shifts[2056])) * ((point_powers[18]) - (shifts[2057])) * + ((point_powers[18]) - (shifts[2058])) * ((point_powers[18]) - (shifts[2059])) * + ((point_powers[18]) - (shifts[2060])) * ((point_powers[18]) - (shifts[2061])) * + ((point_powers[18]) - (shifts[2062])) * ((point_powers[18]) - (shifts[2063])) * + ((point_powers[18]) - (shifts[2064])) * ((point_powers[18]) - (shifts[2065])) * + ((point_powers[18]) - (shifts[2066])) * ((point_powers[18]) - (shifts[2067])) * + ((point_powers[18]) - (shifts[2068])) * ((point_powers[18]) - (shifts[2069])) * + ((point_powers[18]) - (shifts[2070])) * ((point_powers[18]) - (shifts[2071])) * + ((point_powers[18]) - (shifts[2072])) * ((point_powers[18]) - (shifts[2073])) * + ((point_powers[18]) - (shifts[2074])) * ((point_powers[18]) - (shifts[2075])) * + ((point_powers[18]) - (shifts[2076])) * ((point_powers[18]) - (shifts[2077])) * + ((point_powers[18]) - (shifts[2078])) * ((point_powers[18]) - (shifts[2079])) * + (domain45) * (domain47)) + : FieldElementT::Zero(); + const FieldElementT& domain49 = ((uses_keccak_builtin) != (0)) + ? (((point_powers[16]) - (shifts[2080])) * (domain43)) + : FieldElementT::Zero(); + const FieldElementT& domain50 = + ((uses_keccak_builtin) != (0)) ? ((domain42) * (domain44)) : FieldElementT::Zero(); + const FieldElementT& domain51 = + ((uses_keccak_builtin) != (0)) ? ((domain47) * (domain50)) : FieldElementT::Zero(); + const FieldElementT& domain52 = + ((uses_keccak_builtin) != (0)) + ? (((point_powers[18]) - (shifts[1139])) * ((point_powers[18]) - (shifts[2081])) * + ((point_powers[18]) - (shifts[2082])) * ((point_powers[18]) - (shifts[2083])) * + ((point_powers[18]) - (shifts[2084])) * ((point_powers[18]) - (shifts[2085])) * + ((point_powers[18]) - (shifts[2086])) * ((point_powers[18]) - (shifts[2087]))) + : FieldElementT::Zero(); + const FieldElementT& domain53 = + ((uses_keccak_builtin) != (0)) + ? (((point_powers[18]) - (shifts[2088])) * ((point_powers[18]) - (shifts[2089])) * + ((point_powers[18]) - (shifts[2090])) * ((point_powers[18]) - (shifts[2091])) * + ((point_powers[18]) - (shifts[2092])) * ((point_powers[18]) - (shifts[2093])) * + ((point_powers[18]) - (shifts[2094])) * ((point_powers[18]) - (shifts[2095])) * + ((point_powers[18]) - (shifts[2096])) * ((point_powers[18]) - (shifts[2097])) * + ((point_powers[18]) - (shifts[2098])) * ((point_powers[18]) - (shifts[2099])) * + ((point_powers[18]) - (shifts[2100])) * ((point_powers[18]) - (shifts[2101])) * + ((point_powers[18]) - (shifts[2102])) * ((point_powers[18]) - (shifts[2103])) * + (domain51) * (domain52)) + : FieldElementT::Zero(); + const FieldElementT& domain54 = + ((uses_keccak_builtin) != (0)) + ? (((point_powers[18]) - (shifts[1345])) * ((point_powers[18]) - (shifts[2104])) * + ((point_powers[18]) - (shifts[2105])) * ((point_powers[18]) - (shifts[2106])) * + ((point_powers[18]) - (shifts[2107])) * ((point_powers[18]) - (shifts[2108])) * + ((point_powers[18]) - (shifts[2109])) * ((point_powers[18]) - (shifts[2110]))) + : FieldElementT::Zero(); + const FieldElementT& domain55 = + ((uses_keccak_builtin) != (0)) + ? (((point_powers[18]) - (shifts[2111])) * ((point_powers[18]) - (shifts[2112])) * + ((point_powers[18]) - (shifts[2113])) * ((point_powers[18]) - (shifts[2114])) * + ((point_powers[18]) - (shifts[2115])) * ((point_powers[18]) - (shifts[2116])) * + ((point_powers[18]) - (shifts[2117])) * ((point_powers[18]) - (shifts[2118])) * + ((point_powers[18]) - (shifts[2119])) * ((point_powers[18]) - (shifts[2120])) * + ((point_powers[18]) - (shifts[2121])) * ((point_powers[18]) - (shifts[2122])) * + ((point_powers[18]) - (shifts[2123])) * ((point_powers[18]) - (shifts[2124])) * + ((point_powers[18]) - (shifts[2125])) * ((point_powers[18]) - (shifts[2126])) * + (domain53) * (domain54)) + : FieldElementT::Zero(); + const FieldElementT& domain56 = + ((uses_keccak_builtin) != (0)) + ? (((point_powers[18]) - (shifts[1137])) * ((point_powers[18]) - (shifts[2127])) * + ((point_powers[18]) - (shifts[2128])) * ((point_powers[18]) - (shifts[2129])) * + ((point_powers[18]) - (shifts[2130])) * ((point_powers[18]) - (shifts[2131])) * + ((point_powers[18]) - (shifts[2132])) * ((point_powers[18]) - (shifts[2133])) * + ((point_powers[18]) - (shifts[1317])) * ((point_powers[18]) - (shifts[2134])) * + ((point_powers[18]) - (shifts[2135])) * ((point_powers[18]) - (shifts[2136])) * + ((point_powers[18]) - (shifts[2137])) * ((point_powers[18]) - (shifts[2138])) * + ((point_powers[18]) - (shifts[2139])) * ((point_powers[18]) - (shifts[2140])) * + ((point_powers[18]) - (shifts[1138])) * ((point_powers[18]) - (shifts[2141])) * + ((point_powers[18]) - (shifts[2142])) * ((point_powers[18]) - (shifts[2143])) * + ((point_powers[18]) - (shifts[2144])) * ((point_powers[18]) - (shifts[2145])) * + ((point_powers[18]) - (shifts[2146])) * ((point_powers[18]) - (shifts[2147]))) + : FieldElementT::Zero(); + const FieldElementT& domain57 = + ((uses_keccak_builtin) != (0)) + ? (((point_powers[18]) - (shifts[2148])) * ((point_powers[18]) - (shifts[2149])) * + ((point_powers[18]) - (shifts[2150])) * ((point_powers[18]) - (shifts[2151])) * + ((point_powers[18]) - (shifts[2152])) * ((point_powers[18]) - (shifts[2153])) * + ((point_powers[18]) - (shifts[2154])) * ((point_powers[18]) - (shifts[2155])) * + ((point_powers[18]) - (shifts[2156])) * ((point_powers[18]) - (shifts[2157])) * + ((point_powers[18]) - (shifts[2158])) * ((point_powers[18]) - (shifts[2159])) * + ((point_powers[18]) - (shifts[2160])) * ((point_powers[18]) - (shifts[2161])) * + ((point_powers[18]) - (shifts[2162])) * ((point_powers[18]) - (shifts[2163])) * + ((point_powers[18]) - (shifts[2164])) * ((point_powers[18]) - (shifts[2165])) * + ((point_powers[18]) - (shifts[2166])) * ((point_powers[18]) - (shifts[2167])) * + ((point_powers[18]) - (shifts[2168])) * ((point_powers[18]) - (shifts[2169])) * + ((point_powers[18]) - (shifts[2170])) * ((point_powers[18]) - (shifts[2171])) * + ((point_powers[18]) - (shifts[2172])) * ((point_powers[18]) - (shifts[2173])) * + ((point_powers[18]) - (shifts[2174])) * ((point_powers[18]) - (shifts[2175])) * + ((point_powers[18]) - (shifts[2176])) * ((point_powers[18]) - (shifts[2177])) * + ((point_powers[18]) - (shifts[2178])) * ((point_powers[18]) - (shifts[2179])) * + ((point_powers[18]) - (shifts[2180])) * ((point_powers[18]) - (shifts[2181])) * + ((point_powers[18]) - (shifts[2182])) * ((point_powers[18]) - (shifts[2183])) * + ((point_powers[18]) - (shifts[2184])) * ((point_powers[18]) - (shifts[2185])) * + ((point_powers[18]) - (shifts[2186])) * ((point_powers[18]) - (shifts[2187])) * + ((point_powers[18]) - (shifts[2188])) * ((point_powers[18]) - (shifts[2189])) * + ((point_powers[18]) - (shifts[2190])) * ((point_powers[18]) - (shifts[2191])) * + ((point_powers[18]) - (shifts[2192])) * ((point_powers[18]) - (shifts[2193])) * + ((point_powers[18]) - (shifts[2194])) * ((point_powers[18]) - (shifts[2195])) * + (domain55) * (domain56)) + : FieldElementT::Zero(); + const FieldElementT& domain58 = + ((uses_keccak_builtin) != (0)) + ? (((point_powers[18]) - (shifts[1136])) * ((point_powers[18]) - (shifts[2196])) * + ((point_powers[18]) - (shifts[2197])) * ((point_powers[18]) - (shifts[2198])) * + ((point_powers[18]) - (shifts[2199])) * ((point_powers[18]) - (shifts[2200])) * + ((point_powers[18]) - (shifts[2201])) * ((point_powers[18]) - (shifts[2202])) * + ((point_powers[18]) - (shifts[1289])) * ((point_powers[18]) - (shifts[2203])) * + ((point_powers[18]) - (shifts[2204])) * ((point_powers[18]) - (shifts[2205])) * + ((point_powers[18]) - (shifts[2206])) * ((point_powers[18]) - (shifts[2207])) * + ((point_powers[18]) - (shifts[2208])) * ((point_powers[18]) - (shifts[2209]))) + : FieldElementT::Zero(); + const FieldElementT& domain59 = + ((uses_keccak_builtin) != (0)) + ? (((point_powers[18]) - (shifts[2210])) * ((point_powers[18]) - (shifts[2211])) * + ((point_powers[18]) - (shifts[2212])) * ((point_powers[18]) - (shifts[2213])) * + ((point_powers[18]) - (shifts[2214])) * ((point_powers[18]) - (shifts[2215])) * + ((point_powers[18]) - (shifts[2216])) * ((point_powers[18]) - (shifts[2217])) * + ((point_powers[18]) - (shifts[2218])) * ((point_powers[18]) - (shifts[2219])) * + ((point_powers[18]) - (shifts[2220])) * ((point_powers[18]) - (shifts[2221])) * + ((point_powers[18]) - (shifts[2222])) * ((point_powers[18]) - (shifts[2223])) * + ((point_powers[18]) - (shifts[2224])) * ((point_powers[18]) - (shifts[2225])) * + ((point_powers[18]) - (shifts[2226])) * ((point_powers[18]) - (shifts[2227])) * + ((point_powers[18]) - (shifts[2228])) * ((point_powers[18]) - (shifts[2229])) * + ((point_powers[18]) - (shifts[2230])) * ((point_powers[18]) - (shifts[2231])) * + ((point_powers[18]) - (shifts[2232])) * ((point_powers[18]) - (shifts[2233])) * + ((point_powers[18]) - (shifts[2234])) * ((point_powers[18]) - (shifts[2235])) * + ((point_powers[18]) - (shifts[2236])) * ((point_powers[18]) - (shifts[2237])) * + ((point_powers[18]) - (shifts[2238])) * ((point_powers[18]) - (shifts[2239])) * + ((point_powers[18]) - (shifts[2240])) * ((point_powers[18]) - (shifts[2241])) * + (domain57) * (domain58)) + : FieldElementT::Zero(); + const FieldElementT& domain60 = + ((uses_keccak_builtin) != (0)) + ? (((point_powers[18]) - (shifts[1261])) * ((point_powers[18]) - (shifts[2242])) * + ((point_powers[18]) - (shifts[2243])) * ((point_powers[18]) - (shifts[2244])) * + ((point_powers[18]) - (shifts[2245])) * ((point_powers[18]) - (shifts[2246])) * + ((point_powers[18]) - (shifts[2247])) * ((point_powers[18]) - (shifts[2248]))) + : FieldElementT::Zero(); + const FieldElementT& domain61 = + ((uses_keccak_builtin) != (0)) + ? (((point_powers[18]) - (shifts[1135])) * ((point_powers[18]) - (shifts[2249])) * + ((point_powers[18]) - (shifts[2250])) * ((point_powers[18]) - (shifts[2251])) * + ((point_powers[18]) - (shifts[2252])) * ((point_powers[18]) - (shifts[2253])) * + ((point_powers[18]) - (shifts[2254])) * ((point_powers[18]) - (shifts[2255])) * + (domain60)) + : FieldElementT::Zero(); + const FieldElementT& domain62 = + ((uses_keccak_builtin) != (0)) + ? (((point_powers[18]) - (shifts[2256])) * ((point_powers[18]) - (shifts[2257])) * + ((point_powers[18]) - (shifts[2258])) * ((point_powers[18]) - (shifts[2259])) * + ((point_powers[18]) - (shifts[2260])) * ((point_powers[18]) - (shifts[2261])) * + ((point_powers[18]) - (shifts[2262])) * ((point_powers[18]) - (shifts[2263])) * + ((point_powers[18]) - (shifts[2264])) * ((point_powers[18]) - (shifts[2265])) * + ((point_powers[18]) - (shifts[2266])) * ((point_powers[18]) - (shifts[2267])) * + ((point_powers[18]) - (shifts[2268])) * ((point_powers[18]) - (shifts[2269])) * + ((point_powers[18]) - (shifts[2270])) * ((point_powers[18]) - (shifts[2271])) * + ((point_powers[18]) - (shifts[2272])) * ((point_powers[18]) - (shifts[2273])) * + ((point_powers[18]) - (shifts[2274])) * ((point_powers[18]) - (shifts[2275])) * + ((point_powers[18]) - (shifts[2276])) * ((point_powers[18]) - (shifts[2277])) * + ((point_powers[18]) - (shifts[2278])) * ((point_powers[18]) - (shifts[2279])) * + ((point_powers[18]) - (shifts[2280])) * ((point_powers[18]) - (shifts[2281])) * + ((point_powers[18]) - (shifts[2282])) * ((point_powers[18]) - (shifts[2283])) * + ((point_powers[18]) - (shifts[2284])) * ((point_powers[18]) - (shifts[2285])) * + ((point_powers[18]) - (shifts[2286])) * ((point_powers[18]) - (shifts[2287])) * + (domain59) * (domain61)) + : FieldElementT::Zero(); + const FieldElementT& domain63 = + ((uses_keccak_builtin) != (0)) + ? (((point_powers[18]) - (shifts[2080])) * ((point_powers[18]) - (shifts[2288])) * + ((point_powers[18]) - (shifts[2289])) * ((point_powers[18]) - (shifts[2290])) * + ((point_powers[18]) - (shifts[2291])) * ((point_powers[18]) - (shifts[2292])) * + ((point_powers[18]) - (shifts[2293])) * ((point_powers[18]) - (shifts[2294])) * + ((point_powers[18]) - (shifts[2295])) * ((point_powers[18]) - (shifts[2296])) * + ((point_powers[18]) - (shifts[2297])) * ((point_powers[18]) - (shifts[2298])) * + ((point_powers[18]) - (shifts[2299])) * ((point_powers[18]) - (shifts[2300])) * + ((point_powers[18]) - (shifts[2301])) * ((point_powers[18]) - (shifts[2302])) * + ((point_powers[18]) - (shifts[1134])) * ((point_powers[18]) - (shifts[2303])) * + ((point_powers[18]) - (shifts[2304])) * ((point_powers[18]) - (shifts[2305])) * + ((point_powers[18]) - (shifts[2306])) * ((point_powers[18]) - (shifts[2307])) * + ((point_powers[18]) - (shifts[2308])) * ((point_powers[18]) - (shifts[2309])) * + ((point_powers[18]) - (shifts[1233])) * ((point_powers[18]) - (shifts[2310])) * + ((point_powers[18]) - (shifts[2311])) * ((point_powers[18]) - (shifts[2312])) * + ((point_powers[18]) - (shifts[2313])) * ((point_powers[18]) - (shifts[2314])) * + ((point_powers[18]) - (shifts[2315])) * ((point_powers[18]) - (shifts[2316]))) + : FieldElementT::Zero(); + const FieldElementT& domain64 = + ((uses_keccak_builtin) != (0)) + ? (((point_powers[18]) - (shifts[2317])) * ((point_powers[18]) - (shifts[2318])) * + ((point_powers[18]) - (shifts[2319])) * ((point_powers[18]) - (shifts[2320])) * + ((point_powers[18]) - (shifts[2321])) * ((point_powers[18]) - (shifts[2322])) * + ((point_powers[18]) - (shifts[2323])) * ((point_powers[18]) - (shifts[2324])) * + ((point_powers[18]) - (shifts[2325])) * ((point_powers[18]) - (shifts[2326])) * + ((point_powers[18]) - (shifts[2327])) * ((point_powers[18]) - (shifts[2328])) * + ((point_powers[18]) - (shifts[2329])) * ((point_powers[18]) - (shifts[2330])) * + ((point_powers[18]) - (shifts[2331])) * ((point_powers[18]) - (shifts[2332])) * + ((point_powers[18]) - (shifts[2333])) * ((point_powers[18]) - (shifts[2334])) * + ((point_powers[18]) - (shifts[2335])) * ((point_powers[18]) - (shifts[2336])) * + ((point_powers[18]) - (shifts[2337])) * ((point_powers[18]) - (shifts[2338])) * + ((point_powers[18]) - (shifts[2339])) * ((point_powers[18]) - (shifts[2340])) * + ((point_powers[18]) - (shifts[2341])) * ((point_powers[18]) - (shifts[2342])) * + ((point_powers[18]) - (shifts[2343])) * ((point_powers[18]) - (shifts[2344])) * + ((point_powers[18]) - (shifts[2345])) * ((point_powers[18]) - (shifts[2346])) * + ((point_powers[18]) - (shifts[2347])) * ((point_powers[18]) - (shifts[2348])) * + ((point_powers[18]) - (shifts[2349])) * ((point_powers[18]) - (shifts[2350])) * + ((point_powers[18]) - (shifts[2351])) * ((point_powers[18]) - (shifts[2352])) * + ((point_powers[18]) - (shifts[2353])) * ((point_powers[18]) - (shifts[2354])) * + ((point_powers[18]) - (shifts[2355])) * ((point_powers[18]) - (shifts[2356])) * + ((point_powers[18]) - (shifts[2357])) * ((point_powers[18]) - (shifts[2358])) * + ((point_powers[18]) - (shifts[2359])) * ((point_powers[18]) - (shifts[2360])) * + ((point_powers[18]) - (shifts[2361])) * ((point_powers[18]) - (shifts[2362])) * + ((point_powers[18]) - (shifts[2363])) * ((point_powers[18]) - (shifts[2364])) * + ((point_powers[18]) - (shifts[2365])) * ((point_powers[18]) - (shifts[2366])) * + ((point_powers[18]) - (shifts[2367])) * ((point_powers[18]) - (shifts[2368])) * + ((point_powers[18]) - (shifts[2369])) * ((point_powers[18]) - (shifts[2370])) * + ((point_powers[18]) - (shifts[2371])) * ((point_powers[18]) - (shifts[2372])) * + ((point_powers[18]) - (shifts[2373])) * ((point_powers[18]) - (shifts[2374])) * + ((point_powers[18]) - (shifts[2375])) * ((point_powers[18]) - (shifts[2376])) * + ((point_powers[18]) - (shifts[2377])) * ((point_powers[18]) - (shifts[2378])) * + ((point_powers[18]) - (shifts[2379])) * ((point_powers[18]) - (shifts[2380])) * + (domain62) * (domain63)) + : FieldElementT::Zero(); + const FieldElementT& domain65 = + ((uses_keccak_builtin) != (0)) + ? (((point_powers[18]) - (shifts[2381])) * ((point_powers[18]) - (shifts[2382])) * + ((point_powers[18]) - (shifts[2383])) * ((point_powers[18]) - (shifts[2384])) * + ((point_powers[18]) - (shifts[2385])) * ((point_powers[18]) - (shifts[2386])) * + ((point_powers[18]) - (shifts[2387])) * ((point_powers[18]) - (shifts[2388]))) + : FieldElementT::Zero(); + const FieldElementT& domain66 = + ((uses_keccak_builtin) != (0)) + ? (((point_powers[18]) - (shifts[2389])) * ((point_powers[18]) - (shifts[2390])) * + ((point_powers[18]) - (shifts[2391])) * ((point_powers[18]) - (shifts[2392])) * + ((point_powers[18]) - (shifts[2393])) * ((point_powers[18]) - (shifts[2394])) * + ((point_powers[18]) - (shifts[2395])) * ((point_powers[18]) - (shifts[2396])) * + ((point_powers[18]) - (shifts[2397])) * ((point_powers[18]) - (shifts[2398])) * + ((point_powers[18]) - (shifts[2399])) * ((point_powers[18]) - (shifts[2400])) * + ((point_powers[18]) - (shifts[2401])) * ((point_powers[18]) - (shifts[2402])) * + ((point_powers[18]) - (shifts[2403])) * ((point_powers[18]) - (shifts[2404])) * + (domain64) * (domain65)) + : FieldElementT::Zero(); + const FieldElementT& domain67 = + ((uses_keccak_builtin) != (0)) + ? (((point_powers[18]) - (shifts[2405])) * ((point_powers[18]) - (shifts[2406])) * + ((point_powers[18]) - (shifts[2407])) * ((point_powers[18]) - (shifts[2408])) * + ((point_powers[18]) - (shifts[2409])) * ((point_powers[18]) - (shifts[2410])) * + ((point_powers[18]) - (shifts[2411])) * ((point_powers[18]) - (shifts[2412])) * + ((point_powers[18]) - (shifts[2413])) * ((point_powers[18]) - (shifts[2414])) * + ((point_powers[18]) - (shifts[2415])) * ((point_powers[18]) - (shifts[2416])) * + ((point_powers[18]) - (shifts[2417])) * ((point_powers[18]) - (shifts[2418])) * + ((point_powers[18]) - (shifts[2419])) * ((point_powers[18]) - (shifts[2420])) * + ((point_powers[18]) - (shifts[2421])) * ((point_powers[18]) - (shifts[2422])) * + ((point_powers[18]) - (shifts[2423])) * ((point_powers[18]) - (shifts[2424])) * + ((point_powers[18]) - (shifts[2425])) * ((point_powers[18]) - (shifts[2426])) * + ((point_powers[18]) - (shifts[2427])) * ((point_powers[18]) - (shifts[2428]))) + : FieldElementT::Zero(); + const FieldElementT& domain68 = + ((uses_keccak_builtin) != (0)) + ? (((point_powers[18]) - (shifts[2429])) * ((point_powers[18]) - (shifts[2430])) * + ((point_powers[18]) - (shifts[2431])) * ((point_powers[18]) - (shifts[2432])) * + ((point_powers[18]) - (shifts[2433])) * ((point_powers[18]) - (shifts[2434])) * + ((point_powers[18]) - (shifts[2435])) * ((point_powers[18]) - (shifts[2436])) * + ((point_powers[18]) - (shifts[2437])) * ((point_powers[18]) - (shifts[2438])) * + ((point_powers[18]) - (shifts[2439])) * ((point_powers[18]) - (shifts[2440])) * + ((point_powers[18]) - (shifts[2441])) * ((point_powers[18]) - (shifts[2442])) * + ((point_powers[18]) - (shifts[2443])) * ((point_powers[18]) - (shifts[2444])) * + ((point_powers[18]) - (shifts[2445])) * ((point_powers[18]) - (shifts[2446])) * + ((point_powers[18]) - (shifts[2447])) * ((point_powers[18]) - (shifts[2448])) * + ((point_powers[18]) - (shifts[2449])) * ((point_powers[18]) - (shifts[2450])) * + ((point_powers[18]) - (shifts[2451])) * ((point_powers[18]) - (shifts[2452])) * + ((point_powers[18]) - (shifts[2453])) * ((point_powers[18]) - (shifts[2454])) * + ((point_powers[18]) - (shifts[2455])) * ((point_powers[18]) - (shifts[2456])) * + ((point_powers[18]) - (shifts[2457])) * ((point_powers[18]) - (shifts[2458])) * + ((point_powers[18]) - (shifts[2459])) * ((point_powers[18]) - (shifts[2460])) * + ((point_powers[18]) - (shifts[2461])) * ((point_powers[18]) - (shifts[2462])) * + ((point_powers[18]) - (shifts[2463])) * ((point_powers[18]) - (shifts[2464])) * + ((point_powers[18]) - (shifts[2465])) * ((point_powers[18]) - (shifts[2466])) * + ((point_powers[18]) - (shifts[2467])) * ((point_powers[18]) - (shifts[2468])) * + ((point_powers[18]) - (shifts[2469])) * ((point_powers[18]) - (shifts[2470])) * + ((point_powers[18]) - (shifts[2471])) * ((point_powers[18]) - (shifts[2472])) * + ((point_powers[18]) - (shifts[2473])) * ((point_powers[18]) - (shifts[2474])) * + ((point_powers[18]) - (shifts[2475])) * ((point_powers[18]) - (shifts[2476])) * + (domain66) * (domain67)) + : FieldElementT::Zero(); + const FieldElementT& domain69 = + ((uses_keccak_builtin) != (0)) + ? (((point_powers[18]) - (shifts[2477])) * ((point_powers[18]) - (shifts[2478])) * + ((point_powers[18]) - (shifts[2479])) * ((point_powers[18]) - (shifts[2480])) * + ((point_powers[18]) - (shifts[2481])) * ((point_powers[18]) - (shifts[2482])) * + ((point_powers[18]) - (shifts[2483])) * ((point_powers[18]) - (shifts[2484]))) + : FieldElementT::Zero(); + const FieldElementT& domain70 = + ((uses_keccak_builtin) != (0)) + ? (((point_powers[18]) - (shifts[2485])) * ((point_powers[18]) - (shifts[2486])) * + ((point_powers[18]) - (shifts[2487])) * ((point_powers[18]) - (shifts[2488])) * + ((point_powers[18]) - (shifts[2489])) * ((point_powers[18]) - (shifts[2490])) * + ((point_powers[18]) - (shifts[2491])) * ((point_powers[18]) - (shifts[2492])) * + ((point_powers[18]) - (shifts[2493])) * ((point_powers[18]) - (shifts[2494])) * + ((point_powers[18]) - (shifts[2495])) * ((point_powers[18]) - (shifts[2496])) * + ((point_powers[18]) - (shifts[2497])) * ((point_powers[18]) - (shifts[2498])) * + ((point_powers[18]) - (shifts[2499])) * ((point_powers[18]) - (shifts[2500])) * + (domain68) * (domain69)) + : FieldElementT::Zero(); + const FieldElementT& domain71 = + ((uses_keccak_builtin) != (0)) + ? (((point_powers[18]) - (shifts[356])) * ((point_powers[18]) - (shifts[2501])) * + ((point_powers[18]) - (shifts[2502])) * ((point_powers[18]) - (shifts[2503])) * + ((point_powers[18]) - (shifts[2504])) * ((point_powers[18]) - (shifts[2505])) * + ((point_powers[18]) - (shifts[2506])) * ((point_powers[18]) - (shifts[2507]))) + : FieldElementT::Zero(); + const FieldElementT& domain72 = + ((uses_keccak_builtin) != (0)) + ? (((point_powers[18]) - (shifts[2508])) * ((point_powers[18]) - (shifts[2509])) * + ((point_powers[18]) - (shifts[2510])) * ((point_powers[18]) - (shifts[2511])) * + ((point_powers[18]) - (shifts[2512])) * ((point_powers[18]) - (shifts[2513])) * + ((point_powers[18]) - (shifts[2514])) * ((point_powers[18]) - (shifts[2515])) * + ((point_powers[18]) - (shifts[2516])) * ((point_powers[18]) - (shifts[2517])) * + ((point_powers[18]) - (shifts[2518])) * ((point_powers[18]) - (shifts[2519])) * + ((point_powers[18]) - (shifts[2520])) * ((point_powers[18]) - (shifts[2521])) * + ((point_powers[18]) - (shifts[2522])) * ((point_powers[18]) - (shifts[2523])) * + (domain70) * (domain71)) + : FieldElementT::Zero(); + const FieldElementT& domain73 = + ((uses_keccak_builtin) != (0)) + ? (((point_powers[18]) - (shifts[2524])) * ((point_powers[18]) - (shifts[2525])) * + ((point_powers[18]) - (shifts[2526])) * ((point_powers[18]) - (shifts[2527])) * + ((point_powers[18]) - (shifts[2528])) * ((point_powers[18]) - (shifts[2529])) * + ((point_powers[18]) - (shifts[2530])) * ((point_powers[18]) - (shifts[2531]))) + : FieldElementT::Zero(); + const FieldElementT& domain74 = + ((uses_keccak_builtin) != (0)) + ? (((point_powers[18]) - (shifts[2532])) * ((point_powers[18]) - (shifts[2533])) * + ((point_powers[18]) - (shifts[2534])) * ((point_powers[18]) - (shifts[2535])) * + ((point_powers[18]) - (shifts[2536])) * ((point_powers[18]) - (shifts[2537])) * + ((point_powers[18]) - (shifts[2538])) * ((point_powers[18]) - (shifts[2539])) * + ((point_powers[18]) - (shifts[2540])) * ((point_powers[18]) - (shifts[2541])) * + ((point_powers[18]) - (shifts[2542])) * ((point_powers[18]) - (shifts[2543])) * + ((point_powers[18]) - (shifts[2544])) * ((point_powers[18]) - (shifts[2545])) * + ((point_powers[18]) - (shifts[2546])) * ((point_powers[18]) - (shifts[2547])) * + (domain72) * (domain73)) + : FieldElementT::Zero(); + const FieldElementT& domain75 = + ((uses_keccak_builtin) != (0)) + ? (((point_powers[18]) - (shifts[2548])) * ((point_powers[18]) - (shifts[2549])) * + ((point_powers[18]) - (shifts[2550])) * ((point_powers[18]) - (shifts[2551])) * + ((point_powers[18]) - (shifts[2552])) * ((point_powers[18]) - (shifts[2553])) * + ((point_powers[18]) - (shifts[2554])) * ((point_powers[18]) - (shifts[2555])) * + ((point_powers[18]) - (shifts[332])) * ((point_powers[18]) - (shifts[2556])) * + ((point_powers[18]) - (shifts[2557])) * ((point_powers[18]) - (shifts[2558])) * + ((point_powers[18]) - (shifts[2559])) * ((point_powers[18]) - (shifts[2560])) * + ((point_powers[18]) - (shifts[2561])) * ((point_powers[18]) - (shifts[2562]))) + : FieldElementT::Zero(); + const FieldElementT& domain76 = + ((uses_keccak_builtin) != (0)) + ? (((point_powers[18]) - (shifts[2563])) * ((point_powers[18]) - (shifts[2564])) * + ((point_powers[18]) - (shifts[2565])) * ((point_powers[18]) - (shifts[2566])) * + ((point_powers[18]) - (shifts[2567])) * ((point_powers[18]) - (shifts[2568])) * + ((point_powers[18]) - (shifts[2569])) * ((point_powers[18]) - (shifts[2570])) * + ((point_powers[18]) - (shifts[117])) * ((point_powers[18]) - (shifts[2571])) * + ((point_powers[18]) - (shifts[2572])) * ((point_powers[18]) - (shifts[2573])) * + ((point_powers[18]) - (shifts[2574])) * ((point_powers[18]) - (shifts[2575])) * + ((point_powers[18]) - (shifts[2576])) * ((point_powers[18]) - (shifts[2577])) * + (domain75)) + : FieldElementT::Zero(); + const FieldElementT& domain77 = + ((uses_keccak_builtin) != (0)) + ? (((point_powers[18]) - (shifts[2578])) * ((point_powers[18]) - (shifts[2579])) * + ((point_powers[18]) - (shifts[2580])) * ((point_powers[18]) - (shifts[2581])) * + ((point_powers[18]) - (shifts[2582])) * ((point_powers[18]) - (shifts[2583])) * + ((point_powers[18]) - (shifts[2584])) * ((point_powers[18]) - (shifts[2585])) * + ((point_powers[18]) - (shifts[2586])) * ((point_powers[18]) - (shifts[2587])) * + ((point_powers[18]) - (shifts[2588])) * ((point_powers[18]) - (shifts[2589])) * + ((point_powers[18]) - (shifts[2590])) * ((point_powers[18]) - (shifts[2591])) * + ((point_powers[18]) - (shifts[2592])) * ((point_powers[18]) - (shifts[2593])) * + ((point_powers[18]) - (shifts[2594])) * ((point_powers[18]) - (shifts[2595])) * + ((point_powers[18]) - (shifts[2596])) * ((point_powers[18]) - (shifts[2597])) * + ((point_powers[18]) - (shifts[2598])) * ((point_powers[18]) - (shifts[2599])) * + ((point_powers[18]) - (shifts[2600])) * ((point_powers[18]) - (shifts[2601])) * + ((point_powers[18]) - (shifts[2602])) * ((point_powers[18]) - (shifts[2603])) * + ((point_powers[18]) - (shifts[2604])) * ((point_powers[18]) - (shifts[2605])) * + ((point_powers[18]) - (shifts[2606])) * ((point_powers[18]) - (shifts[2607])) * + ((point_powers[18]) - (shifts[2608])) * ((point_powers[18]) - (shifts[2609])) * + ((point_powers[18]) - (shifts[2610])) * ((point_powers[18]) - (shifts[2611])) * + ((point_powers[18]) - (shifts[2612])) * ((point_powers[18]) - (shifts[2613])) * + ((point_powers[18]) - (shifts[2614])) * ((point_powers[18]) - (shifts[2615])) * + ((point_powers[18]) - (shifts[2616])) * ((point_powers[18]) - (shifts[2617])) * + ((point_powers[18]) - (shifts[2618])) * ((point_powers[18]) - (shifts[2619])) * + ((point_powers[18]) - (shifts[2620])) * ((point_powers[18]) - (shifts[2621])) * + ((point_powers[18]) - (shifts[2622])) * ((point_powers[18]) - (shifts[2623])) * + ((point_powers[18]) - (shifts[2624])) * ((point_powers[18]) - (shifts[2625])) * + ((point_powers[18]) - (shifts[2626])) * ((point_powers[18]) - (shifts[2627])) * + ((point_powers[18]) - (shifts[2628])) * ((point_powers[18]) - (shifts[2629])) * + ((point_powers[18]) - (shifts[2630])) * ((point_powers[18]) - (shifts[2631])) * + ((point_powers[18]) - (shifts[2632])) * ((point_powers[18]) - (shifts[2633])) * + ((point_powers[18]) - (shifts[2634])) * ((point_powers[18]) - (shifts[2635])) * + ((point_powers[18]) - (shifts[2636])) * ((point_powers[18]) - (shifts[2637])) * + ((point_powers[18]) - (shifts[2638])) * ((point_powers[18]) - (shifts[2639])) * + ((point_powers[18]) - (shifts[2640])) * ((point_powers[18]) - (shifts[2641])) * + (domain74) * (domain76)) + : FieldElementT::Zero(); + const FieldElementT& domain78 = + ((uses_keccak_builtin) != (0)) + ? (((point_powers[18]) - (shifts[2642])) * ((point_powers[18]) - (shifts[2643])) * + ((point_powers[18]) - (shifts[2644])) * ((point_powers[18]) - (shifts[2645])) * + ((point_powers[18]) - (shifts[2646])) * ((point_powers[18]) - (shifts[2647])) * + ((point_powers[18]) - (shifts[2648])) * ((point_powers[18]) - (shifts[2649])) * + ((point_powers[18]) - (shifts[2650])) * ((point_powers[18]) - (shifts[2651])) * + ((point_powers[18]) - (shifts[2652])) * ((point_powers[18]) - (shifts[2653])) * + ((point_powers[18]) - (shifts[2654])) * ((point_powers[18]) - (shifts[2655])) * + ((point_powers[18]) - (shifts[2656])) * ((point_powers[18]) - (shifts[2657])) * + ((point_powers[18]) - (shifts[2658])) * ((point_powers[18]) - (shifts[2659])) * + ((point_powers[18]) - (shifts[2660])) * ((point_powers[18]) - (shifts[2661])) * + ((point_powers[18]) - (shifts[2662])) * ((point_powers[18]) - (shifts[2663])) * + ((point_powers[18]) - (shifts[2664])) * ((point_powers[18]) - (shifts[2665])) * + ((point_powers[18]) - (shifts[2666])) * ((point_powers[18]) - (shifts[2667])) * + ((point_powers[18]) - (shifts[2668])) * ((point_powers[18]) - (shifts[2669])) * + ((point_powers[18]) - (shifts[2670])) * ((point_powers[18]) - (shifts[2671])) * + ((point_powers[18]) - (shifts[2672])) * ((point_powers[18]) - (shifts[2673])) * + ((point_powers[18]) - (shifts[2674])) * ((point_powers[18]) - (shifts[2675])) * + ((point_powers[18]) - (shifts[2676])) * ((point_powers[18]) - (shifts[2677])) * + ((point_powers[18]) - (shifts[2678])) * ((point_powers[18]) - (shifts[2679])) * + ((point_powers[18]) - (shifts[2680])) * ((point_powers[18]) - (shifts[2681])) * + ((point_powers[18]) - (shifts[2682])) * ((point_powers[18]) - (shifts[2683])) * + ((point_powers[18]) - (shifts[2684])) * ((point_powers[18]) - (shifts[2685])) * + ((point_powers[18]) - (shifts[2686])) * ((point_powers[18]) - (shifts[2687])) * + ((point_powers[18]) - (shifts[2688])) * ((point_powers[18]) - (shifts[2689])) * + (domain77)) + : FieldElementT::Zero(); + const FieldElementT& domain79 = + ((uses_keccak_builtin) != (0)) + ? (((point_powers[18]) - (shifts[2690])) * ((point_powers[18]) - (shifts[2691])) * + ((point_powers[18]) - (shifts[2692])) * ((point_powers[18]) - (shifts[2693])) * + ((point_powers[18]) - (shifts[2694])) * ((point_powers[18]) - (shifts[2695])) * + ((point_powers[18]) - (shifts[2696])) * ((point_powers[18]) - (shifts[2697])) * + ((point_powers[18]) - (shifts[2698])) * ((point_powers[18]) - (shifts[2699])) * + ((point_powers[18]) - (shifts[2700])) * ((point_powers[18]) - (shifts[2701])) * + ((point_powers[18]) - (shifts[2702])) * ((point_powers[18]) - (shifts[2703])) * + ((point_powers[18]) - (shifts[2704])) * ((point_powers[18]) - (shifts[2705])) * + ((point_powers[18]) - (shifts[2706])) * ((point_powers[18]) - (shifts[2707])) * + ((point_powers[18]) - (shifts[2708])) * ((point_powers[18]) - (shifts[2709])) * + ((point_powers[18]) - (shifts[2710])) * ((point_powers[18]) - (shifts[2711])) * + ((point_powers[18]) - (shifts[2712])) * ((point_powers[18]) - (shifts[2713])) * + (domain78)) + : FieldElementT::Zero(); + const FieldElementT& domain80 = + ((uses_keccak_builtin) != (0)) ? ((point_powers[18]) - (shifts[37])) : FieldElementT::Zero(); + const FieldElementT& domain81 = + ((uses_keccak_builtin) != (0)) + ? (((point_powers[18]) - (shifts[2714])) * ((point_powers[18]) - (shifts[2715])) * + ((point_powers[18]) - (shifts[2716])) * ((point_powers[18]) - (shifts[2717])) * + ((point_powers[18]) - (shifts[2718])) * ((point_powers[18]) - (shifts[2719])) * + ((point_powers[18]) - (shifts[2720])) * (domain80)) + : FieldElementT::Zero(); + const FieldElementT& domain82 = + ((uses_keccak_builtin) != (0)) + ? (((point_powers[18]) - (shifts[2721])) * ((point_powers[18]) - (shifts[2722])) * + ((point_powers[18]) - (shifts[2723])) * ((point_powers[18]) - (shifts[2724])) * + ((point_powers[18]) - (shifts[2725])) * ((point_powers[18]) - (shifts[2726])) * + ((point_powers[18]) - (shifts[2727])) * ((point_powers[18]) - (shifts[2728])) * + ((point_powers[18]) - (shifts[2729])) * ((point_powers[18]) - (shifts[2730])) * + ((point_powers[18]) - (shifts[2731])) * ((point_powers[18]) - (shifts[2732])) * + ((point_powers[18]) - (shifts[2733])) * ((point_powers[18]) - (shifts[2734])) * + ((point_powers[18]) - (shifts[2735])) * ((point_powers[18]) - (shifts[2736])) * + (domain34) * (domain81)) + : FieldElementT::Zero(); + const FieldElementT& domain83 = + ((uses_keccak_builtin) != (0)) + ? (((point_powers[18]) - (shifts[21])) * ((point_powers[18]) - (shifts[2737])) * + ((point_powers[18]) - (shifts[2738])) * ((point_powers[18]) - (shifts[2739])) * + ((point_powers[18]) - (shifts[2740])) * ((point_powers[18]) - (shifts[2741])) * + ((point_powers[18]) - (shifts[2742])) * ((point_powers[18]) - (shifts[2743]))) + : FieldElementT::Zero(); + const FieldElementT& domain84 = ((uses_keccak_builtin) != (0)) + ? ((point_powers[18]) - (shifts[2744])) + : FieldElementT::Zero(); + const FieldElementT& domain85 = + ((uses_keccak_builtin) != (0)) + ? (((point_powers[18]) - (shifts[2745])) * ((point_powers[18]) - (shifts[2746])) * + ((point_powers[18]) - (shifts[2747])) * ((point_powers[18]) - (shifts[2748])) * + ((point_powers[18]) - (shifts[2749])) * ((point_powers[18]) - (shifts[2750])) * + ((point_powers[18]) - (shifts[2751])) * ((point_powers[18]) - (shifts[164])) * + ((point_powers[18]) - (shifts[2752])) * ((point_powers[18]) - (shifts[2753])) * + ((point_powers[18]) - (shifts[2754])) * ((point_powers[18]) - (shifts[2755])) * + ((point_powers[18]) - (shifts[2756])) * ((point_powers[18]) - (shifts[2757])) * + ((point_powers[18]) - (shifts[2758])) * ((point_powers[18]) - (shifts[2759])) * + ((point_powers[18]) - (shifts[2760])) * ((point_powers[18]) - (shifts[2761])) * + ((point_powers[18]) - (shifts[2762])) * ((point_powers[18]) - (shifts[2763])) * + ((point_powers[18]) - (shifts[2764])) * ((point_powers[18]) - (shifts[2765])) * + ((point_powers[18]) - (shifts[2766])) * (domain83) * (domain84)) + : FieldElementT::Zero(); + const FieldElementT& domain86 = + ((uses_keccak_builtin) != (0)) + ? (((point_powers[18]) - (shifts[2767])) * ((point_powers[18]) - (shifts[2768])) * + ((point_powers[18]) - (shifts[2769])) * ((point_powers[18]) - (shifts[2770])) * + ((point_powers[18]) - (shifts[2771])) * ((point_powers[18]) - (shifts[2772])) * + ((point_powers[18]) - (shifts[2773])) * ((point_powers[18]) - (shifts[2774])) * + ((point_powers[18]) - (shifts[2775])) * ((point_powers[18]) - (shifts[2776])) * + ((point_powers[18]) - (shifts[2777])) * ((point_powers[18]) - (shifts[2778])) * + ((point_powers[18]) - (shifts[2779])) * ((point_powers[18]) - (shifts[2780])) * + ((point_powers[18]) - (shifts[2781])) * ((point_powers[18]) - (shifts[2782])) * + (domain82)) + : FieldElementT::Zero(); + const FieldElementT& domain87 = + ((uses_keccak_builtin) != (0)) + ? (((point_powers[18]) - (shifts[2783])) * ((point_powers[18]) - (shifts[2784])) * + ((point_powers[18]) - (shifts[2785])) * ((point_powers[18]) - (shifts[2786])) * + ((point_powers[18]) - (shifts[2787])) * ((point_powers[18]) - (shifts[2788])) * + ((point_powers[18]) - (shifts[2789])) * ((point_powers[18]) - (shifts[2790])) * + ((point_powers[18]) - (shifts[2791])) * ((point_powers[18]) - (shifts[2792])) * + ((point_powers[18]) - (shifts[2793])) * ((point_powers[18]) - (shifts[2794])) * + ((point_powers[18]) - (shifts[2795])) * ((point_powers[18]) - (shifts[2796])) * + ((point_powers[18]) - (shifts[2797])) * ((point_powers[18]) - (shifts[2798])) * + ((point_powers[18]) - (shifts[2799])) * ((point_powers[18]) - (shifts[2800])) * + ((point_powers[18]) - (shifts[2801])) * ((point_powers[18]) - (shifts[2802])) * + ((point_powers[18]) - (shifts[2803])) * ((point_powers[18]) - (shifts[2804])) * + ((point_powers[18]) - (shifts[2805])) * ((point_powers[18]) - (shifts[2806])) * + ((point_powers[18]) - (shifts[2807])) * ((point_powers[18]) - (shifts[2808])) * + ((point_powers[18]) - (shifts[2809])) * ((point_powers[18]) - (shifts[2810])) * + ((point_powers[18]) - (shifts[2811])) * ((point_powers[18]) - (shifts[2812])) * + ((point_powers[18]) - (shifts[2813])) * ((point_powers[18]) - (shifts[2814])) * + ((point_powers[18]) - (shifts[2815])) * ((point_powers[18]) - (shifts[2816])) * + ((point_powers[18]) - (shifts[2817])) * ((point_powers[18]) - (shifts[2818])) * + ((point_powers[18]) - (shifts[2819])) * ((point_powers[18]) - (shifts[2820])) * + ((point_powers[18]) - (shifts[2821])) * ((point_powers[18]) - (shifts[2822])) * + ((point_powers[18]) - (shifts[2823])) * ((point_powers[18]) - (shifts[2824])) * + ((point_powers[18]) - (shifts[2825])) * ((point_powers[18]) - (shifts[2826])) * + ((point_powers[18]) - (shifts[2827])) * ((point_powers[18]) - (shifts[2828])) * + ((point_powers[18]) - (shifts[2829])) * ((point_powers[18]) - (shifts[2830])) * + (domain85) * (domain86)) + : FieldElementT::Zero(); + const FieldElementT& domain88 = ((uses_keccak_builtin) != (0)) + ? ((point_powers[18]) - (shifts[2831])) + : FieldElementT::Zero(); + const FieldElementT& domain89 = + ((uses_keccak_builtin) != (0)) + ? (((point_powers[18]) - (shifts[2832])) * ((point_powers[18]) - (shifts[2833])) * + ((point_powers[18]) - (shifts[2834])) * ((point_powers[18]) - (shifts[2835])) * + ((point_powers[18]) - (shifts[2836])) * ((point_powers[18]) - (shifts[2837])) * + ((point_powers[18]) - (shifts[2838])) * ((point_powers[18]) - (shifts[2839])) * + ((point_powers[18]) - (shifts[2840])) * ((point_powers[18]) - (shifts[2841])) * + ((point_powers[18]) - (shifts[2842])) * ((point_powers[18]) - (shifts[2843])) * + ((point_powers[18]) - (shifts[2844])) * ((point_powers[18]) - (shifts[2845])) * + ((point_powers[18]) - (shifts[2846])) * (domain88)) + : FieldElementT::Zero(); + const FieldElementT& domain90 = + ((uses_keccak_builtin) != (0)) + ? (((point_powers[18]) - (shifts[2847])) * ((point_powers[18]) - (shifts[2848])) * + ((point_powers[18]) - (shifts[2849])) * ((point_powers[18]) - (shifts[2850])) * + ((point_powers[18]) - (shifts[2851])) * ((point_powers[18]) - (shifts[2852])) * + ((point_powers[18]) - (shifts[2853])) * ((point_powers[18]) - (shifts[2854])) * + (domain89)) + : FieldElementT::Zero(); + const FieldElementT& domain91 = + ((uses_keccak_builtin) != (0)) + ? (((point_powers[18]) - (shifts[2855])) * ((point_powers[18]) - (shifts[2856])) * + ((point_powers[18]) - (shifts[2857])) * ((point_powers[18]) - (shifts[2858])) * + ((point_powers[18]) - (shifts[2859])) * ((point_powers[18]) - (shifts[2860])) * + ((point_powers[18]) - (shifts[2861])) * ((point_powers[18]) - (shifts[2862])) * + (domain90)) + : FieldElementT::Zero(); + const FieldElementT& domain92 = + ((uses_keccak_builtin) != (0)) + ? (((point_powers[18]) - (shifts[2863])) * ((point_powers[18]) - (shifts[2864])) * + ((point_powers[18]) - (shifts[2865])) * ((point_powers[18]) - (shifts[2866])) * + ((point_powers[18]) - (shifts[2867])) * ((point_powers[18]) - (shifts[2868])) * + ((point_powers[18]) - (shifts[2869])) * ((point_powers[18]) - (shifts[2870])) * + ((point_powers[18]) - (shifts[2871])) * ((point_powers[18]) - (shifts[2872])) * + ((point_powers[18]) - (shifts[2873])) * ((point_powers[18]) - (shifts[2874])) * + ((point_powers[18]) - (shifts[2875])) * ((point_powers[18]) - (shifts[2876])) * + ((point_powers[18]) - (shifts[2877])) * ((point_powers[18]) - (shifts[2878])) * + ((point_powers[18]) - (shifts[2879])) * ((point_powers[18]) - (shifts[2880])) * + ((point_powers[18]) - (shifts[2881])) * ((point_powers[18]) - (shifts[2882])) * + ((point_powers[18]) - (shifts[2883])) * ((point_powers[18]) - (shifts[2884])) * + ((point_powers[18]) - (shifts[2885])) * ((point_powers[18]) - (shifts[2886])) * + ((point_powers[18]) - (shifts[2887])) * ((point_powers[18]) - (shifts[2888])) * + ((point_powers[18]) - (shifts[2889])) * ((point_powers[18]) - (shifts[2890])) * + ((point_powers[18]) - (shifts[2891])) * ((point_powers[18]) - (shifts[2892])) * + ((point_powers[18]) - (shifts[2893])) * ((point_powers[18]) - (shifts[2894])) * + (domain87)) + : FieldElementT::Zero(); + const FieldElementT& domain93 = + ((uses_keccak_builtin) != (0)) + ? (((point_powers[18]) - (shifts[2895])) * ((point_powers[18]) - (shifts[2896])) * + ((point_powers[18]) - (shifts[2897])) * ((point_powers[18]) - (shifts[2898])) * + ((point_powers[18]) - (shifts[2899])) * ((point_powers[18]) - (shifts[2900])) * + ((point_powers[18]) - (shifts[2901])) * ((point_powers[18]) - (shifts[2902])) * + ((point_powers[18]) - (shifts[2903])) * ((point_powers[18]) - (shifts[2904])) * + ((point_powers[18]) - (shifts[2905])) * ((point_powers[18]) - (shifts[2906])) * + ((point_powers[18]) - (shifts[2907])) * ((point_powers[18]) - (shifts[2908])) * + ((point_powers[18]) - (shifts[2909])) * ((point_powers[18]) - (shifts[2910])) * + ((point_powers[18]) - (shifts[2911])) * ((point_powers[18]) - (shifts[2912])) * + ((point_powers[18]) - (shifts[2913])) * ((point_powers[18]) - (shifts[2914])) * + ((point_powers[18]) - (shifts[2915])) * ((point_powers[18]) - (shifts[2916])) * + ((point_powers[18]) - (shifts[2917])) * ((point_powers[18]) - (shifts[2918])) * + ((point_powers[18]) - (shifts[2919])) * ((point_powers[18]) - (shifts[2920])) * + ((point_powers[18]) - (shifts[2921])) * ((point_powers[18]) - (shifts[2922])) * + ((point_powers[18]) - (shifts[2923])) * ((point_powers[18]) - (shifts[2924])) * + ((point_powers[18]) - (shifts[2925])) * ((point_powers[18]) - (shifts[2926])) * + (domain91) * (domain92)) + : FieldElementT::Zero(); + const FieldElementT& domain94 = + ((uses_keccak_builtin) != (0)) + ? (((point_powers[18]) - (shifts[45])) * ((point_powers[18]) - (shifts[2927])) * + ((point_powers[18]) - (shifts[2928])) * ((point_powers[18]) - (shifts[2929])) * + ((point_powers[18]) - (shifts[2930])) * ((point_powers[18]) - (shifts[2931])) * + ((point_powers[18]) - (shifts[2932])) * ((point_powers[18]) - (shifts[2933])) * + ((point_powers[18]) - (shifts[2934])) * ((point_powers[18]) - (shifts[2935])) * + ((point_powers[18]) - (shifts[2936])) * ((point_powers[18]) - (shifts[2937])) * + ((point_powers[18]) - (shifts[2938])) * ((point_powers[18]) - (shifts[2939])) * + ((point_powers[18]) - (shifts[2940])) * ((point_powers[18]) - (shifts[2941])) * + ((point_powers[18]) - (shifts[188])) * ((point_powers[18]) - (shifts[2942])) * + ((point_powers[18]) - (shifts[2943])) * ((point_powers[18]) - (shifts[2944])) * + ((point_powers[18]) - (shifts[2945])) * ((point_powers[18]) - (shifts[2946])) * + ((point_powers[18]) - (shifts[2947])) * ((point_powers[18]) - (shifts[2948])) * + ((point_powers[18]) - (shifts[2949])) * ((point_powers[18]) - (shifts[2950])) * + ((point_powers[18]) - (shifts[2951])) * ((point_powers[18]) - (shifts[2952])) * + ((point_powers[18]) - (shifts[2953])) * ((point_powers[18]) - (shifts[2954])) * + ((point_powers[18]) - (shifts[2955])) * ((point_powers[18]) - (shifts[2956]))) + : FieldElementT::Zero(); + const FieldElementT& domain95 = + ((uses_keccak_builtin) != (0)) + ? (((point_powers[18]) - (shifts[212])) * ((point_powers[18]) - (shifts[2957])) * + ((point_powers[18]) - (shifts[2958])) * ((point_powers[18]) - (shifts[2959])) * + ((point_powers[18]) - (shifts[2960])) * ((point_powers[18]) - (shifts[2961])) * + ((point_powers[18]) - (shifts[2962])) * ((point_powers[18]) - (shifts[2963])) * + (domain94)) + : FieldElementT::Zero(); + const FieldElementT& domain96 = ((uses_keccak_builtin) != (0)) + ? ((point_powers[18]) - (shifts[2964])) + : FieldElementT::Zero(); + const FieldElementT& domain97 = + ((uses_keccak_builtin) != (0)) + ? (((point_powers[18]) - (shifts[2965])) * ((point_powers[18]) - (shifts[2966])) * + ((point_powers[18]) - (shifts[2967])) * ((point_powers[18]) - (shifts[2968])) * + ((point_powers[18]) - (shifts[2969])) * ((point_powers[18]) - (shifts[2970])) * + ((point_powers[18]) - (shifts[2971])) * ((point_powers[18]) - (shifts[2972])) * + ((point_powers[18]) - (shifts[2973])) * ((point_powers[18]) - (shifts[2974])) * + ((point_powers[18]) - (shifts[2975])) * ((point_powers[18]) - (shifts[2976])) * + ((point_powers[18]) - (shifts[2977])) * ((point_powers[18]) - (shifts[2978])) * + ((point_powers[18]) - (shifts[2979])) * ((point_powers[18]) - (shifts[2980])) * + ((point_powers[18]) - (shifts[2981])) * ((point_powers[18]) - (shifts[2982])) * + ((point_powers[18]) - (shifts[2983])) * ((point_powers[18]) - (shifts[2984])) * + ((point_powers[18]) - (shifts[2985])) * ((point_powers[18]) - (shifts[2986])) * + ((point_powers[18]) - (shifts[2987])) * (domain95) * (domain96)) + : FieldElementT::Zero(); + const FieldElementT& domain98 = + ((uses_keccak_builtin) != (0)) + ? (((point_powers[18]) - (shifts[2988])) * ((point_powers[18]) - (shifts[2989])) * + ((point_powers[18]) - (shifts[2990])) * ((point_powers[18]) - (shifts[2991])) * + ((point_powers[18]) - (shifts[2992])) * ((point_powers[18]) - (shifts[2993])) * + ((point_powers[18]) - (shifts[2994])) * ((point_powers[18]) - (shifts[2995])) * + (domain97)) + : FieldElementT::Zero(); + const FieldElementT& domain99 = + ((uses_keccak_builtin) != (0)) + ? (((point_powers[18]) - (shifts[2996])) * ((point_powers[18]) - (shifts[2997])) * + ((point_powers[18]) - (shifts[2998])) * ((point_powers[18]) - (shifts[2999])) * + ((point_powers[18]) - (shifts[3000])) * ((point_powers[18]) - (shifts[3001])) * + ((point_powers[18]) - (shifts[3002])) * ((point_powers[18]) - (shifts[3003])) * + (domain98)) + : FieldElementT::Zero(); + const FieldElementT& domain100 = + ((uses_keccak_builtin) != (0)) + ? (((point_powers[18]) - (shifts[3004])) * ((point_powers[18]) - (shifts[3005])) * + ((point_powers[18]) - (shifts[3006])) * ((point_powers[18]) - (shifts[3007])) * + ((point_powers[18]) - (shifts[3008])) * ((point_powers[18]) - (shifts[3009])) * + ((point_powers[18]) - (shifts[3010])) * ((point_powers[18]) - (shifts[3011])) * + ((point_powers[18]) - (shifts[3012])) * ((point_powers[18]) - (shifts[3013])) * + ((point_powers[18]) - (shifts[3014])) * ((point_powers[18]) - (shifts[3015])) * + ((point_powers[18]) - (shifts[3016])) * ((point_powers[18]) - (shifts[3017])) * + ((point_powers[18]) - (shifts[3018])) * ((point_powers[18]) - (shifts[3019])) * + ((point_powers[18]) - (shifts[3020])) * ((point_powers[18]) - (shifts[3021])) * + ((point_powers[18]) - (shifts[3022])) * ((point_powers[18]) - (shifts[3023])) * + ((point_powers[18]) - (shifts[3024])) * ((point_powers[18]) - (shifts[3025])) * + ((point_powers[18]) - (shifts[3026])) * ((point_powers[18]) - (shifts[3027])) * + ((point_powers[18]) - (shifts[3028])) * ((point_powers[18]) - (shifts[3029])) * + ((point_powers[18]) - (shifts[3030])) * ((point_powers[18]) - (shifts[3031])) * + ((point_powers[18]) - (shifts[3032])) * ((point_powers[18]) - (shifts[3033])) * + ((point_powers[18]) - (shifts[3034])) * ((point_powers[18]) - (shifts[3035])) * + ((point_powers[18]) - (shifts[3036])) * ((point_powers[18]) - (shifts[3037])) * + ((point_powers[18]) - (shifts[3038])) * ((point_powers[18]) - (shifts[3039])) * + ((point_powers[18]) - (shifts[3040])) * ((point_powers[18]) - (shifts[3041])) * + ((point_powers[18]) - (shifts[3042])) * ((point_powers[18]) - (shifts[3043])) * + ((point_powers[18]) - (shifts[3044])) * ((point_powers[18]) - (shifts[3045])) * + ((point_powers[18]) - (shifts[3046])) * ((point_powers[18]) - (shifts[3047])) * + ((point_powers[18]) - (shifts[3048])) * ((point_powers[18]) - (shifts[3049])) * + ((point_powers[18]) - (shifts[3050])) * ((point_powers[18]) - (shifts[3051])) * + ((point_powers[18]) - (shifts[3052])) * ((point_powers[18]) - (shifts[3053])) * + ((point_powers[18]) - (shifts[3054])) * ((point_powers[18]) - (shifts[3055])) * + ((point_powers[18]) - (shifts[3056])) * ((point_powers[18]) - (shifts[3057])) * + ((point_powers[18]) - (shifts[3058])) * ((point_powers[18]) - (shifts[3059])) * + ((point_powers[18]) - (shifts[3060])) * ((point_powers[18]) - (shifts[3061])) * + ((point_powers[18]) - (shifts[3062])) * ((point_powers[18]) - (shifts[3063])) * + ((point_powers[18]) - (shifts[3064])) * ((point_powers[18]) - (shifts[3065])) * + ((point_powers[18]) - (shifts[3066])) * ((point_powers[18]) - (shifts[3067])) * + (domain93)) + : FieldElementT::Zero(); + const FieldElementT& domain101 = + ((uses_keccak_builtin) != (0)) + ? (((point_powers[18]) - (shifts[3068])) * ((point_powers[18]) - (shifts[3069])) * + ((point_powers[18]) - (shifts[3070])) * ((point_powers[18]) - (shifts[3071])) * + ((point_powers[18]) - (shifts[3072])) * ((point_powers[18]) - (shifts[3073])) * + ((point_powers[18]) - (shifts[3074])) * ((point_powers[18]) - (shifts[3075])) * + ((point_powers[18]) - (shifts[3076])) * ((point_powers[18]) - (shifts[3077])) * + ((point_powers[18]) - (shifts[3078])) * ((point_powers[18]) - (shifts[3079])) * + ((point_powers[18]) - (shifts[3080])) * ((point_powers[18]) - (shifts[3081])) * + ((point_powers[18]) - (shifts[3082])) * ((point_powers[18]) - (shifts[3083])) * + (domain100)) + : FieldElementT::Zero(); + const FieldElementT& domain102 = + ((uses_keccak_builtin) != (0)) + ? (((point_powers[18]) - (shifts[3084])) * ((point_powers[18]) - (shifts[3085])) * + ((point_powers[18]) - (shifts[3086])) * ((point_powers[18]) - (shifts[3087])) * + ((point_powers[18]) - (shifts[3088])) * ((point_powers[18]) - (shifts[3089])) * + ((point_powers[18]) - (shifts[3090])) * ((point_powers[18]) - (shifts[3091])) * + ((point_powers[18]) - (shifts[3092])) * ((point_powers[18]) - (shifts[3093])) * + ((point_powers[18]) - (shifts[3094])) * ((point_powers[18]) - (shifts[3095])) * + ((point_powers[18]) - (shifts[3096])) * ((point_powers[18]) - (shifts[3097])) * + ((point_powers[18]) - (shifts[3098])) * ((point_powers[18]) - (shifts[3099])) * + ((point_powers[18]) - (shifts[3100])) * ((point_powers[18]) - (shifts[3101])) * + ((point_powers[18]) - (shifts[3102])) * ((point_powers[18]) - (shifts[3103])) * + ((point_powers[18]) - (shifts[3104])) * ((point_powers[18]) - (shifts[3105])) * + ((point_powers[18]) - (shifts[3106])) * ((point_powers[18]) - (shifts[3107])) * + ((point_powers[18]) - (shifts[3108])) * ((point_powers[18]) - (shifts[3109])) * + ((point_powers[18]) - (shifts[3110])) * ((point_powers[18]) - (shifts[3111])) * + ((point_powers[18]) - (shifts[3112])) * ((point_powers[18]) - (shifts[3113])) * + ((point_powers[18]) - (shifts[3114])) * ((point_powers[18]) - (shifts[3115])) * + ((point_powers[18]) - (shifts[3116])) * ((point_powers[18]) - (shifts[3117])) * + ((point_powers[18]) - (shifts[3118])) * ((point_powers[18]) - (shifts[3119])) * + ((point_powers[18]) - (shifts[3120])) * ((point_powers[18]) - (shifts[3121])) * + ((point_powers[18]) - (shifts[3122])) * ((point_powers[18]) - (shifts[3123])) * + ((point_powers[18]) - (shifts[3124])) * ((point_powers[18]) - (shifts[3125])) * + ((point_powers[18]) - (shifts[3126])) * ((point_powers[18]) - (shifts[3127])) * + ((point_powers[18]) - (shifts[3128])) * ((point_powers[18]) - (shifts[3129])) * + ((point_powers[18]) - (shifts[3130])) * ((point_powers[18]) - (shifts[3131])) * + (domain101)) + : FieldElementT::Zero(); + const FieldElementT& domain103 = + ((uses_keccak_builtin) != (0)) + ? (((point_powers[18]) - (shifts[3132])) * ((point_powers[18]) - (shifts[3133])) * + ((point_powers[18]) - (shifts[3134])) * ((point_powers[18]) - (shifts[3135])) * + ((point_powers[18]) - (shifts[3136])) * ((point_powers[18]) - (shifts[3137])) * + ((point_powers[18]) - (shifts[3138])) * ((point_powers[18]) - (shifts[3139])) * + ((point_powers[18]) - (shifts[3140])) * ((point_powers[18]) - (shifts[3141])) * + ((point_powers[18]) - (shifts[3142])) * ((point_powers[18]) - (shifts[3143])) * + ((point_powers[18]) - (shifts[3144])) * ((point_powers[18]) - (shifts[3145])) * + ((point_powers[18]) - (shifts[3146])) * ((point_powers[18]) - (shifts[3147])) * + (domain102)) + : FieldElementT::Zero(); + const FieldElementT& domain104 = + ((uses_keccak_builtin) != (0)) + ? (((point_powers[18]) - (shifts[3148])) * ((point_powers[18]) - (shifts[3149])) * + ((point_powers[18]) - (shifts[3150])) * ((point_powers[18]) - (shifts[3151])) * + ((point_powers[18]) - (shifts[3152])) * ((point_powers[18]) - (shifts[3153])) * + ((point_powers[18]) - (shifts[3154])) * ((point_powers[18]) - (shifts[3155])) * + ((point_powers[18]) - (shifts[3156])) * ((point_powers[18]) - (shifts[3157])) * + ((point_powers[18]) - (shifts[3158])) * ((point_powers[18]) - (shifts[3159])) * + ((point_powers[18]) - (shifts[3160])) * ((point_powers[18]) - (shifts[3161])) * + ((point_powers[18]) - (shifts[3162])) * ((point_powers[18]) - (shifts[3163])) * + (domain99) * (domain103)) + : FieldElementT::Zero(); + const FieldElementT& domain105 = + ((uses_keccak_builtin) != (0)) + ? (((point_powers[18]) - (shifts[69])) * ((point_powers[18]) - (shifts[3164])) * + ((point_powers[18]) - (shifts[3165])) * ((point_powers[18]) - (shifts[3166])) * + ((point_powers[18]) - (shifts[3167])) * ((point_powers[18]) - (shifts[3168])) * + ((point_powers[18]) - (shifts[3169])) * ((point_powers[18]) - (shifts[3170]))) + : FieldElementT::Zero(); + const FieldElementT& domain106 = + ((uses_keccak_builtin) != (0)) + ? (((point_powers[18]) - (shifts[3171])) * ((point_powers[18]) - (shifts[3172])) * + ((point_powers[18]) - (shifts[3173])) * ((point_powers[18]) - (shifts[3174])) * + ((point_powers[18]) - (shifts[3175])) * ((point_powers[18]) - (shifts[3176])) * + ((point_powers[18]) - (shifts[3177])) * ((point_powers[18]) - (shifts[3178])) * + ((point_powers[18]) - (shifts[3179])) * ((point_powers[18]) - (shifts[3180])) * + ((point_powers[18]) - (shifts[3181])) * ((point_powers[18]) - (shifts[3182])) * + ((point_powers[18]) - (shifts[3183])) * ((point_powers[18]) - (shifts[3184])) * + ((point_powers[18]) - (shifts[3185])) * ((point_powers[18]) - (shifts[3186])) * + (domain104) * (domain105)) + : FieldElementT::Zero(); + const FieldElementT& domain107 = + ((uses_keccak_builtin) != (0)) + ? (((point_powers[18]) - (shifts[3187])) * ((point_powers[18]) - (shifts[3188])) * + ((point_powers[18]) - (shifts[3189])) * ((point_powers[18]) - (shifts[3190])) * + ((point_powers[18]) - (shifts[3191])) * ((point_powers[18]) - (shifts[3192])) * + ((point_powers[18]) - (shifts[3193])) * ((point_powers[18]) - (shifts[3194])) * + ((point_powers[18]) - (shifts[236])) * ((point_powers[18]) - (shifts[3195])) * + ((point_powers[18]) - (shifts[3196])) * ((point_powers[18]) - (shifts[3197])) * + ((point_powers[18]) - (shifts[3198])) * ((point_powers[18]) - (shifts[3199])) * + ((point_powers[18]) - (shifts[3200])) * ((point_powers[18]) - (shifts[3201]))) + : FieldElementT::Zero(); + const FieldElementT& domain108 = + ((uses_keccak_builtin) != (0)) + ? (((point_powers[18]) - (shifts[3202])) * ((point_powers[18]) - (shifts[3203])) * + ((point_powers[18]) - (shifts[3204])) * ((point_powers[18]) - (shifts[3205])) * + ((point_powers[18]) - (shifts[3206])) * ((point_powers[18]) - (shifts[3207])) * + ((point_powers[18]) - (shifts[3208])) * ((point_powers[18]) - (shifts[3209])) * + ((point_powers[18]) - (shifts[260])) * ((point_powers[18]) - (shifts[3210])) * + ((point_powers[18]) - (shifts[3211])) * ((point_powers[18]) - (shifts[3212])) * + ((point_powers[18]) - (shifts[3213])) * ((point_powers[18]) - (shifts[3214])) * + ((point_powers[18]) - (shifts[3215])) * ((point_powers[18]) - (shifts[3216])) * + (domain107)) + : FieldElementT::Zero(); + const FieldElementT& domain109 = + ((uses_keccak_builtin) != (0)) + ? (((point_powers[18]) - (shifts[3217])) * ((point_powers[18]) - (shifts[3218])) * + ((point_powers[18]) - (shifts[3219])) * ((point_powers[18]) - (shifts[3220])) * + ((point_powers[18]) - (shifts[3221])) * ((point_powers[18]) - (shifts[3222])) * + ((point_powers[18]) - (shifts[3223])) * ((point_powers[18]) - (shifts[3224])) * + ((point_powers[18]) - (shifts[3225])) * ((point_powers[18]) - (shifts[3226])) * + ((point_powers[18]) - (shifts[3227])) * ((point_powers[18]) - (shifts[3228])) * + ((point_powers[18]) - (shifts[3229])) * ((point_powers[18]) - (shifts[3230])) * + ((point_powers[18]) - (shifts[3231])) * ((point_powers[18]) - (shifts[3232])) * + ((point_powers[18]) - (shifts[3233])) * ((point_powers[18]) - (shifts[3234])) * + ((point_powers[18]) - (shifts[3235])) * ((point_powers[18]) - (shifts[3236])) * + ((point_powers[18]) - (shifts[3237])) * ((point_powers[18]) - (shifts[3238])) * + ((point_powers[18]) - (shifts[3239])) * ((point_powers[18]) - (shifts[3240])) * + ((point_powers[18]) - (shifts[3241])) * ((point_powers[18]) - (shifts[3242])) * + ((point_powers[18]) - (shifts[3243])) * ((point_powers[18]) - (shifts[3244])) * + ((point_powers[18]) - (shifts[3245])) * ((point_powers[18]) - (shifts[3246])) * + ((point_powers[18]) - (shifts[3247])) * ((point_powers[18]) - (shifts[3248])) * + ((point_powers[18]) - (shifts[3249])) * ((point_powers[18]) - (shifts[3250])) * + ((point_powers[18]) - (shifts[3251])) * ((point_powers[18]) - (shifts[3252])) * + ((point_powers[18]) - (shifts[3253])) * ((point_powers[18]) - (shifts[3254])) * + ((point_powers[18]) - (shifts[3255])) * ((point_powers[18]) - (shifts[3256])) * + ((point_powers[18]) - (shifts[3257])) * ((point_powers[18]) - (shifts[3258])) * + ((point_powers[18]) - (shifts[3259])) * ((point_powers[18]) - (shifts[3260])) * + ((point_powers[18]) - (shifts[3261])) * ((point_powers[18]) - (shifts[3262])) * + ((point_powers[18]) - (shifts[3263])) * ((point_powers[18]) - (shifts[3264])) * + ((point_powers[18]) - (shifts[3265])) * ((point_powers[18]) - (shifts[3266])) * + ((point_powers[18]) - (shifts[3267])) * ((point_powers[18]) - (shifts[3268])) * + ((point_powers[18]) - (shifts[3269])) * ((point_powers[18]) - (shifts[3270])) * + ((point_powers[18]) - (shifts[3271])) * ((point_powers[18]) - (shifts[3272])) * + ((point_powers[18]) - (shifts[3273])) * ((point_powers[18]) - (shifts[3274])) * + ((point_powers[18]) - (shifts[3275])) * ((point_powers[18]) - (shifts[3276])) * + ((point_powers[18]) - (shifts[3277])) * ((point_powers[18]) - (shifts[3278])) * + ((point_powers[18]) - (shifts[3279])) * ((point_powers[18]) - (shifts[3280])) * + (domain106) * (domain108)) + : FieldElementT::Zero(); + const FieldElementT& domain110 = + ((uses_keccak_builtin) != (0)) + ? (((point_powers[18]) - (shifts[3281])) * ((point_powers[18]) - (shifts[3282])) * + ((point_powers[18]) - (shifts[3283])) * ((point_powers[18]) - (shifts[3284])) * + ((point_powers[18]) - (shifts[3285])) * ((point_powers[18]) - (shifts[3286])) * + ((point_powers[18]) - (shifts[3287])) * ((point_powers[18]) - (shifts[3288])) * + ((point_powers[18]) - (shifts[3289])) * ((point_powers[18]) - (shifts[3290])) * + ((point_powers[18]) - (shifts[3291])) * ((point_powers[18]) - (shifts[3292])) * + ((point_powers[18]) - (shifts[3293])) * ((point_powers[18]) - (shifts[3294])) * + ((point_powers[18]) - (shifts[3295])) * ((point_powers[18]) - (shifts[3296])) * + ((point_powers[18]) - (shifts[3297])) * ((point_powers[18]) - (shifts[3298])) * + ((point_powers[18]) - (shifts[3299])) * ((point_powers[18]) - (shifts[3300])) * + ((point_powers[18]) - (shifts[3301])) * ((point_powers[18]) - (shifts[3302])) * + ((point_powers[18]) - (shifts[3303])) * ((point_powers[18]) - (shifts[3304])) * + ((point_powers[18]) - (shifts[3305])) * ((point_powers[18]) - (shifts[3306])) * + ((point_powers[18]) - (shifts[3307])) * ((point_powers[18]) - (shifts[3308])) * + ((point_powers[18]) - (shifts[3309])) * ((point_powers[18]) - (shifts[3310])) * + ((point_powers[18]) - (shifts[3311])) * ((point_powers[18]) - (shifts[3312])) * + ((point_powers[18]) - (shifts[3313])) * ((point_powers[18]) - (shifts[3314])) * + ((point_powers[18]) - (shifts[3315])) * ((point_powers[18]) - (shifts[3316])) * + ((point_powers[18]) - (shifts[3317])) * ((point_powers[18]) - (shifts[3318])) * + ((point_powers[18]) - (shifts[3319])) * ((point_powers[18]) - (shifts[3320])) * + ((point_powers[18]) - (shifts[3321])) * ((point_powers[18]) - (shifts[3322])) * + ((point_powers[18]) - (shifts[3323])) * ((point_powers[18]) - (shifts[3324])) * + ((point_powers[18]) - (shifts[3325])) * ((point_powers[18]) - (shifts[3326])) * + ((point_powers[18]) - (shifts[3327])) * ((point_powers[18]) - (shifts[3328])) * + (domain109)) + : FieldElementT::Zero(); + const FieldElementT& domain111 = + ((uses_keccak_builtin) != (0)) + ? (((point_powers[18]) - (shifts[3329])) * ((point_powers[18]) - (shifts[3330])) * + ((point_powers[18]) - (shifts[3331])) * ((point_powers[18]) - (shifts[3332])) * + ((point_powers[18]) - (shifts[3333])) * ((point_powers[18]) - (shifts[3334])) * + ((point_powers[18]) - (shifts[3335])) * ((point_powers[18]) - (shifts[3336])) * + ((point_powers[18]) - (shifts[3337])) * ((point_powers[18]) - (shifts[3338])) * + ((point_powers[18]) - (shifts[3339])) * ((point_powers[18]) - (shifts[3340])) * + ((point_powers[18]) - (shifts[3341])) * ((point_powers[18]) - (shifts[3342])) * + ((point_powers[18]) - (shifts[3343])) * ((point_powers[18]) - (shifts[3344])) * + ((point_powers[18]) - (shifts[3345])) * ((point_powers[18]) - (shifts[3346])) * + ((point_powers[18]) - (shifts[3347])) * ((point_powers[18]) - (shifts[3348])) * + ((point_powers[18]) - (shifts[3349])) * ((point_powers[18]) - (shifts[3350])) * + ((point_powers[18]) - (shifts[3351])) * ((point_powers[18]) - (shifts[3352])) * + (domain110)) + : FieldElementT::Zero(); + const FieldElementT& domain112 = + ((uses_keccak_builtin) != (0)) ? ((domain33) * (domain81)) : FieldElementT::Zero(); + const FieldElementT& domain113 = + ((uses_keccak_builtin) != (0)) ? ((domain85) * (domain112)) : FieldElementT::Zero(); + const FieldElementT& domain114 = + ((uses_keccak_builtin) != (0)) ? ((domain90) * (domain113)) : FieldElementT::Zero(); + const FieldElementT& domain115 = ((uses_keccak_builtin) != (0)) + ? ((domain46) * (domain50) * (domain52)) + : FieldElementT::Zero(); + const FieldElementT& domain116 = ((uses_keccak_builtin) != (0)) + ? ((domain54) * (domain56) * (domain58) * (domain115)) + : FieldElementT::Zero(); + const FieldElementT& domain117 = + ((uses_keccak_builtin) != (0)) ? ((domain60) * (domain116)) : FieldElementT::Zero(); + const FieldElementT& domain118 = ((uses_keccak_builtin) != (0)) + ? ((domain61) * (domain63) * (domain65) * (domain67) * + (domain69) * (domain71) * (domain73) * (domain116)) + : FieldElementT::Zero(); + const FieldElementT& domain119 = + ((uses_keccak_builtin) != (0)) ? ((domain76) * (domain118)) : FieldElementT::Zero(); + const FieldElementT& domain120 = + ((uses_keccak_builtin) != (0)) ? ((domain75) * (domain118)) : FieldElementT::Zero(); + const FieldElementT& domain121 = + ((uses_keccak_builtin) != (0)) ? ((domain83) * (domain86)) : FieldElementT::Zero(); + const FieldElementT& domain122 = ((uses_keccak_builtin) != (0)) + ? ((domain91) * (domain99) * (domain105) * (domain113)) + : FieldElementT::Zero(); + const FieldElementT& domain123 = + ((uses_keccak_builtin) != (0)) ? ((domain108) * (domain122)) : FieldElementT::Zero(); + const FieldElementT& domain124 = + ((uses_keccak_builtin) != (0)) ? ((domain107) * (domain122)) : FieldElementT::Zero(); + const FieldElementT& domain125 = + ((uses_keccak_builtin) != (0)) ? ((domain98) * (domain103)) : FieldElementT::Zero(); + const FieldElementT& domain126 = + ((uses_keccak_builtin) != (0)) ? ((domain95) * (domain101)) : FieldElementT::Zero(); + const FieldElementT& domain127 = + ((uses_keccak_builtin) != (0)) ? ((domain89) * (domain92)) : FieldElementT::Zero(); + const FieldElementT& domain128 = + ((uses_keccak_builtin) != (0)) ? ((domain97) * (domain102)) : FieldElementT::Zero(); + const FieldElementT& domain129 = + ((uses_keccak_builtin) != (0)) ? ((domain94) * (domain100)) : FieldElementT::Zero(); + const FieldElementT& domain130 = + ((uses_keccak_builtin) != (0)) + ? (((point_powers[18]) - (shifts[3353])) * ((point_powers[18]) - (shifts[3354])) * + ((point_powers[18]) - (shifts[3355])) * ((point_powers[18]) - (shifts[3356])) * + ((point_powers[18]) - (shifts[3357])) * ((point_powers[18]) - (shifts[3358])) * + ((point_powers[18]) - (shifts[3359])) * ((point_powers[18]) - (shifts[3360])) * + ((point_powers[18]) - (shifts[3361])) * ((point_powers[18]) - (shifts[3362])) * + ((point_powers[18]) - (shifts[3363])) * ((point_powers[18]) - (shifts[3364])) * + ((point_powers[18]) - (shifts[3365])) * ((point_powers[18]) - (shifts[3366])) * + ((point_powers[18]) - (shifts[3367])) * ((point_powers[18]) - (shifts[3368])) * + ((point_powers[18]) - (shifts[3369])) * ((point_powers[18]) - (shifts[3370])) * + ((point_powers[18]) - (shifts[3371])) * ((point_powers[18]) - (shifts[3372])) * + ((point_powers[18]) - (shifts[3373])) * ((point_powers[18]) - (shifts[3374])) * + ((point_powers[18]) - (shifts[3375])) * ((point_powers[18]) - (shifts[3376])) * + ((point_powers[18]) - (shifts[3377])) * ((point_powers[18]) - (shifts[3378])) * + ((point_powers[18]) - (shifts[3379])) * ((point_powers[18]) - (shifts[3380])) * + ((point_powers[18]) - (shifts[3381])) * ((point_powers[18]) - (shifts[3382])) * + ((point_powers[18]) - (shifts[3383])) * ((point_powers[18]) - (shifts[3384])) * + ((point_powers[18]) - (shifts[3385])) * ((point_powers[18]) - (shifts[3386])) * + ((point_powers[18]) - (shifts[3387])) * ((point_powers[18]) - (shifts[3388])) * + ((point_powers[18]) - (shifts[3389])) * ((point_powers[18]) - (shifts[3390])) * + ((point_powers[18]) - (shifts[3391])) * ((point_powers[18]) - (shifts[3392])) * + ((point_powers[18]) - (shifts[3393])) * ((point_powers[18]) - (shifts[3394])) * + ((point_powers[18]) - (shifts[3395])) * ((point_powers[18]) - (shifts[3396])) * + ((point_powers[18]) - (shifts[3397])) * ((point_powers[18]) - (shifts[3398])) * + ((point_powers[18]) - (shifts[3399])) * ((point_powers[18]) - (shifts[3400])) * + ((point_powers[18]) - (shifts[3401])) * ((point_powers[18]) - (shifts[3402])) * + ((point_powers[18]) - (shifts[3403])) * ((point_powers[18]) - (shifts[3404])) * + ((point_powers[18]) - (shifts[3405])) * ((point_powers[18]) - (shifts[3406])) * + ((point_powers[18]) - (shifts[3407])) * ((point_powers[18]) - (shifts[3408])) * + ((point_powers[18]) - (shifts[3409])) * ((point_powers[18]) - (shifts[3410])) * + ((point_powers[18]) - (shifts[3411])) * ((point_powers[18]) - (shifts[3412])) * + ((point_powers[18]) - (shifts[3413])) * ((point_powers[18]) - (shifts[3414])) * + ((point_powers[18]) - (shifts[3415])) * ((point_powers[18]) - (shifts[3416])) * + ((point_powers[18]) - (shifts[3417])) * ((point_powers[18]) - (shifts[3418])) * + ((point_powers[18]) - (shifts[3419])) * ((point_powers[18]) - (shifts[3420])) * + ((point_powers[18]) - (shifts[3421])) * ((point_powers[18]) - (shifts[3422])) * + ((point_powers[18]) - (shifts[3423])) * ((point_powers[18]) - (shifts[3424])) * + ((point_powers[18]) - (shifts[3425])) * ((point_powers[18]) - (shifts[3426])) * + ((point_powers[18]) - (shifts[3427])) * ((point_powers[18]) - (shifts[3428])) * + ((point_powers[18]) - (shifts[3429])) * ((point_powers[18]) - (shifts[3430])) * + ((point_powers[18]) - (shifts[3431])) * ((point_powers[18]) - (shifts[3432])) * + ((point_powers[18]) - (shifts[3433])) * ((point_powers[18]) - (shifts[3434])) * + ((point_powers[18]) - (shifts[3435])) * ((point_powers[18]) - (shifts[3436])) * + ((point_powers[18]) - (shifts[3437])) * ((point_powers[18]) - (shifts[3438])) * + ((point_powers[18]) - (shifts[3439])) * ((point_powers[18]) - (shifts[3440])) * + ((point_powers[18]) - (shifts[3441])) * ((point_powers[18]) - (shifts[3442])) * + ((point_powers[18]) - (shifts[3443])) * ((point_powers[18]) - (shifts[3444])) * + ((point_powers[18]) - (shifts[3445])) * ((point_powers[18]) - (shifts[3446])) * + ((point_powers[18]) - (shifts[3447])) * ((point_powers[18]) - (shifts[3448])) * + ((point_powers[18]) - (shifts[3449])) * ((point_powers[18]) - (shifts[3450])) * + ((point_powers[18]) - (shifts[3451])) * ((point_powers[18]) - (shifts[3452])) * + ((point_powers[18]) - (shifts[3453])) * ((point_powers[18]) - (shifts[3454])) * + ((point_powers[18]) - (shifts[3455])) * ((point_powers[18]) - (shifts[3456])) * + ((point_powers[18]) - (shifts[3457])) * ((point_powers[18]) - (shifts[3458])) * + ((point_powers[18]) - (shifts[3459])) * ((point_powers[18]) - (shifts[3460])) * + ((point_powers[18]) - (shifts[3461])) * ((point_powers[18]) - (shifts[3462])) * + ((point_powers[18]) - (shifts[3463])) * ((point_powers[18]) - (shifts[3464])) * + ((point_powers[18]) - (shifts[3465])) * ((point_powers[18]) - (shifts[3466])) * + ((point_powers[18]) - (shifts[3467])) * ((point_powers[18]) - (shifts[3468])) * + ((point_powers[18]) - (shifts[3469])) * ((point_powers[18]) - (shifts[3470])) * + ((point_powers[18]) - (shifts[3471])) * ((point_powers[18]) - (shifts[3472])) * + ((point_powers[18]) - (shifts[3473])) * ((point_powers[18]) - (shifts[3474])) * + ((point_powers[18]) - (shifts[3475])) * ((point_powers[18]) - (shifts[3476])) * + ((point_powers[18]) - (shifts[3477])) * ((point_powers[18]) - (shifts[3478])) * + ((point_powers[18]) - (shifts[3479])) * ((point_powers[18]) - (shifts[3480])) * + ((point_powers[18]) - (shifts[3481])) * ((point_powers[18]) - (shifts[3482])) * + ((point_powers[18]) - (shifts[3483])) * ((point_powers[18]) - (shifts[3484])) * + ((point_powers[18]) - (shifts[3485])) * ((point_powers[18]) - (shifts[3486])) * + ((point_powers[18]) - (shifts[3487])) * ((point_powers[18]) - (shifts[3488])) * + ((point_powers[18]) - (shifts[3489])) * ((point_powers[18]) - (shifts[3490])) * + ((point_powers[18]) - (shifts[3491])) * (domain34) * (domain42) * (domain80) * + (domain84) * (domain88) * (domain96)) + : FieldElementT::Zero(); + const FieldElementT& domain131 = (point_powers[19]) - (FieldElementT::One()); + const FieldElementT& domain132 = (point_powers[20]) - (FieldElementT::One()); + const FieldElementT& domain133 = ((uses_mul_mod_builtin) != (0)) + ? ((point_powers[21]) - (FieldElementT::One())) + : FieldElementT::Zero(); + const FieldElementT& domain134 = ((uses_pedersen_builtin) != (0)) + ? ((point_powers[22]) - (FieldElementT::One())) + : FieldElementT::Zero(); + const FieldElementT& domain135 = ((uses_pedersen_builtin) != (0)) + ? ((point_powers[23]) - (FieldElementT::One())) + : FieldElementT::Zero(); + const FieldElementT& domain136 = ((uses_pedersen_builtin) != (0)) + ? ((point_powers[23]) - (shifts[3492])) + : FieldElementT::Zero(); + const FieldElementT& domain137 = ((uses_pedersen_builtin) != (0)) + ? ((point_powers[23]) - (shifts[3493])) + : FieldElementT::Zero(); + const FieldElementT& domain138 = ((uses_pedersen_builtin) != (0)) + ? ((point_powers[24]) - (shifts[3494])) + : FieldElementT::Zero(); + const FieldElementT& domain139 = ((uses_pedersen_builtin) != (0)) + ? ((point_powers[24]) - (FieldElementT::One())) + : FieldElementT::Zero(); + const FieldElementT& domain140 = ((uses_poseidon_builtin) != (0)) + ? ((point_powers[25]) - (FieldElementT::One())) + : FieldElementT::Zero(); + const FieldElementT& domain141 = ((uses_poseidon_builtin) != (0)) + ? ((point_powers[26]) - (FieldElementT::One())) + : FieldElementT::Zero(); + const FieldElementT& domain142 = ((uses_poseidon_builtin) != (0)) + ? ((point_powers[27]) - (FieldElementT::One())) + : FieldElementT::Zero(); + const FieldElementT& domain143 = ((uses_poseidon_builtin) != (0)) + ? ((point_powers[28]) - (FieldElementT::One())) + : FieldElementT::Zero(); + const FieldElementT& domain144 = ((uses_poseidon_builtin) != (0)) + ? ((point_powers[28]) - (shifts[3495])) + : FieldElementT::Zero(); + const FieldElementT& domain145 = ((uses_poseidon_builtin) != (0)) + ? ((point_powers[29]) - (shifts[3496])) + : FieldElementT::Zero(); + const FieldElementT& domain146 = ((uses_poseidon_builtin) != (0)) + ? (((point_powers[29]) - (shifts[3497])) * + ((point_powers[29]) - (shifts[3498])) * (domain145)) + : FieldElementT::Zero(); + const FieldElementT& domain147 = + ((uses_poseidon_builtin) != (0)) + ? (((point_powers[29]) - (shifts[3499])) * ((point_powers[29]) - (shifts[3500])) * + ((point_powers[29]) - (shifts[3495])) * ((point_powers[29]) - (shifts[3501])) * + ((point_powers[29]) - (shifts[3502])) * ((point_powers[29]) - (shifts[3503])) * + ((point_powers[29]) - (shifts[3504])) * ((point_powers[29]) - (shifts[3505])) * + ((point_powers[29]) - (shifts[3506])) * (domain145)) + : FieldElementT::Zero(); + const FieldElementT& domain148 = + ((uses_poseidon_builtin) != (0)) + ? (((point_powers[29]) - (shifts[3507])) * ((point_powers[29]) - (shifts[3508])) * + ((point_powers[29]) - (shifts[3509])) * (domain147)) + : FieldElementT::Zero(); + const FieldElementT& domain149 = ((uses_poseidon_builtin) != (0)) + ? ((point_powers[29]) - (FieldElementT::One())) + : FieldElementT::Zero(); + const FieldElementT& domain150 = ((uses_range_check96_builtin) != (0)) + ? ((point_powers[30]) - (FieldElementT::One())) + : FieldElementT::Zero(); + const FieldElementT& domain151 = ((uses_range_check_builtin) != (0)) + ? ((point_powers[31]) - (FieldElementT::One())) + : FieldElementT::Zero(); + const FieldElementT& domain152 = (point_powers[32]) - (FieldElementT::One()); + return { + domain0, domain1, domain2, domain3, domain4, domain5, domain6, domain7, + domain8, domain9, domain10, domain11, domain12, domain13, domain14, domain15, + domain16, domain17, domain18, domain19, domain20, domain21, domain22, domain23, + domain24, domain25, domain26, domain27, domain28, domain29, domain30, domain31, + domain32, domain33, domain34, domain35, domain36, domain37, domain38, domain39, + domain40, domain41, domain42, domain43, domain44, domain45, domain46, domain47, + domain48, domain49, domain50, domain51, domain52, domain53, domain54, domain55, + domain56, domain57, domain58, domain59, domain60, domain61, domain62, domain63, + domain64, domain65, domain66, domain67, domain68, domain69, domain70, domain71, + domain72, domain73, domain74, domain75, domain76, domain77, domain78, domain79, + domain80, domain81, domain82, domain83, domain84, domain85, domain86, domain87, + domain88, domain89, domain90, domain91, domain92, domain93, domain94, domain95, + domain96, domain97, domain98, domain99, domain100, domain101, domain102, domain103, + domain104, domain105, domain106, domain107, domain108, domain109, domain110, domain111, + domain112, domain113, domain114, domain115, domain116, domain117, domain118, domain119, + domain120, domain121, domain122, domain123, domain124, domain125, domain126, domain127, + domain128, domain129, domain130, domain131, domain132, domain133, domain134, domain135, + domain136, domain137, domain138, domain139, domain140, domain141, domain142, domain143, + domain144, domain145, domain146, domain147, domain148, domain149, domain150, domain151, + domain152, + }; +} + +template +std::vector CpuAirDefinition::ParseDynamicParams( + [[maybe_unused]] const std::map& params) const { + std::vector result; + + ASSERT_RELEASE(params.size() == kNumDynamicParams, "Inconsistent dynamic data."); + result.reserve(kNumDynamicParams); + result.push_back(params.at("add_mod__a0_suboffset")); + result.push_back(params.at("add_mod__a1_suboffset")); + result.push_back(params.at("add_mod__a2_suboffset")); + result.push_back(params.at("add_mod__a3_suboffset")); + result.push_back(params.at("add_mod__a_offset_suboffset")); + result.push_back(params.at("add_mod__b0_suboffset")); + result.push_back(params.at("add_mod__b1_suboffset")); + result.push_back(params.at("add_mod__b2_suboffset")); + result.push_back(params.at("add_mod__b3_suboffset")); + result.push_back(params.at("add_mod__b_offset_suboffset")); + result.push_back(params.at("add_mod__c0_suboffset")); + result.push_back(params.at("add_mod__c1_suboffset")); + result.push_back(params.at("add_mod__c2_suboffset")); + result.push_back(params.at("add_mod__c3_suboffset")); + result.push_back(params.at("add_mod__c_offset_suboffset")); + result.push_back(params.at("add_mod__carry1_bit_column")); + result.push_back(params.at("add_mod__carry1_bit_offset")); + result.push_back(params.at("add_mod__carry1_sign_column")); + result.push_back(params.at("add_mod__carry1_sign_offset")); + result.push_back(params.at("add_mod__carry2_bit_column")); + result.push_back(params.at("add_mod__carry2_bit_offset")); + result.push_back(params.at("add_mod__carry2_sign_column")); + result.push_back(params.at("add_mod__carry2_sign_offset")); + result.push_back(params.at("add_mod__carry3_bit_column")); + result.push_back(params.at("add_mod__carry3_bit_offset")); + result.push_back(params.at("add_mod__carry3_sign_column")); + result.push_back(params.at("add_mod__carry3_sign_offset")); + result.push_back(params.at("add_mod__n_suboffset")); + result.push_back(params.at("add_mod__offsets_ptr_suboffset")); + result.push_back(params.at("add_mod__p0_suboffset")); + result.push_back(params.at("add_mod__p1_suboffset")); + result.push_back(params.at("add_mod__p2_suboffset")); + result.push_back(params.at("add_mod__p3_suboffset")); + result.push_back(params.at("add_mod__row_ratio")); + result.push_back(params.at("add_mod__sub_p_bit_column")); + result.push_back(params.at("add_mod__sub_p_bit_offset")); + result.push_back(params.at("add_mod__values_ptr_suboffset")); + result.push_back(params.at("bitwise__diluted_var_pool_suboffset")); + result.push_back(params.at("bitwise__row_ratio")); + result.push_back(params.at("bitwise__trim_unpacking192_suboffset")); + result.push_back(params.at("bitwise__trim_unpacking193_suboffset")); + result.push_back(params.at("bitwise__trim_unpacking194_suboffset")); + result.push_back(params.at("bitwise__trim_unpacking195_suboffset")); + result.push_back(params.at("bitwise__var_pool_suboffset")); + result.push_back(params.at("bitwise__x_or_y_suboffset")); + result.push_back(params.at("cpu__decode__mem_inst_suboffset")); + result.push_back(params.at("cpu__decode__off0_suboffset")); + result.push_back(params.at("cpu__decode__off1_suboffset")); + result.push_back(params.at("cpu__decode__off2_suboffset")); + result.push_back(params.at("cpu__decode__opcode_range_check__column_column")); + result.push_back(params.at("cpu__decode__opcode_range_check__column_offset")); + result.push_back(params.at("cpu__operands__mem_dst_suboffset")); + result.push_back(params.at("cpu__operands__mem_op0_suboffset")); + result.push_back(params.at("cpu__operands__mem_op1_suboffset")); + result.push_back(params.at("cpu__operands__ops_mul_column")); + result.push_back(params.at("cpu__operands__ops_mul_offset")); + result.push_back(params.at("cpu__operands__res_column")); + result.push_back(params.at("cpu__operands__res_offset")); + result.push_back(params.at("cpu__registers__ap_column")); + result.push_back(params.at("cpu__registers__ap_offset")); + result.push_back(params.at("cpu__registers__fp_column")); + result.push_back(params.at("cpu__registers__fp_offset")); + result.push_back(params.at("cpu__update_registers__update_pc__tmp0_column")); + result.push_back(params.at("cpu__update_registers__update_pc__tmp0_offset")); + result.push_back(params.at("cpu__update_registers__update_pc__tmp1_column")); + result.push_back(params.at("cpu__update_registers__update_pc__tmp1_offset")); + result.push_back(params.at("cpu_component_step")); + result.push_back(params.at("diluted_check__cumulative_value_column")); + result.push_back(params.at("diluted_check__cumulative_value_offset")); + result.push_back(params.at("diluted_check__permutation__cum_prod0_column")); + result.push_back(params.at("diluted_check__permutation__cum_prod0_offset")); + result.push_back(params.at("diluted_check__permuted_values_column")); + result.push_back(params.at("diluted_check__permuted_values_offset")); + result.push_back(params.at("diluted_pool_column")); + result.push_back(params.at("diluted_pool_offset")); + result.push_back(params.at("diluted_units_row_ratio")); + result.push_back(params.at("ec_op__doubled_points__x_column")); + result.push_back(params.at("ec_op__doubled_points__x_offset")); + result.push_back(params.at("ec_op__doubled_points__y_column")); + result.push_back(params.at("ec_op__doubled_points__y_offset")); + result.push_back(params.at("ec_op__doubling_slope_column")); + result.push_back(params.at("ec_op__doubling_slope_offset")); + result.push_back(params.at("ec_op__ec_subset_sum__bit_unpacking__prod_ones192_column")); + result.push_back(params.at("ec_op__ec_subset_sum__bit_unpacking__prod_ones192_offset")); + result.push_back(params.at("ec_op__ec_subset_sum__bit_unpacking__prod_ones196_column")); + result.push_back(params.at("ec_op__ec_subset_sum__bit_unpacking__prod_ones196_offset")); + result.push_back(params.at("ec_op__ec_subset_sum__partial_sum__x_column")); + result.push_back(params.at("ec_op__ec_subset_sum__partial_sum__x_offset")); + result.push_back(params.at("ec_op__ec_subset_sum__partial_sum__y_column")); + result.push_back(params.at("ec_op__ec_subset_sum__partial_sum__y_offset")); + result.push_back(params.at("ec_op__ec_subset_sum__selector_column")); + result.push_back(params.at("ec_op__ec_subset_sum__selector_offset")); + result.push_back(params.at("ec_op__ec_subset_sum__slope_column")); + result.push_back(params.at("ec_op__ec_subset_sum__slope_offset")); + result.push_back(params.at("ec_op__ec_subset_sum__x_diff_inv_column")); + result.push_back(params.at("ec_op__ec_subset_sum__x_diff_inv_offset")); + result.push_back(params.at("ec_op__m_suboffset")); + result.push_back(params.at("ec_op__p_x_suboffset")); + result.push_back(params.at("ec_op__p_y_suboffset")); + result.push_back(params.at("ec_op__q_x_suboffset")); + result.push_back(params.at("ec_op__q_y_suboffset")); + result.push_back(params.at("ec_op__r_x_suboffset")); + result.push_back(params.at("ec_op__r_y_suboffset")); + result.push_back(params.at("ec_op_builtin_row_ratio")); + result.push_back(params.at("ecdsa__message_suboffset")); + result.push_back(params.at("ecdsa__pubkey_suboffset")); + result.push_back(params.at("ecdsa__signature0__add_results_inv_column")); + result.push_back(params.at("ecdsa__signature0__add_results_inv_offset")); + result.push_back(params.at("ecdsa__signature0__add_results_slope_column")); + result.push_back(params.at("ecdsa__signature0__add_results_slope_offset")); + result.push_back(params.at("ecdsa__signature0__doubling_slope_column")); + result.push_back(params.at("ecdsa__signature0__doubling_slope_offset")); + result.push_back(params.at("ecdsa__signature0__exponentiate_generator__partial_sum__x_column")); + result.push_back(params.at("ecdsa__signature0__exponentiate_generator__partial_sum__x_offset")); + result.push_back(params.at("ecdsa__signature0__exponentiate_generator__partial_sum__y_column")); + result.push_back(params.at("ecdsa__signature0__exponentiate_generator__partial_sum__y_offset")); + result.push_back(params.at("ecdsa__signature0__exponentiate_generator__selector_column")); + result.push_back(params.at("ecdsa__signature0__exponentiate_generator__selector_offset")); + result.push_back(params.at("ecdsa__signature0__exponentiate_generator__slope_column")); + result.push_back(params.at("ecdsa__signature0__exponentiate_generator__slope_offset")); + result.push_back(params.at("ecdsa__signature0__exponentiate_generator__x_diff_inv_column")); + result.push_back(params.at("ecdsa__signature0__exponentiate_generator__x_diff_inv_offset")); + result.push_back(params.at("ecdsa__signature0__exponentiate_key__partial_sum__x_column")); + result.push_back(params.at("ecdsa__signature0__exponentiate_key__partial_sum__x_offset")); + result.push_back(params.at("ecdsa__signature0__exponentiate_key__partial_sum__y_column")); + result.push_back(params.at("ecdsa__signature0__exponentiate_key__partial_sum__y_offset")); + result.push_back(params.at("ecdsa__signature0__exponentiate_key__selector_column")); + result.push_back(params.at("ecdsa__signature0__exponentiate_key__selector_offset")); + result.push_back(params.at("ecdsa__signature0__exponentiate_key__slope_column")); + result.push_back(params.at("ecdsa__signature0__exponentiate_key__slope_offset")); + result.push_back(params.at("ecdsa__signature0__exponentiate_key__x_diff_inv_column")); + result.push_back(params.at("ecdsa__signature0__exponentiate_key__x_diff_inv_offset")); + result.push_back(params.at("ecdsa__signature0__extract_r_inv_column")); + result.push_back(params.at("ecdsa__signature0__extract_r_inv_offset")); + result.push_back(params.at("ecdsa__signature0__extract_r_slope_column")); + result.push_back(params.at("ecdsa__signature0__extract_r_slope_offset")); + result.push_back(params.at("ecdsa__signature0__key_points__x_column")); + result.push_back(params.at("ecdsa__signature0__key_points__x_offset")); + result.push_back(params.at("ecdsa__signature0__key_points__y_column")); + result.push_back(params.at("ecdsa__signature0__key_points__y_offset")); + result.push_back(params.at("ecdsa__signature0__q_x_squared_column")); + result.push_back(params.at("ecdsa__signature0__q_x_squared_offset")); + result.push_back(params.at("ecdsa__signature0__r_w_inv_column")); + result.push_back(params.at("ecdsa__signature0__r_w_inv_offset")); + result.push_back(params.at("ecdsa__signature0__z_inv_column")); + result.push_back(params.at("ecdsa__signature0__z_inv_offset")); + result.push_back(params.at("ecdsa_builtin_row_ratio")); + result.push_back(params.at("keccak__input_output_suboffset")); + result.push_back(params.at("keccak__keccak__diluted_column0_suboffset")); + result.push_back(params.at("keccak__keccak__diluted_column1_suboffset")); + result.push_back(params.at("keccak__keccak__diluted_column2_suboffset")); + result.push_back(params.at("keccak__keccak__diluted_column3_suboffset")); + result.push_back(params.at("keccak__keccak__parse_to_diluted__cumulative_sum_column")); + result.push_back(params.at("keccak__keccak__parse_to_diluted__cumulative_sum_offset")); + result.push_back(params.at("keccak__keccak__parse_to_diluted__final_reshaped_input_column")); + result.push_back(params.at("keccak__keccak__parse_to_diluted__final_reshaped_input_offset")); + result.push_back(params.at("keccak__keccak__parse_to_diluted__reshaped_intermediate_column")); + result.push_back(params.at("keccak__keccak__parse_to_diluted__reshaped_intermediate_offset")); + result.push_back(params.at("keccak__keccak__rotated_parity0_column")); + result.push_back(params.at("keccak__keccak__rotated_parity0_offset")); + result.push_back(params.at("keccak__keccak__rotated_parity1_column")); + result.push_back(params.at("keccak__keccak__rotated_parity1_offset")); + result.push_back(params.at("keccak__keccak__rotated_parity2_column")); + result.push_back(params.at("keccak__keccak__rotated_parity2_offset")); + result.push_back(params.at("keccak__keccak__rotated_parity3_column")); + result.push_back(params.at("keccak__keccak__rotated_parity3_offset")); + result.push_back(params.at("keccak__keccak__rotated_parity4_column")); + result.push_back(params.at("keccak__keccak__rotated_parity4_offset")); + result.push_back(params.at("keccak__row_ratio")); + result.push_back(params.at("mem_pool__addr_column")); + result.push_back(params.at("mem_pool__addr_offset")); + result.push_back(params.at("mem_pool__value_column")); + result.push_back(params.at("mem_pool__value_offset")); + result.push_back(params.at("memory__multi_column_perm__perm__cum_prod0_column")); + result.push_back(params.at("memory__multi_column_perm__perm__cum_prod0_offset")); + result.push_back(params.at("memory__sorted__addr_column")); + result.push_back(params.at("memory__sorted__addr_offset")); + result.push_back(params.at("memory__sorted__value_column")); + result.push_back(params.at("memory__sorted__value_offset")); + result.push_back(params.at("memory_units_row_ratio")); + result.push_back(params.at("mul_mod__a0_suboffset")); + result.push_back(params.at("mul_mod__a1_suboffset")); + result.push_back(params.at("mul_mod__a2_suboffset")); + result.push_back(params.at("mul_mod__a3_suboffset")); + result.push_back(params.at("mul_mod__a_offset_suboffset")); + result.push_back(params.at("mul_mod__b0_suboffset")); + result.push_back(params.at("mul_mod__b1_suboffset")); + result.push_back(params.at("mul_mod__b2_suboffset")); + result.push_back(params.at("mul_mod__b3_suboffset")); + result.push_back(params.at("mul_mod__b_offset_suboffset")); + result.push_back(params.at("mul_mod__c0_suboffset")); + result.push_back(params.at("mul_mod__c1_suboffset")); + result.push_back(params.at("mul_mod__c2_suboffset")); + result.push_back(params.at("mul_mod__c3_suboffset")); + result.push_back(params.at("mul_mod__c_offset_suboffset")); + result.push_back(params.at("mul_mod__carry0__part0_suboffset")); + result.push_back(params.at("mul_mod__carry0__part1_suboffset")); + result.push_back(params.at("mul_mod__carry0__part2_suboffset")); + result.push_back(params.at("mul_mod__carry0__part3_suboffset")); + result.push_back(params.at("mul_mod__carry0__part4_suboffset")); + result.push_back(params.at("mul_mod__carry0__part5_suboffset")); + result.push_back(params.at("mul_mod__carry0__part6_suboffset")); + result.push_back(params.at("mul_mod__carry1__part0_suboffset")); + result.push_back(params.at("mul_mod__carry1__part1_suboffset")); + result.push_back(params.at("mul_mod__carry1__part2_suboffset")); + result.push_back(params.at("mul_mod__carry1__part3_suboffset")); + result.push_back(params.at("mul_mod__carry1__part4_suboffset")); + result.push_back(params.at("mul_mod__carry1__part5_suboffset")); + result.push_back(params.at("mul_mod__carry1__part6_suboffset")); + result.push_back(params.at("mul_mod__carry2__part0_suboffset")); + result.push_back(params.at("mul_mod__carry2__part1_suboffset")); + result.push_back(params.at("mul_mod__carry2__part2_suboffset")); + result.push_back(params.at("mul_mod__carry2__part3_suboffset")); + result.push_back(params.at("mul_mod__carry2__part4_suboffset")); + result.push_back(params.at("mul_mod__carry2__part5_suboffset")); + result.push_back(params.at("mul_mod__carry2__part6_suboffset")); + result.push_back(params.at("mul_mod__carry3__part0_suboffset")); + result.push_back(params.at("mul_mod__carry3__part1_suboffset")); + result.push_back(params.at("mul_mod__carry3__part2_suboffset")); + result.push_back(params.at("mul_mod__carry3__part3_suboffset")); + result.push_back(params.at("mul_mod__carry3__part4_suboffset")); + result.push_back(params.at("mul_mod__carry3__part5_suboffset")); + result.push_back(params.at("mul_mod__carry3__part6_suboffset")); + result.push_back(params.at("mul_mod__carry4__part0_suboffset")); + result.push_back(params.at("mul_mod__carry4__part1_suboffset")); + result.push_back(params.at("mul_mod__carry4__part2_suboffset")); + result.push_back(params.at("mul_mod__carry4__part3_suboffset")); + result.push_back(params.at("mul_mod__carry4__part4_suboffset")); + result.push_back(params.at("mul_mod__carry4__part5_suboffset")); + result.push_back(params.at("mul_mod__carry4__part6_suboffset")); + result.push_back(params.at("mul_mod__carry5__part0_suboffset")); + result.push_back(params.at("mul_mod__carry5__part1_suboffset")); + result.push_back(params.at("mul_mod__carry5__part2_suboffset")); + result.push_back(params.at("mul_mod__carry5__part3_suboffset")); + result.push_back(params.at("mul_mod__carry5__part4_suboffset")); + result.push_back(params.at("mul_mod__carry5__part5_suboffset")); + result.push_back(params.at("mul_mod__carry5__part6_suboffset")); + result.push_back(params.at("mul_mod__n_suboffset")); + result.push_back(params.at("mul_mod__offsets_ptr_suboffset")); + result.push_back(params.at("mul_mod__p0_suboffset")); + result.push_back(params.at("mul_mod__p1_suboffset")); + result.push_back(params.at("mul_mod__p2_suboffset")); + result.push_back(params.at("mul_mod__p3_suboffset")); + result.push_back(params.at("mul_mod__p_multiplier0__part0_suboffset")); + result.push_back(params.at("mul_mod__p_multiplier0__part1_suboffset")); + result.push_back(params.at("mul_mod__p_multiplier0__part2_suboffset")); + result.push_back(params.at("mul_mod__p_multiplier0__part3_suboffset")); + result.push_back(params.at("mul_mod__p_multiplier0__part4_suboffset")); + result.push_back(params.at("mul_mod__p_multiplier0__part5_suboffset")); + result.push_back(params.at("mul_mod__p_multiplier1__part0_suboffset")); + result.push_back(params.at("mul_mod__p_multiplier1__part1_suboffset")); + result.push_back(params.at("mul_mod__p_multiplier1__part2_suboffset")); + result.push_back(params.at("mul_mod__p_multiplier1__part3_suboffset")); + result.push_back(params.at("mul_mod__p_multiplier1__part4_suboffset")); + result.push_back(params.at("mul_mod__p_multiplier1__part5_suboffset")); + result.push_back(params.at("mul_mod__p_multiplier2__part0_suboffset")); + result.push_back(params.at("mul_mod__p_multiplier2__part1_suboffset")); + result.push_back(params.at("mul_mod__p_multiplier2__part2_suboffset")); + result.push_back(params.at("mul_mod__p_multiplier2__part3_suboffset")); + result.push_back(params.at("mul_mod__p_multiplier2__part4_suboffset")); + result.push_back(params.at("mul_mod__p_multiplier2__part5_suboffset")); + result.push_back(params.at("mul_mod__p_multiplier3__part0_suboffset")); + result.push_back(params.at("mul_mod__p_multiplier3__part1_suboffset")); + result.push_back(params.at("mul_mod__p_multiplier3__part2_suboffset")); + result.push_back(params.at("mul_mod__p_multiplier3__part3_suboffset")); + result.push_back(params.at("mul_mod__p_multiplier3__part4_suboffset")); + result.push_back(params.at("mul_mod__p_multiplier3__part5_suboffset")); + result.push_back(params.at("mul_mod__row_ratio")); + result.push_back(params.at("mul_mod__values_ptr_suboffset")); + result.push_back(params.at("num_columns_first")); + result.push_back(params.at("num_columns_second")); + result.push_back(params.at("orig__public_memory_suboffset")); + result.push_back(params.at("pedersen__hash0__ec_subset_sum__bit_unpacking__prod_ones192_column")); + result.push_back(params.at("pedersen__hash0__ec_subset_sum__bit_unpacking__prod_ones192_offset")); + result.push_back(params.at("pedersen__hash0__ec_subset_sum__bit_unpacking__prod_ones196_column")); + result.push_back(params.at("pedersen__hash0__ec_subset_sum__bit_unpacking__prod_ones196_offset")); + result.push_back(params.at("pedersen__hash0__ec_subset_sum__partial_sum__x_column")); + result.push_back(params.at("pedersen__hash0__ec_subset_sum__partial_sum__x_offset")); + result.push_back(params.at("pedersen__hash0__ec_subset_sum__partial_sum__y_column")); + result.push_back(params.at("pedersen__hash0__ec_subset_sum__partial_sum__y_offset")); + result.push_back(params.at("pedersen__hash0__ec_subset_sum__selector_column")); + result.push_back(params.at("pedersen__hash0__ec_subset_sum__selector_offset")); + result.push_back(params.at("pedersen__hash0__ec_subset_sum__slope_column")); + result.push_back(params.at("pedersen__hash0__ec_subset_sum__slope_offset")); + result.push_back(params.at("pedersen__input0_suboffset")); + result.push_back(params.at("pedersen__input1_suboffset")); + result.push_back(params.at("pedersen__output_suboffset")); + result.push_back(params.at("pedersen_builtin_row_ratio")); + result.push_back(params.at("poseidon__param_0__input_output_suboffset")); + result.push_back(params.at("poseidon__param_1__input_output_suboffset")); + result.push_back(params.at("poseidon__param_2__input_output_suboffset")); + result.push_back(params.at("poseidon__poseidon__full_rounds_state0_column")); + result.push_back(params.at("poseidon__poseidon__full_rounds_state0_offset")); + result.push_back(params.at("poseidon__poseidon__full_rounds_state0_squared_column")); + result.push_back(params.at("poseidon__poseidon__full_rounds_state0_squared_offset")); + result.push_back(params.at("poseidon__poseidon__full_rounds_state1_column")); + result.push_back(params.at("poseidon__poseidon__full_rounds_state1_offset")); + result.push_back(params.at("poseidon__poseidon__full_rounds_state1_squared_column")); + result.push_back(params.at("poseidon__poseidon__full_rounds_state1_squared_offset")); + result.push_back(params.at("poseidon__poseidon__full_rounds_state2_column")); + result.push_back(params.at("poseidon__poseidon__full_rounds_state2_offset")); + result.push_back(params.at("poseidon__poseidon__full_rounds_state2_squared_column")); + result.push_back(params.at("poseidon__poseidon__full_rounds_state2_squared_offset")); + result.push_back(params.at("poseidon__poseidon__partial_rounds_state0_column")); + result.push_back(params.at("poseidon__poseidon__partial_rounds_state0_offset")); + result.push_back(params.at("poseidon__poseidon__partial_rounds_state0_squared_column")); + result.push_back(params.at("poseidon__poseidon__partial_rounds_state0_squared_offset")); + result.push_back(params.at("poseidon__poseidon__partial_rounds_state1_column")); + result.push_back(params.at("poseidon__poseidon__partial_rounds_state1_offset")); + result.push_back(params.at("poseidon__poseidon__partial_rounds_state1_squared_column")); + result.push_back(params.at("poseidon__poseidon__partial_rounds_state1_squared_offset")); + result.push_back(params.at("poseidon__row_ratio")); + result.push_back(params.at("range_check16__perm__cum_prod0_column")); + result.push_back(params.at("range_check16__perm__cum_prod0_offset")); + result.push_back(params.at("range_check16__sorted_column")); + result.push_back(params.at("range_check16__sorted_offset")); + result.push_back(params.at("range_check16_pool_column")); + result.push_back(params.at("range_check16_pool_offset")); + result.push_back(params.at("range_check96_builtin__inner_range_check0_suboffset")); + result.push_back(params.at("range_check96_builtin__inner_range_check1_suboffset")); + result.push_back(params.at("range_check96_builtin__inner_range_check2_suboffset")); + result.push_back(params.at("range_check96_builtin__inner_range_check3_suboffset")); + result.push_back(params.at("range_check96_builtin__inner_range_check4_suboffset")); + result.push_back(params.at("range_check96_builtin__inner_range_check5_suboffset")); + result.push_back(params.at("range_check96_builtin__mem_suboffset")); + result.push_back(params.at("range_check96_builtin_row_ratio")); + result.push_back(params.at("range_check_builtin__inner_range_check_suboffset")); + result.push_back(params.at("range_check_builtin__mem_suboffset")); + result.push_back(params.at("range_check_builtin_row_ratio")); + result.push_back(params.at("range_check_units_row_ratio")); + result.push_back(params.at("uses_add_mod_builtin")); + result.push_back(params.at("uses_bitwise_builtin")); + result.push_back(params.at("uses_ec_op_builtin")); + result.push_back(params.at("uses_ecdsa_builtin")); + result.push_back(params.at("uses_keccak_builtin")); + result.push_back(params.at("uses_mul_mod_builtin")); + result.push_back(params.at("uses_pedersen_builtin")); + result.push_back(params.at("uses_poseidon_builtin")); + result.push_back(params.at("uses_range_check96_builtin")); + result.push_back(params.at("uses_range_check_builtin")); + + return result; +} + +template +TraceGenerationContext CpuAirDefinition::GetTraceGenerationContext() const { + TraceGenerationContext ctx; + + ASSERT_RELEASE( + IsPowerOfTwo(diluted_units_row_ratio), + "Coset step (DynamicParam(diluted_units_row_ratio)) must be a power of two"); + + ASSERT_RELEASE( + IsPowerOfTwo(SafeDiv(trace_length_, diluted_units_row_ratio)), + "Dimension should be a power of 2."); + + ASSERT_RELEASE( + ((SafeDiv(trace_length_, diluted_units_row_ratio)) - (1)) >= (0), "Index out of range."); + + ASSERT_RELEASE( + IsPowerOfTwo(trace_length_), + "Coset step (MemberExpression(trace_length)) must be a power of two"); + + ASSERT_RELEASE( + (SafeDiv(trace_length_, diluted_units_row_ratio)) >= (0), "Index should be non negative."); + + ASSERT_RELEASE( + IsPowerOfTwo(range_check_units_row_ratio), + "Coset step (DynamicParam(range_check_units_row_ratio)) must be a power of two"); + + ASSERT_RELEASE( + IsPowerOfTwo(SafeDiv(trace_length_, range_check_units_row_ratio)), + "Dimension should be a power of 2."); + + ASSERT_RELEASE( + ((SafeDiv(trace_length_, range_check_units_row_ratio)) - (1)) >= (0), "Index out of range."); + + ASSERT_RELEASE( + (SafeDiv(trace_length_, range_check_units_row_ratio)) >= (0), + "Index should be non negative."); + + ASSERT_RELEASE( + IsPowerOfTwo((8) * (memory_units_row_ratio)), + "Coset step ((8) * (DynamicParam(memory_units_row_ratio))) must be a power of two"); + + ASSERT_RELEASE( + IsPowerOfTwo(SafeDiv(trace_length_, (8) * (memory_units_row_ratio))), + "Dimension should be a power of 2."); + + ASSERT_RELEASE( + IsPowerOfTwo(memory_units_row_ratio), + "Coset step (DynamicParam(memory_units_row_ratio)) must be a power of two"); + + ASSERT_RELEASE( + IsPowerOfTwo(SafeDiv(trace_length_, memory_units_row_ratio)), + "Dimension should be a power of 2."); + + ASSERT_RELEASE( + ((SafeDiv(trace_length_, memory_units_row_ratio)) - (1)) >= (0), "Index out of range."); + + ASSERT_RELEASE( + (SafeDiv(trace_length_, memory_units_row_ratio)) >= (0), "Index should be non negative."); + + ASSERT_RELEASE( + IsPowerOfTwo((16) * (cpu_component_step)), + "Coset step ((16) * (DynamicParam(cpu_component_step))) must be a power of two"); + + ASSERT_RELEASE( + IsPowerOfTwo(SafeDiv(trace_length_, (16) * (cpu_component_step))), + "Dimension should be a power of 2."); + + ASSERT_RELEASE( + ((SafeDiv(trace_length_, (16) * (cpu_component_step))) - (1)) >= (0), + "step must not exceed dimension."); + + ASSERT_RELEASE( + IsPowerOfTwo(cpu_component_step), + "Coset step (DynamicParam(cpu_component_step)) must be a power of two"); + + ASSERT_RELEASE( + (SafeDiv(trace_length_, (16) * (cpu_component_step))) >= (0), "Index out of range."); + + ASSERT_RELEASE(((256) - (cpu_component_step)) >= (0), "cpu_component_step is out of range."); + + ASSERT_RELEASE( + (((16) * (cpu_component_step)) - ((4) * (memory_units_row_ratio))) >= (0), + "memory_units_row_ratio is out of range."); + + ASSERT_RELEASE( + (cpu__decode__mem_inst_suboffset) >= (0), + "Offset of cpu/decode/mem_inst must be nonnegative."); + + ASSERT_RELEASE( + (((trace_length_) - (cpu__decode__mem_inst_suboffset)) - (1)) >= (0), + "Offset of cpu/decode/mem_inst is too big."); + + ASSERT_RELEASE( + ((((16) * (cpu_component_step)) - + ((cpu__decode__mem_inst_suboffset) * (memory_units_row_ratio))) - + (1)) >= (0), + "Offset of cpu/decode/mem_inst is too big."); + + ASSERT_RELEASE( + (cpu__decode__off0_suboffset) >= (0), "Offset of cpu/decode/off0 must be nonnegative."); + + ASSERT_RELEASE( + (((trace_length_) - (cpu__decode__off0_suboffset)) - (1)) >= (0), + "Offset of cpu/decode/off0 is too big."); + + ASSERT_RELEASE( + ((((16) * (cpu_component_step)) - + ((cpu__decode__off0_suboffset) * (range_check_units_row_ratio))) - + (1)) >= (0), + "Offset of cpu/decode/off0 is too big."); + + ASSERT_RELEASE( + (cpu__decode__off1_suboffset) >= (0), "Offset of cpu/decode/off1 must be nonnegative."); + + ASSERT_RELEASE( + (((trace_length_) - (cpu__decode__off1_suboffset)) - (1)) >= (0), + "Offset of cpu/decode/off1 is too big."); + + ASSERT_RELEASE( + ((((16) * (cpu_component_step)) - + ((cpu__decode__off1_suboffset) * (range_check_units_row_ratio))) - + (1)) >= (0), + "Offset of cpu/decode/off1 is too big."); + + ASSERT_RELEASE( + (cpu__decode__off2_suboffset) >= (0), "Offset of cpu/decode/off2 must be nonnegative."); + + ASSERT_RELEASE( + (((trace_length_) - (cpu__decode__off2_suboffset)) - (1)) >= (0), + "Offset of cpu/decode/off2 is too big."); + + ASSERT_RELEASE( + ((((16) * (cpu_component_step)) - + ((cpu__decode__off2_suboffset) * (range_check_units_row_ratio))) - + (1)) >= (0), + "Offset of cpu/decode/off2 is too big."); + + ASSERT_RELEASE( + (cpu__operands__mem_dst_suboffset) >= (0), + "Offset of cpu/operands/mem_dst must be nonnegative."); + + ASSERT_RELEASE( + (((trace_length_) - (cpu__operands__mem_dst_suboffset)) - (1)) >= (0), + "Offset of cpu/operands/mem_dst is too big."); + + ASSERT_RELEASE( + ((((16) * (cpu_component_step)) - + ((cpu__operands__mem_dst_suboffset) * (memory_units_row_ratio))) - + (1)) >= (0), + "Offset of cpu/operands/mem_dst is too big."); + + ASSERT_RELEASE( + (cpu__operands__mem_op0_suboffset) >= (0), + "Offset of cpu/operands/mem_op0 must be nonnegative."); + + ASSERT_RELEASE( + (((trace_length_) - (cpu__operands__mem_op0_suboffset)) - (1)) >= (0), + "Offset of cpu/operands/mem_op0 is too big."); + + ASSERT_RELEASE( + ((((16) * (cpu_component_step)) - + ((cpu__operands__mem_op0_suboffset) * (memory_units_row_ratio))) - + (1)) >= (0), + "Offset of cpu/operands/mem_op0 is too big."); + + ASSERT_RELEASE( + (cpu__operands__mem_op1_suboffset) >= (0), + "Offset of cpu/operands/mem_op1 must be nonnegative."); + + ASSERT_RELEASE( + (((trace_length_) - (cpu__operands__mem_op1_suboffset)) - (1)) >= (0), + "Offset of cpu/operands/mem_op1 is too big."); + + ASSERT_RELEASE( + ((((16) * (cpu_component_step)) - + ((cpu__operands__mem_op1_suboffset) * (memory_units_row_ratio))) - + (1)) >= (0), + "Offset of cpu/operands/mem_op1 is too big."); + + ASSERT_RELEASE( + (orig__public_memory_suboffset) >= (0), "Offset of orig/public_memory must be nonnegative."); + + ASSERT_RELEASE( + (((trace_length_) - (orig__public_memory_suboffset)) - (1)) >= (0), + "Offset of orig/public_memory is too big."); + + ASSERT_RELEASE( + ((((8) * (memory_units_row_ratio)) - + ((orig__public_memory_suboffset) * (memory_units_row_ratio))) - + (1)) >= (0), + "Offset of orig/public_memory is too big."); + + ASSERT_RELEASE( + (((uses_pedersen_builtin) * (uses_pedersen_builtin)) - (uses_pedersen_builtin)) == (0), + "uses_pedersen_builtin should be a boolean"); + + ASSERT_RELEASE( + (((uses_range_check_builtin) * (uses_range_check_builtin)) - (uses_range_check_builtin)) == + (0), + "uses_range_check_builtin should be a boolean"); + + ASSERT_RELEASE( + (((uses_ecdsa_builtin) * (uses_ecdsa_builtin)) - (uses_ecdsa_builtin)) == (0), + "uses_ecdsa_builtin should be a boolean"); + + ASSERT_RELEASE( + (((uses_bitwise_builtin) * (uses_bitwise_builtin)) - (uses_bitwise_builtin)) == (0), + "uses_bitwise_builtin should be a boolean"); + + ASSERT_RELEASE( + (((uses_ec_op_builtin) * (uses_ec_op_builtin)) - (uses_ec_op_builtin)) == (0), + "uses_ec_op_builtin should be a boolean"); + + ASSERT_RELEASE( + (((uses_keccak_builtin) * (uses_keccak_builtin)) - (uses_keccak_builtin)) == (0), + "uses_keccak_builtin should be a boolean"); + + ASSERT_RELEASE( + (((uses_poseidon_builtin) * (uses_poseidon_builtin)) - (uses_poseidon_builtin)) == (0), + "uses_poseidon_builtin should be a boolean"); + + ASSERT_RELEASE( + (((uses_range_check96_builtin) * (uses_range_check96_builtin)) - + (uses_range_check96_builtin)) == (0), + "uses_range_check96_builtin should be a boolean"); + + ASSERT_RELEASE( + (((uses_add_mod_builtin) * (uses_add_mod_builtin)) - (uses_add_mod_builtin)) == (0), + "uses_add_mod_builtin should be a boolean"); + + ASSERT_RELEASE( + (((uses_mul_mod_builtin) * (uses_mul_mod_builtin)) - (uses_mul_mod_builtin)) == (0), + "uses_mul_mod_builtin should be a boolean"); + + ASSERT_RELEASE( + (((65536) - (num_columns_first)) - (1)) >= (0), "num_columns_first is out of range."); + + ASSERT_RELEASE( + (((65536) - (num_columns_second)) - (1)) >= (0), "num_columns_second is out of range."); + + ASSERT_RELEASE((mem_pool__addr_column) >= (0), "Column index out of range."); + + ASSERT_RELEASE( + (((num_columns_first) - (mem_pool__addr_column)) - (1)) >= (0), "Column index out of range."); + + ASSERT_RELEASE((mem_pool__addr_offset) >= (0), "Offset must be nonnegative."); + + ASSERT_RELEASE( + (((trace_length_) - (mem_pool__addr_offset)) - (1)) >= (0), + "Offset must be smaller than trace length."); + + ASSERT_RELEASE((mem_pool__value_column) >= (0), "Column index out of range."); + + ASSERT_RELEASE( + (((num_columns_first) - (mem_pool__value_column)) - (1)) >= (0), + "Column index out of range."); + + ASSERT_RELEASE((mem_pool__value_offset) >= (0), "Offset must be nonnegative."); + + ASSERT_RELEASE( + (((trace_length_) - (mem_pool__value_offset)) - (1)) >= (0), + "Offset must be smaller than trace length."); + + ASSERT_RELEASE((range_check16_pool_column) >= (0), "Column index out of range."); + + ASSERT_RELEASE( + (((num_columns_first) - (range_check16_pool_column)) - (1)) >= (0), + "Column index out of range."); + + ASSERT_RELEASE((range_check16_pool_offset) >= (0), "Offset must be nonnegative."); + + ASSERT_RELEASE( + (((trace_length_) - (range_check16_pool_offset)) - (1)) >= (0), + "Offset must be smaller than trace length."); + + ASSERT_RELEASE( + (cpu__decode__opcode_range_check__column_column) >= (0), "Column index out of range."); + + ASSERT_RELEASE( + (((num_columns_first) - (cpu__decode__opcode_range_check__column_column)) - (1)) >= (0), + "Column index out of range."); + + ASSERT_RELEASE( + (cpu__decode__opcode_range_check__column_offset) >= (0), "Offset must be nonnegative."); + + ASSERT_RELEASE( + (((trace_length_) - (cpu__decode__opcode_range_check__column_offset)) - (1)) >= (0), + "Offset must be smaller than trace length."); + + ASSERT_RELEASE((cpu__registers__ap_column) >= (0), "Column index out of range."); + + ASSERT_RELEASE( + (((num_columns_first) - (cpu__registers__ap_column)) - (1)) >= (0), + "Column index out of range."); + + ASSERT_RELEASE((cpu__registers__ap_offset) >= (0), "Offset must be nonnegative."); + + ASSERT_RELEASE( + (((trace_length_) - (cpu__registers__ap_offset)) - (1)) >= (0), + "Offset must be smaller than trace length."); + + ASSERT_RELEASE((cpu__registers__fp_column) >= (0), "Column index out of range."); + + ASSERT_RELEASE( + (((num_columns_first) - (cpu__registers__fp_column)) - (1)) >= (0), + "Column index out of range."); + + ASSERT_RELEASE((cpu__registers__fp_offset) >= (0), "Offset must be nonnegative."); + + ASSERT_RELEASE( + (((trace_length_) - (cpu__registers__fp_offset)) - (1)) >= (0), + "Offset must be smaller than trace length."); + + ASSERT_RELEASE((cpu__operands__ops_mul_column) >= (0), "Column index out of range."); + + ASSERT_RELEASE( + (((num_columns_first) - (cpu__operands__ops_mul_column)) - (1)) >= (0), + "Column index out of range."); + + ASSERT_RELEASE((cpu__operands__ops_mul_offset) >= (0), "Offset must be nonnegative."); + + ASSERT_RELEASE( + (((trace_length_) - (cpu__operands__ops_mul_offset)) - (1)) >= (0), + "Offset must be smaller than trace length."); + + ASSERT_RELEASE((cpu__operands__res_column) >= (0), "Column index out of range."); + + ASSERT_RELEASE( + (((num_columns_first) - (cpu__operands__res_column)) - (1)) >= (0), + "Column index out of range."); + + ASSERT_RELEASE((cpu__operands__res_offset) >= (0), "Offset must be nonnegative."); + + ASSERT_RELEASE( + (((trace_length_) - (cpu__operands__res_offset)) - (1)) >= (0), + "Offset must be smaller than trace length."); + + ASSERT_RELEASE( + (cpu__update_registers__update_pc__tmp0_column) >= (0), "Column index out of range."); + + ASSERT_RELEASE( + (((num_columns_first) - (cpu__update_registers__update_pc__tmp0_column)) - (1)) >= (0), + "Column index out of range."); + + ASSERT_RELEASE( + (cpu__update_registers__update_pc__tmp0_offset) >= (0), "Offset must be nonnegative."); + + ASSERT_RELEASE( + (((trace_length_) - (cpu__update_registers__update_pc__tmp0_offset)) - (1)) >= (0), + "Offset must be smaller than trace length."); + + ASSERT_RELEASE( + (cpu__update_registers__update_pc__tmp1_column) >= (0), "Column index out of range."); + + ASSERT_RELEASE( + (((num_columns_first) - (cpu__update_registers__update_pc__tmp1_column)) - (1)) >= (0), + "Column index out of range."); + + ASSERT_RELEASE( + (cpu__update_registers__update_pc__tmp1_offset) >= (0), "Offset must be nonnegative."); + + ASSERT_RELEASE( + (((trace_length_) - (cpu__update_registers__update_pc__tmp1_offset)) - (1)) >= (0), + "Offset must be smaller than trace length."); + + ASSERT_RELEASE((memory__sorted__addr_column) >= (0), "Column index out of range."); + + ASSERT_RELEASE( + (((num_columns_first) - (memory__sorted__addr_column)) - (1)) >= (0), + "Column index out of range."); + + ASSERT_RELEASE((memory__sorted__addr_offset) >= (0), "Offset must be nonnegative."); + + ASSERT_RELEASE( + (((trace_length_) - (memory__sorted__addr_offset)) - (1)) >= (0), + "Offset must be smaller than trace length."); + + ASSERT_RELEASE((memory__sorted__value_column) >= (0), "Column index out of range."); + + ASSERT_RELEASE( + (((num_columns_first) - (memory__sorted__value_column)) - (1)) >= (0), + "Column index out of range."); + + ASSERT_RELEASE((memory__sorted__value_offset) >= (0), "Offset must be nonnegative."); + + ASSERT_RELEASE( + (((trace_length_) - (memory__sorted__value_offset)) - (1)) >= (0), + "Offset must be smaller than trace length."); + + ASSERT_RELEASE((range_check16__sorted_column) >= (0), "Column index out of range."); + + ASSERT_RELEASE( + (((num_columns_first) - (range_check16__sorted_column)) - (1)) >= (0), + "Column index out of range."); + + ASSERT_RELEASE((range_check16__sorted_offset) >= (0), "Offset must be nonnegative."); + + ASSERT_RELEASE( + (((trace_length_) - (range_check16__sorted_offset)) - (1)) >= (0), + "Offset must be smaller than trace length."); + + ASSERT_RELEASE((diluted_pool_column) >= (0), "Column index out of range."); + + ASSERT_RELEASE( + (((num_columns_first) - (diluted_pool_column)) - (1)) >= (0), "Column index out of range."); + + ASSERT_RELEASE((diluted_pool_offset) >= (0), "Offset must be nonnegative."); + + ASSERT_RELEASE( + (((trace_length_) - (diluted_pool_offset)) - (1)) >= (0), + "Offset must be smaller than trace length."); + + ASSERT_RELEASE((diluted_check__permuted_values_column) >= (0), "Column index out of range."); + + ASSERT_RELEASE( + (((num_columns_first) - (diluted_check__permuted_values_column)) - (1)) >= (0), + "Column index out of range."); + + ASSERT_RELEASE((diluted_check__permuted_values_offset) >= (0), "Offset must be nonnegative."); + + ASSERT_RELEASE( + (((trace_length_) - (diluted_check__permuted_values_offset)) - (1)) >= (0), + "Offset must be smaller than trace length."); + + ASSERT_RELEASE( + (pedersen__hash0__ec_subset_sum__partial_sum__x_column) >= (0), "Column index out of range."); + + ASSERT_RELEASE( + (((num_columns_first) - (pedersen__hash0__ec_subset_sum__partial_sum__x_column)) - (1)) >= + (0), + "Column index out of range."); + + ASSERT_RELEASE( + (pedersen__hash0__ec_subset_sum__partial_sum__x_offset) >= (0), + "Offset must be nonnegative."); + + ASSERT_RELEASE( + (((trace_length_) - (pedersen__hash0__ec_subset_sum__partial_sum__x_offset)) - (1)) >= (0), + "Offset must be smaller than trace length."); + + ASSERT_RELEASE( + (pedersen__hash0__ec_subset_sum__partial_sum__y_column) >= (0), "Column index out of range."); + + ASSERT_RELEASE( + (((num_columns_first) - (pedersen__hash0__ec_subset_sum__partial_sum__y_column)) - (1)) >= + (0), + "Column index out of range."); + + ASSERT_RELEASE( + (pedersen__hash0__ec_subset_sum__partial_sum__y_offset) >= (0), + "Offset must be nonnegative."); + + ASSERT_RELEASE( + (((trace_length_) - (pedersen__hash0__ec_subset_sum__partial_sum__y_offset)) - (1)) >= (0), + "Offset must be smaller than trace length."); + + ASSERT_RELEASE( + (pedersen__hash0__ec_subset_sum__slope_column) >= (0), "Column index out of range."); + + ASSERT_RELEASE( + (((num_columns_first) - (pedersen__hash0__ec_subset_sum__slope_column)) - (1)) >= (0), + "Column index out of range."); + + ASSERT_RELEASE( + (pedersen__hash0__ec_subset_sum__slope_offset) >= (0), "Offset must be nonnegative."); + + ASSERT_RELEASE( + (((trace_length_) - (pedersen__hash0__ec_subset_sum__slope_offset)) - (1)) >= (0), + "Offset must be smaller than trace length."); + + ASSERT_RELEASE( + (pedersen__hash0__ec_subset_sum__selector_column) >= (0), "Column index out of range."); + + ASSERT_RELEASE( + (((num_columns_first) - (pedersen__hash0__ec_subset_sum__selector_column)) - (1)) >= (0), + "Column index out of range."); + + ASSERT_RELEASE( + (pedersen__hash0__ec_subset_sum__selector_offset) >= (0), "Offset must be nonnegative."); + + ASSERT_RELEASE( + (((trace_length_) - (pedersen__hash0__ec_subset_sum__selector_offset)) - (1)) >= (0), + "Offset must be smaller than trace length."); + + ASSERT_RELEASE( + (pedersen__hash0__ec_subset_sum__bit_unpacking__prod_ones196_column) >= (0), + "Column index out of range."); + + ASSERT_RELEASE( + (((num_columns_first) - + (pedersen__hash0__ec_subset_sum__bit_unpacking__prod_ones196_column)) - + (1)) >= (0), + "Column index out of range."); + + ASSERT_RELEASE( + (pedersen__hash0__ec_subset_sum__bit_unpacking__prod_ones196_offset) >= (0), + "Offset must be nonnegative."); + + ASSERT_RELEASE( + (((trace_length_) - (pedersen__hash0__ec_subset_sum__bit_unpacking__prod_ones196_offset)) - + (1)) >= (0), + "Offset must be smaller than trace length."); + + ASSERT_RELEASE( + (pedersen__hash0__ec_subset_sum__bit_unpacking__prod_ones192_column) >= (0), + "Column index out of range."); + + ASSERT_RELEASE( + (((num_columns_first) - + (pedersen__hash0__ec_subset_sum__bit_unpacking__prod_ones192_column)) - + (1)) >= (0), + "Column index out of range."); + + ASSERT_RELEASE( + (pedersen__hash0__ec_subset_sum__bit_unpacking__prod_ones192_offset) >= (0), + "Offset must be nonnegative."); + + ASSERT_RELEASE( + (((trace_length_) - (pedersen__hash0__ec_subset_sum__bit_unpacking__prod_ones192_offset)) - + (1)) >= (0), + "Offset must be smaller than trace length."); + + ASSERT_RELEASE((ecdsa__signature0__key_points__x_column) >= (0), "Column index out of range."); + + ASSERT_RELEASE( + (((num_columns_first) - (ecdsa__signature0__key_points__x_column)) - (1)) >= (0), + "Column index out of range."); + + ASSERT_RELEASE((ecdsa__signature0__key_points__x_offset) >= (0), "Offset must be nonnegative."); + + ASSERT_RELEASE( + (((trace_length_) - (ecdsa__signature0__key_points__x_offset)) - (1)) >= (0), + "Offset must be smaller than trace length."); + + ASSERT_RELEASE((ecdsa__signature0__key_points__y_column) >= (0), "Column index out of range."); + + ASSERT_RELEASE( + (((num_columns_first) - (ecdsa__signature0__key_points__y_column)) - (1)) >= (0), + "Column index out of range."); + + ASSERT_RELEASE((ecdsa__signature0__key_points__y_offset) >= (0), "Offset must be nonnegative."); + + ASSERT_RELEASE( + (((trace_length_) - (ecdsa__signature0__key_points__y_offset)) - (1)) >= (0), + "Offset must be smaller than trace length."); + + ASSERT_RELEASE((ecdsa__signature0__doubling_slope_column) >= (0), "Column index out of range."); + + ASSERT_RELEASE( + (((num_columns_first) - (ecdsa__signature0__doubling_slope_column)) - (1)) >= (0), + "Column index out of range."); + + ASSERT_RELEASE((ecdsa__signature0__doubling_slope_offset) >= (0), "Offset must be nonnegative."); + + ASSERT_RELEASE( + (((trace_length_) - (ecdsa__signature0__doubling_slope_offset)) - (1)) >= (0), + "Offset must be smaller than trace length."); + + ASSERT_RELEASE( + (ecdsa__signature0__exponentiate_generator__partial_sum__x_column) >= (0), + "Column index out of range."); + + ASSERT_RELEASE( + (((num_columns_first) - (ecdsa__signature0__exponentiate_generator__partial_sum__x_column)) - + (1)) >= (0), + "Column index out of range."); + + ASSERT_RELEASE( + (ecdsa__signature0__exponentiate_generator__partial_sum__x_offset) >= (0), + "Offset must be nonnegative."); + + ASSERT_RELEASE( + (((trace_length_) - (ecdsa__signature0__exponentiate_generator__partial_sum__x_offset)) - + (1)) >= (0), + "Offset must be smaller than trace length."); + + ASSERT_RELEASE( + (ecdsa__signature0__exponentiate_generator__partial_sum__y_column) >= (0), + "Column index out of range."); + + ASSERT_RELEASE( + (((num_columns_first) - (ecdsa__signature0__exponentiate_generator__partial_sum__y_column)) - + (1)) >= (0), + "Column index out of range."); + + ASSERT_RELEASE( + (ecdsa__signature0__exponentiate_generator__partial_sum__y_offset) >= (0), + "Offset must be nonnegative."); + + ASSERT_RELEASE( + (((trace_length_) - (ecdsa__signature0__exponentiate_generator__partial_sum__y_offset)) - + (1)) >= (0), + "Offset must be smaller than trace length."); + + ASSERT_RELEASE( + (ecdsa__signature0__exponentiate_generator__slope_column) >= (0), + "Column index out of range."); + + ASSERT_RELEASE( + (((num_columns_first) - (ecdsa__signature0__exponentiate_generator__slope_column)) - (1)) >= + (0), + "Column index out of range."); + + ASSERT_RELEASE( + (ecdsa__signature0__exponentiate_generator__slope_offset) >= (0), + "Offset must be nonnegative."); + + ASSERT_RELEASE( + (((trace_length_) - (ecdsa__signature0__exponentiate_generator__slope_offset)) - (1)) >= (0), + "Offset must be smaller than trace length."); + + ASSERT_RELEASE( + (ecdsa__signature0__exponentiate_generator__selector_column) >= (0), + "Column index out of range."); + + ASSERT_RELEASE( + (((num_columns_first) - (ecdsa__signature0__exponentiate_generator__selector_column)) - + (1)) >= (0), + "Column index out of range."); + + ASSERT_RELEASE( + (ecdsa__signature0__exponentiate_generator__selector_offset) >= (0), + "Offset must be nonnegative."); + + ASSERT_RELEASE( + (((trace_length_) - (ecdsa__signature0__exponentiate_generator__selector_offset)) - (1)) >= + (0), + "Offset must be smaller than trace length."); + + ASSERT_RELEASE( + (ecdsa__signature0__exponentiate_generator__x_diff_inv_column) >= (0), + "Column index out of range."); + + ASSERT_RELEASE( + (((num_columns_first) - (ecdsa__signature0__exponentiate_generator__x_diff_inv_column)) - + (1)) >= (0), + "Column index out of range."); + + ASSERT_RELEASE( + (ecdsa__signature0__exponentiate_generator__x_diff_inv_offset) >= (0), + "Offset must be nonnegative."); + + ASSERT_RELEASE( + (((trace_length_) - (ecdsa__signature0__exponentiate_generator__x_diff_inv_offset)) - (1)) >= + (0), + "Offset must be smaller than trace length."); + + ASSERT_RELEASE( + (ecdsa__signature0__exponentiate_key__partial_sum__x_column) >= (0), + "Column index out of range."); + + ASSERT_RELEASE( + (((num_columns_first) - (ecdsa__signature0__exponentiate_key__partial_sum__x_column)) - + (1)) >= (0), + "Column index out of range."); + + ASSERT_RELEASE( + (ecdsa__signature0__exponentiate_key__partial_sum__x_offset) >= (0), + "Offset must be nonnegative."); + + ASSERT_RELEASE( + (((trace_length_) - (ecdsa__signature0__exponentiate_key__partial_sum__x_offset)) - (1)) >= + (0), + "Offset must be smaller than trace length."); + + ASSERT_RELEASE( + (ecdsa__signature0__exponentiate_key__partial_sum__y_column) >= (0), + "Column index out of range."); + + ASSERT_RELEASE( + (((num_columns_first) - (ecdsa__signature0__exponentiate_key__partial_sum__y_column)) - + (1)) >= (0), + "Column index out of range."); + + ASSERT_RELEASE( + (ecdsa__signature0__exponentiate_key__partial_sum__y_offset) >= (0), + "Offset must be nonnegative."); + + ASSERT_RELEASE( + (((trace_length_) - (ecdsa__signature0__exponentiate_key__partial_sum__y_offset)) - (1)) >= + (0), + "Offset must be smaller than trace length."); + + ASSERT_RELEASE( + (ecdsa__signature0__exponentiate_key__slope_column) >= (0), "Column index out of range."); + + ASSERT_RELEASE( + (((num_columns_first) - (ecdsa__signature0__exponentiate_key__slope_column)) - (1)) >= (0), + "Column index out of range."); + + ASSERT_RELEASE( + (ecdsa__signature0__exponentiate_key__slope_offset) >= (0), "Offset must be nonnegative."); + + ASSERT_RELEASE( + (((trace_length_) - (ecdsa__signature0__exponentiate_key__slope_offset)) - (1)) >= (0), + "Offset must be smaller than trace length."); + + ASSERT_RELEASE( + (ecdsa__signature0__exponentiate_key__selector_column) >= (0), "Column index out of range."); + + ASSERT_RELEASE( + (((num_columns_first) - (ecdsa__signature0__exponentiate_key__selector_column)) - (1)) >= (0), + "Column index out of range."); + + ASSERT_RELEASE( + (ecdsa__signature0__exponentiate_key__selector_offset) >= (0), "Offset must be nonnegative."); + + ASSERT_RELEASE( + (((trace_length_) - (ecdsa__signature0__exponentiate_key__selector_offset)) - (1)) >= (0), + "Offset must be smaller than trace length."); + + ASSERT_RELEASE( + (ecdsa__signature0__exponentiate_key__x_diff_inv_column) >= (0), + "Column index out of range."); + + ASSERT_RELEASE( + (((num_columns_first) - (ecdsa__signature0__exponentiate_key__x_diff_inv_column)) - (1)) >= + (0), + "Column index out of range."); + + ASSERT_RELEASE( + (ecdsa__signature0__exponentiate_key__x_diff_inv_offset) >= (0), + "Offset must be nonnegative."); + + ASSERT_RELEASE( + (((trace_length_) - (ecdsa__signature0__exponentiate_key__x_diff_inv_offset)) - (1)) >= (0), + "Offset must be smaller than trace length."); + + ASSERT_RELEASE( + (ecdsa__signature0__add_results_slope_column) >= (0), "Column index out of range."); + + ASSERT_RELEASE( + (((num_columns_first) - (ecdsa__signature0__add_results_slope_column)) - (1)) >= (0), + "Column index out of range."); + + ASSERT_RELEASE( + (ecdsa__signature0__add_results_slope_offset) >= (0), "Offset must be nonnegative."); + + ASSERT_RELEASE( + (((trace_length_) - (ecdsa__signature0__add_results_slope_offset)) - (1)) >= (0), + "Offset must be smaller than trace length."); + + ASSERT_RELEASE((ecdsa__signature0__add_results_inv_column) >= (0), "Column index out of range."); + + ASSERT_RELEASE( + (((num_columns_first) - (ecdsa__signature0__add_results_inv_column)) - (1)) >= (0), + "Column index out of range."); + + ASSERT_RELEASE((ecdsa__signature0__add_results_inv_offset) >= (0), "Offset must be nonnegative."); + + ASSERT_RELEASE( + (((trace_length_) - (ecdsa__signature0__add_results_inv_offset)) - (1)) >= (0), + "Offset must be smaller than trace length."); + + ASSERT_RELEASE((ecdsa__signature0__extract_r_slope_column) >= (0), "Column index out of range."); + + ASSERT_RELEASE( + (((num_columns_first) - (ecdsa__signature0__extract_r_slope_column)) - (1)) >= (0), + "Column index out of range."); + + ASSERT_RELEASE((ecdsa__signature0__extract_r_slope_offset) >= (0), "Offset must be nonnegative."); + + ASSERT_RELEASE( + (((trace_length_) - (ecdsa__signature0__extract_r_slope_offset)) - (1)) >= (0), + "Offset must be smaller than trace length."); + + ASSERT_RELEASE((ecdsa__signature0__extract_r_inv_column) >= (0), "Column index out of range."); + + ASSERT_RELEASE( + (((num_columns_first) - (ecdsa__signature0__extract_r_inv_column)) - (1)) >= (0), + "Column index out of range."); + + ASSERT_RELEASE((ecdsa__signature0__extract_r_inv_offset) >= (0), "Offset must be nonnegative."); + + ASSERT_RELEASE( + (((trace_length_) - (ecdsa__signature0__extract_r_inv_offset)) - (1)) >= (0), + "Offset must be smaller than trace length."); + + ASSERT_RELEASE((ecdsa__signature0__z_inv_column) >= (0), "Column index out of range."); + + ASSERT_RELEASE( + (((num_columns_first) - (ecdsa__signature0__z_inv_column)) - (1)) >= (0), + "Column index out of range."); + + ASSERT_RELEASE((ecdsa__signature0__z_inv_offset) >= (0), "Offset must be nonnegative."); + + ASSERT_RELEASE( + (((trace_length_) - (ecdsa__signature0__z_inv_offset)) - (1)) >= (0), + "Offset must be smaller than trace length."); + + ASSERT_RELEASE((ecdsa__signature0__r_w_inv_column) >= (0), "Column index out of range."); + + ASSERT_RELEASE( + (((num_columns_first) - (ecdsa__signature0__r_w_inv_column)) - (1)) >= (0), + "Column index out of range."); + + ASSERT_RELEASE((ecdsa__signature0__r_w_inv_offset) >= (0), "Offset must be nonnegative."); + + ASSERT_RELEASE( + (((trace_length_) - (ecdsa__signature0__r_w_inv_offset)) - (1)) >= (0), + "Offset must be smaller than trace length."); + + ASSERT_RELEASE((ecdsa__signature0__q_x_squared_column) >= (0), "Column index out of range."); + + ASSERT_RELEASE( + (((num_columns_first) - (ecdsa__signature0__q_x_squared_column)) - (1)) >= (0), + "Column index out of range."); + + ASSERT_RELEASE((ecdsa__signature0__q_x_squared_offset) >= (0), "Offset must be nonnegative."); + + ASSERT_RELEASE( + (((trace_length_) - (ecdsa__signature0__q_x_squared_offset)) - (1)) >= (0), + "Offset must be smaller than trace length."); + + ASSERT_RELEASE((ec_op__doubled_points__x_column) >= (0), "Column index out of range."); + + ASSERT_RELEASE( + (((num_columns_first) - (ec_op__doubled_points__x_column)) - (1)) >= (0), + "Column index out of range."); + + ASSERT_RELEASE((ec_op__doubled_points__x_offset) >= (0), "Offset must be nonnegative."); + + ASSERT_RELEASE( + (((trace_length_) - (ec_op__doubled_points__x_offset)) - (1)) >= (0), + "Offset must be smaller than trace length."); + + ASSERT_RELEASE((ec_op__doubled_points__y_column) >= (0), "Column index out of range."); + + ASSERT_RELEASE( + (((num_columns_first) - (ec_op__doubled_points__y_column)) - (1)) >= (0), + "Column index out of range."); + + ASSERT_RELEASE((ec_op__doubled_points__y_offset) >= (0), "Offset must be nonnegative."); + + ASSERT_RELEASE( + (((trace_length_) - (ec_op__doubled_points__y_offset)) - (1)) >= (0), + "Offset must be smaller than trace length."); + + ASSERT_RELEASE((ec_op__doubling_slope_column) >= (0), "Column index out of range."); + + ASSERT_RELEASE( + (((num_columns_first) - (ec_op__doubling_slope_column)) - (1)) >= (0), + "Column index out of range."); + + ASSERT_RELEASE((ec_op__doubling_slope_offset) >= (0), "Offset must be nonnegative."); + + ASSERT_RELEASE( + (((trace_length_) - (ec_op__doubling_slope_offset)) - (1)) >= (0), + "Offset must be smaller than trace length."); + + ASSERT_RELEASE( + (ec_op__ec_subset_sum__partial_sum__x_column) >= (0), "Column index out of range."); + + ASSERT_RELEASE( + (((num_columns_first) - (ec_op__ec_subset_sum__partial_sum__x_column)) - (1)) >= (0), + "Column index out of range."); + + ASSERT_RELEASE( + (ec_op__ec_subset_sum__partial_sum__x_offset) >= (0), "Offset must be nonnegative."); + + ASSERT_RELEASE( + (((trace_length_) - (ec_op__ec_subset_sum__partial_sum__x_offset)) - (1)) >= (0), + "Offset must be smaller than trace length."); + + ASSERT_RELEASE( + (ec_op__ec_subset_sum__partial_sum__y_column) >= (0), "Column index out of range."); + + ASSERT_RELEASE( + (((num_columns_first) - (ec_op__ec_subset_sum__partial_sum__y_column)) - (1)) >= (0), + "Column index out of range."); + + ASSERT_RELEASE( + (ec_op__ec_subset_sum__partial_sum__y_offset) >= (0), "Offset must be nonnegative."); + + ASSERT_RELEASE( + (((trace_length_) - (ec_op__ec_subset_sum__partial_sum__y_offset)) - (1)) >= (0), + "Offset must be smaller than trace length."); + + ASSERT_RELEASE((ec_op__ec_subset_sum__slope_column) >= (0), "Column index out of range."); + + ASSERT_RELEASE( + (((num_columns_first) - (ec_op__ec_subset_sum__slope_column)) - (1)) >= (0), + "Column index out of range."); + + ASSERT_RELEASE((ec_op__ec_subset_sum__slope_offset) >= (0), "Offset must be nonnegative."); + + ASSERT_RELEASE( + (((trace_length_) - (ec_op__ec_subset_sum__slope_offset)) - (1)) >= (0), + "Offset must be smaller than trace length."); + + ASSERT_RELEASE((ec_op__ec_subset_sum__selector_column) >= (0), "Column index out of range."); + + ASSERT_RELEASE( + (((num_columns_first) - (ec_op__ec_subset_sum__selector_column)) - (1)) >= (0), + "Column index out of range."); + + ASSERT_RELEASE((ec_op__ec_subset_sum__selector_offset) >= (0), "Offset must be nonnegative."); + + ASSERT_RELEASE( + (((trace_length_) - (ec_op__ec_subset_sum__selector_offset)) - (1)) >= (0), + "Offset must be smaller than trace length."); + + ASSERT_RELEASE((ec_op__ec_subset_sum__x_diff_inv_column) >= (0), "Column index out of range."); + + ASSERT_RELEASE( + (((num_columns_first) - (ec_op__ec_subset_sum__x_diff_inv_column)) - (1)) >= (0), + "Column index out of range."); + + ASSERT_RELEASE((ec_op__ec_subset_sum__x_diff_inv_offset) >= (0), "Offset must be nonnegative."); + + ASSERT_RELEASE( + (((trace_length_) - (ec_op__ec_subset_sum__x_diff_inv_offset)) - (1)) >= (0), + "Offset must be smaller than trace length."); + + ASSERT_RELEASE( + (ec_op__ec_subset_sum__bit_unpacking__prod_ones196_column) >= (0), + "Column index out of range."); + + ASSERT_RELEASE( + (((num_columns_first) - (ec_op__ec_subset_sum__bit_unpacking__prod_ones196_column)) - (1)) >= + (0), + "Column index out of range."); + + ASSERT_RELEASE( + (ec_op__ec_subset_sum__bit_unpacking__prod_ones196_offset) >= (0), + "Offset must be nonnegative."); + + ASSERT_RELEASE( + (((trace_length_) - (ec_op__ec_subset_sum__bit_unpacking__prod_ones196_offset)) - (1)) >= (0), + "Offset must be smaller than trace length."); + + ASSERT_RELEASE( + (ec_op__ec_subset_sum__bit_unpacking__prod_ones192_column) >= (0), + "Column index out of range."); + + ASSERT_RELEASE( + (((num_columns_first) - (ec_op__ec_subset_sum__bit_unpacking__prod_ones192_column)) - (1)) >= + (0), + "Column index out of range."); + + ASSERT_RELEASE( + (ec_op__ec_subset_sum__bit_unpacking__prod_ones192_offset) >= (0), + "Offset must be nonnegative."); + + ASSERT_RELEASE( + (((trace_length_) - (ec_op__ec_subset_sum__bit_unpacking__prod_ones192_offset)) - (1)) >= (0), + "Offset must be smaller than trace length."); + + ASSERT_RELEASE( + (keccak__keccak__parse_to_diluted__reshaped_intermediate_column) >= (0), + "Column index out of range."); + + ASSERT_RELEASE( + (((num_columns_first) - (keccak__keccak__parse_to_diluted__reshaped_intermediate_column)) - + (1)) >= (0), + "Column index out of range."); + + ASSERT_RELEASE( + (keccak__keccak__parse_to_diluted__reshaped_intermediate_offset) >= (0), + "Offset must be nonnegative."); + + ASSERT_RELEASE( + (((trace_length_) - (keccak__keccak__parse_to_diluted__reshaped_intermediate_offset)) - + (1)) >= (0), + "Offset must be smaller than trace length."); + + ASSERT_RELEASE( + (keccak__keccak__parse_to_diluted__final_reshaped_input_column) >= (0), + "Column index out of range."); + + ASSERT_RELEASE( + (((num_columns_first) - (keccak__keccak__parse_to_diluted__final_reshaped_input_column)) - + (1)) >= (0), + "Column index out of range."); + + ASSERT_RELEASE( + (keccak__keccak__parse_to_diluted__final_reshaped_input_offset) >= (0), + "Offset must be nonnegative."); + + ASSERT_RELEASE( + (((trace_length_) - (keccak__keccak__parse_to_diluted__final_reshaped_input_offset)) - (1)) >= + (0), + "Offset must be smaller than trace length."); + + ASSERT_RELEASE( + (keccak__keccak__parse_to_diluted__cumulative_sum_column) >= (0), + "Column index out of range."); + + ASSERT_RELEASE( + (((num_columns_first) - (keccak__keccak__parse_to_diluted__cumulative_sum_column)) - (1)) >= + (0), + "Column index out of range."); + + ASSERT_RELEASE( + (keccak__keccak__parse_to_diluted__cumulative_sum_offset) >= (0), + "Offset must be nonnegative."); + + ASSERT_RELEASE( + (((trace_length_) - (keccak__keccak__parse_to_diluted__cumulative_sum_offset)) - (1)) >= (0), + "Offset must be smaller than trace length."); + + ASSERT_RELEASE((keccak__keccak__rotated_parity0_column) >= (0), "Column index out of range."); + + ASSERT_RELEASE( + (((num_columns_first) - (keccak__keccak__rotated_parity0_column)) - (1)) >= (0), + "Column index out of range."); + + ASSERT_RELEASE((keccak__keccak__rotated_parity0_offset) >= (0), "Offset must be nonnegative."); + + ASSERT_RELEASE( + (((trace_length_) - (keccak__keccak__rotated_parity0_offset)) - (1)) >= (0), + "Offset must be smaller than trace length."); + + ASSERT_RELEASE((keccak__keccak__rotated_parity1_column) >= (0), "Column index out of range."); + + ASSERT_RELEASE( + (((num_columns_first) - (keccak__keccak__rotated_parity1_column)) - (1)) >= (0), + "Column index out of range."); + + ASSERT_RELEASE((keccak__keccak__rotated_parity1_offset) >= (0), "Offset must be nonnegative."); + + ASSERT_RELEASE( + (((trace_length_) - (keccak__keccak__rotated_parity1_offset)) - (1)) >= (0), + "Offset must be smaller than trace length."); + + ASSERT_RELEASE((keccak__keccak__rotated_parity2_column) >= (0), "Column index out of range."); + + ASSERT_RELEASE( + (((num_columns_first) - (keccak__keccak__rotated_parity2_column)) - (1)) >= (0), + "Column index out of range."); + + ASSERT_RELEASE((keccak__keccak__rotated_parity2_offset) >= (0), "Offset must be nonnegative."); + + ASSERT_RELEASE( + (((trace_length_) - (keccak__keccak__rotated_parity2_offset)) - (1)) >= (0), + "Offset must be smaller than trace length."); + + ASSERT_RELEASE((keccak__keccak__rotated_parity3_column) >= (0), "Column index out of range."); + + ASSERT_RELEASE( + (((num_columns_first) - (keccak__keccak__rotated_parity3_column)) - (1)) >= (0), + "Column index out of range."); + + ASSERT_RELEASE((keccak__keccak__rotated_parity3_offset) >= (0), "Offset must be nonnegative."); + + ASSERT_RELEASE( + (((trace_length_) - (keccak__keccak__rotated_parity3_offset)) - (1)) >= (0), + "Offset must be smaller than trace length."); + + ASSERT_RELEASE((keccak__keccak__rotated_parity4_column) >= (0), "Column index out of range."); + + ASSERT_RELEASE( + (((num_columns_first) - (keccak__keccak__rotated_parity4_column)) - (1)) >= (0), + "Column index out of range."); + + ASSERT_RELEASE((keccak__keccak__rotated_parity4_offset) >= (0), "Offset must be nonnegative."); + + ASSERT_RELEASE( + (((trace_length_) - (keccak__keccak__rotated_parity4_offset)) - (1)) >= (0), + "Offset must be smaller than trace length."); + + ASSERT_RELEASE( + (poseidon__poseidon__full_rounds_state0_column) >= (0), "Column index out of range."); + + ASSERT_RELEASE( + (((num_columns_first) - (poseidon__poseidon__full_rounds_state0_column)) - (1)) >= (0), + "Column index out of range."); + + ASSERT_RELEASE( + (poseidon__poseidon__full_rounds_state0_offset) >= (0), "Offset must be nonnegative."); + + ASSERT_RELEASE( + (((trace_length_) - (poseidon__poseidon__full_rounds_state0_offset)) - (1)) >= (0), + "Offset must be smaller than trace length."); + + ASSERT_RELEASE( + (poseidon__poseidon__full_rounds_state1_column) >= (0), "Column index out of range."); + + ASSERT_RELEASE( + (((num_columns_first) - (poseidon__poseidon__full_rounds_state1_column)) - (1)) >= (0), + "Column index out of range."); + + ASSERT_RELEASE( + (poseidon__poseidon__full_rounds_state1_offset) >= (0), "Offset must be nonnegative."); + + ASSERT_RELEASE( + (((trace_length_) - (poseidon__poseidon__full_rounds_state1_offset)) - (1)) >= (0), + "Offset must be smaller than trace length."); + + ASSERT_RELEASE( + (poseidon__poseidon__full_rounds_state2_column) >= (0), "Column index out of range."); + + ASSERT_RELEASE( + (((num_columns_first) - (poseidon__poseidon__full_rounds_state2_column)) - (1)) >= (0), + "Column index out of range."); + + ASSERT_RELEASE( + (poseidon__poseidon__full_rounds_state2_offset) >= (0), "Offset must be nonnegative."); + + ASSERT_RELEASE( + (((trace_length_) - (poseidon__poseidon__full_rounds_state2_offset)) - (1)) >= (0), + "Offset must be smaller than trace length."); + + ASSERT_RELEASE( + (poseidon__poseidon__full_rounds_state0_squared_column) >= (0), "Column index out of range."); + + ASSERT_RELEASE( + (((num_columns_first) - (poseidon__poseidon__full_rounds_state0_squared_column)) - (1)) >= + (0), + "Column index out of range."); + + ASSERT_RELEASE( + (poseidon__poseidon__full_rounds_state0_squared_offset) >= (0), + "Offset must be nonnegative."); + + ASSERT_RELEASE( + (((trace_length_) - (poseidon__poseidon__full_rounds_state0_squared_offset)) - (1)) >= (0), + "Offset must be smaller than trace length."); + + ASSERT_RELEASE( + (poseidon__poseidon__full_rounds_state1_squared_column) >= (0), "Column index out of range."); + + ASSERT_RELEASE( + (((num_columns_first) - (poseidon__poseidon__full_rounds_state1_squared_column)) - (1)) >= + (0), + "Column index out of range."); + + ASSERT_RELEASE( + (poseidon__poseidon__full_rounds_state1_squared_offset) >= (0), + "Offset must be nonnegative."); + + ASSERT_RELEASE( + (((trace_length_) - (poseidon__poseidon__full_rounds_state1_squared_offset)) - (1)) >= (0), + "Offset must be smaller than trace length."); ASSERT_RELEASE( - (((trace_length_) - (cpu__decode__off1_suboffset)) - (1)) >= (0), - "Offset of cpu/decode/off1 is too big."); + (poseidon__poseidon__full_rounds_state2_squared_column) >= (0), "Column index out of range."); + + ASSERT_RELEASE( + (((num_columns_first) - (poseidon__poseidon__full_rounds_state2_squared_column)) - (1)) >= + (0), + "Column index out of range."); + + ASSERT_RELEASE( + (poseidon__poseidon__full_rounds_state2_squared_offset) >= (0), + "Offset must be nonnegative."); + + ASSERT_RELEASE( + (((trace_length_) - (poseidon__poseidon__full_rounds_state2_squared_offset)) - (1)) >= (0), + "Offset must be smaller than trace length."); + + ASSERT_RELEASE( + (poseidon__poseidon__partial_rounds_state0_column) >= (0), "Column index out of range."); + + ASSERT_RELEASE( + (((num_columns_first) - (poseidon__poseidon__partial_rounds_state0_column)) - (1)) >= (0), + "Column index out of range."); + + ASSERT_RELEASE( + (poseidon__poseidon__partial_rounds_state0_offset) >= (0), "Offset must be nonnegative."); + + ASSERT_RELEASE( + (((trace_length_) - (poseidon__poseidon__partial_rounds_state0_offset)) - (1)) >= (0), + "Offset must be smaller than trace length."); + + ASSERT_RELEASE( + (poseidon__poseidon__partial_rounds_state1_column) >= (0), "Column index out of range."); + + ASSERT_RELEASE( + (((num_columns_first) - (poseidon__poseidon__partial_rounds_state1_column)) - (1)) >= (0), + "Column index out of range."); + + ASSERT_RELEASE( + (poseidon__poseidon__partial_rounds_state1_offset) >= (0), "Offset must be nonnegative."); + + ASSERT_RELEASE( + (((trace_length_) - (poseidon__poseidon__partial_rounds_state1_offset)) - (1)) >= (0), + "Offset must be smaller than trace length."); + + ASSERT_RELEASE( + (poseidon__poseidon__partial_rounds_state0_squared_column) >= (0), + "Column index out of range."); + + ASSERT_RELEASE( + (((num_columns_first) - (poseidon__poseidon__partial_rounds_state0_squared_column)) - (1)) >= + (0), + "Column index out of range."); + + ASSERT_RELEASE( + (poseidon__poseidon__partial_rounds_state0_squared_offset) >= (0), + "Offset must be nonnegative."); + + ASSERT_RELEASE( + (((trace_length_) - (poseidon__poseidon__partial_rounds_state0_squared_offset)) - (1)) >= (0), + "Offset must be smaller than trace length."); + + ASSERT_RELEASE( + (poseidon__poseidon__partial_rounds_state1_squared_column) >= (0), + "Column index out of range."); + + ASSERT_RELEASE( + (((num_columns_first) - (poseidon__poseidon__partial_rounds_state1_squared_column)) - (1)) >= + (0), + "Column index out of range."); + + ASSERT_RELEASE( + (poseidon__poseidon__partial_rounds_state1_squared_offset) >= (0), + "Offset must be nonnegative."); + + ASSERT_RELEASE( + (((trace_length_) - (poseidon__poseidon__partial_rounds_state1_squared_offset)) - (1)) >= (0), + "Offset must be smaller than trace length."); + + ASSERT_RELEASE((add_mod__sub_p_bit_column) >= (0), "Column index out of range."); + + ASSERT_RELEASE( + (((num_columns_first) - (add_mod__sub_p_bit_column)) - (1)) >= (0), + "Column index out of range."); + + ASSERT_RELEASE((add_mod__sub_p_bit_offset) >= (0), "Offset must be nonnegative."); + + ASSERT_RELEASE( + (((trace_length_) - (add_mod__sub_p_bit_offset)) - (1)) >= (0), + "Offset must be smaller than trace length."); + + ASSERT_RELEASE((add_mod__carry1_bit_column) >= (0), "Column index out of range."); + + ASSERT_RELEASE( + (((num_columns_first) - (add_mod__carry1_bit_column)) - (1)) >= (0), + "Column index out of range."); + + ASSERT_RELEASE((add_mod__carry1_bit_offset) >= (0), "Offset must be nonnegative."); + + ASSERT_RELEASE( + (((trace_length_) - (add_mod__carry1_bit_offset)) - (1)) >= (0), + "Offset must be smaller than trace length."); + + ASSERT_RELEASE((add_mod__carry2_bit_column) >= (0), "Column index out of range."); + + ASSERT_RELEASE( + (((num_columns_first) - (add_mod__carry2_bit_column)) - (1)) >= (0), + "Column index out of range."); + + ASSERT_RELEASE((add_mod__carry2_bit_offset) >= (0), "Offset must be nonnegative."); + + ASSERT_RELEASE( + (((trace_length_) - (add_mod__carry2_bit_offset)) - (1)) >= (0), + "Offset must be smaller than trace length."); + + ASSERT_RELEASE((add_mod__carry3_bit_column) >= (0), "Column index out of range."); + + ASSERT_RELEASE( + (((num_columns_first) - (add_mod__carry3_bit_column)) - (1)) >= (0), + "Column index out of range."); + + ASSERT_RELEASE((add_mod__carry3_bit_offset) >= (0), "Offset must be nonnegative."); + + ASSERT_RELEASE( + (((trace_length_) - (add_mod__carry3_bit_offset)) - (1)) >= (0), + "Offset must be smaller than trace length."); + + ASSERT_RELEASE((add_mod__carry1_sign_column) >= (0), "Column index out of range."); + + ASSERT_RELEASE( + (((num_columns_first) - (add_mod__carry1_sign_column)) - (1)) >= (0), + "Column index out of range."); + + ASSERT_RELEASE((add_mod__carry1_sign_offset) >= (0), "Offset must be nonnegative."); + + ASSERT_RELEASE( + (((trace_length_) - (add_mod__carry1_sign_offset)) - (1)) >= (0), + "Offset must be smaller than trace length."); + + ASSERT_RELEASE((add_mod__carry2_sign_column) >= (0), "Column index out of range."); + + ASSERT_RELEASE( + (((num_columns_first) - (add_mod__carry2_sign_column)) - (1)) >= (0), + "Column index out of range."); + + ASSERT_RELEASE((add_mod__carry2_sign_offset) >= (0), "Offset must be nonnegative."); + + ASSERT_RELEASE( + (((trace_length_) - (add_mod__carry2_sign_offset)) - (1)) >= (0), + "Offset must be smaller than trace length."); + + ASSERT_RELEASE((add_mod__carry3_sign_column) >= (0), "Column index out of range."); + + ASSERT_RELEASE( + (((num_columns_first) - (add_mod__carry3_sign_column)) - (1)) >= (0), + "Column index out of range."); + + ASSERT_RELEASE((add_mod__carry3_sign_offset) >= (0), "Offset must be nonnegative."); + + ASSERT_RELEASE( + (((trace_length_) - (add_mod__carry3_sign_offset)) - (1)) >= (0), + "Offset must be smaller than trace length."); + + ASSERT_RELEASE( + ((memory__multi_column_perm__perm__cum_prod0_column) - (num_columns_first)) >= (0), + "Column index out of range."); + + ASSERT_RELEASE( + ((((num_columns_first) + (num_columns_second)) - + (memory__multi_column_perm__perm__cum_prod0_column)) - + (1)) >= (0), + "Column index out of range."); + + ASSERT_RELEASE( + (memory__multi_column_perm__perm__cum_prod0_offset) >= (0), "Offset must be nonnegative."); + + ASSERT_RELEASE( + (((trace_length_) - (memory__multi_column_perm__perm__cum_prod0_offset)) - (1)) >= (0), + "Offset must be smaller than trace length."); + + ASSERT_RELEASE( + ((range_check16__perm__cum_prod0_column) - (num_columns_first)) >= (0), + "Column index out of range."); + + ASSERT_RELEASE( + ((((num_columns_first) + (num_columns_second)) - (range_check16__perm__cum_prod0_column)) - + (1)) >= (0), + "Column index out of range."); + + ASSERT_RELEASE((range_check16__perm__cum_prod0_offset) >= (0), "Offset must be nonnegative."); + + ASSERT_RELEASE( + (((trace_length_) - (range_check16__perm__cum_prod0_offset)) - (1)) >= (0), + "Offset must be smaller than trace length."); + + ASSERT_RELEASE( + ((diluted_check__cumulative_value_column) - (num_columns_first)) >= (0), + "Column index out of range."); + + ASSERT_RELEASE( + ((((num_columns_first) + (num_columns_second)) - (diluted_check__cumulative_value_column)) - + (1)) >= (0), + "Column index out of range."); + + ASSERT_RELEASE((diluted_check__cumulative_value_offset) >= (0), "Offset must be nonnegative."); + + ASSERT_RELEASE( + (((trace_length_) - (diluted_check__cumulative_value_offset)) - (1)) >= (0), + "Offset must be smaller than trace length."); + + ASSERT_RELEASE( + ((diluted_check__permutation__cum_prod0_column) - (num_columns_first)) >= (0), + "Column index out of range."); + + ASSERT_RELEASE( + ((((num_columns_first) + (num_columns_second)) - + (diluted_check__permutation__cum_prod0_column)) - + (1)) >= (0), + "Column index out of range."); + + ASSERT_RELEASE( + (diluted_check__permutation__cum_prod0_offset) >= (0), "Offset must be nonnegative."); + + ASSERT_RELEASE( + (((trace_length_) - (diluted_check__permutation__cum_prod0_offset)) - (1)) >= (0), + "Offset must be smaller than trace length."); + + if ((uses_pedersen_builtin) != (0)) { + ASSERT_RELEASE( + IsPowerOfTwo(pedersen_builtin_row_ratio), + "Row ratio should be a power of 2, smaller than trace length."); + + ASSERT_RELEASE( + IsPowerOfTwo(SafeDiv(trace_length_, pedersen_builtin_row_ratio)), + "Dimension should be a power of 2."); + + ASSERT_RELEASE( + IsPowerOfTwo(SafeDiv(pedersen_builtin_row_ratio, 512)), + "Coset step ((DynamicParam(pedersen_builtin_row_ratio)) / (512)) must be a power of two"); + + ASSERT_RELEASE( + IsPowerOfTwo(SafeDiv(pedersen_builtin_row_ratio, 2)), + "Coset step ((DynamicParam(pedersen_builtin_row_ratio)) / (2)) must be a power of two"); + + ASSERT_RELEASE( + ((SafeDiv(trace_length_, pedersen_builtin_row_ratio)) - (1)) >= (0), + "step must not exceed dimension."); + + ASSERT_RELEASE( + (SafeDiv(trace_length_, pedersen_builtin_row_ratio)) >= (0), + "Index should be non negative."); + + ASSERT_RELEASE( + IsPowerOfTwo(trace_length_), + "Coset step (MemberExpression(trace_length)) must be a power of two"); + + ASSERT_RELEASE( + (pedersen__input0_suboffset) >= (0), "Offset of pedersen/input0 must be nonnegative."); + + ASSERT_RELEASE( + (((trace_length_) - (pedersen__input0_suboffset)) - (1)) >= (0), + "Offset of pedersen/input0 is too big."); + + ASSERT_RELEASE( + (((pedersen_builtin_row_ratio) - + ((pedersen__input0_suboffset) * (memory_units_row_ratio))) - + (1)) >= (0), + "Offset of pedersen/input0 is too big."); + + ASSERT_RELEASE( + (pedersen__input1_suboffset) >= (0), "Offset of pedersen/input1 must be nonnegative."); + + ASSERT_RELEASE( + (((trace_length_) - (pedersen__input1_suboffset)) - (1)) >= (0), + "Offset of pedersen/input1 is too big."); + + ASSERT_RELEASE( + (((pedersen_builtin_row_ratio) - + ((pedersen__input1_suboffset) * (memory_units_row_ratio))) - + (1)) >= (0), + "Offset of pedersen/input1 is too big."); - ASSERT_RELEASE( - ((((16) * (cpu_component_step)) - - ((cpu__decode__off1_suboffset) * (range_check_units_row_ratio))) - - (1)) >= (0), - "Offset of cpu/decode/off1 is too big."); + ASSERT_RELEASE( + (pedersen__output_suboffset) >= (0), "Offset of pedersen/output must be nonnegative."); - ASSERT_RELEASE( - (cpu__decode__off2_suboffset) >= (0), "Offset of cpu/decode/off2 must be nonnegative."); + ASSERT_RELEASE( + (((trace_length_) - (pedersen__output_suboffset)) - (1)) >= (0), + "Offset of pedersen/output is too big."); - ASSERT_RELEASE( - (((trace_length_) - (cpu__decode__off2_suboffset)) - (1)) >= (0), - "Offset of cpu/decode/off2 is too big."); + ASSERT_RELEASE( + (((pedersen_builtin_row_ratio) - + ((pedersen__output_suboffset) * (memory_units_row_ratio))) - + (1)) >= (0), + "Offset of pedersen/output is too big."); + } - ASSERT_RELEASE( - ((((16) * (cpu_component_step)) - - ((cpu__decode__off2_suboffset) * (range_check_units_row_ratio))) - - (1)) >= (0), - "Offset of cpu/decode/off2 is too big."); + if ((uses_range_check_builtin) != (0)) { + ASSERT_RELEASE( + IsPowerOfTwo(trace_length_), + "Coset step (MemberExpression(trace_length)) must be a power of two"); - ASSERT_RELEASE( - (cpu__operands__mem_dst_suboffset) >= (0), - "Offset of cpu/operands/mem_dst must be nonnegative."); + ASSERT_RELEASE( + IsPowerOfTwo(range_check_builtin_row_ratio), + "Row ratio should be a power of 2, smaller than trace length."); - ASSERT_RELEASE( - (((trace_length_) - (cpu__operands__mem_dst_suboffset)) - (1)) >= (0), - "Offset of cpu/operands/mem_dst is too big."); + ASSERT_RELEASE( + IsPowerOfTwo(SafeDiv(trace_length_, range_check_builtin_row_ratio)), + "Dimension should be a power of 2."); - ASSERT_RELEASE( - ((((16) * (cpu_component_step)) - - ((cpu__operands__mem_dst_suboffset) * (memory_units_row_ratio))) - - (1)) >= (0), - "Offset of cpu/operands/mem_dst is too big."); + ASSERT_RELEASE( + ((SafeDiv(trace_length_, range_check_builtin_row_ratio)) - (1)) >= (0), + "step must not exceed dimension."); - ASSERT_RELEASE( - (cpu__operands__mem_op0_suboffset) >= (0), - "Offset of cpu/operands/mem_op0 must be nonnegative."); + ASSERT_RELEASE( + (SafeDiv(trace_length_, range_check_builtin_row_ratio)) >= (0), + "Index should be non negative."); - ASSERT_RELEASE( - (((trace_length_) - (cpu__operands__mem_op0_suboffset)) - (1)) >= (0), - "Offset of cpu/operands/mem_op0 is too big."); + ASSERT_RELEASE( + IsPowerOfTwo(SafeDiv(range_check_builtin_row_ratio, 8)), + "Coset step ((DynamicParam(range_check_builtin_row_ratio)) / (8)) must be a power of two"); - ASSERT_RELEASE( - ((((16) * (cpu_component_step)) - - ((cpu__operands__mem_op0_suboffset) * (memory_units_row_ratio))) - - (1)) >= (0), - "Offset of cpu/operands/mem_op0 is too big."); + ASSERT_RELEASE( + (range_check_builtin__mem_suboffset) >= (0), + "Offset of range_check_builtin/mem must be nonnegative."); - ASSERT_RELEASE( - (cpu__operands__mem_op1_suboffset) >= (0), - "Offset of cpu/operands/mem_op1 must be nonnegative."); + ASSERT_RELEASE( + (((trace_length_) - (range_check_builtin__mem_suboffset)) - (1)) >= (0), + "Offset of range_check_builtin/mem is too big."); - ASSERT_RELEASE( - (((trace_length_) - (cpu__operands__mem_op1_suboffset)) - (1)) >= (0), - "Offset of cpu/operands/mem_op1 is too big."); + ASSERT_RELEASE( + (((range_check_builtin_row_ratio) - + ((range_check_builtin__mem_suboffset) * (memory_units_row_ratio))) - + (1)) >= (0), + "Offset of range_check_builtin/mem is too big."); - ASSERT_RELEASE( - ((((16) * (cpu_component_step)) - - ((cpu__operands__mem_op1_suboffset) * (memory_units_row_ratio))) - - (1)) >= (0), - "Offset of cpu/operands/mem_op1 is too big."); + ASSERT_RELEASE( + (range_check_builtin__inner_range_check_suboffset) >= (0), + "Offset of range_check_builtin/inner_range_check must be nonnegative."); - ASSERT_RELEASE( - (orig__public_memory_suboffset) >= (0), "Offset of orig/public_memory must be nonnegative."); + ASSERT_RELEASE( + (((trace_length_) - (range_check_builtin__inner_range_check_suboffset)) - (1)) >= (0), + "Offset of range_check_builtin/inner_range_check is too big."); - ASSERT_RELEASE( - (((trace_length_) - (orig__public_memory_suboffset)) - (1)) >= (0), - "Offset of orig/public_memory is too big."); + ASSERT_RELEASE( + (((SafeDiv(range_check_builtin_row_ratio, 8)) - + ((range_check_builtin__inner_range_check_suboffset) * (range_check_units_row_ratio))) - + (1)) >= (0), + "Offset of range_check_builtin/inner_range_check is too big."); + } - ASSERT_RELEASE( - ((((8) * (memory_units_row_ratio)) - - ((orig__public_memory_suboffset) * (memory_units_row_ratio))) - - (1)) >= (0), - "Offset of orig/public_memory is too big."); + if ((uses_ecdsa_builtin) != (0)) { + ASSERT_RELEASE( + IsPowerOfTwo(ecdsa_builtin_row_ratio), + "Row ratio should be a power of 2, smaller than trace length."); - ASSERT_RELEASE( - (((uses_pedersen_builtin) * (uses_pedersen_builtin)) - (uses_pedersen_builtin)) == (0), - "uses_pedersen_builtin should be a boolean"); + ASSERT_RELEASE( + IsPowerOfTwo(SafeDiv(trace_length_, ecdsa_builtin_row_ratio)), + "Dimension should be a power of 2."); - ASSERT_RELEASE( - (((uses_range_check_builtin) * (uses_range_check_builtin)) - (uses_range_check_builtin)) == - (0), - "uses_range_check_builtin should be a boolean"); + ASSERT_RELEASE( + IsPowerOfTwo(SafeDiv(ecdsa_builtin_row_ratio, 512)), + "Coset step ((DynamicParam(ecdsa_builtin_row_ratio)) / (512)) must be a power of two"); + + ASSERT_RELEASE( + ((SafeDiv(trace_length_, ecdsa_builtin_row_ratio)) - (1)) >= (0), + "step must not exceed dimension."); + + ASSERT_RELEASE( + (SafeDiv(trace_length_, ecdsa_builtin_row_ratio)) >= (0), "Index should be non negative."); + + ASSERT_RELEASE( + IsPowerOfTwo(SafeDiv(ecdsa_builtin_row_ratio, 256)), + "Coset step ((DynamicParam(ecdsa_builtin_row_ratio)) / (256)) must be a power of two"); + + ASSERT_RELEASE( + IsPowerOfTwo(trace_length_), + "Coset step (MemberExpression(trace_length)) must be a power of two"); + + ASSERT_RELEASE( + IsPowerOfTwo(SafeDiv(ecdsa_builtin_row_ratio, 2)), + "Coset step ((DynamicParam(ecdsa_builtin_row_ratio)) / (2)) must be a power of two"); + + ASSERT_RELEASE((ecdsa__pubkey_suboffset) >= (0), "Offset of ecdsa/pubkey must be nonnegative."); + + ASSERT_RELEASE( + (((trace_length_) - (ecdsa__pubkey_suboffset)) - (1)) >= (0), + "Offset of ecdsa/pubkey is too big."); + + ASSERT_RELEASE( + (((ecdsa_builtin_row_ratio) - ((ecdsa__pubkey_suboffset) * (memory_units_row_ratio))) - + (1)) >= (0), + "Offset of ecdsa/pubkey is too big."); + + ASSERT_RELEASE( + (ecdsa__message_suboffset) >= (0), "Offset of ecdsa/message must be nonnegative."); + + ASSERT_RELEASE( + (((trace_length_) - (ecdsa__message_suboffset)) - (1)) >= (0), + "Offset of ecdsa/message is too big."); + + ASSERT_RELEASE( + (((ecdsa_builtin_row_ratio) - ((ecdsa__message_suboffset) * (memory_units_row_ratio))) - + (1)) >= (0), + "Offset of ecdsa/message is too big."); + } + + if ((uses_bitwise_builtin) != (0)) { + ASSERT_RELEASE( + IsPowerOfTwo(bitwise__row_ratio), + "Row ratio should be a power of 2, smaller than trace length."); + + ASSERT_RELEASE( + IsPowerOfTwo(SafeDiv(trace_length_, bitwise__row_ratio)), + "Dimension should be a power of 2."); + + ASSERT_RELEASE( + IsPowerOfTwo(SafeDiv(bitwise__row_ratio, 64)), + "Coset step ((DynamicParam(bitwise__row_ratio)) / (64)) must be a power of two"); + + ASSERT_RELEASE( + IsPowerOfTwo(SafeDiv(bitwise__row_ratio, 4)), + "Coset step ((DynamicParam(bitwise__row_ratio)) / (4)) must be a power of two"); + + ASSERT_RELEASE( + ((SafeDiv(trace_length_, bitwise__row_ratio)) - (1)) >= (0), "Index out of range."); + + ASSERT_RELEASE( + (SafeDiv(trace_length_, bitwise__row_ratio)) >= (0), "Index should be non negative."); + + ASSERT_RELEASE( + IsPowerOfTwo(trace_length_), + "Coset step (MemberExpression(trace_length)) must be a power of two"); + + ASSERT_RELEASE( + (bitwise__var_pool_suboffset) >= (0), "Offset of bitwise/var_pool must be nonnegative."); + + ASSERT_RELEASE( + (((trace_length_) - (bitwise__var_pool_suboffset)) - (1)) >= (0), + "Offset of bitwise/var_pool is too big."); + + ASSERT_RELEASE( + (((SafeDiv(bitwise__row_ratio, 4)) - + ((bitwise__var_pool_suboffset) * (memory_units_row_ratio))) - + (1)) >= (0), + "Offset of bitwise/var_pool is too big."); + + ASSERT_RELEASE( + (bitwise__x_or_y_suboffset) >= (0), "Offset of bitwise/x_or_y must be nonnegative."); + + ASSERT_RELEASE( + (((trace_length_) - (bitwise__x_or_y_suboffset)) - (1)) >= (0), + "Offset of bitwise/x_or_y is too big."); + + ASSERT_RELEASE( + (((bitwise__row_ratio) - ((bitwise__x_or_y_suboffset) * (memory_units_row_ratio))) - (1)) >= + (0), + "Offset of bitwise/x_or_y is too big."); + + ASSERT_RELEASE( + (bitwise__diluted_var_pool_suboffset) >= (0), + "Offset of bitwise/diluted_var_pool must be nonnegative."); + + ASSERT_RELEASE( + (((trace_length_) - (bitwise__diluted_var_pool_suboffset)) - (1)) >= (0), + "Offset of bitwise/diluted_var_pool is too big."); + + ASSERT_RELEASE( + (((SafeDiv(bitwise__row_ratio, 64)) - + ((bitwise__diluted_var_pool_suboffset) * (diluted_units_row_ratio))) - + (1)) >= (0), + "Offset of bitwise/diluted_var_pool is too big."); + + ASSERT_RELEASE( + (bitwise__trim_unpacking192_suboffset) >= (0), + "Offset of bitwise/trim_unpacking192 must be nonnegative."); + + ASSERT_RELEASE( + (((trace_length_) - (bitwise__trim_unpacking192_suboffset)) - (1)) >= (0), + "Offset of bitwise/trim_unpacking192 is too big."); + + ASSERT_RELEASE( + (((bitwise__row_ratio) - + ((bitwise__trim_unpacking192_suboffset) * (diluted_units_row_ratio))) - + (1)) >= (0), + "Offset of bitwise/trim_unpacking192 is too big."); + + ASSERT_RELEASE( + (bitwise__trim_unpacking193_suboffset) >= (0), + "Offset of bitwise/trim_unpacking193 must be nonnegative."); + + ASSERT_RELEASE( + (((trace_length_) - (bitwise__trim_unpacking193_suboffset)) - (1)) >= (0), + "Offset of bitwise/trim_unpacking193 is too big."); - ASSERT_RELEASE( - (((uses_ecdsa_builtin) * (uses_ecdsa_builtin)) - (uses_ecdsa_builtin)) == (0), - "uses_ecdsa_builtin should be a boolean"); + ASSERT_RELEASE( + (((bitwise__row_ratio) - + ((bitwise__trim_unpacking193_suboffset) * (diluted_units_row_ratio))) - + (1)) >= (0), + "Offset of bitwise/trim_unpacking193 is too big."); - ASSERT_RELEASE( - (((uses_bitwise_builtin) * (uses_bitwise_builtin)) - (uses_bitwise_builtin)) == (0), - "uses_bitwise_builtin should be a boolean"); + ASSERT_RELEASE( + (bitwise__trim_unpacking194_suboffset) >= (0), + "Offset of bitwise/trim_unpacking194 must be nonnegative."); - ASSERT_RELEASE( - (((uses_ec_op_builtin) * (uses_ec_op_builtin)) - (uses_ec_op_builtin)) == (0), - "uses_ec_op_builtin should be a boolean"); + ASSERT_RELEASE( + (((trace_length_) - (bitwise__trim_unpacking194_suboffset)) - (1)) >= (0), + "Offset of bitwise/trim_unpacking194 is too big."); - ASSERT_RELEASE( - (((uses_keccak_builtin) * (uses_keccak_builtin)) - (uses_keccak_builtin)) == (0), - "uses_keccak_builtin should be a boolean"); + ASSERT_RELEASE( + (((bitwise__row_ratio) - + ((bitwise__trim_unpacking194_suboffset) * (diluted_units_row_ratio))) - + (1)) >= (0), + "Offset of bitwise/trim_unpacking194 is too big."); - ASSERT_RELEASE( - (((uses_poseidon_builtin) * (uses_poseidon_builtin)) - (uses_poseidon_builtin)) == (0), - "uses_poseidon_builtin should be a boolean"); + ASSERT_RELEASE( + (bitwise__trim_unpacking195_suboffset) >= (0), + "Offset of bitwise/trim_unpacking195 must be nonnegative."); - ASSERT_RELEASE( - (((65536) - (num_columns_first)) - (1)) >= (0), "num_columns_first is out of range."); + ASSERT_RELEASE( + (((trace_length_) - (bitwise__trim_unpacking195_suboffset)) - (1)) >= (0), + "Offset of bitwise/trim_unpacking195 is too big."); - ASSERT_RELEASE( - (((65536) - (num_columns_second)) - (1)) >= (0), "num_columns_second is out of range."); + ASSERT_RELEASE( + (((bitwise__row_ratio) - + ((bitwise__trim_unpacking195_suboffset) * (diluted_units_row_ratio))) - + (1)) >= (0), + "Offset of bitwise/trim_unpacking195 is too big."); + } - ASSERT_RELEASE((mem_pool__addr_column) >= (0), "Column index out of range."); + if ((uses_ec_op_builtin) != (0)) { + ASSERT_RELEASE( + IsPowerOfTwo(ec_op_builtin_row_ratio), + "Row ratio should be a power of 2, smaller than trace length."); - ASSERT_RELEASE( - (((num_columns_first) - (mem_pool__addr_column)) - (1)) >= (0), "Column index out of range."); + ASSERT_RELEASE( + IsPowerOfTwo(SafeDiv(trace_length_, ec_op_builtin_row_ratio)), + "Dimension should be a power of 2."); - ASSERT_RELEASE((mem_pool__addr_offset) >= (0), "Offset must be nonnegative."); + ASSERT_RELEASE( + IsPowerOfTwo(SafeDiv(ec_op_builtin_row_ratio, 256)), + "Coset step ((DynamicParam(ec_op_builtin_row_ratio)) / (256)) must be a power of two"); - ASSERT_RELEASE( - (((trace_length_) - (mem_pool__addr_offset)) - (1)) >= (0), - "Offset must be smaller than trace length."); + ASSERT_RELEASE( + ((SafeDiv(trace_length_, ec_op_builtin_row_ratio)) - (1)) >= (0), "Index out of range."); - ASSERT_RELEASE((mem_pool__value_column) >= (0), "Column index out of range."); + ASSERT_RELEASE( + (SafeDiv(trace_length_, ec_op_builtin_row_ratio)) >= (0), "Index should be non negative."); - ASSERT_RELEASE( - (((num_columns_first) - (mem_pool__value_column)) - (1)) >= (0), - "Column index out of range."); + ASSERT_RELEASE( + IsPowerOfTwo(trace_length_), + "Coset step (MemberExpression(trace_length)) must be a power of two"); - ASSERT_RELEASE((mem_pool__value_offset) >= (0), "Offset must be nonnegative."); + ASSERT_RELEASE((ec_op__p_x_suboffset) >= (0), "Offset of ec_op/p_x must be nonnegative."); - ASSERT_RELEASE( - (((trace_length_) - (mem_pool__value_offset)) - (1)) >= (0), - "Offset must be smaller than trace length."); + ASSERT_RELEASE( + (((trace_length_) - (ec_op__p_x_suboffset)) - (1)) >= (0), + "Offset of ec_op/p_x is too big."); - ASSERT_RELEASE((range_check16_pool_column) >= (0), "Column index out of range."); + ASSERT_RELEASE( + (((ec_op_builtin_row_ratio) - ((ec_op__p_x_suboffset) * (memory_units_row_ratio))) - (1)) >= + (0), + "Offset of ec_op/p_x is too big."); - ASSERT_RELEASE( - (((num_columns_first) - (range_check16_pool_column)) - (1)) >= (0), - "Column index out of range."); + ASSERT_RELEASE((ec_op__p_y_suboffset) >= (0), "Offset of ec_op/p_y must be nonnegative."); - ASSERT_RELEASE((range_check16_pool_offset) >= (0), "Offset must be nonnegative."); + ASSERT_RELEASE( + (((trace_length_) - (ec_op__p_y_suboffset)) - (1)) >= (0), + "Offset of ec_op/p_y is too big."); - ASSERT_RELEASE( - (((trace_length_) - (range_check16_pool_offset)) - (1)) >= (0), - "Offset must be smaller than trace length."); + ASSERT_RELEASE( + (((ec_op_builtin_row_ratio) - ((ec_op__p_y_suboffset) * (memory_units_row_ratio))) - (1)) >= + (0), + "Offset of ec_op/p_y is too big."); - ASSERT_RELEASE( - (cpu__decode__opcode_range_check__column_column) >= (0), "Column index out of range."); + ASSERT_RELEASE((ec_op__q_x_suboffset) >= (0), "Offset of ec_op/q_x must be nonnegative."); - ASSERT_RELEASE( - (((num_columns_first) - (cpu__decode__opcode_range_check__column_column)) - (1)) >= (0), - "Column index out of range."); + ASSERT_RELEASE( + (((trace_length_) - (ec_op__q_x_suboffset)) - (1)) >= (0), + "Offset of ec_op/q_x is too big."); - ASSERT_RELEASE( - (cpu__decode__opcode_range_check__column_offset) >= (0), "Offset must be nonnegative."); + ASSERT_RELEASE( + (((ec_op_builtin_row_ratio) - ((ec_op__q_x_suboffset) * (memory_units_row_ratio))) - (1)) >= + (0), + "Offset of ec_op/q_x is too big."); - ASSERT_RELEASE( - (((trace_length_) - (cpu__decode__opcode_range_check__column_offset)) - (1)) >= (0), - "Offset must be smaller than trace length."); + ASSERT_RELEASE((ec_op__q_y_suboffset) >= (0), "Offset of ec_op/q_y must be nonnegative."); - ASSERT_RELEASE((cpu__registers__ap_column) >= (0), "Column index out of range."); + ASSERT_RELEASE( + (((trace_length_) - (ec_op__q_y_suboffset)) - (1)) >= (0), + "Offset of ec_op/q_y is too big."); - ASSERT_RELEASE( - (((num_columns_first) - (cpu__registers__ap_column)) - (1)) >= (0), - "Column index out of range."); + ASSERT_RELEASE( + (((ec_op_builtin_row_ratio) - ((ec_op__q_y_suboffset) * (memory_units_row_ratio))) - (1)) >= + (0), + "Offset of ec_op/q_y is too big."); - ASSERT_RELEASE((cpu__registers__ap_offset) >= (0), "Offset must be nonnegative."); + ASSERT_RELEASE((ec_op__m_suboffset) >= (0), "Offset of ec_op/m must be nonnegative."); - ASSERT_RELEASE( - (((trace_length_) - (cpu__registers__ap_offset)) - (1)) >= (0), - "Offset must be smaller than trace length."); + ASSERT_RELEASE( + (((trace_length_) - (ec_op__m_suboffset)) - (1)) >= (0), "Offset of ec_op/m is too big."); - ASSERT_RELEASE((cpu__registers__fp_column) >= (0), "Column index out of range."); + ASSERT_RELEASE( + (((ec_op_builtin_row_ratio) - ((ec_op__m_suboffset) * (memory_units_row_ratio))) - (1)) >= + (0), + "Offset of ec_op/m is too big."); - ASSERT_RELEASE( - (((num_columns_first) - (cpu__registers__fp_column)) - (1)) >= (0), - "Column index out of range."); + ASSERT_RELEASE((ec_op__r_x_suboffset) >= (0), "Offset of ec_op/r_x must be nonnegative."); - ASSERT_RELEASE((cpu__registers__fp_offset) >= (0), "Offset must be nonnegative."); + ASSERT_RELEASE( + (((trace_length_) - (ec_op__r_x_suboffset)) - (1)) >= (0), + "Offset of ec_op/r_x is too big."); - ASSERT_RELEASE( - (((trace_length_) - (cpu__registers__fp_offset)) - (1)) >= (0), - "Offset must be smaller than trace length."); + ASSERT_RELEASE( + (((ec_op_builtin_row_ratio) - ((ec_op__r_x_suboffset) * (memory_units_row_ratio))) - (1)) >= + (0), + "Offset of ec_op/r_x is too big."); - ASSERT_RELEASE((cpu__operands__ops_mul_column) >= (0), "Column index out of range."); + ASSERT_RELEASE((ec_op__r_y_suboffset) >= (0), "Offset of ec_op/r_y must be nonnegative."); - ASSERT_RELEASE( - (((num_columns_first) - (cpu__operands__ops_mul_column)) - (1)) >= (0), - "Column index out of range."); + ASSERT_RELEASE( + (((trace_length_) - (ec_op__r_y_suboffset)) - (1)) >= (0), + "Offset of ec_op/r_y is too big."); - ASSERT_RELEASE((cpu__operands__ops_mul_offset) >= (0), "Offset must be nonnegative."); + ASSERT_RELEASE( + (((ec_op_builtin_row_ratio) - ((ec_op__r_y_suboffset) * (memory_units_row_ratio))) - (1)) >= + (0), + "Offset of ec_op/r_y is too big."); + } - ASSERT_RELEASE( - (((trace_length_) - (cpu__operands__ops_mul_offset)) - (1)) >= (0), - "Offset must be smaller than trace length."); + if ((uses_keccak_builtin) != (0)) { + ASSERT_RELEASE( + IsPowerOfTwo(SafeDiv(keccak__row_ratio, 4096)), + "Coset step ((DynamicParam(keccak__row_ratio)) / (4096)) must be a power of two"); - ASSERT_RELEASE((cpu__operands__res_column) >= (0), "Column index out of range."); + ASSERT_RELEASE( + IsPowerOfTwo(SafeDiv(trace_length_, (16) * (keccak__row_ratio))), + "Dimension should be a power of 2."); - ASSERT_RELEASE( - (((num_columns_first) - (cpu__operands__res_column)) - (1)) >= (0), - "Column index out of range."); + ASSERT_RELEASE( + IsPowerOfTwo(SafeDiv(keccak__row_ratio, 128)), + "Coset step ((DynamicParam(keccak__row_ratio)) / (128)) must be a power of two"); - ASSERT_RELEASE((cpu__operands__res_offset) >= (0), "Offset must be nonnegative."); + ASSERT_RELEASE( + IsPowerOfTwo(SafeDiv(keccak__row_ratio, 32768)), + "Coset step ((DynamicParam(keccak__row_ratio)) / (32768)) must be a power of two"); - ASSERT_RELEASE( - (((trace_length_) - (cpu__operands__res_offset)) - (1)) >= (0), - "Offset must be smaller than trace length."); + ASSERT_RELEASE( + IsPowerOfTwo(keccak__row_ratio), + "Row ratio should be a power of 2, smaller than trace length."); - ASSERT_RELEASE( - (cpu__update_registers__update_pc__tmp0_column) >= (0), "Column index out of range."); + ASSERT_RELEASE( + IsPowerOfTwo(SafeDiv(keccak__row_ratio, 16)), + "Coset step ((DynamicParam(keccak__row_ratio)) / (16)) must be a power of two"); - ASSERT_RELEASE( - (((num_columns_first) - (cpu__update_registers__update_pc__tmp0_column)) - (1)) >= (0), - "Column index out of range."); + ASSERT_RELEASE( + IsPowerOfTwo(SafeDiv((16) * (trace_length_), keccak__row_ratio)), + "Dimension should be a power of 2."); - ASSERT_RELEASE( - (cpu__update_registers__update_pc__tmp0_offset) >= (0), "Offset must be nonnegative."); + ASSERT_RELEASE( + ((SafeDiv((16) * (trace_length_), keccak__row_ratio)) - (1)) >= (0), "Index out of range."); - ASSERT_RELEASE( - (((trace_length_) - (cpu__update_registers__update_pc__tmp0_offset)) - (1)) >= (0), - "Offset must be smaller than trace length."); + ASSERT_RELEASE( + (SafeDiv((16) * (trace_length_), keccak__row_ratio)) >= (0), + "Index should be non negative."); - ASSERT_RELEASE( - (cpu__update_registers__update_pc__tmp1_column) >= (0), "Column index out of range."); + ASSERT_RELEASE( + IsPowerOfTwo(trace_length_), + "Coset step (MemberExpression(trace_length)) must be a power of two"); - ASSERT_RELEASE( - (((num_columns_first) - (cpu__update_registers__update_pc__tmp1_column)) - (1)) >= (0), - "Column index out of range."); + ASSERT_RELEASE( + (keccak__input_output_suboffset) >= (0), + "Offset of keccak/input_output must be nonnegative."); - ASSERT_RELEASE( - (cpu__update_registers__update_pc__tmp1_offset) >= (0), "Offset must be nonnegative."); + ASSERT_RELEASE( + (((trace_length_) - (keccak__input_output_suboffset)) - (1)) >= (0), + "Offset of keccak/input_output is too big."); - ASSERT_RELEASE( - (((trace_length_) - (cpu__update_registers__update_pc__tmp1_offset)) - (1)) >= (0), - "Offset must be smaller than trace length."); + ASSERT_RELEASE( + (((SafeDiv(keccak__row_ratio, 16)) - + ((keccak__input_output_suboffset) * (memory_units_row_ratio))) - + (1)) >= (0), + "Offset of keccak/input_output is too big."); - ASSERT_RELEASE((memory__sorted__addr_column) >= (0), "Column index out of range."); + ASSERT_RELEASE( + (keccak__keccak__diluted_column0_suboffset) >= (0), + "Offset of keccak/keccak/diluted_column0 must be nonnegative."); - ASSERT_RELEASE( - (((num_columns_first) - (memory__sorted__addr_column)) - (1)) >= (0), - "Column index out of range."); + ASSERT_RELEASE( + (((trace_length_) - (keccak__keccak__diluted_column0_suboffset)) - (1)) >= (0), + "Offset of keccak/keccak/diluted_column0 is too big."); - ASSERT_RELEASE((memory__sorted__addr_offset) >= (0), "Offset must be nonnegative."); + ASSERT_RELEASE( + (((SafeDiv(keccak__row_ratio, 4096)) - + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) - + (1)) >= (0), + "Offset of keccak/keccak/diluted_column0 is too big."); - ASSERT_RELEASE( - (((trace_length_) - (memory__sorted__addr_offset)) - (1)) >= (0), - "Offset must be smaller than trace length."); + ASSERT_RELEASE( + (keccak__keccak__diluted_column1_suboffset) >= (0), + "Offset of keccak/keccak/diluted_column1 must be nonnegative."); - ASSERT_RELEASE((memory__sorted__value_column) >= (0), "Column index out of range."); + ASSERT_RELEASE( + (((trace_length_) - (keccak__keccak__diluted_column1_suboffset)) - (1)) >= (0), + "Offset of keccak/keccak/diluted_column1 is too big."); - ASSERT_RELEASE( - (((num_columns_first) - (memory__sorted__value_column)) - (1)) >= (0), - "Column index out of range."); + ASSERT_RELEASE( + (((SafeDiv(keccak__row_ratio, 4096)) - + ((keccak__keccak__diluted_column1_suboffset) * (diluted_units_row_ratio))) - + (1)) >= (0), + "Offset of keccak/keccak/diluted_column1 is too big."); - ASSERT_RELEASE((memory__sorted__value_offset) >= (0), "Offset must be nonnegative."); + ASSERT_RELEASE( + (keccak__keccak__diluted_column2_suboffset) >= (0), + "Offset of keccak/keccak/diluted_column2 must be nonnegative."); - ASSERT_RELEASE( - (((trace_length_) - (memory__sorted__value_offset)) - (1)) >= (0), - "Offset must be smaller than trace length."); + ASSERT_RELEASE( + (((trace_length_) - (keccak__keccak__diluted_column2_suboffset)) - (1)) >= (0), + "Offset of keccak/keccak/diluted_column2 is too big."); - ASSERT_RELEASE((range_check16__sorted_column) >= (0), "Column index out of range."); + ASSERT_RELEASE( + (((SafeDiv(keccak__row_ratio, 4096)) - + ((keccak__keccak__diluted_column2_suboffset) * (diluted_units_row_ratio))) - + (1)) >= (0), + "Offset of keccak/keccak/diluted_column2 is too big."); - ASSERT_RELEASE( - (((num_columns_first) - (range_check16__sorted_column)) - (1)) >= (0), - "Column index out of range."); + ASSERT_RELEASE( + (keccak__keccak__diluted_column3_suboffset) >= (0), + "Offset of keccak/keccak/diluted_column3 must be nonnegative."); - ASSERT_RELEASE((range_check16__sorted_offset) >= (0), "Offset must be nonnegative."); + ASSERT_RELEASE( + (((trace_length_) - (keccak__keccak__diluted_column3_suboffset)) - (1)) >= (0), + "Offset of keccak/keccak/diluted_column3 is too big."); - ASSERT_RELEASE( - (((trace_length_) - (range_check16__sorted_offset)) - (1)) >= (0), - "Offset must be smaller than trace length."); + ASSERT_RELEASE( + (((SafeDiv(keccak__row_ratio, 4096)) - + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) - + (1)) >= (0), + "Offset of keccak/keccak/diluted_column3 is too big."); + } - ASSERT_RELEASE((diluted_pool_column) >= (0), "Column index out of range."); + if ((uses_poseidon_builtin) != (0)) { + ASSERT_RELEASE( + IsPowerOfTwo(poseidon__row_ratio), + "Row ratio should be a power of 2, smaller than trace length."); - ASSERT_RELEASE( - (((num_columns_first) - (diluted_pool_column)) - (1)) >= (0), "Column index out of range."); + ASSERT_RELEASE( + IsPowerOfTwo(SafeDiv(trace_length_, poseidon__row_ratio)), + "Dimension should be a power of 2."); - ASSERT_RELEASE((diluted_pool_offset) >= (0), "Offset must be nonnegative."); + ASSERT_RELEASE( + IsPowerOfTwo(SafeDiv(poseidon__row_ratio, 32)), + "Coset step ((DynamicParam(poseidon__row_ratio)) / (32)) must be a power of two"); - ASSERT_RELEASE( - (((trace_length_) - (diluted_pool_offset)) - (1)) >= (0), - "Offset must be smaller than trace length."); + ASSERT_RELEASE( + IsPowerOfTwo(SafeDiv(poseidon__row_ratio, 8)), + "Coset step ((DynamicParam(poseidon__row_ratio)) / (8)) must be a power of two"); - ASSERT_RELEASE((diluted_check__permuted_values_column) >= (0), "Column index out of range."); + ASSERT_RELEASE( + IsPowerOfTwo(SafeDiv(poseidon__row_ratio, 64)), + "Coset step ((DynamicParam(poseidon__row_ratio)) / (64)) must be a power of two"); - ASSERT_RELEASE( - (((num_columns_first) - (diluted_check__permuted_values_column)) - (1)) >= (0), - "Column index out of range."); + ASSERT_RELEASE( + IsPowerOfTwo(SafeDiv(poseidon__row_ratio, 2)), + "Coset step ((DynamicParam(poseidon__row_ratio)) / (2)) must be a power of two"); - ASSERT_RELEASE((diluted_check__permuted_values_offset) >= (0), "Offset must be nonnegative."); + ASSERT_RELEASE( + IsPowerOfTwo(SafeDiv((2) * (trace_length_), poseidon__row_ratio)), + "Dimension should be a power of 2."); - ASSERT_RELEASE( - (((trace_length_) - (diluted_check__permuted_values_offset)) - (1)) >= (0), - "Offset must be smaller than trace length."); + ASSERT_RELEASE( + ((SafeDiv((2) * (trace_length_), poseidon__row_ratio)) - (1)) >= (0), + "Index out of range."); - ASSERT_RELEASE( - (pedersen__hash0__ec_subset_sum__partial_sum__x_column) >= (0), "Column index out of range."); + ASSERT_RELEASE( + (SafeDiv((2) * (trace_length_), poseidon__row_ratio)) >= (0), + "Index should be non negative."); - ASSERT_RELEASE( - (((num_columns_first) - (pedersen__hash0__ec_subset_sum__partial_sum__x_column)) - (1)) >= - (0), - "Column index out of range."); + ASSERT_RELEASE( + IsPowerOfTwo(trace_length_), + "Coset step (MemberExpression(trace_length)) must be a power of two"); - ASSERT_RELEASE( - (pedersen__hash0__ec_subset_sum__partial_sum__x_offset) >= (0), - "Offset must be nonnegative."); + ASSERT_RELEASE( + (poseidon__param_0__input_output_suboffset) >= (0), + "Offset of poseidon/param_0/input_output must be nonnegative."); - ASSERT_RELEASE( - (((trace_length_) - (pedersen__hash0__ec_subset_sum__partial_sum__x_offset)) - (1)) >= (0), - "Offset must be smaller than trace length."); + ASSERT_RELEASE( + (((trace_length_) - (poseidon__param_0__input_output_suboffset)) - (1)) >= (0), + "Offset of poseidon/param_0/input_output is too big."); - ASSERT_RELEASE( - (pedersen__hash0__ec_subset_sum__partial_sum__y_column) >= (0), "Column index out of range."); + ASSERT_RELEASE( + (((SafeDiv(poseidon__row_ratio, 2)) - + ((poseidon__param_0__input_output_suboffset) * (memory_units_row_ratio))) - + (1)) >= (0), + "Offset of poseidon/param_0/input_output is too big."); - ASSERT_RELEASE( - (((num_columns_first) - (pedersen__hash0__ec_subset_sum__partial_sum__y_column)) - (1)) >= - (0), - "Column index out of range."); + ASSERT_RELEASE( + (poseidon__param_1__input_output_suboffset) >= (0), + "Offset of poseidon/param_1/input_output must be nonnegative."); - ASSERT_RELEASE( - (pedersen__hash0__ec_subset_sum__partial_sum__y_offset) >= (0), - "Offset must be nonnegative."); + ASSERT_RELEASE( + (((trace_length_) - (poseidon__param_1__input_output_suboffset)) - (1)) >= (0), + "Offset of poseidon/param_1/input_output is too big."); - ASSERT_RELEASE( - (((trace_length_) - (pedersen__hash0__ec_subset_sum__partial_sum__y_offset)) - (1)) >= (0), - "Offset must be smaller than trace length."); + ASSERT_RELEASE( + (((SafeDiv(poseidon__row_ratio, 2)) - + ((poseidon__param_1__input_output_suboffset) * (memory_units_row_ratio))) - + (1)) >= (0), + "Offset of poseidon/param_1/input_output is too big."); - ASSERT_RELEASE( - (pedersen__hash0__ec_subset_sum__slope_column) >= (0), "Column index out of range."); + ASSERT_RELEASE( + (poseidon__param_2__input_output_suboffset) >= (0), + "Offset of poseidon/param_2/input_output must be nonnegative."); - ASSERT_RELEASE( - (((num_columns_first) - (pedersen__hash0__ec_subset_sum__slope_column)) - (1)) >= (0), - "Column index out of range."); + ASSERT_RELEASE( + (((trace_length_) - (poseidon__param_2__input_output_suboffset)) - (1)) >= (0), + "Offset of poseidon/param_2/input_output is too big."); - ASSERT_RELEASE( - (pedersen__hash0__ec_subset_sum__slope_offset) >= (0), "Offset must be nonnegative."); + ASSERT_RELEASE( + (((SafeDiv(poseidon__row_ratio, 2)) - + ((poseidon__param_2__input_output_suboffset) * (memory_units_row_ratio))) - + (1)) >= (0), + "Offset of poseidon/param_2/input_output is too big."); + } - ASSERT_RELEASE( - (((trace_length_) - (pedersen__hash0__ec_subset_sum__slope_offset)) - (1)) >= (0), - "Offset must be smaller than trace length."); + if ((uses_range_check96_builtin) != (0)) { + ASSERT_RELEASE( + IsPowerOfTwo(trace_length_), + "Coset step (MemberExpression(trace_length)) must be a power of two"); - ASSERT_RELEASE( - (pedersen__hash0__ec_subset_sum__selector_column) >= (0), "Column index out of range."); + ASSERT_RELEASE( + IsPowerOfTwo(range_check96_builtin_row_ratio), + "Row ratio should be a power of 2, smaller than trace length."); - ASSERT_RELEASE( - (((num_columns_first) - (pedersen__hash0__ec_subset_sum__selector_column)) - (1)) >= (0), - "Column index out of range."); + ASSERT_RELEASE( + IsPowerOfTwo(SafeDiv(trace_length_, range_check96_builtin_row_ratio)), + "Dimension should be a power of 2."); - ASSERT_RELEASE( - (pedersen__hash0__ec_subset_sum__selector_offset) >= (0), "Offset must be nonnegative."); + ASSERT_RELEASE( + ((SafeDiv(trace_length_, range_check96_builtin_row_ratio)) - (1)) >= (0), + "step must not exceed dimension."); - ASSERT_RELEASE( - (((trace_length_) - (pedersen__hash0__ec_subset_sum__selector_offset)) - (1)) >= (0), - "Offset must be smaller than trace length."); + ASSERT_RELEASE( + (SafeDiv(trace_length_, range_check96_builtin_row_ratio)) >= (0), + "Index should be non negative."); - ASSERT_RELEASE( - (pedersen__hash0__ec_subset_sum__bit_unpacking__prod_ones196_column) >= (0), - "Column index out of range."); + ASSERT_RELEASE( + (range_check96_builtin__mem_suboffset) >= (0), + "Offset of range_check96_builtin/mem must be nonnegative."); - ASSERT_RELEASE( - (((num_columns_first) - - (pedersen__hash0__ec_subset_sum__bit_unpacking__prod_ones196_column)) - - (1)) >= (0), - "Column index out of range."); + ASSERT_RELEASE( + (((trace_length_) - (range_check96_builtin__mem_suboffset)) - (1)) >= (0), + "Offset of range_check96_builtin/mem is too big."); - ASSERT_RELEASE( - (pedersen__hash0__ec_subset_sum__bit_unpacking__prod_ones196_offset) >= (0), - "Offset must be nonnegative."); + ASSERT_RELEASE( + (((range_check96_builtin_row_ratio) - + ((range_check96_builtin__mem_suboffset) * (memory_units_row_ratio))) - + (1)) >= (0), + "Offset of range_check96_builtin/mem is too big."); - ASSERT_RELEASE( - (((trace_length_) - (pedersen__hash0__ec_subset_sum__bit_unpacking__prod_ones196_offset)) - - (1)) >= (0), - "Offset must be smaller than trace length."); + ASSERT_RELEASE( + (range_check96_builtin__inner_range_check0_suboffset) >= (0), + "Offset of range_check96_builtin/inner_range_check0 must be nonnegative."); - ASSERT_RELEASE( - (pedersen__hash0__ec_subset_sum__bit_unpacking__prod_ones192_column) >= (0), - "Column index out of range."); + ASSERT_RELEASE( + (((trace_length_) - (range_check96_builtin__inner_range_check0_suboffset)) - (1)) >= (0), + "Offset of range_check96_builtin/inner_range_check0 is too big."); - ASSERT_RELEASE( - (((num_columns_first) - - (pedersen__hash0__ec_subset_sum__bit_unpacking__prod_ones192_column)) - - (1)) >= (0), - "Column index out of range."); + ASSERT_RELEASE( + (((range_check96_builtin_row_ratio) - + ((range_check96_builtin__inner_range_check0_suboffset) * (range_check_units_row_ratio))) - + (1)) >= (0), + "Offset of range_check96_builtin/inner_range_check0 is too big."); - ASSERT_RELEASE( - (pedersen__hash0__ec_subset_sum__bit_unpacking__prod_ones192_offset) >= (0), - "Offset must be nonnegative."); + ASSERT_RELEASE( + (range_check96_builtin__inner_range_check1_suboffset) >= (0), + "Offset of range_check96_builtin/inner_range_check1 must be nonnegative."); - ASSERT_RELEASE( - (((trace_length_) - (pedersen__hash0__ec_subset_sum__bit_unpacking__prod_ones192_offset)) - - (1)) >= (0), - "Offset must be smaller than trace length."); + ASSERT_RELEASE( + (((trace_length_) - (range_check96_builtin__inner_range_check1_suboffset)) - (1)) >= (0), + "Offset of range_check96_builtin/inner_range_check1 is too big."); - ASSERT_RELEASE((ecdsa__signature0__key_points__x_column) >= (0), "Column index out of range."); + ASSERT_RELEASE( + (((range_check96_builtin_row_ratio) - + ((range_check96_builtin__inner_range_check1_suboffset) * (range_check_units_row_ratio))) - + (1)) >= (0), + "Offset of range_check96_builtin/inner_range_check1 is too big."); - ASSERT_RELEASE( - (((num_columns_first) - (ecdsa__signature0__key_points__x_column)) - (1)) >= (0), - "Column index out of range."); + ASSERT_RELEASE( + (range_check96_builtin__inner_range_check2_suboffset) >= (0), + "Offset of range_check96_builtin/inner_range_check2 must be nonnegative."); - ASSERT_RELEASE((ecdsa__signature0__key_points__x_offset) >= (0), "Offset must be nonnegative."); + ASSERT_RELEASE( + (((trace_length_) - (range_check96_builtin__inner_range_check2_suboffset)) - (1)) >= (0), + "Offset of range_check96_builtin/inner_range_check2 is too big."); - ASSERT_RELEASE( - (((trace_length_) - (ecdsa__signature0__key_points__x_offset)) - (1)) >= (0), - "Offset must be smaller than trace length."); + ASSERT_RELEASE( + (((range_check96_builtin_row_ratio) - + ((range_check96_builtin__inner_range_check2_suboffset) * (range_check_units_row_ratio))) - + (1)) >= (0), + "Offset of range_check96_builtin/inner_range_check2 is too big."); - ASSERT_RELEASE((ecdsa__signature0__key_points__y_column) >= (0), "Column index out of range."); + ASSERT_RELEASE( + (range_check96_builtin__inner_range_check3_suboffset) >= (0), + "Offset of range_check96_builtin/inner_range_check3 must be nonnegative."); - ASSERT_RELEASE( - (((num_columns_first) - (ecdsa__signature0__key_points__y_column)) - (1)) >= (0), - "Column index out of range."); + ASSERT_RELEASE( + (((trace_length_) - (range_check96_builtin__inner_range_check3_suboffset)) - (1)) >= (0), + "Offset of range_check96_builtin/inner_range_check3 is too big."); - ASSERT_RELEASE((ecdsa__signature0__key_points__y_offset) >= (0), "Offset must be nonnegative."); + ASSERT_RELEASE( + (((range_check96_builtin_row_ratio) - + ((range_check96_builtin__inner_range_check3_suboffset) * (range_check_units_row_ratio))) - + (1)) >= (0), + "Offset of range_check96_builtin/inner_range_check3 is too big."); - ASSERT_RELEASE( - (((trace_length_) - (ecdsa__signature0__key_points__y_offset)) - (1)) >= (0), - "Offset must be smaller than trace length."); + ASSERT_RELEASE( + (range_check96_builtin__inner_range_check4_suboffset) >= (0), + "Offset of range_check96_builtin/inner_range_check4 must be nonnegative."); - ASSERT_RELEASE((ecdsa__signature0__doubling_slope_column) >= (0), "Column index out of range."); + ASSERT_RELEASE( + (((trace_length_) - (range_check96_builtin__inner_range_check4_suboffset)) - (1)) >= (0), + "Offset of range_check96_builtin/inner_range_check4 is too big."); - ASSERT_RELEASE( - (((num_columns_first) - (ecdsa__signature0__doubling_slope_column)) - (1)) >= (0), - "Column index out of range."); + ASSERT_RELEASE( + (((range_check96_builtin_row_ratio) - + ((range_check96_builtin__inner_range_check4_suboffset) * (range_check_units_row_ratio))) - + (1)) >= (0), + "Offset of range_check96_builtin/inner_range_check4 is too big."); - ASSERT_RELEASE((ecdsa__signature0__doubling_slope_offset) >= (0), "Offset must be nonnegative."); + ASSERT_RELEASE( + (range_check96_builtin__inner_range_check5_suboffset) >= (0), + "Offset of range_check96_builtin/inner_range_check5 must be nonnegative."); - ASSERT_RELEASE( - (((trace_length_) - (ecdsa__signature0__doubling_slope_offset)) - (1)) >= (0), - "Offset must be smaller than trace length."); + ASSERT_RELEASE( + (((trace_length_) - (range_check96_builtin__inner_range_check5_suboffset)) - (1)) >= (0), + "Offset of range_check96_builtin/inner_range_check5 is too big."); - ASSERT_RELEASE( - (ecdsa__signature0__exponentiate_generator__partial_sum__x_column) >= (0), - "Column index out of range."); + ASSERT_RELEASE( + (((range_check96_builtin_row_ratio) - + ((range_check96_builtin__inner_range_check5_suboffset) * (range_check_units_row_ratio))) - + (1)) >= (0), + "Offset of range_check96_builtin/inner_range_check5 is too big."); + } - ASSERT_RELEASE( - (((num_columns_first) - (ecdsa__signature0__exponentiate_generator__partial_sum__x_column)) - - (1)) >= (0), - "Column index out of range."); + if ((uses_add_mod_builtin) != (0)) { + ASSERT_RELEASE( + IsPowerOfTwo(add_mod__row_ratio), + "Row ratio should be a power of 2, smaller than trace length."); - ASSERT_RELEASE( - (ecdsa__signature0__exponentiate_generator__partial_sum__x_offset) >= (0), - "Offset must be nonnegative."); + ASSERT_RELEASE( + IsPowerOfTwo(SafeDiv(trace_length_, add_mod__row_ratio)), + "Dimension should be a power of 2."); - ASSERT_RELEASE( - (((trace_length_) - (ecdsa__signature0__exponentiate_generator__partial_sum__x_offset)) - - (1)) >= (0), - "Offset must be smaller than trace length."); + ASSERT_RELEASE( + ((SafeDiv(trace_length_, add_mod__row_ratio)) - (1)) >= (0), "Index out of range."); - ASSERT_RELEASE( - (ecdsa__signature0__exponentiate_generator__partial_sum__y_column) >= (0), - "Column index out of range."); + ASSERT_RELEASE( + (SafeDiv(trace_length_, add_mod__row_ratio)) >= (0), "Index should be non negative."); - ASSERT_RELEASE( - (((num_columns_first) - (ecdsa__signature0__exponentiate_generator__partial_sum__y_column)) - - (1)) >= (0), - "Column index out of range."); + ASSERT_RELEASE( + IsPowerOfTwo(trace_length_), + "Coset step (MemberExpression(trace_length)) must be a power of two"); - ASSERT_RELEASE( - (ecdsa__signature0__exponentiate_generator__partial_sum__y_offset) >= (0), - "Offset must be nonnegative."); + ASSERT_RELEASE((add_mod__p0_suboffset) >= (0), "Offset of add_mod/p0 must be nonnegative."); - ASSERT_RELEASE( - (((trace_length_) - (ecdsa__signature0__exponentiate_generator__partial_sum__y_offset)) - - (1)) >= (0), - "Offset must be smaller than trace length."); + ASSERT_RELEASE( + (((trace_length_) - (add_mod__p0_suboffset)) - (1)) >= (0), + "Offset of add_mod/p0 is too big."); - ASSERT_RELEASE( - (ecdsa__signature0__exponentiate_generator__slope_column) >= (0), - "Column index out of range."); + ASSERT_RELEASE( + (((add_mod__row_ratio) - ((add_mod__p0_suboffset) * (memory_units_row_ratio))) - (1)) >= + (0), + "Offset of add_mod/p0 is too big."); - ASSERT_RELEASE( - (((num_columns_first) - (ecdsa__signature0__exponentiate_generator__slope_column)) - (1)) >= - (0), - "Column index out of range."); + ASSERT_RELEASE((add_mod__p1_suboffset) >= (0), "Offset of add_mod/p1 must be nonnegative."); - ASSERT_RELEASE( - (ecdsa__signature0__exponentiate_generator__slope_offset) >= (0), - "Offset must be nonnegative."); + ASSERT_RELEASE( + (((trace_length_) - (add_mod__p1_suboffset)) - (1)) >= (0), + "Offset of add_mod/p1 is too big."); - ASSERT_RELEASE( - (((trace_length_) - (ecdsa__signature0__exponentiate_generator__slope_offset)) - (1)) >= (0), - "Offset must be smaller than trace length."); + ASSERT_RELEASE( + (((add_mod__row_ratio) - ((add_mod__p1_suboffset) * (memory_units_row_ratio))) - (1)) >= + (0), + "Offset of add_mod/p1 is too big."); - ASSERT_RELEASE( - (ecdsa__signature0__exponentiate_generator__selector_column) >= (0), - "Column index out of range."); + ASSERT_RELEASE((add_mod__p2_suboffset) >= (0), "Offset of add_mod/p2 must be nonnegative."); - ASSERT_RELEASE( - (((num_columns_first) - (ecdsa__signature0__exponentiate_generator__selector_column)) - - (1)) >= (0), - "Column index out of range."); + ASSERT_RELEASE( + (((trace_length_) - (add_mod__p2_suboffset)) - (1)) >= (0), + "Offset of add_mod/p2 is too big."); - ASSERT_RELEASE( - (ecdsa__signature0__exponentiate_generator__selector_offset) >= (0), - "Offset must be nonnegative."); + ASSERT_RELEASE( + (((add_mod__row_ratio) - ((add_mod__p2_suboffset) * (memory_units_row_ratio))) - (1)) >= + (0), + "Offset of add_mod/p2 is too big."); - ASSERT_RELEASE( - (((trace_length_) - (ecdsa__signature0__exponentiate_generator__selector_offset)) - (1)) >= - (0), - "Offset must be smaller than trace length."); + ASSERT_RELEASE((add_mod__p3_suboffset) >= (0), "Offset of add_mod/p3 must be nonnegative."); - ASSERT_RELEASE( - (ecdsa__signature0__exponentiate_generator__x_diff_inv_column) >= (0), - "Column index out of range."); + ASSERT_RELEASE( + (((trace_length_) - (add_mod__p3_suboffset)) - (1)) >= (0), + "Offset of add_mod/p3 is too big."); - ASSERT_RELEASE( - (((num_columns_first) - (ecdsa__signature0__exponentiate_generator__x_diff_inv_column)) - - (1)) >= (0), - "Column index out of range."); + ASSERT_RELEASE( + (((add_mod__row_ratio) - ((add_mod__p3_suboffset) * (memory_units_row_ratio))) - (1)) >= + (0), + "Offset of add_mod/p3 is too big."); - ASSERT_RELEASE( - (ecdsa__signature0__exponentiate_generator__x_diff_inv_offset) >= (0), - "Offset must be nonnegative."); + ASSERT_RELEASE( + (add_mod__values_ptr_suboffset) >= (0), + "Offset of add_mod/values_ptr must be nonnegative."); - ASSERT_RELEASE( - (((trace_length_) - (ecdsa__signature0__exponentiate_generator__x_diff_inv_offset)) - (1)) >= - (0), - "Offset must be smaller than trace length."); + ASSERT_RELEASE( + (((trace_length_) - (add_mod__values_ptr_suboffset)) - (1)) >= (0), + "Offset of add_mod/values_ptr is too big."); - ASSERT_RELEASE( - (ecdsa__signature0__exponentiate_key__partial_sum__x_column) >= (0), - "Column index out of range."); + ASSERT_RELEASE( + (((add_mod__row_ratio) - ((add_mod__values_ptr_suboffset) * (memory_units_row_ratio))) - + (1)) >= (0), + "Offset of add_mod/values_ptr is too big."); - ASSERT_RELEASE( - (((num_columns_first) - (ecdsa__signature0__exponentiate_key__partial_sum__x_column)) - - (1)) >= (0), - "Column index out of range."); + ASSERT_RELEASE( + (add_mod__offsets_ptr_suboffset) >= (0), + "Offset of add_mod/offsets_ptr must be nonnegative."); - ASSERT_RELEASE( - (ecdsa__signature0__exponentiate_key__partial_sum__x_offset) >= (0), - "Offset must be nonnegative."); + ASSERT_RELEASE( + (((trace_length_) - (add_mod__offsets_ptr_suboffset)) - (1)) >= (0), + "Offset of add_mod/offsets_ptr is too big."); - ASSERT_RELEASE( - (((trace_length_) - (ecdsa__signature0__exponentiate_key__partial_sum__x_offset)) - (1)) >= - (0), - "Offset must be smaller than trace length."); + ASSERT_RELEASE( + (((add_mod__row_ratio) - ((add_mod__offsets_ptr_suboffset) * (memory_units_row_ratio))) - + (1)) >= (0), + "Offset of add_mod/offsets_ptr is too big."); - ASSERT_RELEASE( - (ecdsa__signature0__exponentiate_key__partial_sum__y_column) >= (0), - "Column index out of range."); + ASSERT_RELEASE((add_mod__n_suboffset) >= (0), "Offset of add_mod/n must be nonnegative."); - ASSERT_RELEASE( - (((num_columns_first) - (ecdsa__signature0__exponentiate_key__partial_sum__y_column)) - - (1)) >= (0), - "Column index out of range."); + ASSERT_RELEASE( + (((trace_length_) - (add_mod__n_suboffset)) - (1)) >= (0), + "Offset of add_mod/n is too big."); - ASSERT_RELEASE( - (ecdsa__signature0__exponentiate_key__partial_sum__y_offset) >= (0), - "Offset must be nonnegative."); + ASSERT_RELEASE( + (((add_mod__row_ratio) - ((add_mod__n_suboffset) * (memory_units_row_ratio))) - (1)) >= (0), + "Offset of add_mod/n is too big."); - ASSERT_RELEASE( - (((trace_length_) - (ecdsa__signature0__exponentiate_key__partial_sum__y_offset)) - (1)) >= - (0), - "Offset must be smaller than trace length."); + ASSERT_RELEASE( + (add_mod__a_offset_suboffset) >= (0), "Offset of add_mod/a_offset must be nonnegative."); - ASSERT_RELEASE( - (ecdsa__signature0__exponentiate_key__slope_column) >= (0), "Column index out of range."); + ASSERT_RELEASE( + (((trace_length_) - (add_mod__a_offset_suboffset)) - (1)) >= (0), + "Offset of add_mod/a_offset is too big."); - ASSERT_RELEASE( - (((num_columns_first) - (ecdsa__signature0__exponentiate_key__slope_column)) - (1)) >= (0), - "Column index out of range."); + ASSERT_RELEASE( + (((add_mod__row_ratio) - ((add_mod__a_offset_suboffset) * (memory_units_row_ratio))) - + (1)) >= (0), + "Offset of add_mod/a_offset is too big."); - ASSERT_RELEASE( - (ecdsa__signature0__exponentiate_key__slope_offset) >= (0), "Offset must be nonnegative."); + ASSERT_RELEASE( + (add_mod__b_offset_suboffset) >= (0), "Offset of add_mod/b_offset must be nonnegative."); - ASSERT_RELEASE( - (((trace_length_) - (ecdsa__signature0__exponentiate_key__slope_offset)) - (1)) >= (0), - "Offset must be smaller than trace length."); + ASSERT_RELEASE( + (((trace_length_) - (add_mod__b_offset_suboffset)) - (1)) >= (0), + "Offset of add_mod/b_offset is too big."); - ASSERT_RELEASE( - (ecdsa__signature0__exponentiate_key__selector_column) >= (0), "Column index out of range."); + ASSERT_RELEASE( + (((add_mod__row_ratio) - ((add_mod__b_offset_suboffset) * (memory_units_row_ratio))) - + (1)) >= (0), + "Offset of add_mod/b_offset is too big."); - ASSERT_RELEASE( - (((num_columns_first) - (ecdsa__signature0__exponentiate_key__selector_column)) - (1)) >= (0), - "Column index out of range."); + ASSERT_RELEASE( + (add_mod__c_offset_suboffset) >= (0), "Offset of add_mod/c_offset must be nonnegative."); - ASSERT_RELEASE( - (ecdsa__signature0__exponentiate_key__selector_offset) >= (0), "Offset must be nonnegative."); + ASSERT_RELEASE( + (((trace_length_) - (add_mod__c_offset_suboffset)) - (1)) >= (0), + "Offset of add_mod/c_offset is too big."); - ASSERT_RELEASE( - (((trace_length_) - (ecdsa__signature0__exponentiate_key__selector_offset)) - (1)) >= (0), - "Offset must be smaller than trace length."); + ASSERT_RELEASE( + (((add_mod__row_ratio) - ((add_mod__c_offset_suboffset) * (memory_units_row_ratio))) - + (1)) >= (0), + "Offset of add_mod/c_offset is too big."); - ASSERT_RELEASE( - (ecdsa__signature0__exponentiate_key__x_diff_inv_column) >= (0), - "Column index out of range."); + ASSERT_RELEASE((add_mod__a0_suboffset) >= (0), "Offset of add_mod/a0 must be nonnegative."); - ASSERT_RELEASE( - (((num_columns_first) - (ecdsa__signature0__exponentiate_key__x_diff_inv_column)) - (1)) >= - (0), - "Column index out of range."); + ASSERT_RELEASE( + (((trace_length_) - (add_mod__a0_suboffset)) - (1)) >= (0), + "Offset of add_mod/a0 is too big."); - ASSERT_RELEASE( - (ecdsa__signature0__exponentiate_key__x_diff_inv_offset) >= (0), - "Offset must be nonnegative."); + ASSERT_RELEASE( + (((add_mod__row_ratio) - ((add_mod__a0_suboffset) * (memory_units_row_ratio))) - (1)) >= + (0), + "Offset of add_mod/a0 is too big."); - ASSERT_RELEASE( - (((trace_length_) - (ecdsa__signature0__exponentiate_key__x_diff_inv_offset)) - (1)) >= (0), - "Offset must be smaller than trace length."); + ASSERT_RELEASE((add_mod__a1_suboffset) >= (0), "Offset of add_mod/a1 must be nonnegative."); - ASSERT_RELEASE( - (ecdsa__signature0__add_results_slope_column) >= (0), "Column index out of range."); + ASSERT_RELEASE( + (((trace_length_) - (add_mod__a1_suboffset)) - (1)) >= (0), + "Offset of add_mod/a1 is too big."); - ASSERT_RELEASE( - (((num_columns_first) - (ecdsa__signature0__add_results_slope_column)) - (1)) >= (0), - "Column index out of range."); + ASSERT_RELEASE( + (((add_mod__row_ratio) - ((add_mod__a1_suboffset) * (memory_units_row_ratio))) - (1)) >= + (0), + "Offset of add_mod/a1 is too big."); - ASSERT_RELEASE( - (ecdsa__signature0__add_results_slope_offset) >= (0), "Offset must be nonnegative."); + ASSERT_RELEASE((add_mod__a2_suboffset) >= (0), "Offset of add_mod/a2 must be nonnegative."); - ASSERT_RELEASE( - (((trace_length_) - (ecdsa__signature0__add_results_slope_offset)) - (1)) >= (0), - "Offset must be smaller than trace length."); + ASSERT_RELEASE( + (((trace_length_) - (add_mod__a2_suboffset)) - (1)) >= (0), + "Offset of add_mod/a2 is too big."); - ASSERT_RELEASE((ecdsa__signature0__add_results_inv_column) >= (0), "Column index out of range."); + ASSERT_RELEASE( + (((add_mod__row_ratio) - ((add_mod__a2_suboffset) * (memory_units_row_ratio))) - (1)) >= + (0), + "Offset of add_mod/a2 is too big."); - ASSERT_RELEASE( - (((num_columns_first) - (ecdsa__signature0__add_results_inv_column)) - (1)) >= (0), - "Column index out of range."); + ASSERT_RELEASE((add_mod__a3_suboffset) >= (0), "Offset of add_mod/a3 must be nonnegative."); - ASSERT_RELEASE((ecdsa__signature0__add_results_inv_offset) >= (0), "Offset must be nonnegative."); + ASSERT_RELEASE( + (((trace_length_) - (add_mod__a3_suboffset)) - (1)) >= (0), + "Offset of add_mod/a3 is too big."); - ASSERT_RELEASE( - (((trace_length_) - (ecdsa__signature0__add_results_inv_offset)) - (1)) >= (0), - "Offset must be smaller than trace length."); + ASSERT_RELEASE( + (((add_mod__row_ratio) - ((add_mod__a3_suboffset) * (memory_units_row_ratio))) - (1)) >= + (0), + "Offset of add_mod/a3 is too big."); - ASSERT_RELEASE((ecdsa__signature0__extract_r_slope_column) >= (0), "Column index out of range."); + ASSERT_RELEASE((add_mod__b0_suboffset) >= (0), "Offset of add_mod/b0 must be nonnegative."); - ASSERT_RELEASE( - (((num_columns_first) - (ecdsa__signature0__extract_r_slope_column)) - (1)) >= (0), - "Column index out of range."); + ASSERT_RELEASE( + (((trace_length_) - (add_mod__b0_suboffset)) - (1)) >= (0), + "Offset of add_mod/b0 is too big."); - ASSERT_RELEASE((ecdsa__signature0__extract_r_slope_offset) >= (0), "Offset must be nonnegative."); + ASSERT_RELEASE( + (((add_mod__row_ratio) - ((add_mod__b0_suboffset) * (memory_units_row_ratio))) - (1)) >= + (0), + "Offset of add_mod/b0 is too big."); - ASSERT_RELEASE( - (((trace_length_) - (ecdsa__signature0__extract_r_slope_offset)) - (1)) >= (0), - "Offset must be smaller than trace length."); + ASSERT_RELEASE((add_mod__b1_suboffset) >= (0), "Offset of add_mod/b1 must be nonnegative."); - ASSERT_RELEASE((ecdsa__signature0__extract_r_inv_column) >= (0), "Column index out of range."); + ASSERT_RELEASE( + (((trace_length_) - (add_mod__b1_suboffset)) - (1)) >= (0), + "Offset of add_mod/b1 is too big."); - ASSERT_RELEASE( - (((num_columns_first) - (ecdsa__signature0__extract_r_inv_column)) - (1)) >= (0), - "Column index out of range."); + ASSERT_RELEASE( + (((add_mod__row_ratio) - ((add_mod__b1_suboffset) * (memory_units_row_ratio))) - (1)) >= + (0), + "Offset of add_mod/b1 is too big."); - ASSERT_RELEASE((ecdsa__signature0__extract_r_inv_offset) >= (0), "Offset must be nonnegative."); + ASSERT_RELEASE((add_mod__b2_suboffset) >= (0), "Offset of add_mod/b2 must be nonnegative."); - ASSERT_RELEASE( - (((trace_length_) - (ecdsa__signature0__extract_r_inv_offset)) - (1)) >= (0), - "Offset must be smaller than trace length."); + ASSERT_RELEASE( + (((trace_length_) - (add_mod__b2_suboffset)) - (1)) >= (0), + "Offset of add_mod/b2 is too big."); - ASSERT_RELEASE((ecdsa__signature0__z_inv_column) >= (0), "Column index out of range."); + ASSERT_RELEASE( + (((add_mod__row_ratio) - ((add_mod__b2_suboffset) * (memory_units_row_ratio))) - (1)) >= + (0), + "Offset of add_mod/b2 is too big."); - ASSERT_RELEASE( - (((num_columns_first) - (ecdsa__signature0__z_inv_column)) - (1)) >= (0), - "Column index out of range."); + ASSERT_RELEASE((add_mod__b3_suboffset) >= (0), "Offset of add_mod/b3 must be nonnegative."); - ASSERT_RELEASE((ecdsa__signature0__z_inv_offset) >= (0), "Offset must be nonnegative."); + ASSERT_RELEASE( + (((trace_length_) - (add_mod__b3_suboffset)) - (1)) >= (0), + "Offset of add_mod/b3 is too big."); - ASSERT_RELEASE( - (((trace_length_) - (ecdsa__signature0__z_inv_offset)) - (1)) >= (0), - "Offset must be smaller than trace length."); + ASSERT_RELEASE( + (((add_mod__row_ratio) - ((add_mod__b3_suboffset) * (memory_units_row_ratio))) - (1)) >= + (0), + "Offset of add_mod/b3 is too big."); - ASSERT_RELEASE((ecdsa__signature0__r_w_inv_column) >= (0), "Column index out of range."); + ASSERT_RELEASE((add_mod__c0_suboffset) >= (0), "Offset of add_mod/c0 must be nonnegative."); - ASSERT_RELEASE( - (((num_columns_first) - (ecdsa__signature0__r_w_inv_column)) - (1)) >= (0), - "Column index out of range."); + ASSERT_RELEASE( + (((trace_length_) - (add_mod__c0_suboffset)) - (1)) >= (0), + "Offset of add_mod/c0 is too big."); - ASSERT_RELEASE((ecdsa__signature0__r_w_inv_offset) >= (0), "Offset must be nonnegative."); + ASSERT_RELEASE( + (((add_mod__row_ratio) - ((add_mod__c0_suboffset) * (memory_units_row_ratio))) - (1)) >= + (0), + "Offset of add_mod/c0 is too big."); - ASSERT_RELEASE( - (((trace_length_) - (ecdsa__signature0__r_w_inv_offset)) - (1)) >= (0), - "Offset must be smaller than trace length."); + ASSERT_RELEASE((add_mod__c1_suboffset) >= (0), "Offset of add_mod/c1 must be nonnegative."); - ASSERT_RELEASE((ecdsa__signature0__q_x_squared_column) >= (0), "Column index out of range."); + ASSERT_RELEASE( + (((trace_length_) - (add_mod__c1_suboffset)) - (1)) >= (0), + "Offset of add_mod/c1 is too big."); - ASSERT_RELEASE( - (((num_columns_first) - (ecdsa__signature0__q_x_squared_column)) - (1)) >= (0), - "Column index out of range."); + ASSERT_RELEASE( + (((add_mod__row_ratio) - ((add_mod__c1_suboffset) * (memory_units_row_ratio))) - (1)) >= + (0), + "Offset of add_mod/c1 is too big."); - ASSERT_RELEASE((ecdsa__signature0__q_x_squared_offset) >= (0), "Offset must be nonnegative."); + ASSERT_RELEASE((add_mod__c2_suboffset) >= (0), "Offset of add_mod/c2 must be nonnegative."); - ASSERT_RELEASE( - (((trace_length_) - (ecdsa__signature0__q_x_squared_offset)) - (1)) >= (0), - "Offset must be smaller than trace length."); + ASSERT_RELEASE( + (((trace_length_) - (add_mod__c2_suboffset)) - (1)) >= (0), + "Offset of add_mod/c2 is too big."); - ASSERT_RELEASE((ec_op__doubled_points__x_column) >= (0), "Column index out of range."); + ASSERT_RELEASE( + (((add_mod__row_ratio) - ((add_mod__c2_suboffset) * (memory_units_row_ratio))) - (1)) >= + (0), + "Offset of add_mod/c2 is too big."); - ASSERT_RELEASE( - (((num_columns_first) - (ec_op__doubled_points__x_column)) - (1)) >= (0), - "Column index out of range."); + ASSERT_RELEASE((add_mod__c3_suboffset) >= (0), "Offset of add_mod/c3 must be nonnegative."); - ASSERT_RELEASE((ec_op__doubled_points__x_offset) >= (0), "Offset must be nonnegative."); + ASSERT_RELEASE( + (((trace_length_) - (add_mod__c3_suboffset)) - (1)) >= (0), + "Offset of add_mod/c3 is too big."); - ASSERT_RELEASE( - (((trace_length_) - (ec_op__doubled_points__x_offset)) - (1)) >= (0), - "Offset must be smaller than trace length."); + ASSERT_RELEASE( + (((add_mod__row_ratio) - ((add_mod__c3_suboffset) * (memory_units_row_ratio))) - (1)) >= + (0), + "Offset of add_mod/c3 is too big."); + } - ASSERT_RELEASE((ec_op__doubled_points__y_column) >= (0), "Column index out of range."); + if ((uses_mul_mod_builtin) != (0)) { + ASSERT_RELEASE( + IsPowerOfTwo(mul_mod__row_ratio), + "Row ratio should be a power of 2, smaller than trace length."); - ASSERT_RELEASE( - (((num_columns_first) - (ec_op__doubled_points__y_column)) - (1)) >= (0), - "Column index out of range."); + ASSERT_RELEASE( + IsPowerOfTwo(SafeDiv(trace_length_, mul_mod__row_ratio)), + "Dimension should be a power of 2."); - ASSERT_RELEASE((ec_op__doubled_points__y_offset) >= (0), "Offset must be nonnegative."); + ASSERT_RELEASE( + ((SafeDiv(trace_length_, mul_mod__row_ratio)) - (1)) >= (0), "Index out of range."); - ASSERT_RELEASE( - (((trace_length_) - (ec_op__doubled_points__y_offset)) - (1)) >= (0), - "Offset must be smaller than trace length."); + ASSERT_RELEASE( + (SafeDiv(trace_length_, mul_mod__row_ratio)) >= (0), "Index should be non negative."); - ASSERT_RELEASE((ec_op__doubling_slope_column) >= (0), "Column index out of range."); + ASSERT_RELEASE( + IsPowerOfTwo(trace_length_), + "Coset step (MemberExpression(trace_length)) must be a power of two"); - ASSERT_RELEASE( - (((num_columns_first) - (ec_op__doubling_slope_column)) - (1)) >= (0), - "Column index out of range."); + ASSERT_RELEASE((mul_mod__p0_suboffset) >= (0), "Offset of mul_mod/p0 must be nonnegative."); - ASSERT_RELEASE((ec_op__doubling_slope_offset) >= (0), "Offset must be nonnegative."); + ASSERT_RELEASE( + (((trace_length_) - (mul_mod__p0_suboffset)) - (1)) >= (0), + "Offset of mul_mod/p0 is too big."); - ASSERT_RELEASE( - (((trace_length_) - (ec_op__doubling_slope_offset)) - (1)) >= (0), - "Offset must be smaller than trace length."); + ASSERT_RELEASE( + (((mul_mod__row_ratio) - ((mul_mod__p0_suboffset) * (memory_units_row_ratio))) - (1)) >= + (0), + "Offset of mul_mod/p0 is too big."); - ASSERT_RELEASE( - (ec_op__ec_subset_sum__partial_sum__x_column) >= (0), "Column index out of range."); + ASSERT_RELEASE((mul_mod__p1_suboffset) >= (0), "Offset of mul_mod/p1 must be nonnegative."); - ASSERT_RELEASE( - (((num_columns_first) - (ec_op__ec_subset_sum__partial_sum__x_column)) - (1)) >= (0), - "Column index out of range."); + ASSERT_RELEASE( + (((trace_length_) - (mul_mod__p1_suboffset)) - (1)) >= (0), + "Offset of mul_mod/p1 is too big."); - ASSERT_RELEASE( - (ec_op__ec_subset_sum__partial_sum__x_offset) >= (0), "Offset must be nonnegative."); + ASSERT_RELEASE( + (((mul_mod__row_ratio) - ((mul_mod__p1_suboffset) * (memory_units_row_ratio))) - (1)) >= + (0), + "Offset of mul_mod/p1 is too big."); - ASSERT_RELEASE( - (((trace_length_) - (ec_op__ec_subset_sum__partial_sum__x_offset)) - (1)) >= (0), - "Offset must be smaller than trace length."); + ASSERT_RELEASE((mul_mod__p2_suboffset) >= (0), "Offset of mul_mod/p2 must be nonnegative."); - ASSERT_RELEASE( - (ec_op__ec_subset_sum__partial_sum__y_column) >= (0), "Column index out of range."); + ASSERT_RELEASE( + (((trace_length_) - (mul_mod__p2_suboffset)) - (1)) >= (0), + "Offset of mul_mod/p2 is too big."); - ASSERT_RELEASE( - (((num_columns_first) - (ec_op__ec_subset_sum__partial_sum__y_column)) - (1)) >= (0), - "Column index out of range."); + ASSERT_RELEASE( + (((mul_mod__row_ratio) - ((mul_mod__p2_suboffset) * (memory_units_row_ratio))) - (1)) >= + (0), + "Offset of mul_mod/p2 is too big."); - ASSERT_RELEASE( - (ec_op__ec_subset_sum__partial_sum__y_offset) >= (0), "Offset must be nonnegative."); + ASSERT_RELEASE((mul_mod__p3_suboffset) >= (0), "Offset of mul_mod/p3 must be nonnegative."); - ASSERT_RELEASE( - (((trace_length_) - (ec_op__ec_subset_sum__partial_sum__y_offset)) - (1)) >= (0), - "Offset must be smaller than trace length."); + ASSERT_RELEASE( + (((trace_length_) - (mul_mod__p3_suboffset)) - (1)) >= (0), + "Offset of mul_mod/p3 is too big."); - ASSERT_RELEASE((ec_op__ec_subset_sum__slope_column) >= (0), "Column index out of range."); + ASSERT_RELEASE( + (((mul_mod__row_ratio) - ((mul_mod__p3_suboffset) * (memory_units_row_ratio))) - (1)) >= + (0), + "Offset of mul_mod/p3 is too big."); - ASSERT_RELEASE( - (((num_columns_first) - (ec_op__ec_subset_sum__slope_column)) - (1)) >= (0), - "Column index out of range."); + ASSERT_RELEASE( + (mul_mod__values_ptr_suboffset) >= (0), + "Offset of mul_mod/values_ptr must be nonnegative."); - ASSERT_RELEASE((ec_op__ec_subset_sum__slope_offset) >= (0), "Offset must be nonnegative."); + ASSERT_RELEASE( + (((trace_length_) - (mul_mod__values_ptr_suboffset)) - (1)) >= (0), + "Offset of mul_mod/values_ptr is too big."); - ASSERT_RELEASE( - (((trace_length_) - (ec_op__ec_subset_sum__slope_offset)) - (1)) >= (0), - "Offset must be smaller than trace length."); + ASSERT_RELEASE( + (((mul_mod__row_ratio) - ((mul_mod__values_ptr_suboffset) * (memory_units_row_ratio))) - + (1)) >= (0), + "Offset of mul_mod/values_ptr is too big."); - ASSERT_RELEASE((ec_op__ec_subset_sum__selector_column) >= (0), "Column index out of range."); + ASSERT_RELEASE( + (mul_mod__offsets_ptr_suboffset) >= (0), + "Offset of mul_mod/offsets_ptr must be nonnegative."); - ASSERT_RELEASE( - (((num_columns_first) - (ec_op__ec_subset_sum__selector_column)) - (1)) >= (0), - "Column index out of range."); + ASSERT_RELEASE( + (((trace_length_) - (mul_mod__offsets_ptr_suboffset)) - (1)) >= (0), + "Offset of mul_mod/offsets_ptr is too big."); - ASSERT_RELEASE((ec_op__ec_subset_sum__selector_offset) >= (0), "Offset must be nonnegative."); + ASSERT_RELEASE( + (((mul_mod__row_ratio) - ((mul_mod__offsets_ptr_suboffset) * (memory_units_row_ratio))) - + (1)) >= (0), + "Offset of mul_mod/offsets_ptr is too big."); - ASSERT_RELEASE( - (((trace_length_) - (ec_op__ec_subset_sum__selector_offset)) - (1)) >= (0), - "Offset must be smaller than trace length."); + ASSERT_RELEASE((mul_mod__n_suboffset) >= (0), "Offset of mul_mod/n must be nonnegative."); - ASSERT_RELEASE((ec_op__ec_subset_sum__x_diff_inv_column) >= (0), "Column index out of range."); + ASSERT_RELEASE( + (((trace_length_) - (mul_mod__n_suboffset)) - (1)) >= (0), + "Offset of mul_mod/n is too big."); - ASSERT_RELEASE( - (((num_columns_first) - (ec_op__ec_subset_sum__x_diff_inv_column)) - (1)) >= (0), - "Column index out of range."); + ASSERT_RELEASE( + (((mul_mod__row_ratio) - ((mul_mod__n_suboffset) * (memory_units_row_ratio))) - (1)) >= (0), + "Offset of mul_mod/n is too big."); - ASSERT_RELEASE((ec_op__ec_subset_sum__x_diff_inv_offset) >= (0), "Offset must be nonnegative."); + ASSERT_RELEASE( + (mul_mod__a_offset_suboffset) >= (0), "Offset of mul_mod/a_offset must be nonnegative."); - ASSERT_RELEASE( - (((trace_length_) - (ec_op__ec_subset_sum__x_diff_inv_offset)) - (1)) >= (0), - "Offset must be smaller than trace length."); + ASSERT_RELEASE( + (((trace_length_) - (mul_mod__a_offset_suboffset)) - (1)) >= (0), + "Offset of mul_mod/a_offset is too big."); - ASSERT_RELEASE( - (ec_op__ec_subset_sum__bit_unpacking__prod_ones196_column) >= (0), - "Column index out of range."); + ASSERT_RELEASE( + (((mul_mod__row_ratio) - ((mul_mod__a_offset_suboffset) * (memory_units_row_ratio))) - + (1)) >= (0), + "Offset of mul_mod/a_offset is too big."); - ASSERT_RELEASE( - (((num_columns_first) - (ec_op__ec_subset_sum__bit_unpacking__prod_ones196_column)) - (1)) >= - (0), - "Column index out of range."); + ASSERT_RELEASE( + (mul_mod__b_offset_suboffset) >= (0), "Offset of mul_mod/b_offset must be nonnegative."); - ASSERT_RELEASE( - (ec_op__ec_subset_sum__bit_unpacking__prod_ones196_offset) >= (0), - "Offset must be nonnegative."); + ASSERT_RELEASE( + (((trace_length_) - (mul_mod__b_offset_suboffset)) - (1)) >= (0), + "Offset of mul_mod/b_offset is too big."); - ASSERT_RELEASE( - (((trace_length_) - (ec_op__ec_subset_sum__bit_unpacking__prod_ones196_offset)) - (1)) >= (0), - "Offset must be smaller than trace length."); + ASSERT_RELEASE( + (((mul_mod__row_ratio) - ((mul_mod__b_offset_suboffset) * (memory_units_row_ratio))) - + (1)) >= (0), + "Offset of mul_mod/b_offset is too big."); - ASSERT_RELEASE( - (ec_op__ec_subset_sum__bit_unpacking__prod_ones192_column) >= (0), - "Column index out of range."); + ASSERT_RELEASE( + (mul_mod__c_offset_suboffset) >= (0), "Offset of mul_mod/c_offset must be nonnegative."); - ASSERT_RELEASE( - (((num_columns_first) - (ec_op__ec_subset_sum__bit_unpacking__prod_ones192_column)) - (1)) >= - (0), - "Column index out of range."); + ASSERT_RELEASE( + (((trace_length_) - (mul_mod__c_offset_suboffset)) - (1)) >= (0), + "Offset of mul_mod/c_offset is too big."); - ASSERT_RELEASE( - (ec_op__ec_subset_sum__bit_unpacking__prod_ones192_offset) >= (0), - "Offset must be nonnegative."); + ASSERT_RELEASE( + (((mul_mod__row_ratio) - ((mul_mod__c_offset_suboffset) * (memory_units_row_ratio))) - + (1)) >= (0), + "Offset of mul_mod/c_offset is too big."); - ASSERT_RELEASE( - (((trace_length_) - (ec_op__ec_subset_sum__bit_unpacking__prod_ones192_offset)) - (1)) >= (0), - "Offset must be smaller than trace length."); + ASSERT_RELEASE((mul_mod__a0_suboffset) >= (0), "Offset of mul_mod/a0 must be nonnegative."); - ASSERT_RELEASE( - (keccak__keccak__parse_to_diluted__reshaped_intermediate_column) >= (0), - "Column index out of range."); + ASSERT_RELEASE( + (((trace_length_) - (mul_mod__a0_suboffset)) - (1)) >= (0), + "Offset of mul_mod/a0 is too big."); - ASSERT_RELEASE( - (((num_columns_first) - (keccak__keccak__parse_to_diluted__reshaped_intermediate_column)) - - (1)) >= (0), - "Column index out of range."); + ASSERT_RELEASE( + (((mul_mod__row_ratio) - ((mul_mod__a0_suboffset) * (memory_units_row_ratio))) - (1)) >= + (0), + "Offset of mul_mod/a0 is too big."); - ASSERT_RELEASE( - (keccak__keccak__parse_to_diluted__reshaped_intermediate_offset) >= (0), - "Offset must be nonnegative."); + ASSERT_RELEASE((mul_mod__a1_suboffset) >= (0), "Offset of mul_mod/a1 must be nonnegative."); - ASSERT_RELEASE( - (((trace_length_) - (keccak__keccak__parse_to_diluted__reshaped_intermediate_offset)) - - (1)) >= (0), - "Offset must be smaller than trace length."); + ASSERT_RELEASE( + (((trace_length_) - (mul_mod__a1_suboffset)) - (1)) >= (0), + "Offset of mul_mod/a1 is too big."); - ASSERT_RELEASE( - (keccak__keccak__parse_to_diluted__final_reshaped_input_column) >= (0), - "Column index out of range."); + ASSERT_RELEASE( + (((mul_mod__row_ratio) - ((mul_mod__a1_suboffset) * (memory_units_row_ratio))) - (1)) >= + (0), + "Offset of mul_mod/a1 is too big."); - ASSERT_RELEASE( - (((num_columns_first) - (keccak__keccak__parse_to_diluted__final_reshaped_input_column)) - - (1)) >= (0), - "Column index out of range."); + ASSERT_RELEASE((mul_mod__a2_suboffset) >= (0), "Offset of mul_mod/a2 must be nonnegative."); - ASSERT_RELEASE( - (keccak__keccak__parse_to_diluted__final_reshaped_input_offset) >= (0), - "Offset must be nonnegative."); + ASSERT_RELEASE( + (((trace_length_) - (mul_mod__a2_suboffset)) - (1)) >= (0), + "Offset of mul_mod/a2 is too big."); - ASSERT_RELEASE( - (((trace_length_) - (keccak__keccak__parse_to_diluted__final_reshaped_input_offset)) - (1)) >= - (0), - "Offset must be smaller than trace length."); + ASSERT_RELEASE( + (((mul_mod__row_ratio) - ((mul_mod__a2_suboffset) * (memory_units_row_ratio))) - (1)) >= + (0), + "Offset of mul_mod/a2 is too big."); - ASSERT_RELEASE( - (keccak__keccak__parse_to_diluted__cumulative_sum_column) >= (0), - "Column index out of range."); + ASSERT_RELEASE((mul_mod__a3_suboffset) >= (0), "Offset of mul_mod/a3 must be nonnegative."); - ASSERT_RELEASE( - (((num_columns_first) - (keccak__keccak__parse_to_diluted__cumulative_sum_column)) - (1)) >= - (0), - "Column index out of range."); + ASSERT_RELEASE( + (((trace_length_) - (mul_mod__a3_suboffset)) - (1)) >= (0), + "Offset of mul_mod/a3 is too big."); - ASSERT_RELEASE( - (keccak__keccak__parse_to_diluted__cumulative_sum_offset) >= (0), - "Offset must be nonnegative."); + ASSERT_RELEASE( + (((mul_mod__row_ratio) - ((mul_mod__a3_suboffset) * (memory_units_row_ratio))) - (1)) >= + (0), + "Offset of mul_mod/a3 is too big."); - ASSERT_RELEASE( - (((trace_length_) - (keccak__keccak__parse_to_diluted__cumulative_sum_offset)) - (1)) >= (0), - "Offset must be smaller than trace length."); + ASSERT_RELEASE((mul_mod__b0_suboffset) >= (0), "Offset of mul_mod/b0 must be nonnegative."); - ASSERT_RELEASE((keccak__keccak__rotated_parity0_column) >= (0), "Column index out of range."); + ASSERT_RELEASE( + (((trace_length_) - (mul_mod__b0_suboffset)) - (1)) >= (0), + "Offset of mul_mod/b0 is too big."); - ASSERT_RELEASE( - (((num_columns_first) - (keccak__keccak__rotated_parity0_column)) - (1)) >= (0), - "Column index out of range."); + ASSERT_RELEASE( + (((mul_mod__row_ratio) - ((mul_mod__b0_suboffset) * (memory_units_row_ratio))) - (1)) >= + (0), + "Offset of mul_mod/b0 is too big."); - ASSERT_RELEASE((keccak__keccak__rotated_parity0_offset) >= (0), "Offset must be nonnegative."); + ASSERT_RELEASE((mul_mod__b1_suboffset) >= (0), "Offset of mul_mod/b1 must be nonnegative."); - ASSERT_RELEASE( - (((trace_length_) - (keccak__keccak__rotated_parity0_offset)) - (1)) >= (0), - "Offset must be smaller than trace length."); + ASSERT_RELEASE( + (((trace_length_) - (mul_mod__b1_suboffset)) - (1)) >= (0), + "Offset of mul_mod/b1 is too big."); - ASSERT_RELEASE((keccak__keccak__rotated_parity1_column) >= (0), "Column index out of range."); + ASSERT_RELEASE( + (((mul_mod__row_ratio) - ((mul_mod__b1_suboffset) * (memory_units_row_ratio))) - (1)) >= + (0), + "Offset of mul_mod/b1 is too big."); - ASSERT_RELEASE( - (((num_columns_first) - (keccak__keccak__rotated_parity1_column)) - (1)) >= (0), - "Column index out of range."); + ASSERT_RELEASE((mul_mod__b2_suboffset) >= (0), "Offset of mul_mod/b2 must be nonnegative."); - ASSERT_RELEASE((keccak__keccak__rotated_parity1_offset) >= (0), "Offset must be nonnegative."); + ASSERT_RELEASE( + (((trace_length_) - (mul_mod__b2_suboffset)) - (1)) >= (0), + "Offset of mul_mod/b2 is too big."); - ASSERT_RELEASE( - (((trace_length_) - (keccak__keccak__rotated_parity1_offset)) - (1)) >= (0), - "Offset must be smaller than trace length."); + ASSERT_RELEASE( + (((mul_mod__row_ratio) - ((mul_mod__b2_suboffset) * (memory_units_row_ratio))) - (1)) >= + (0), + "Offset of mul_mod/b2 is too big."); - ASSERT_RELEASE((keccak__keccak__rotated_parity2_column) >= (0), "Column index out of range."); + ASSERT_RELEASE((mul_mod__b3_suboffset) >= (0), "Offset of mul_mod/b3 must be nonnegative."); - ASSERT_RELEASE( - (((num_columns_first) - (keccak__keccak__rotated_parity2_column)) - (1)) >= (0), - "Column index out of range."); + ASSERT_RELEASE( + (((trace_length_) - (mul_mod__b3_suboffset)) - (1)) >= (0), + "Offset of mul_mod/b3 is too big."); - ASSERT_RELEASE((keccak__keccak__rotated_parity2_offset) >= (0), "Offset must be nonnegative."); + ASSERT_RELEASE( + (((mul_mod__row_ratio) - ((mul_mod__b3_suboffset) * (memory_units_row_ratio))) - (1)) >= + (0), + "Offset of mul_mod/b3 is too big."); - ASSERT_RELEASE( - (((trace_length_) - (keccak__keccak__rotated_parity2_offset)) - (1)) >= (0), - "Offset must be smaller than trace length."); + ASSERT_RELEASE((mul_mod__c0_suboffset) >= (0), "Offset of mul_mod/c0 must be nonnegative."); - ASSERT_RELEASE((keccak__keccak__rotated_parity3_column) >= (0), "Column index out of range."); + ASSERT_RELEASE( + (((trace_length_) - (mul_mod__c0_suboffset)) - (1)) >= (0), + "Offset of mul_mod/c0 is too big."); - ASSERT_RELEASE( - (((num_columns_first) - (keccak__keccak__rotated_parity3_column)) - (1)) >= (0), - "Column index out of range."); + ASSERT_RELEASE( + (((mul_mod__row_ratio) - ((mul_mod__c0_suboffset) * (memory_units_row_ratio))) - (1)) >= + (0), + "Offset of mul_mod/c0 is too big."); - ASSERT_RELEASE((keccak__keccak__rotated_parity3_offset) >= (0), "Offset must be nonnegative."); + ASSERT_RELEASE((mul_mod__c1_suboffset) >= (0), "Offset of mul_mod/c1 must be nonnegative."); - ASSERT_RELEASE( - (((trace_length_) - (keccak__keccak__rotated_parity3_offset)) - (1)) >= (0), - "Offset must be smaller than trace length."); + ASSERT_RELEASE( + (((trace_length_) - (mul_mod__c1_suboffset)) - (1)) >= (0), + "Offset of mul_mod/c1 is too big."); - ASSERT_RELEASE((keccak__keccak__rotated_parity4_column) >= (0), "Column index out of range."); + ASSERT_RELEASE( + (((mul_mod__row_ratio) - ((mul_mod__c1_suboffset) * (memory_units_row_ratio))) - (1)) >= + (0), + "Offset of mul_mod/c1 is too big."); - ASSERT_RELEASE( - (((num_columns_first) - (keccak__keccak__rotated_parity4_column)) - (1)) >= (0), - "Column index out of range."); + ASSERT_RELEASE((mul_mod__c2_suboffset) >= (0), "Offset of mul_mod/c2 must be nonnegative."); - ASSERT_RELEASE((keccak__keccak__rotated_parity4_offset) >= (0), "Offset must be nonnegative."); + ASSERT_RELEASE( + (((trace_length_) - (mul_mod__c2_suboffset)) - (1)) >= (0), + "Offset of mul_mod/c2 is too big."); - ASSERT_RELEASE( - (((trace_length_) - (keccak__keccak__rotated_parity4_offset)) - (1)) >= (0), - "Offset must be smaller than trace length."); + ASSERT_RELEASE( + (((mul_mod__row_ratio) - ((mul_mod__c2_suboffset) * (memory_units_row_ratio))) - (1)) >= + (0), + "Offset of mul_mod/c2 is too big."); - ASSERT_RELEASE( - (poseidon__poseidon__full_rounds_state0_column) >= (0), "Column index out of range."); + ASSERT_RELEASE((mul_mod__c3_suboffset) >= (0), "Offset of mul_mod/c3 must be nonnegative."); - ASSERT_RELEASE( - (((num_columns_first) - (poseidon__poseidon__full_rounds_state0_column)) - (1)) >= (0), - "Column index out of range."); + ASSERT_RELEASE( + (((trace_length_) - (mul_mod__c3_suboffset)) - (1)) >= (0), + "Offset of mul_mod/c3 is too big."); - ASSERT_RELEASE( - (poseidon__poseidon__full_rounds_state0_offset) >= (0), "Offset must be nonnegative."); + ASSERT_RELEASE( + (((mul_mod__row_ratio) - ((mul_mod__c3_suboffset) * (memory_units_row_ratio))) - (1)) >= + (0), + "Offset of mul_mod/c3 is too big."); - ASSERT_RELEASE( - (((trace_length_) - (poseidon__poseidon__full_rounds_state0_offset)) - (1)) >= (0), - "Offset must be smaller than trace length."); + ASSERT_RELEASE( + (mul_mod__p_multiplier0__part0_suboffset) >= (0), + "Offset of mul_mod/p_multiplier0/part0 must be nonnegative."); - ASSERT_RELEASE( - (poseidon__poseidon__full_rounds_state1_column) >= (0), "Column index out of range."); + ASSERT_RELEASE( + (((trace_length_) - (mul_mod__p_multiplier0__part0_suboffset)) - (1)) >= (0), + "Offset of mul_mod/p_multiplier0/part0 is too big."); - ASSERT_RELEASE( - (((num_columns_first) - (poseidon__poseidon__full_rounds_state1_column)) - (1)) >= (0), - "Column index out of range."); + ASSERT_RELEASE( + (((mul_mod__row_ratio) - + ((mul_mod__p_multiplier0__part0_suboffset) * (range_check_units_row_ratio))) - + (1)) >= (0), + "Offset of mul_mod/p_multiplier0/part0 is too big."); - ASSERT_RELEASE( - (poseidon__poseidon__full_rounds_state1_offset) >= (0), "Offset must be nonnegative."); + ASSERT_RELEASE( + (mul_mod__p_multiplier0__part1_suboffset) >= (0), + "Offset of mul_mod/p_multiplier0/part1 must be nonnegative."); - ASSERT_RELEASE( - (((trace_length_) - (poseidon__poseidon__full_rounds_state1_offset)) - (1)) >= (0), - "Offset must be smaller than trace length."); + ASSERT_RELEASE( + (((trace_length_) - (mul_mod__p_multiplier0__part1_suboffset)) - (1)) >= (0), + "Offset of mul_mod/p_multiplier0/part1 is too big."); - ASSERT_RELEASE( - (poseidon__poseidon__full_rounds_state2_column) >= (0), "Column index out of range."); + ASSERT_RELEASE( + (((mul_mod__row_ratio) - + ((mul_mod__p_multiplier0__part1_suboffset) * (range_check_units_row_ratio))) - + (1)) >= (0), + "Offset of mul_mod/p_multiplier0/part1 is too big."); - ASSERT_RELEASE( - (((num_columns_first) - (poseidon__poseidon__full_rounds_state2_column)) - (1)) >= (0), - "Column index out of range."); + ASSERT_RELEASE( + (mul_mod__p_multiplier0__part2_suboffset) >= (0), + "Offset of mul_mod/p_multiplier0/part2 must be nonnegative."); - ASSERT_RELEASE( - (poseidon__poseidon__full_rounds_state2_offset) >= (0), "Offset must be nonnegative."); + ASSERT_RELEASE( + (((trace_length_) - (mul_mod__p_multiplier0__part2_suboffset)) - (1)) >= (0), + "Offset of mul_mod/p_multiplier0/part2 is too big."); - ASSERT_RELEASE( - (((trace_length_) - (poseidon__poseidon__full_rounds_state2_offset)) - (1)) >= (0), - "Offset must be smaller than trace length."); + ASSERT_RELEASE( + (((mul_mod__row_ratio) - + ((mul_mod__p_multiplier0__part2_suboffset) * (range_check_units_row_ratio))) - + (1)) >= (0), + "Offset of mul_mod/p_multiplier0/part2 is too big."); - ASSERT_RELEASE( - (poseidon__poseidon__full_rounds_state0_squared_column) >= (0), "Column index out of range."); + ASSERT_RELEASE( + (mul_mod__p_multiplier0__part3_suboffset) >= (0), + "Offset of mul_mod/p_multiplier0/part3 must be nonnegative."); - ASSERT_RELEASE( - (((num_columns_first) - (poseidon__poseidon__full_rounds_state0_squared_column)) - (1)) >= - (0), - "Column index out of range."); + ASSERT_RELEASE( + (((trace_length_) - (mul_mod__p_multiplier0__part3_suboffset)) - (1)) >= (0), + "Offset of mul_mod/p_multiplier0/part3 is too big."); - ASSERT_RELEASE( - (poseidon__poseidon__full_rounds_state0_squared_offset) >= (0), - "Offset must be nonnegative."); + ASSERT_RELEASE( + (((mul_mod__row_ratio) - + ((mul_mod__p_multiplier0__part3_suboffset) * (range_check_units_row_ratio))) - + (1)) >= (0), + "Offset of mul_mod/p_multiplier0/part3 is too big."); - ASSERT_RELEASE( - (((trace_length_) - (poseidon__poseidon__full_rounds_state0_squared_offset)) - (1)) >= (0), - "Offset must be smaller than trace length."); + ASSERT_RELEASE( + (mul_mod__p_multiplier0__part4_suboffset) >= (0), + "Offset of mul_mod/p_multiplier0/part4 must be nonnegative."); - ASSERT_RELEASE( - (poseidon__poseidon__full_rounds_state1_squared_column) >= (0), "Column index out of range."); + ASSERT_RELEASE( + (((trace_length_) - (mul_mod__p_multiplier0__part4_suboffset)) - (1)) >= (0), + "Offset of mul_mod/p_multiplier0/part4 is too big."); - ASSERT_RELEASE( - (((num_columns_first) - (poseidon__poseidon__full_rounds_state1_squared_column)) - (1)) >= - (0), - "Column index out of range."); + ASSERT_RELEASE( + (((mul_mod__row_ratio) - + ((mul_mod__p_multiplier0__part4_suboffset) * (range_check_units_row_ratio))) - + (1)) >= (0), + "Offset of mul_mod/p_multiplier0/part4 is too big."); - ASSERT_RELEASE( - (poseidon__poseidon__full_rounds_state1_squared_offset) >= (0), - "Offset must be nonnegative."); + ASSERT_RELEASE( + (mul_mod__p_multiplier0__part5_suboffset) >= (0), + "Offset of mul_mod/p_multiplier0/part5 must be nonnegative."); - ASSERT_RELEASE( - (((trace_length_) - (poseidon__poseidon__full_rounds_state1_squared_offset)) - (1)) >= (0), - "Offset must be smaller than trace length."); + ASSERT_RELEASE( + (((trace_length_) - (mul_mod__p_multiplier0__part5_suboffset)) - (1)) >= (0), + "Offset of mul_mod/p_multiplier0/part5 is too big."); - ASSERT_RELEASE( - (poseidon__poseidon__full_rounds_state2_squared_column) >= (0), "Column index out of range."); + ASSERT_RELEASE( + (((mul_mod__row_ratio) - + ((mul_mod__p_multiplier0__part5_suboffset) * (range_check_units_row_ratio))) - + (1)) >= (0), + "Offset of mul_mod/p_multiplier0/part5 is too big."); - ASSERT_RELEASE( - (((num_columns_first) - (poseidon__poseidon__full_rounds_state2_squared_column)) - (1)) >= - (0), - "Column index out of range."); + ASSERT_RELEASE( + (mul_mod__p_multiplier1__part0_suboffset) >= (0), + "Offset of mul_mod/p_multiplier1/part0 must be nonnegative."); - ASSERT_RELEASE( - (poseidon__poseidon__full_rounds_state2_squared_offset) >= (0), - "Offset must be nonnegative."); + ASSERT_RELEASE( + (((trace_length_) - (mul_mod__p_multiplier1__part0_suboffset)) - (1)) >= (0), + "Offset of mul_mod/p_multiplier1/part0 is too big."); - ASSERT_RELEASE( - (((trace_length_) - (poseidon__poseidon__full_rounds_state2_squared_offset)) - (1)) >= (0), - "Offset must be smaller than trace length."); + ASSERT_RELEASE( + (((mul_mod__row_ratio) - + ((mul_mod__p_multiplier1__part0_suboffset) * (range_check_units_row_ratio))) - + (1)) >= (0), + "Offset of mul_mod/p_multiplier1/part0 is too big."); - ASSERT_RELEASE( - (poseidon__poseidon__partial_rounds_state0_column) >= (0), "Column index out of range."); + ASSERT_RELEASE( + (mul_mod__p_multiplier1__part1_suboffset) >= (0), + "Offset of mul_mod/p_multiplier1/part1 must be nonnegative."); - ASSERT_RELEASE( - (((num_columns_first) - (poseidon__poseidon__partial_rounds_state0_column)) - (1)) >= (0), - "Column index out of range."); + ASSERT_RELEASE( + (((trace_length_) - (mul_mod__p_multiplier1__part1_suboffset)) - (1)) >= (0), + "Offset of mul_mod/p_multiplier1/part1 is too big."); - ASSERT_RELEASE( - (poseidon__poseidon__partial_rounds_state0_offset) >= (0), "Offset must be nonnegative."); + ASSERT_RELEASE( + (((mul_mod__row_ratio) - + ((mul_mod__p_multiplier1__part1_suboffset) * (range_check_units_row_ratio))) - + (1)) >= (0), + "Offset of mul_mod/p_multiplier1/part1 is too big."); - ASSERT_RELEASE( - (((trace_length_) - (poseidon__poseidon__partial_rounds_state0_offset)) - (1)) >= (0), - "Offset must be smaller than trace length."); + ASSERT_RELEASE( + (mul_mod__p_multiplier1__part2_suboffset) >= (0), + "Offset of mul_mod/p_multiplier1/part2 must be nonnegative."); - ASSERT_RELEASE( - (poseidon__poseidon__partial_rounds_state1_column) >= (0), "Column index out of range."); + ASSERT_RELEASE( + (((trace_length_) - (mul_mod__p_multiplier1__part2_suboffset)) - (1)) >= (0), + "Offset of mul_mod/p_multiplier1/part2 is too big."); - ASSERT_RELEASE( - (((num_columns_first) - (poseidon__poseidon__partial_rounds_state1_column)) - (1)) >= (0), - "Column index out of range."); + ASSERT_RELEASE( + (((mul_mod__row_ratio) - + ((mul_mod__p_multiplier1__part2_suboffset) * (range_check_units_row_ratio))) - + (1)) >= (0), + "Offset of mul_mod/p_multiplier1/part2 is too big."); - ASSERT_RELEASE( - (poseidon__poseidon__partial_rounds_state1_offset) >= (0), "Offset must be nonnegative."); + ASSERT_RELEASE( + (mul_mod__p_multiplier1__part3_suboffset) >= (0), + "Offset of mul_mod/p_multiplier1/part3 must be nonnegative."); - ASSERT_RELEASE( - (((trace_length_) - (poseidon__poseidon__partial_rounds_state1_offset)) - (1)) >= (0), - "Offset must be smaller than trace length."); + ASSERT_RELEASE( + (((trace_length_) - (mul_mod__p_multiplier1__part3_suboffset)) - (1)) >= (0), + "Offset of mul_mod/p_multiplier1/part3 is too big."); - ASSERT_RELEASE( - (poseidon__poseidon__partial_rounds_state0_squared_column) >= (0), - "Column index out of range."); + ASSERT_RELEASE( + (((mul_mod__row_ratio) - + ((mul_mod__p_multiplier1__part3_suboffset) * (range_check_units_row_ratio))) - + (1)) >= (0), + "Offset of mul_mod/p_multiplier1/part3 is too big."); - ASSERT_RELEASE( - (((num_columns_first) - (poseidon__poseidon__partial_rounds_state0_squared_column)) - (1)) >= - (0), - "Column index out of range."); + ASSERT_RELEASE( + (mul_mod__p_multiplier1__part4_suboffset) >= (0), + "Offset of mul_mod/p_multiplier1/part4 must be nonnegative."); - ASSERT_RELEASE( - (poseidon__poseidon__partial_rounds_state0_squared_offset) >= (0), - "Offset must be nonnegative."); + ASSERT_RELEASE( + (((trace_length_) - (mul_mod__p_multiplier1__part4_suboffset)) - (1)) >= (0), + "Offset of mul_mod/p_multiplier1/part4 is too big."); - ASSERT_RELEASE( - (((trace_length_) - (poseidon__poseidon__partial_rounds_state0_squared_offset)) - (1)) >= (0), - "Offset must be smaller than trace length."); + ASSERT_RELEASE( + (((mul_mod__row_ratio) - + ((mul_mod__p_multiplier1__part4_suboffset) * (range_check_units_row_ratio))) - + (1)) >= (0), + "Offset of mul_mod/p_multiplier1/part4 is too big."); - ASSERT_RELEASE( - (poseidon__poseidon__partial_rounds_state1_squared_column) >= (0), - "Column index out of range."); + ASSERT_RELEASE( + (mul_mod__p_multiplier1__part5_suboffset) >= (0), + "Offset of mul_mod/p_multiplier1/part5 must be nonnegative."); - ASSERT_RELEASE( - (((num_columns_first) - (poseidon__poseidon__partial_rounds_state1_squared_column)) - (1)) >= - (0), - "Column index out of range."); + ASSERT_RELEASE( + (((trace_length_) - (mul_mod__p_multiplier1__part5_suboffset)) - (1)) >= (0), + "Offset of mul_mod/p_multiplier1/part5 is too big."); - ASSERT_RELEASE( - (poseidon__poseidon__partial_rounds_state1_squared_offset) >= (0), - "Offset must be nonnegative."); + ASSERT_RELEASE( + (((mul_mod__row_ratio) - + ((mul_mod__p_multiplier1__part5_suboffset) * (range_check_units_row_ratio))) - + (1)) >= (0), + "Offset of mul_mod/p_multiplier1/part5 is too big."); - ASSERT_RELEASE( - (((trace_length_) - (poseidon__poseidon__partial_rounds_state1_squared_offset)) - (1)) >= (0), - "Offset must be smaller than trace length."); + ASSERT_RELEASE( + (mul_mod__p_multiplier2__part0_suboffset) >= (0), + "Offset of mul_mod/p_multiplier2/part0 must be nonnegative."); - ASSERT_RELEASE( - ((memory__multi_column_perm__perm__cum_prod0_column) - (num_columns_first)) >= (0), - "Column index out of range."); + ASSERT_RELEASE( + (((trace_length_) - (mul_mod__p_multiplier2__part0_suboffset)) - (1)) >= (0), + "Offset of mul_mod/p_multiplier2/part0 is too big."); - ASSERT_RELEASE( - ((((num_columns_first) + (num_columns_second)) - - (memory__multi_column_perm__perm__cum_prod0_column)) - - (1)) >= (0), - "Column index out of range."); + ASSERT_RELEASE( + (((mul_mod__row_ratio) - + ((mul_mod__p_multiplier2__part0_suboffset) * (range_check_units_row_ratio))) - + (1)) >= (0), + "Offset of mul_mod/p_multiplier2/part0 is too big."); - ASSERT_RELEASE( - (memory__multi_column_perm__perm__cum_prod0_offset) >= (0), "Offset must be nonnegative."); + ASSERT_RELEASE( + (mul_mod__p_multiplier2__part1_suboffset) >= (0), + "Offset of mul_mod/p_multiplier2/part1 must be nonnegative."); - ASSERT_RELEASE( - (((trace_length_) - (memory__multi_column_perm__perm__cum_prod0_offset)) - (1)) >= (0), - "Offset must be smaller than trace length."); + ASSERT_RELEASE( + (((trace_length_) - (mul_mod__p_multiplier2__part1_suboffset)) - (1)) >= (0), + "Offset of mul_mod/p_multiplier2/part1 is too big."); - ASSERT_RELEASE( - ((range_check16__perm__cum_prod0_column) - (num_columns_first)) >= (0), - "Column index out of range."); + ASSERT_RELEASE( + (((mul_mod__row_ratio) - + ((mul_mod__p_multiplier2__part1_suboffset) * (range_check_units_row_ratio))) - + (1)) >= (0), + "Offset of mul_mod/p_multiplier2/part1 is too big."); - ASSERT_RELEASE( - ((((num_columns_first) + (num_columns_second)) - (range_check16__perm__cum_prod0_column)) - - (1)) >= (0), - "Column index out of range."); + ASSERT_RELEASE( + (mul_mod__p_multiplier2__part2_suboffset) >= (0), + "Offset of mul_mod/p_multiplier2/part2 must be nonnegative."); - ASSERT_RELEASE((range_check16__perm__cum_prod0_offset) >= (0), "Offset must be nonnegative."); + ASSERT_RELEASE( + (((trace_length_) - (mul_mod__p_multiplier2__part2_suboffset)) - (1)) >= (0), + "Offset of mul_mod/p_multiplier2/part2 is too big."); - ASSERT_RELEASE( - (((trace_length_) - (range_check16__perm__cum_prod0_offset)) - (1)) >= (0), - "Offset must be smaller than trace length."); + ASSERT_RELEASE( + (((mul_mod__row_ratio) - + ((mul_mod__p_multiplier2__part2_suboffset) * (range_check_units_row_ratio))) - + (1)) >= (0), + "Offset of mul_mod/p_multiplier2/part2 is too big."); - ASSERT_RELEASE( - ((diluted_check__cumulative_value_column) - (num_columns_first)) >= (0), - "Column index out of range."); + ASSERT_RELEASE( + (mul_mod__p_multiplier2__part3_suboffset) >= (0), + "Offset of mul_mod/p_multiplier2/part3 must be nonnegative."); - ASSERT_RELEASE( - ((((num_columns_first) + (num_columns_second)) - (diluted_check__cumulative_value_column)) - - (1)) >= (0), - "Column index out of range."); + ASSERT_RELEASE( + (((trace_length_) - (mul_mod__p_multiplier2__part3_suboffset)) - (1)) >= (0), + "Offset of mul_mod/p_multiplier2/part3 is too big."); - ASSERT_RELEASE((diluted_check__cumulative_value_offset) >= (0), "Offset must be nonnegative."); + ASSERT_RELEASE( + (((mul_mod__row_ratio) - + ((mul_mod__p_multiplier2__part3_suboffset) * (range_check_units_row_ratio))) - + (1)) >= (0), + "Offset of mul_mod/p_multiplier2/part3 is too big."); - ASSERT_RELEASE( - (((trace_length_) - (diluted_check__cumulative_value_offset)) - (1)) >= (0), - "Offset must be smaller than trace length."); + ASSERT_RELEASE( + (mul_mod__p_multiplier2__part4_suboffset) >= (0), + "Offset of mul_mod/p_multiplier2/part4 must be nonnegative."); - ASSERT_RELEASE( - ((diluted_check__permutation__cum_prod0_column) - (num_columns_first)) >= (0), - "Column index out of range."); + ASSERT_RELEASE( + (((trace_length_) - (mul_mod__p_multiplier2__part4_suboffset)) - (1)) >= (0), + "Offset of mul_mod/p_multiplier2/part4 is too big."); - ASSERT_RELEASE( - ((((num_columns_first) + (num_columns_second)) - - (diluted_check__permutation__cum_prod0_column)) - - (1)) >= (0), - "Column index out of range."); + ASSERT_RELEASE( + (((mul_mod__row_ratio) - + ((mul_mod__p_multiplier2__part4_suboffset) * (range_check_units_row_ratio))) - + (1)) >= (0), + "Offset of mul_mod/p_multiplier2/part4 is too big."); - ASSERT_RELEASE( - (diluted_check__permutation__cum_prod0_offset) >= (0), "Offset must be nonnegative."); + ASSERT_RELEASE( + (mul_mod__p_multiplier2__part5_suboffset) >= (0), + "Offset of mul_mod/p_multiplier2/part5 must be nonnegative."); - ASSERT_RELEASE( - (((trace_length_) - (diluted_check__permutation__cum_prod0_offset)) - (1)) >= (0), - "Offset must be smaller than trace length."); + ASSERT_RELEASE( + (((trace_length_) - (mul_mod__p_multiplier2__part5_suboffset)) - (1)) >= (0), + "Offset of mul_mod/p_multiplier2/part5 is too big."); - if ((uses_pedersen_builtin) != (0)) { ASSERT_RELEASE( - IsPowerOfTwo(pedersen_builtin_row_ratio), - "Row ratio should be a power of 2, smaller than trace length."); + (((mul_mod__row_ratio) - + ((mul_mod__p_multiplier2__part5_suboffset) * (range_check_units_row_ratio))) - + (1)) >= (0), + "Offset of mul_mod/p_multiplier2/part5 is too big."); ASSERT_RELEASE( - IsPowerOfTwo(SafeDiv(trace_length_, pedersen_builtin_row_ratio)), - "Dimension should be a power of 2."); + (mul_mod__p_multiplier3__part0_suboffset) >= (0), + "Offset of mul_mod/p_multiplier3/part0 must be nonnegative."); ASSERT_RELEASE( - IsPowerOfTwo(SafeDiv(pedersen_builtin_row_ratio, 512)), - "Coset step ((DynamicParam(pedersen_builtin_row_ratio)) / (512)) must be a power of two"); + (((trace_length_) - (mul_mod__p_multiplier3__part0_suboffset)) - (1)) >= (0), + "Offset of mul_mod/p_multiplier3/part0 is too big."); ASSERT_RELEASE( - IsPowerOfTwo(SafeDiv(pedersen_builtin_row_ratio, 2)), - "Coset step ((DynamicParam(pedersen_builtin_row_ratio)) / (2)) must be a power of two"); + (((mul_mod__row_ratio) - + ((mul_mod__p_multiplier3__part0_suboffset) * (range_check_units_row_ratio))) - + (1)) >= (0), + "Offset of mul_mod/p_multiplier3/part0 is too big."); ASSERT_RELEASE( - ((SafeDiv(trace_length_, pedersen_builtin_row_ratio)) - (1)) >= (0), - "step must not exceed dimension."); + (mul_mod__p_multiplier3__part1_suboffset) >= (0), + "Offset of mul_mod/p_multiplier3/part1 must be nonnegative."); ASSERT_RELEASE( - (SafeDiv(trace_length_, pedersen_builtin_row_ratio)) >= (0), - "Index should be non negative."); + (((trace_length_) - (mul_mod__p_multiplier3__part1_suboffset)) - (1)) >= (0), + "Offset of mul_mod/p_multiplier3/part1 is too big."); ASSERT_RELEASE( - IsPowerOfTwo(trace_length_), - "Coset step (MemberExpression(trace_length)) must be a power of two"); + (((mul_mod__row_ratio) - + ((mul_mod__p_multiplier3__part1_suboffset) * (range_check_units_row_ratio))) - + (1)) >= (0), + "Offset of mul_mod/p_multiplier3/part1 is too big."); ASSERT_RELEASE( - (pedersen__input0_suboffset) >= (0), "Offset of pedersen/input0 must be nonnegative."); + (mul_mod__p_multiplier3__part2_suboffset) >= (0), + "Offset of mul_mod/p_multiplier3/part2 must be nonnegative."); ASSERT_RELEASE( - (((trace_length_) - (pedersen__input0_suboffset)) - (1)) >= (0), - "Offset of pedersen/input0 is too big."); + (((trace_length_) - (mul_mod__p_multiplier3__part2_suboffset)) - (1)) >= (0), + "Offset of mul_mod/p_multiplier3/part2 is too big."); ASSERT_RELEASE( - (((pedersen_builtin_row_ratio) - - ((pedersen__input0_suboffset) * (memory_units_row_ratio))) - + (((mul_mod__row_ratio) - + ((mul_mod__p_multiplier3__part2_suboffset) * (range_check_units_row_ratio))) - (1)) >= (0), - "Offset of pedersen/input0 is too big."); + "Offset of mul_mod/p_multiplier3/part2 is too big."); ASSERT_RELEASE( - (pedersen__input1_suboffset) >= (0), "Offset of pedersen/input1 must be nonnegative."); + (mul_mod__p_multiplier3__part3_suboffset) >= (0), + "Offset of mul_mod/p_multiplier3/part3 must be nonnegative."); ASSERT_RELEASE( - (((trace_length_) - (pedersen__input1_suboffset)) - (1)) >= (0), - "Offset of pedersen/input1 is too big."); + (((trace_length_) - (mul_mod__p_multiplier3__part3_suboffset)) - (1)) >= (0), + "Offset of mul_mod/p_multiplier3/part3 is too big."); ASSERT_RELEASE( - (((pedersen_builtin_row_ratio) - - ((pedersen__input1_suboffset) * (memory_units_row_ratio))) - + (((mul_mod__row_ratio) - + ((mul_mod__p_multiplier3__part3_suboffset) * (range_check_units_row_ratio))) - (1)) >= (0), - "Offset of pedersen/input1 is too big."); + "Offset of mul_mod/p_multiplier3/part3 is too big."); ASSERT_RELEASE( - (pedersen__output_suboffset) >= (0), "Offset of pedersen/output must be nonnegative."); + (mul_mod__p_multiplier3__part4_suboffset) >= (0), + "Offset of mul_mod/p_multiplier3/part4 must be nonnegative."); ASSERT_RELEASE( - (((trace_length_) - (pedersen__output_suboffset)) - (1)) >= (0), - "Offset of pedersen/output is too big."); + (((trace_length_) - (mul_mod__p_multiplier3__part4_suboffset)) - (1)) >= (0), + "Offset of mul_mod/p_multiplier3/part4 is too big."); ASSERT_RELEASE( - (((pedersen_builtin_row_ratio) - - ((pedersen__output_suboffset) * (memory_units_row_ratio))) - + (((mul_mod__row_ratio) - + ((mul_mod__p_multiplier3__part4_suboffset) * (range_check_units_row_ratio))) - (1)) >= (0), - "Offset of pedersen/output is too big."); - } + "Offset of mul_mod/p_multiplier3/part4 is too big."); - if ((uses_range_check_builtin) != (0)) { ASSERT_RELEASE( - IsPowerOfTwo(trace_length_), - "Coset step (MemberExpression(trace_length)) must be a power of two"); + (mul_mod__p_multiplier3__part5_suboffset) >= (0), + "Offset of mul_mod/p_multiplier3/part5 must be nonnegative."); ASSERT_RELEASE( - IsPowerOfTwo(range_check_builtin_row_ratio), - "Row ratio should be a power of 2, smaller than trace length."); + (((trace_length_) - (mul_mod__p_multiplier3__part5_suboffset)) - (1)) >= (0), + "Offset of mul_mod/p_multiplier3/part5 is too big."); ASSERT_RELEASE( - IsPowerOfTwo(SafeDiv(trace_length_, range_check_builtin_row_ratio)), - "Dimension should be a power of 2."); + (((mul_mod__row_ratio) - + ((mul_mod__p_multiplier3__part5_suboffset) * (range_check_units_row_ratio))) - + (1)) >= (0), + "Offset of mul_mod/p_multiplier3/part5 is too big."); ASSERT_RELEASE( - ((SafeDiv(trace_length_, range_check_builtin_row_ratio)) - (1)) >= (0), - "step must not exceed dimension."); + (mul_mod__carry0__part0_suboffset) >= (0), + "Offset of mul_mod/carry0/part0 must be nonnegative."); ASSERT_RELEASE( - (SafeDiv(trace_length_, range_check_builtin_row_ratio)) >= (0), - "Index should be non negative."); + (((trace_length_) - (mul_mod__carry0__part0_suboffset)) - (1)) >= (0), + "Offset of mul_mod/carry0/part0 is too big."); ASSERT_RELEASE( - IsPowerOfTwo(SafeDiv(range_check_builtin_row_ratio, 8)), - "Coset step ((DynamicParam(range_check_builtin_row_ratio)) / (8)) must be a power of two"); + (((mul_mod__row_ratio) - + ((mul_mod__carry0__part0_suboffset) * (range_check_units_row_ratio))) - + (1)) >= (0), + "Offset of mul_mod/carry0/part0 is too big."); ASSERT_RELEASE( - (range_check_builtin__mem_suboffset) >= (0), - "Offset of range_check_builtin/mem must be nonnegative."); + (mul_mod__carry0__part1_suboffset) >= (0), + "Offset of mul_mod/carry0/part1 must be nonnegative."); ASSERT_RELEASE( - (((trace_length_) - (range_check_builtin__mem_suboffset)) - (1)) >= (0), - "Offset of range_check_builtin/mem is too big."); + (((trace_length_) - (mul_mod__carry0__part1_suboffset)) - (1)) >= (0), + "Offset of mul_mod/carry0/part1 is too big."); ASSERT_RELEASE( - (((range_check_builtin_row_ratio) - - ((range_check_builtin__mem_suboffset) * (memory_units_row_ratio))) - + (((mul_mod__row_ratio) - + ((mul_mod__carry0__part1_suboffset) * (range_check_units_row_ratio))) - (1)) >= (0), - "Offset of range_check_builtin/mem is too big."); + "Offset of mul_mod/carry0/part1 is too big."); ASSERT_RELEASE( - (range_check_builtin__inner_range_check_suboffset) >= (0), - "Offset of range_check_builtin/inner_range_check must be nonnegative."); + (mul_mod__carry0__part2_suboffset) >= (0), + "Offset of mul_mod/carry0/part2 must be nonnegative."); ASSERT_RELEASE( - (((trace_length_) - (range_check_builtin__inner_range_check_suboffset)) - (1)) >= (0), - "Offset of range_check_builtin/inner_range_check is too big."); + (((trace_length_) - (mul_mod__carry0__part2_suboffset)) - (1)) >= (0), + "Offset of mul_mod/carry0/part2 is too big."); ASSERT_RELEASE( - (((SafeDiv(range_check_builtin_row_ratio, 8)) - - ((range_check_builtin__inner_range_check_suboffset) * (range_check_units_row_ratio))) - + (((mul_mod__row_ratio) - + ((mul_mod__carry0__part2_suboffset) * (range_check_units_row_ratio))) - (1)) >= (0), - "Offset of range_check_builtin/inner_range_check is too big."); - } + "Offset of mul_mod/carry0/part2 is too big."); - if ((uses_ecdsa_builtin) != (0)) { ASSERT_RELEASE( - IsPowerOfTwo(ecdsa_builtin_row_ratio), - "Row ratio should be a power of 2, smaller than trace length."); + (mul_mod__carry0__part3_suboffset) >= (0), + "Offset of mul_mod/carry0/part3 must be nonnegative."); ASSERT_RELEASE( - IsPowerOfTwo(SafeDiv(trace_length_, ecdsa_builtin_row_ratio)), - "Dimension should be a power of 2."); + (((trace_length_) - (mul_mod__carry0__part3_suboffset)) - (1)) >= (0), + "Offset of mul_mod/carry0/part3 is too big."); ASSERT_RELEASE( - IsPowerOfTwo(SafeDiv(ecdsa_builtin_row_ratio, 512)), - "Coset step ((DynamicParam(ecdsa_builtin_row_ratio)) / (512)) must be a power of two"); + (((mul_mod__row_ratio) - + ((mul_mod__carry0__part3_suboffset) * (range_check_units_row_ratio))) - + (1)) >= (0), + "Offset of mul_mod/carry0/part3 is too big."); ASSERT_RELEASE( - ((SafeDiv(trace_length_, ecdsa_builtin_row_ratio)) - (1)) >= (0), - "step must not exceed dimension."); + (mul_mod__carry0__part4_suboffset) >= (0), + "Offset of mul_mod/carry0/part4 must be nonnegative."); ASSERT_RELEASE( - (SafeDiv(trace_length_, ecdsa_builtin_row_ratio)) >= (0), "Index should be non negative."); + (((trace_length_) - (mul_mod__carry0__part4_suboffset)) - (1)) >= (0), + "Offset of mul_mod/carry0/part4 is too big."); ASSERT_RELEASE( - IsPowerOfTwo(SafeDiv(ecdsa_builtin_row_ratio, 256)), - "Coset step ((DynamicParam(ecdsa_builtin_row_ratio)) / (256)) must be a power of two"); + (((mul_mod__row_ratio) - + ((mul_mod__carry0__part4_suboffset) * (range_check_units_row_ratio))) - + (1)) >= (0), + "Offset of mul_mod/carry0/part4 is too big."); ASSERT_RELEASE( - IsPowerOfTwo(trace_length_), - "Coset step (MemberExpression(trace_length)) must be a power of two"); + (mul_mod__carry0__part5_suboffset) >= (0), + "Offset of mul_mod/carry0/part5 must be nonnegative."); ASSERT_RELEASE( - IsPowerOfTwo(SafeDiv(ecdsa_builtin_row_ratio, 2)), - "Coset step ((DynamicParam(ecdsa_builtin_row_ratio)) / (2)) must be a power of two"); + (((trace_length_) - (mul_mod__carry0__part5_suboffset)) - (1)) >= (0), + "Offset of mul_mod/carry0/part5 is too big."); - ASSERT_RELEASE((ecdsa__pubkey_suboffset) >= (0), "Offset of ecdsa/pubkey must be nonnegative."); + ASSERT_RELEASE( + (((mul_mod__row_ratio) - + ((mul_mod__carry0__part5_suboffset) * (range_check_units_row_ratio))) - + (1)) >= (0), + "Offset of mul_mod/carry0/part5 is too big."); ASSERT_RELEASE( - (((trace_length_) - (ecdsa__pubkey_suboffset)) - (1)) >= (0), - "Offset of ecdsa/pubkey is too big."); + (mul_mod__carry0__part6_suboffset) >= (0), + "Offset of mul_mod/carry0/part6 must be nonnegative."); ASSERT_RELEASE( - (((ecdsa_builtin_row_ratio) - ((ecdsa__pubkey_suboffset) * (memory_units_row_ratio))) - + (((trace_length_) - (mul_mod__carry0__part6_suboffset)) - (1)) >= (0), + "Offset of mul_mod/carry0/part6 is too big."); + + ASSERT_RELEASE( + (((mul_mod__row_ratio) - + ((mul_mod__carry0__part6_suboffset) * (range_check_units_row_ratio))) - (1)) >= (0), - "Offset of ecdsa/pubkey is too big."); + "Offset of mul_mod/carry0/part6 is too big."); ASSERT_RELEASE( - (ecdsa__message_suboffset) >= (0), "Offset of ecdsa/message must be nonnegative."); + (mul_mod__carry1__part0_suboffset) >= (0), + "Offset of mul_mod/carry1/part0 must be nonnegative."); ASSERT_RELEASE( - (((trace_length_) - (ecdsa__message_suboffset)) - (1)) >= (0), - "Offset of ecdsa/message is too big."); + (((trace_length_) - (mul_mod__carry1__part0_suboffset)) - (1)) >= (0), + "Offset of mul_mod/carry1/part0 is too big."); ASSERT_RELEASE( - (((ecdsa_builtin_row_ratio) - ((ecdsa__message_suboffset) * (memory_units_row_ratio))) - + (((mul_mod__row_ratio) - + ((mul_mod__carry1__part0_suboffset) * (range_check_units_row_ratio))) - (1)) >= (0), - "Offset of ecdsa/message is too big."); - } + "Offset of mul_mod/carry1/part0 is too big."); - if ((uses_bitwise_builtin) != (0)) { ASSERT_RELEASE( - IsPowerOfTwo(bitwise__row_ratio), - "Row ratio should be a power of 2, smaller than trace length."); + (mul_mod__carry1__part1_suboffset) >= (0), + "Offset of mul_mod/carry1/part1 must be nonnegative."); ASSERT_RELEASE( - IsPowerOfTwo(SafeDiv(trace_length_, bitwise__row_ratio)), - "Dimension should be a power of 2."); + (((trace_length_) - (mul_mod__carry1__part1_suboffset)) - (1)) >= (0), + "Offset of mul_mod/carry1/part1 is too big."); ASSERT_RELEASE( - IsPowerOfTwo(SafeDiv(bitwise__row_ratio, 64)), - "Coset step ((DynamicParam(bitwise__row_ratio)) / (64)) must be a power of two"); + (((mul_mod__row_ratio) - + ((mul_mod__carry1__part1_suboffset) * (range_check_units_row_ratio))) - + (1)) >= (0), + "Offset of mul_mod/carry1/part1 is too big."); ASSERT_RELEASE( - IsPowerOfTwo(SafeDiv(bitwise__row_ratio, 4)), - "Coset step ((DynamicParam(bitwise__row_ratio)) / (4)) must be a power of two"); + (mul_mod__carry1__part2_suboffset) >= (0), + "Offset of mul_mod/carry1/part2 must be nonnegative."); ASSERT_RELEASE( - ((SafeDiv(trace_length_, bitwise__row_ratio)) - (1)) >= (0), "Index out of range."); + (((trace_length_) - (mul_mod__carry1__part2_suboffset)) - (1)) >= (0), + "Offset of mul_mod/carry1/part2 is too big."); ASSERT_RELEASE( - (SafeDiv(trace_length_, bitwise__row_ratio)) >= (0), "Index should be non negative."); + (((mul_mod__row_ratio) - + ((mul_mod__carry1__part2_suboffset) * (range_check_units_row_ratio))) - + (1)) >= (0), + "Offset of mul_mod/carry1/part2 is too big."); ASSERT_RELEASE( - IsPowerOfTwo(trace_length_), - "Coset step (MemberExpression(trace_length)) must be a power of two"); + (mul_mod__carry1__part3_suboffset) >= (0), + "Offset of mul_mod/carry1/part3 must be nonnegative."); ASSERT_RELEASE( - (bitwise__var_pool_suboffset) >= (0), "Offset of bitwise/var_pool must be nonnegative."); + (((trace_length_) - (mul_mod__carry1__part3_suboffset)) - (1)) >= (0), + "Offset of mul_mod/carry1/part3 is too big."); ASSERT_RELEASE( - (((trace_length_) - (bitwise__var_pool_suboffset)) - (1)) >= (0), - "Offset of bitwise/var_pool is too big."); + (((mul_mod__row_ratio) - + ((mul_mod__carry1__part3_suboffset) * (range_check_units_row_ratio))) - + (1)) >= (0), + "Offset of mul_mod/carry1/part3 is too big."); ASSERT_RELEASE( - (((SafeDiv(bitwise__row_ratio, 4)) - - ((bitwise__var_pool_suboffset) * (memory_units_row_ratio))) - + (mul_mod__carry1__part4_suboffset) >= (0), + "Offset of mul_mod/carry1/part4 must be nonnegative."); + + ASSERT_RELEASE( + (((trace_length_) - (mul_mod__carry1__part4_suboffset)) - (1)) >= (0), + "Offset of mul_mod/carry1/part4 is too big."); + + ASSERT_RELEASE( + (((mul_mod__row_ratio) - + ((mul_mod__carry1__part4_suboffset) * (range_check_units_row_ratio))) - (1)) >= (0), - "Offset of bitwise/var_pool is too big."); + "Offset of mul_mod/carry1/part4 is too big."); ASSERT_RELEASE( - (bitwise__x_or_y_suboffset) >= (0), "Offset of bitwise/x_or_y must be nonnegative."); + (mul_mod__carry1__part5_suboffset) >= (0), + "Offset of mul_mod/carry1/part5 must be nonnegative."); ASSERT_RELEASE( - (((trace_length_) - (bitwise__x_or_y_suboffset)) - (1)) >= (0), - "Offset of bitwise/x_or_y is too big."); + (((trace_length_) - (mul_mod__carry1__part5_suboffset)) - (1)) >= (0), + "Offset of mul_mod/carry1/part5 is too big."); ASSERT_RELEASE( - (((bitwise__row_ratio) - ((bitwise__x_or_y_suboffset) * (memory_units_row_ratio))) - (1)) >= - (0), - "Offset of bitwise/x_or_y is too big."); + (((mul_mod__row_ratio) - + ((mul_mod__carry1__part5_suboffset) * (range_check_units_row_ratio))) - + (1)) >= (0), + "Offset of mul_mod/carry1/part5 is too big."); ASSERT_RELEASE( - (bitwise__diluted_var_pool_suboffset) >= (0), - "Offset of bitwise/diluted_var_pool must be nonnegative."); + (mul_mod__carry1__part6_suboffset) >= (0), + "Offset of mul_mod/carry1/part6 must be nonnegative."); ASSERT_RELEASE( - (((trace_length_) - (bitwise__diluted_var_pool_suboffset)) - (1)) >= (0), - "Offset of bitwise/diluted_var_pool is too big."); + (((trace_length_) - (mul_mod__carry1__part6_suboffset)) - (1)) >= (0), + "Offset of mul_mod/carry1/part6 is too big."); ASSERT_RELEASE( - (((SafeDiv(bitwise__row_ratio, 64)) - - ((bitwise__diluted_var_pool_suboffset) * (diluted_units_row_ratio))) - + (((mul_mod__row_ratio) - + ((mul_mod__carry1__part6_suboffset) * (range_check_units_row_ratio))) - (1)) >= (0), - "Offset of bitwise/diluted_var_pool is too big."); + "Offset of mul_mod/carry1/part6 is too big."); ASSERT_RELEASE( - (bitwise__trim_unpacking192_suboffset) >= (0), - "Offset of bitwise/trim_unpacking192 must be nonnegative."); + (mul_mod__carry2__part0_suboffset) >= (0), + "Offset of mul_mod/carry2/part0 must be nonnegative."); ASSERT_RELEASE( - (((trace_length_) - (bitwise__trim_unpacking192_suboffset)) - (1)) >= (0), - "Offset of bitwise/trim_unpacking192 is too big."); + (((trace_length_) - (mul_mod__carry2__part0_suboffset)) - (1)) >= (0), + "Offset of mul_mod/carry2/part0 is too big."); ASSERT_RELEASE( - (((bitwise__row_ratio) - - ((bitwise__trim_unpacking192_suboffset) * (diluted_units_row_ratio))) - + (((mul_mod__row_ratio) - + ((mul_mod__carry2__part0_suboffset) * (range_check_units_row_ratio))) - (1)) >= (0), - "Offset of bitwise/trim_unpacking192 is too big."); + "Offset of mul_mod/carry2/part0 is too big."); ASSERT_RELEASE( - (bitwise__trim_unpacking193_suboffset) >= (0), - "Offset of bitwise/trim_unpacking193 must be nonnegative."); + (mul_mod__carry2__part1_suboffset) >= (0), + "Offset of mul_mod/carry2/part1 must be nonnegative."); ASSERT_RELEASE( - (((trace_length_) - (bitwise__trim_unpacking193_suboffset)) - (1)) >= (0), - "Offset of bitwise/trim_unpacking193 is too big."); + (((trace_length_) - (mul_mod__carry2__part1_suboffset)) - (1)) >= (0), + "Offset of mul_mod/carry2/part1 is too big."); ASSERT_RELEASE( - (((bitwise__row_ratio) - - ((bitwise__trim_unpacking193_suboffset) * (diluted_units_row_ratio))) - + (((mul_mod__row_ratio) - + ((mul_mod__carry2__part1_suboffset) * (range_check_units_row_ratio))) - (1)) >= (0), - "Offset of bitwise/trim_unpacking193 is too big."); + "Offset of mul_mod/carry2/part1 is too big."); ASSERT_RELEASE( - (bitwise__trim_unpacking194_suboffset) >= (0), - "Offset of bitwise/trim_unpacking194 must be nonnegative."); + (mul_mod__carry2__part2_suboffset) >= (0), + "Offset of mul_mod/carry2/part2 must be nonnegative."); ASSERT_RELEASE( - (((trace_length_) - (bitwise__trim_unpacking194_suboffset)) - (1)) >= (0), - "Offset of bitwise/trim_unpacking194 is too big."); + (((trace_length_) - (mul_mod__carry2__part2_suboffset)) - (1)) >= (0), + "Offset of mul_mod/carry2/part2 is too big."); ASSERT_RELEASE( - (((bitwise__row_ratio) - - ((bitwise__trim_unpacking194_suboffset) * (diluted_units_row_ratio))) - + (((mul_mod__row_ratio) - + ((mul_mod__carry2__part2_suboffset) * (range_check_units_row_ratio))) - (1)) >= (0), - "Offset of bitwise/trim_unpacking194 is too big."); + "Offset of mul_mod/carry2/part2 is too big."); ASSERT_RELEASE( - (bitwise__trim_unpacking195_suboffset) >= (0), - "Offset of bitwise/trim_unpacking195 must be nonnegative."); + (mul_mod__carry2__part3_suboffset) >= (0), + "Offset of mul_mod/carry2/part3 must be nonnegative."); ASSERT_RELEASE( - (((trace_length_) - (bitwise__trim_unpacking195_suboffset)) - (1)) >= (0), - "Offset of bitwise/trim_unpacking195 is too big."); + (((trace_length_) - (mul_mod__carry2__part3_suboffset)) - (1)) >= (0), + "Offset of mul_mod/carry2/part3 is too big."); ASSERT_RELEASE( - (((bitwise__row_ratio) - - ((bitwise__trim_unpacking195_suboffset) * (diluted_units_row_ratio))) - + (((mul_mod__row_ratio) - + ((mul_mod__carry2__part3_suboffset) * (range_check_units_row_ratio))) - (1)) >= (0), - "Offset of bitwise/trim_unpacking195 is too big."); - } + "Offset of mul_mod/carry2/part3 is too big."); - if ((uses_ec_op_builtin) != (0)) { ASSERT_RELEASE( - IsPowerOfTwo(ec_op_builtin_row_ratio), - "Row ratio should be a power of 2, smaller than trace length."); + (mul_mod__carry2__part4_suboffset) >= (0), + "Offset of mul_mod/carry2/part4 must be nonnegative."); ASSERT_RELEASE( - IsPowerOfTwo(SafeDiv(trace_length_, ec_op_builtin_row_ratio)), - "Dimension should be a power of 2."); + (((trace_length_) - (mul_mod__carry2__part4_suboffset)) - (1)) >= (0), + "Offset of mul_mod/carry2/part4 is too big."); ASSERT_RELEASE( - IsPowerOfTwo(SafeDiv(ec_op_builtin_row_ratio, 256)), - "Coset step ((DynamicParam(ec_op_builtin_row_ratio)) / (256)) must be a power of two"); + (((mul_mod__row_ratio) - + ((mul_mod__carry2__part4_suboffset) * (range_check_units_row_ratio))) - + (1)) >= (0), + "Offset of mul_mod/carry2/part4 is too big."); ASSERT_RELEASE( - ((SafeDiv(trace_length_, ec_op_builtin_row_ratio)) - (1)) >= (0), "Index out of range."); + (mul_mod__carry2__part5_suboffset) >= (0), + "Offset of mul_mod/carry2/part5 must be nonnegative."); ASSERT_RELEASE( - (SafeDiv(trace_length_, ec_op_builtin_row_ratio)) >= (0), "Index should be non negative."); + (((trace_length_) - (mul_mod__carry2__part5_suboffset)) - (1)) >= (0), + "Offset of mul_mod/carry2/part5 is too big."); ASSERT_RELEASE( - IsPowerOfTwo(trace_length_), - "Coset step (MemberExpression(trace_length)) must be a power of two"); + (((mul_mod__row_ratio) - + ((mul_mod__carry2__part5_suboffset) * (range_check_units_row_ratio))) - + (1)) >= (0), + "Offset of mul_mod/carry2/part5 is too big."); - ASSERT_RELEASE((ec_op__p_x_suboffset) >= (0), "Offset of ec_op/p_x must be nonnegative."); + ASSERT_RELEASE( + (mul_mod__carry2__part6_suboffset) >= (0), + "Offset of mul_mod/carry2/part6 must be nonnegative."); ASSERT_RELEASE( - (((trace_length_) - (ec_op__p_x_suboffset)) - (1)) >= (0), - "Offset of ec_op/p_x is too big."); + (((trace_length_) - (mul_mod__carry2__part6_suboffset)) - (1)) >= (0), + "Offset of mul_mod/carry2/part6 is too big."); ASSERT_RELEASE( - (((ec_op_builtin_row_ratio) - ((ec_op__p_x_suboffset) * (memory_units_row_ratio))) - (1)) >= - (0), - "Offset of ec_op/p_x is too big."); + (((mul_mod__row_ratio) - + ((mul_mod__carry2__part6_suboffset) * (range_check_units_row_ratio))) - + (1)) >= (0), + "Offset of mul_mod/carry2/part6 is too big."); - ASSERT_RELEASE((ec_op__p_y_suboffset) >= (0), "Offset of ec_op/p_y must be nonnegative."); + ASSERT_RELEASE( + (mul_mod__carry3__part0_suboffset) >= (0), + "Offset of mul_mod/carry3/part0 must be nonnegative."); ASSERT_RELEASE( - (((trace_length_) - (ec_op__p_y_suboffset)) - (1)) >= (0), - "Offset of ec_op/p_y is too big."); + (((trace_length_) - (mul_mod__carry3__part0_suboffset)) - (1)) >= (0), + "Offset of mul_mod/carry3/part0 is too big."); ASSERT_RELEASE( - (((ec_op_builtin_row_ratio) - ((ec_op__p_y_suboffset) * (memory_units_row_ratio))) - (1)) >= - (0), - "Offset of ec_op/p_y is too big."); + (((mul_mod__row_ratio) - + ((mul_mod__carry3__part0_suboffset) * (range_check_units_row_ratio))) - + (1)) >= (0), + "Offset of mul_mod/carry3/part0 is too big."); - ASSERT_RELEASE((ec_op__q_x_suboffset) >= (0), "Offset of ec_op/q_x must be nonnegative."); + ASSERT_RELEASE( + (mul_mod__carry3__part1_suboffset) >= (0), + "Offset of mul_mod/carry3/part1 must be nonnegative."); ASSERT_RELEASE( - (((trace_length_) - (ec_op__q_x_suboffset)) - (1)) >= (0), - "Offset of ec_op/q_x is too big."); + (((trace_length_) - (mul_mod__carry3__part1_suboffset)) - (1)) >= (0), + "Offset of mul_mod/carry3/part1 is too big."); ASSERT_RELEASE( - (((ec_op_builtin_row_ratio) - ((ec_op__q_x_suboffset) * (memory_units_row_ratio))) - (1)) >= - (0), - "Offset of ec_op/q_x is too big."); + (((mul_mod__row_ratio) - + ((mul_mod__carry3__part1_suboffset) * (range_check_units_row_ratio))) - + (1)) >= (0), + "Offset of mul_mod/carry3/part1 is too big."); - ASSERT_RELEASE((ec_op__q_y_suboffset) >= (0), "Offset of ec_op/q_y must be nonnegative."); + ASSERT_RELEASE( + (mul_mod__carry3__part2_suboffset) >= (0), + "Offset of mul_mod/carry3/part2 must be nonnegative."); ASSERT_RELEASE( - (((trace_length_) - (ec_op__q_y_suboffset)) - (1)) >= (0), - "Offset of ec_op/q_y is too big."); + (((trace_length_) - (mul_mod__carry3__part2_suboffset)) - (1)) >= (0), + "Offset of mul_mod/carry3/part2 is too big."); ASSERT_RELEASE( - (((ec_op_builtin_row_ratio) - ((ec_op__q_y_suboffset) * (memory_units_row_ratio))) - (1)) >= - (0), - "Offset of ec_op/q_y is too big."); + (((mul_mod__row_ratio) - + ((mul_mod__carry3__part2_suboffset) * (range_check_units_row_ratio))) - + (1)) >= (0), + "Offset of mul_mod/carry3/part2 is too big."); - ASSERT_RELEASE((ec_op__m_suboffset) >= (0), "Offset of ec_op/m must be nonnegative."); + ASSERT_RELEASE( + (mul_mod__carry3__part3_suboffset) >= (0), + "Offset of mul_mod/carry3/part3 must be nonnegative."); ASSERT_RELEASE( - (((trace_length_) - (ec_op__m_suboffset)) - (1)) >= (0), "Offset of ec_op/m is too big."); + (((trace_length_) - (mul_mod__carry3__part3_suboffset)) - (1)) >= (0), + "Offset of mul_mod/carry3/part3 is too big."); ASSERT_RELEASE( - (((ec_op_builtin_row_ratio) - ((ec_op__m_suboffset) * (memory_units_row_ratio))) - (1)) >= - (0), - "Offset of ec_op/m is too big."); + (((mul_mod__row_ratio) - + ((mul_mod__carry3__part3_suboffset) * (range_check_units_row_ratio))) - + (1)) >= (0), + "Offset of mul_mod/carry3/part3 is too big."); - ASSERT_RELEASE((ec_op__r_x_suboffset) >= (0), "Offset of ec_op/r_x must be nonnegative."); + ASSERT_RELEASE( + (mul_mod__carry3__part4_suboffset) >= (0), + "Offset of mul_mod/carry3/part4 must be nonnegative."); ASSERT_RELEASE( - (((trace_length_) - (ec_op__r_x_suboffset)) - (1)) >= (0), - "Offset of ec_op/r_x is too big."); + (((trace_length_) - (mul_mod__carry3__part4_suboffset)) - (1)) >= (0), + "Offset of mul_mod/carry3/part4 is too big."); ASSERT_RELEASE( - (((ec_op_builtin_row_ratio) - ((ec_op__r_x_suboffset) * (memory_units_row_ratio))) - (1)) >= - (0), - "Offset of ec_op/r_x is too big."); + (((mul_mod__row_ratio) - + ((mul_mod__carry3__part4_suboffset) * (range_check_units_row_ratio))) - + (1)) >= (0), + "Offset of mul_mod/carry3/part4 is too big."); - ASSERT_RELEASE((ec_op__r_y_suboffset) >= (0), "Offset of ec_op/r_y must be nonnegative."); + ASSERT_RELEASE( + (mul_mod__carry3__part5_suboffset) >= (0), + "Offset of mul_mod/carry3/part5 must be nonnegative."); ASSERT_RELEASE( - (((trace_length_) - (ec_op__r_y_suboffset)) - (1)) >= (0), - "Offset of ec_op/r_y is too big."); + (((trace_length_) - (mul_mod__carry3__part5_suboffset)) - (1)) >= (0), + "Offset of mul_mod/carry3/part5 is too big."); ASSERT_RELEASE( - (((ec_op_builtin_row_ratio) - ((ec_op__r_y_suboffset) * (memory_units_row_ratio))) - (1)) >= - (0), - "Offset of ec_op/r_y is too big."); - } + (((mul_mod__row_ratio) - + ((mul_mod__carry3__part5_suboffset) * (range_check_units_row_ratio))) - + (1)) >= (0), + "Offset of mul_mod/carry3/part5 is too big."); - if ((uses_keccak_builtin) != (0)) { ASSERT_RELEASE( - IsPowerOfTwo(SafeDiv(keccak__row_ratio, 4096)), - "Coset step ((DynamicParam(keccak__row_ratio)) / (4096)) must be a power of two"); + (mul_mod__carry3__part6_suboffset) >= (0), + "Offset of mul_mod/carry3/part6 must be nonnegative."); ASSERT_RELEASE( - IsPowerOfTwo(SafeDiv(trace_length_, (16) * (keccak__row_ratio))), - "Dimension should be a power of 2."); + (((trace_length_) - (mul_mod__carry3__part6_suboffset)) - (1)) >= (0), + "Offset of mul_mod/carry3/part6 is too big."); + + ASSERT_RELEASE( + (((mul_mod__row_ratio) - + ((mul_mod__carry3__part6_suboffset) * (range_check_units_row_ratio))) - + (1)) >= (0), + "Offset of mul_mod/carry3/part6 is too big."); + + ASSERT_RELEASE( + (mul_mod__carry4__part0_suboffset) >= (0), + "Offset of mul_mod/carry4/part0 must be nonnegative."); ASSERT_RELEASE( - IsPowerOfTwo(SafeDiv(keccak__row_ratio, 128)), - "Coset step ((DynamicParam(keccak__row_ratio)) / (128)) must be a power of two"); + (((trace_length_) - (mul_mod__carry4__part0_suboffset)) - (1)) >= (0), + "Offset of mul_mod/carry4/part0 is too big."); ASSERT_RELEASE( - IsPowerOfTwo(SafeDiv(keccak__row_ratio, 32768)), - "Coset step ((DynamicParam(keccak__row_ratio)) / (32768)) must be a power of two"); + (((mul_mod__row_ratio) - + ((mul_mod__carry4__part0_suboffset) * (range_check_units_row_ratio))) - + (1)) >= (0), + "Offset of mul_mod/carry4/part0 is too big."); ASSERT_RELEASE( - IsPowerOfTwo(keccak__row_ratio), - "Row ratio should be a power of 2, smaller than trace length."); + (mul_mod__carry4__part1_suboffset) >= (0), + "Offset of mul_mod/carry4/part1 must be nonnegative."); ASSERT_RELEASE( - IsPowerOfTwo(SafeDiv(keccak__row_ratio, 16)), - "Coset step ((DynamicParam(keccak__row_ratio)) / (16)) must be a power of two"); + (((trace_length_) - (mul_mod__carry4__part1_suboffset)) - (1)) >= (0), + "Offset of mul_mod/carry4/part1 is too big."); ASSERT_RELEASE( - IsPowerOfTwo(SafeDiv((16) * (trace_length_), keccak__row_ratio)), - "Dimension should be a power of 2."); + (((mul_mod__row_ratio) - + ((mul_mod__carry4__part1_suboffset) * (range_check_units_row_ratio))) - + (1)) >= (0), + "Offset of mul_mod/carry4/part1 is too big."); ASSERT_RELEASE( - ((SafeDiv((16) * (trace_length_), keccak__row_ratio)) - (1)) >= (0), "Index out of range."); + (mul_mod__carry4__part2_suboffset) >= (0), + "Offset of mul_mod/carry4/part2 must be nonnegative."); ASSERT_RELEASE( - (SafeDiv((16) * (trace_length_), keccak__row_ratio)) >= (0), - "Index should be non negative."); + (((trace_length_) - (mul_mod__carry4__part2_suboffset)) - (1)) >= (0), + "Offset of mul_mod/carry4/part2 is too big."); ASSERT_RELEASE( - IsPowerOfTwo(trace_length_), - "Coset step (MemberExpression(trace_length)) must be a power of two"); + (((mul_mod__row_ratio) - + ((mul_mod__carry4__part2_suboffset) * (range_check_units_row_ratio))) - + (1)) >= (0), + "Offset of mul_mod/carry4/part2 is too big."); ASSERT_RELEASE( - (keccak__input_output_suboffset) >= (0), - "Offset of keccak/input_output must be nonnegative."); + (mul_mod__carry4__part3_suboffset) >= (0), + "Offset of mul_mod/carry4/part3 must be nonnegative."); ASSERT_RELEASE( - (((trace_length_) - (keccak__input_output_suboffset)) - (1)) >= (0), - "Offset of keccak/input_output is too big."); + (((trace_length_) - (mul_mod__carry4__part3_suboffset)) - (1)) >= (0), + "Offset of mul_mod/carry4/part3 is too big."); ASSERT_RELEASE( - (((SafeDiv(keccak__row_ratio, 16)) - - ((keccak__input_output_suboffset) * (memory_units_row_ratio))) - + (((mul_mod__row_ratio) - + ((mul_mod__carry4__part3_suboffset) * (range_check_units_row_ratio))) - (1)) >= (0), - "Offset of keccak/input_output is too big."); + "Offset of mul_mod/carry4/part3 is too big."); ASSERT_RELEASE( - (keccak__keccak__diluted_column0_suboffset) >= (0), - "Offset of keccak/keccak/diluted_column0 must be nonnegative."); + (mul_mod__carry4__part4_suboffset) >= (0), + "Offset of mul_mod/carry4/part4 must be nonnegative."); ASSERT_RELEASE( - (((trace_length_) - (keccak__keccak__diluted_column0_suboffset)) - (1)) >= (0), - "Offset of keccak/keccak/diluted_column0 is too big."); + (((trace_length_) - (mul_mod__carry4__part4_suboffset)) - (1)) >= (0), + "Offset of mul_mod/carry4/part4 is too big."); ASSERT_RELEASE( - (((SafeDiv(keccak__row_ratio, 4096)) - - ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) - + (((mul_mod__row_ratio) - + ((mul_mod__carry4__part4_suboffset) * (range_check_units_row_ratio))) - (1)) >= (0), - "Offset of keccak/keccak/diluted_column0 is too big."); + "Offset of mul_mod/carry4/part4 is too big."); ASSERT_RELEASE( - (keccak__keccak__diluted_column1_suboffset) >= (0), - "Offset of keccak/keccak/diluted_column1 must be nonnegative."); + (mul_mod__carry4__part5_suboffset) >= (0), + "Offset of mul_mod/carry4/part5 must be nonnegative."); ASSERT_RELEASE( - (((trace_length_) - (keccak__keccak__diluted_column1_suboffset)) - (1)) >= (0), - "Offset of keccak/keccak/diluted_column1 is too big."); + (((trace_length_) - (mul_mod__carry4__part5_suboffset)) - (1)) >= (0), + "Offset of mul_mod/carry4/part5 is too big."); ASSERT_RELEASE( - (((SafeDiv(keccak__row_ratio, 4096)) - - ((keccak__keccak__diluted_column1_suboffset) * (diluted_units_row_ratio))) - + (((mul_mod__row_ratio) - + ((mul_mod__carry4__part5_suboffset) * (range_check_units_row_ratio))) - (1)) >= (0), - "Offset of keccak/keccak/diluted_column1 is too big."); + "Offset of mul_mod/carry4/part5 is too big."); ASSERT_RELEASE( - (keccak__keccak__diluted_column2_suboffset) >= (0), - "Offset of keccak/keccak/diluted_column2 must be nonnegative."); + (mul_mod__carry4__part6_suboffset) >= (0), + "Offset of mul_mod/carry4/part6 must be nonnegative."); ASSERT_RELEASE( - (((trace_length_) - (keccak__keccak__diluted_column2_suboffset)) - (1)) >= (0), - "Offset of keccak/keccak/diluted_column2 is too big."); + (((trace_length_) - (mul_mod__carry4__part6_suboffset)) - (1)) >= (0), + "Offset of mul_mod/carry4/part6 is too big."); ASSERT_RELEASE( - (((SafeDiv(keccak__row_ratio, 4096)) - - ((keccak__keccak__diluted_column2_suboffset) * (diluted_units_row_ratio))) - + (((mul_mod__row_ratio) - + ((mul_mod__carry4__part6_suboffset) * (range_check_units_row_ratio))) - (1)) >= (0), - "Offset of keccak/keccak/diluted_column2 is too big."); + "Offset of mul_mod/carry4/part6 is too big."); ASSERT_RELEASE( - (keccak__keccak__diluted_column3_suboffset) >= (0), - "Offset of keccak/keccak/diluted_column3 must be nonnegative."); + (mul_mod__carry5__part0_suboffset) >= (0), + "Offset of mul_mod/carry5/part0 must be nonnegative."); ASSERT_RELEASE( - (((trace_length_) - (keccak__keccak__diluted_column3_suboffset)) - (1)) >= (0), - "Offset of keccak/keccak/diluted_column3 is too big."); + (((trace_length_) - (mul_mod__carry5__part0_suboffset)) - (1)) >= (0), + "Offset of mul_mod/carry5/part0 is too big."); ASSERT_RELEASE( - (((SafeDiv(keccak__row_ratio, 4096)) - - ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) - + (((mul_mod__row_ratio) - + ((mul_mod__carry5__part0_suboffset) * (range_check_units_row_ratio))) - (1)) >= (0), - "Offset of keccak/keccak/diluted_column3 is too big."); - } - - if ((uses_poseidon_builtin) != (0)) { - ASSERT_RELEASE( - IsPowerOfTwo(poseidon__row_ratio), - "Row ratio should be a power of 2, smaller than trace length."); + "Offset of mul_mod/carry5/part0 is too big."); ASSERT_RELEASE( - IsPowerOfTwo(SafeDiv(trace_length_, poseidon__row_ratio)), - "Dimension should be a power of 2."); + (mul_mod__carry5__part1_suboffset) >= (0), + "Offset of mul_mod/carry5/part1 must be nonnegative."); ASSERT_RELEASE( - IsPowerOfTwo(SafeDiv(poseidon__row_ratio, 32)), - "Coset step ((DynamicParam(poseidon__row_ratio)) / (32)) must be a power of two"); + (((trace_length_) - (mul_mod__carry5__part1_suboffset)) - (1)) >= (0), + "Offset of mul_mod/carry5/part1 is too big."); ASSERT_RELEASE( - IsPowerOfTwo(SafeDiv(poseidon__row_ratio, 8)), - "Coset step ((DynamicParam(poseidon__row_ratio)) / (8)) must be a power of two"); + (((mul_mod__row_ratio) - + ((mul_mod__carry5__part1_suboffset) * (range_check_units_row_ratio))) - + (1)) >= (0), + "Offset of mul_mod/carry5/part1 is too big."); ASSERT_RELEASE( - IsPowerOfTwo(SafeDiv(poseidon__row_ratio, 64)), - "Coset step ((DynamicParam(poseidon__row_ratio)) / (64)) must be a power of two"); + (mul_mod__carry5__part2_suboffset) >= (0), + "Offset of mul_mod/carry5/part2 must be nonnegative."); ASSERT_RELEASE( - IsPowerOfTwo(SafeDiv(poseidon__row_ratio, 2)), - "Coset step ((DynamicParam(poseidon__row_ratio)) / (2)) must be a power of two"); + (((trace_length_) - (mul_mod__carry5__part2_suboffset)) - (1)) >= (0), + "Offset of mul_mod/carry5/part2 is too big."); ASSERT_RELEASE( - IsPowerOfTwo(SafeDiv((2) * (trace_length_), poseidon__row_ratio)), - "Dimension should be a power of 2."); + (((mul_mod__row_ratio) - + ((mul_mod__carry5__part2_suboffset) * (range_check_units_row_ratio))) - + (1)) >= (0), + "Offset of mul_mod/carry5/part2 is too big."); ASSERT_RELEASE( - ((SafeDiv((2) * (trace_length_), poseidon__row_ratio)) - (1)) >= (0), - "Index out of range."); + (mul_mod__carry5__part3_suboffset) >= (0), + "Offset of mul_mod/carry5/part3 must be nonnegative."); ASSERT_RELEASE( - (SafeDiv((2) * (trace_length_), poseidon__row_ratio)) >= (0), - "Index should be non negative."); + (((trace_length_) - (mul_mod__carry5__part3_suboffset)) - (1)) >= (0), + "Offset of mul_mod/carry5/part3 is too big."); ASSERT_RELEASE( - IsPowerOfTwo(trace_length_), - "Coset step (MemberExpression(trace_length)) must be a power of two"); + (((mul_mod__row_ratio) - + ((mul_mod__carry5__part3_suboffset) * (range_check_units_row_ratio))) - + (1)) >= (0), + "Offset of mul_mod/carry5/part3 is too big."); ASSERT_RELEASE( - (poseidon__param_0__input_output_suboffset) >= (0), - "Offset of poseidon/param_0/input_output must be nonnegative."); + (mul_mod__carry5__part4_suboffset) >= (0), + "Offset of mul_mod/carry5/part4 must be nonnegative."); ASSERT_RELEASE( - (((trace_length_) - (poseidon__param_0__input_output_suboffset)) - (1)) >= (0), - "Offset of poseidon/param_0/input_output is too big."); + (((trace_length_) - (mul_mod__carry5__part4_suboffset)) - (1)) >= (0), + "Offset of mul_mod/carry5/part4 is too big."); ASSERT_RELEASE( - (((SafeDiv(poseidon__row_ratio, 2)) - - ((poseidon__param_0__input_output_suboffset) * (memory_units_row_ratio))) - + (((mul_mod__row_ratio) - + ((mul_mod__carry5__part4_suboffset) * (range_check_units_row_ratio))) - (1)) >= (0), - "Offset of poseidon/param_0/input_output is too big."); + "Offset of mul_mod/carry5/part4 is too big."); ASSERT_RELEASE( - (poseidon__param_1__input_output_suboffset) >= (0), - "Offset of poseidon/param_1/input_output must be nonnegative."); + (mul_mod__carry5__part5_suboffset) >= (0), + "Offset of mul_mod/carry5/part5 must be nonnegative."); ASSERT_RELEASE( - (((trace_length_) - (poseidon__param_1__input_output_suboffset)) - (1)) >= (0), - "Offset of poseidon/param_1/input_output is too big."); + (((trace_length_) - (mul_mod__carry5__part5_suboffset)) - (1)) >= (0), + "Offset of mul_mod/carry5/part5 is too big."); ASSERT_RELEASE( - (((SafeDiv(poseidon__row_ratio, 2)) - - ((poseidon__param_1__input_output_suboffset) * (memory_units_row_ratio))) - + (((mul_mod__row_ratio) - + ((mul_mod__carry5__part5_suboffset) * (range_check_units_row_ratio))) - (1)) >= (0), - "Offset of poseidon/param_1/input_output is too big."); + "Offset of mul_mod/carry5/part5 is too big."); ASSERT_RELEASE( - (poseidon__param_2__input_output_suboffset) >= (0), - "Offset of poseidon/param_2/input_output must be nonnegative."); + (mul_mod__carry5__part6_suboffset) >= (0), + "Offset of mul_mod/carry5/part6 must be nonnegative."); ASSERT_RELEASE( - (((trace_length_) - (poseidon__param_2__input_output_suboffset)) - (1)) >= (0), - "Offset of poseidon/param_2/input_output is too big."); + (((trace_length_) - (mul_mod__carry5__part6_suboffset)) - (1)) >= (0), + "Offset of mul_mod/carry5/part6 is too big."); ASSERT_RELEASE( - (((SafeDiv(poseidon__row_ratio, 2)) - - ((poseidon__param_2__input_output_suboffset) * (memory_units_row_ratio))) - + (((mul_mod__row_ratio) - + ((mul_mod__carry5__part6_suboffset) * (range_check_units_row_ratio))) - (1)) >= (0), - "Offset of poseidon/param_2/input_output is too big."); + "Offset of mul_mod/carry5/part6 is too big."); } ctx.AddVirtualColumn( - "mem_pool/addr", VirtualColumn( - /*column=*/mem_pool__addr_column, /*step=*/memory_units_row_ratio, - /*row_offset=*/mem_pool__addr_offset)); + "mem_pool/addr", VirtualColumn( + /*column=*/mem_pool__addr_column, /*step=*/memory_units_row_ratio, + /*row_offset=*/mem_pool__addr_offset)); + ctx.AddVirtualColumn( + "mem_pool/value", VirtualColumn( + /*column=*/mem_pool__value_column, /*step=*/memory_units_row_ratio, + /*row_offset=*/mem_pool__value_offset)); + ctx.AddVirtualColumn( + "range_check16_pool", + VirtualColumn( + /*column=*/range_check16_pool_column, /*step=*/range_check_units_row_ratio, + /*row_offset=*/range_check16_pool_offset)); + ctx.AddVirtualColumn( + "cpu/decode/mem_inst/addr", + VirtualColumn( + /*column=*/mem_pool__addr_column, /*step=*/(16) * (cpu_component_step), + /*row_offset=*/((cpu__decode__mem_inst_suboffset) * (memory_units_row_ratio)) + + (mem_pool__addr_offset))); + ctx.AddVirtualColumn( + "cpu/decode/mem_inst/value", + VirtualColumn( + /*column=*/mem_pool__value_column, /*step=*/(16) * (cpu_component_step), + /*row_offset=*/((cpu__decode__mem_inst_suboffset) * (memory_units_row_ratio)) + + (mem_pool__value_offset))); + ctx.AddVirtualColumn( + "cpu/decode/pc", + VirtualColumn( + /*column=*/mem_pool__addr_column, /*step=*/(16) * (cpu_component_step), + /*row_offset=*/((cpu__decode__mem_inst_suboffset) * (memory_units_row_ratio)) + + (mem_pool__addr_offset))); + ctx.AddVirtualColumn( + "cpu/decode/instruction", + VirtualColumn( + /*column=*/mem_pool__value_column, /*step=*/(16) * (cpu_component_step), + /*row_offset=*/((cpu__decode__mem_inst_suboffset) * (memory_units_row_ratio)) + + (mem_pool__value_offset))); + ctx.AddVirtualColumn( + "cpu/decode/opcode_range_check/column", + VirtualColumn( + /*column=*/cpu__decode__opcode_range_check__column_column, /*step=*/cpu_component_step, + /*row_offset=*/cpu__decode__opcode_range_check__column_offset)); + ctx.AddVirtualColumn( + "cpu/decode/off0", + VirtualColumn( + /*column=*/range_check16_pool_column, /*step=*/(16) * (cpu_component_step), + /*row_offset=*/((cpu__decode__off0_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset))); + ctx.AddVirtualColumn( + "cpu/decode/off1", + VirtualColumn( + /*column=*/range_check16_pool_column, /*step=*/(16) * (cpu_component_step), + /*row_offset=*/((cpu__decode__off1_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset))); + ctx.AddVirtualColumn( + "cpu/decode/off2", + VirtualColumn( + /*column=*/range_check16_pool_column, /*step=*/(16) * (cpu_component_step), + /*row_offset=*/((cpu__decode__off2_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset))); + ctx.AddVirtualColumn( + "cpu/registers/ap", + VirtualColumn( + /*column=*/cpu__registers__ap_column, /*step=*/(16) * (cpu_component_step), + /*row_offset=*/cpu__registers__ap_offset)); + ctx.AddVirtualColumn( + "cpu/registers/fp", + VirtualColumn( + /*column=*/cpu__registers__fp_column, /*step=*/(16) * (cpu_component_step), + /*row_offset=*/cpu__registers__fp_offset)); + ctx.AddVirtualColumn( + "cpu/operands/mem_dst/addr", + VirtualColumn( + /*column=*/mem_pool__addr_column, /*step=*/(16) * (cpu_component_step), + /*row_offset=*/((cpu__operands__mem_dst_suboffset) * (memory_units_row_ratio)) + + (mem_pool__addr_offset))); + ctx.AddVirtualColumn( + "cpu/operands/mem_dst/value", + VirtualColumn( + /*column=*/mem_pool__value_column, /*step=*/(16) * (cpu_component_step), + /*row_offset=*/((cpu__operands__mem_dst_suboffset) * (memory_units_row_ratio)) + + (mem_pool__value_offset))); + ctx.AddVirtualColumn( + "cpu/operands/mem_op0/addr", + VirtualColumn( + /*column=*/mem_pool__addr_column, /*step=*/(16) * (cpu_component_step), + /*row_offset=*/((cpu__operands__mem_op0_suboffset) * (memory_units_row_ratio)) + + (mem_pool__addr_offset))); + ctx.AddVirtualColumn( + "cpu/operands/mem_op0/value", + VirtualColumn( + /*column=*/mem_pool__value_column, /*step=*/(16) * (cpu_component_step), + /*row_offset=*/((cpu__operands__mem_op0_suboffset) * (memory_units_row_ratio)) + + (mem_pool__value_offset))); + ctx.AddVirtualColumn( + "cpu/operands/mem_op1/addr", + VirtualColumn( + /*column=*/mem_pool__addr_column, /*step=*/(16) * (cpu_component_step), + /*row_offset=*/((cpu__operands__mem_op1_suboffset) * (memory_units_row_ratio)) + + (mem_pool__addr_offset))); + ctx.AddVirtualColumn( + "cpu/operands/mem_op1/value", + VirtualColumn( + /*column=*/mem_pool__value_column, /*step=*/(16) * (cpu_component_step), + /*row_offset=*/((cpu__operands__mem_op1_suboffset) * (memory_units_row_ratio)) + + (mem_pool__value_offset))); + ctx.AddVirtualColumn( + "cpu/operands/ops_mul", + VirtualColumn( + /*column=*/cpu__operands__ops_mul_column, /*step=*/(16) * (cpu_component_step), + /*row_offset=*/cpu__operands__ops_mul_offset)); + ctx.AddVirtualColumn( + "cpu/operands/res", + VirtualColumn( + /*column=*/cpu__operands__res_column, /*step=*/(16) * (cpu_component_step), + /*row_offset=*/cpu__operands__res_offset)); + ctx.AddVirtualColumn( + "cpu/update_registers/update_pc/tmp0", + VirtualColumn( + /*column=*/cpu__update_registers__update_pc__tmp0_column, + /*step=*/(16) * (cpu_component_step), + /*row_offset=*/cpu__update_registers__update_pc__tmp0_offset)); + ctx.AddVirtualColumn( + "cpu/update_registers/update_pc/tmp1", + VirtualColumn( + /*column=*/cpu__update_registers__update_pc__tmp1_column, + /*step=*/(16) * (cpu_component_step), + /*row_offset=*/cpu__update_registers__update_pc__tmp1_offset)); + ctx.AddVirtualColumn( + "memory/sorted/addr", + VirtualColumn( + /*column=*/memory__sorted__addr_column, /*step=*/memory_units_row_ratio, + /*row_offset=*/memory__sorted__addr_offset)); + ctx.AddVirtualColumn( + "memory/sorted/value", + VirtualColumn( + /*column=*/memory__sorted__value_column, /*step=*/memory_units_row_ratio, + /*row_offset=*/memory__sorted__value_offset)); + ctx.AddVirtualColumn( + "memory/multi_column_perm/perm/cum_prod0", + VirtualColumn( + /*column=*/memory__multi_column_perm__perm__cum_prod0_column - num_columns_first, + /*step=*/memory_units_row_ratio, + /*row_offset=*/memory__multi_column_perm__perm__cum_prod0_offset)); + ctx.AddVirtualColumn( + "orig/public_memory/addr", + VirtualColumn( + /*column=*/mem_pool__addr_column, /*step=*/(8) * (memory_units_row_ratio), + /*row_offset=*/((orig__public_memory_suboffset) * (memory_units_row_ratio)) + + (mem_pool__addr_offset))); + ctx.AddVirtualColumn( + "orig/public_memory/value", + VirtualColumn( + /*column=*/mem_pool__value_column, /*step=*/(8) * (memory_units_row_ratio), + /*row_offset=*/((orig__public_memory_suboffset) * (memory_units_row_ratio)) + + (mem_pool__value_offset))); + ctx.AddVirtualColumn( + "range_check16/sorted", + VirtualColumn( + /*column=*/range_check16__sorted_column, /*step=*/range_check_units_row_ratio, + /*row_offset=*/range_check16__sorted_offset)); ctx.AddVirtualColumn( - "mem_pool/value", VirtualColumn( - /*column=*/mem_pool__value_column, /*step=*/memory_units_row_ratio, - /*row_offset=*/mem_pool__value_offset)); + "range_check16/perm/cum_prod0", + VirtualColumn( + /*column=*/range_check16__perm__cum_prod0_column - num_columns_first, + /*step=*/range_check_units_row_ratio, + /*row_offset=*/range_check16__perm__cum_prod0_offset)); + ctx.AddVirtualColumn( + "diluted_pool", VirtualColumn( + /*column=*/diluted_pool_column, /*step=*/diluted_units_row_ratio, + /*row_offset=*/diluted_pool_offset)); + ctx.AddVirtualColumn( + "diluted_check/permuted_values", + VirtualColumn( + /*column=*/diluted_check__permuted_values_column, /*step=*/diluted_units_row_ratio, + /*row_offset=*/diluted_check__permuted_values_offset)); + ctx.AddVirtualColumn( + "diluted_check/cumulative_value", + VirtualColumn( + /*column=*/diluted_check__cumulative_value_column - num_columns_first, + /*step=*/diluted_units_row_ratio, /*row_offset=*/diluted_check__cumulative_value_offset)); + ctx.AddVirtualColumn( + "diluted_check/permutation/cum_prod0", + VirtualColumn( + /*column=*/diluted_check__permutation__cum_prod0_column - num_columns_first, + /*step=*/diluted_units_row_ratio, + /*row_offset=*/diluted_check__permutation__cum_prod0_offset)); + ctx.AddVirtualColumn( + "pedersen/input0/addr", + VirtualColumn( + /*column=*/mem_pool__addr_column, /*step=*/pedersen_builtin_row_ratio, + /*row_offset=*/((pedersen__input0_suboffset) * (memory_units_row_ratio)) + + (mem_pool__addr_offset))); + ctx.AddVirtualColumn( + "pedersen/input0/value", + VirtualColumn( + /*column=*/mem_pool__value_column, /*step=*/pedersen_builtin_row_ratio, + /*row_offset=*/((pedersen__input0_suboffset) * (memory_units_row_ratio)) + + (mem_pool__value_offset))); + ctx.AddVirtualColumn( + "pedersen/input1/addr", + VirtualColumn( + /*column=*/mem_pool__addr_column, /*step=*/pedersen_builtin_row_ratio, + /*row_offset=*/((pedersen__input1_suboffset) * (memory_units_row_ratio)) + + (mem_pool__addr_offset))); + ctx.AddVirtualColumn( + "pedersen/input1/value", + VirtualColumn( + /*column=*/mem_pool__value_column, /*step=*/pedersen_builtin_row_ratio, + /*row_offset=*/((pedersen__input1_suboffset) * (memory_units_row_ratio)) + + (mem_pool__value_offset))); + ctx.AddVirtualColumn( + "pedersen/output/addr", + VirtualColumn( + /*column=*/mem_pool__addr_column, /*step=*/pedersen_builtin_row_ratio, + /*row_offset=*/((pedersen__output_suboffset) * (memory_units_row_ratio)) + + (mem_pool__addr_offset))); + ctx.AddVirtualColumn( + "pedersen/output/value", + VirtualColumn( + /*column=*/mem_pool__value_column, /*step=*/pedersen_builtin_row_ratio, + /*row_offset=*/((pedersen__output_suboffset) * (memory_units_row_ratio)) + + (mem_pool__value_offset))); + ctx.AddVirtualColumn( + "pedersen/hash0/ec_subset_sum/partial_sum/x", + VirtualColumn( + /*column=*/pedersen__hash0__ec_subset_sum__partial_sum__x_column, + /*step=*/SafeDiv(pedersen_builtin_row_ratio, 512), + /*row_offset=*/pedersen__hash0__ec_subset_sum__partial_sum__x_offset)); + ctx.AddVirtualColumn( + "pedersen/hash0/ec_subset_sum/partial_sum/y", + VirtualColumn( + /*column=*/pedersen__hash0__ec_subset_sum__partial_sum__y_column, + /*step=*/SafeDiv(pedersen_builtin_row_ratio, 512), + /*row_offset=*/pedersen__hash0__ec_subset_sum__partial_sum__y_offset)); + ctx.AddVirtualColumn( + "pedersen/hash0/ec_subset_sum/slope", + VirtualColumn( + /*column=*/pedersen__hash0__ec_subset_sum__slope_column, + /*step=*/SafeDiv(pedersen_builtin_row_ratio, 512), + /*row_offset=*/pedersen__hash0__ec_subset_sum__slope_offset)); + ctx.AddVirtualColumn( + "pedersen/hash0/ec_subset_sum/selector", + VirtualColumn( + /*column=*/pedersen__hash0__ec_subset_sum__selector_column, + /*step=*/SafeDiv(pedersen_builtin_row_ratio, 512), + /*row_offset=*/pedersen__hash0__ec_subset_sum__selector_offset)); + ctx.AddVirtualColumn( + "pedersen/hash0/ec_subset_sum/bit_unpacking/prod_ones196", + VirtualColumn( + /*column=*/pedersen__hash0__ec_subset_sum__bit_unpacking__prod_ones196_column, + /*step=*/SafeDiv(pedersen_builtin_row_ratio, 2), + /*row_offset=*/pedersen__hash0__ec_subset_sum__bit_unpacking__prod_ones196_offset)); + ctx.AddVirtualColumn( + "pedersen/hash0/ec_subset_sum/bit_unpacking/prod_ones192", + VirtualColumn( + /*column=*/pedersen__hash0__ec_subset_sum__bit_unpacking__prod_ones192_column, + /*step=*/SafeDiv(pedersen_builtin_row_ratio, 2), + /*row_offset=*/pedersen__hash0__ec_subset_sum__bit_unpacking__prod_ones192_offset)); + ctx.AddVirtualColumn( + "range_check_builtin/mem/addr", + VirtualColumn( + /*column=*/mem_pool__addr_column, /*step=*/range_check_builtin_row_ratio, + /*row_offset=*/((range_check_builtin__mem_suboffset) * (memory_units_row_ratio)) + + (mem_pool__addr_offset))); + ctx.AddVirtualColumn( + "range_check_builtin/mem/value", + VirtualColumn( + /*column=*/mem_pool__value_column, /*step=*/range_check_builtin_row_ratio, + /*row_offset=*/((range_check_builtin__mem_suboffset) * (memory_units_row_ratio)) + + (mem_pool__value_offset))); + ctx.AddVirtualColumn( + "range_check_builtin/inner_range_check", + VirtualColumn( + /*column=*/range_check16_pool_column, /*step=*/SafeDiv(range_check_builtin_row_ratio, 8), + /*row_offset=*/ + ((range_check_builtin__inner_range_check_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset))); + ctx.AddVirtualColumn( + "ecdsa/pubkey/addr", + VirtualColumn( + /*column=*/mem_pool__addr_column, /*step=*/ecdsa_builtin_row_ratio, + /*row_offset=*/((ecdsa__pubkey_suboffset) * (memory_units_row_ratio)) + + (mem_pool__addr_offset))); + ctx.AddVirtualColumn( + "ecdsa/pubkey/value", + VirtualColumn( + /*column=*/mem_pool__value_column, /*step=*/ecdsa_builtin_row_ratio, + /*row_offset=*/((ecdsa__pubkey_suboffset) * (memory_units_row_ratio)) + + (mem_pool__value_offset))); + ctx.AddVirtualColumn( + "ecdsa/message/addr", + VirtualColumn( + /*column=*/mem_pool__addr_column, /*step=*/ecdsa_builtin_row_ratio, + /*row_offset=*/((ecdsa__message_suboffset) * (memory_units_row_ratio)) + + (mem_pool__addr_offset))); + ctx.AddVirtualColumn( + "ecdsa/message/value", + VirtualColumn( + /*column=*/mem_pool__value_column, /*step=*/ecdsa_builtin_row_ratio, + /*row_offset=*/((ecdsa__message_suboffset) * (memory_units_row_ratio)) + + (mem_pool__value_offset))); + ctx.AddVirtualColumn( + "ecdsa/signature0/key_points/x", VirtualColumn( + /*column=*/ecdsa__signature0__key_points__x_column, + /*step=*/SafeDiv(ecdsa_builtin_row_ratio, 512), + /*row_offset=*/ecdsa__signature0__key_points__x_offset)); + ctx.AddVirtualColumn( + "ecdsa/signature0/key_points/y", VirtualColumn( + /*column=*/ecdsa__signature0__key_points__y_column, + /*step=*/SafeDiv(ecdsa_builtin_row_ratio, 512), + /*row_offset=*/ecdsa__signature0__key_points__y_offset)); + ctx.AddVirtualColumn( + "ecdsa/signature0/doubling_slope", + VirtualColumn( + /*column=*/ecdsa__signature0__doubling_slope_column, + /*step=*/SafeDiv(ecdsa_builtin_row_ratio, 512), + /*row_offset=*/ecdsa__signature0__doubling_slope_offset)); + ctx.AddVirtualColumn( + "ecdsa/signature0/exponentiate_generator/partial_sum/x", + VirtualColumn( + /*column=*/ecdsa__signature0__exponentiate_generator__partial_sum__x_column, + /*step=*/SafeDiv(ecdsa_builtin_row_ratio, 256), + /*row_offset=*/ecdsa__signature0__exponentiate_generator__partial_sum__x_offset)); + ctx.AddVirtualColumn( + "ecdsa/signature0/exponentiate_generator/partial_sum/y", + VirtualColumn( + /*column=*/ecdsa__signature0__exponentiate_generator__partial_sum__y_column, + /*step=*/SafeDiv(ecdsa_builtin_row_ratio, 256), + /*row_offset=*/ecdsa__signature0__exponentiate_generator__partial_sum__y_offset)); + ctx.AddVirtualColumn( + "ecdsa/signature0/exponentiate_generator/slope", + VirtualColumn( + /*column=*/ecdsa__signature0__exponentiate_generator__slope_column, + /*step=*/SafeDiv(ecdsa_builtin_row_ratio, 256), + /*row_offset=*/ecdsa__signature0__exponentiate_generator__slope_offset)); + ctx.AddVirtualColumn( + "ecdsa/signature0/exponentiate_generator/selector", + VirtualColumn( + /*column=*/ecdsa__signature0__exponentiate_generator__selector_column, + /*step=*/SafeDiv(ecdsa_builtin_row_ratio, 256), + /*row_offset=*/ecdsa__signature0__exponentiate_generator__selector_offset)); + ctx.AddVirtualColumn( + "ecdsa/signature0/exponentiate_generator/x_diff_inv", + VirtualColumn( + /*column=*/ecdsa__signature0__exponentiate_generator__x_diff_inv_column, + /*step=*/SafeDiv(ecdsa_builtin_row_ratio, 256), + /*row_offset=*/ecdsa__signature0__exponentiate_generator__x_diff_inv_offset)); + ctx.AddVirtualColumn( + "ecdsa/signature0/exponentiate_key/partial_sum/x", + VirtualColumn( + /*column=*/ecdsa__signature0__exponentiate_key__partial_sum__x_column, + /*step=*/SafeDiv(ecdsa_builtin_row_ratio, 512), + /*row_offset=*/ecdsa__signature0__exponentiate_key__partial_sum__x_offset)); + ctx.AddVirtualColumn( + "ecdsa/signature0/exponentiate_key/partial_sum/y", + VirtualColumn( + /*column=*/ecdsa__signature0__exponentiate_key__partial_sum__y_column, + /*step=*/SafeDiv(ecdsa_builtin_row_ratio, 512), + /*row_offset=*/ecdsa__signature0__exponentiate_key__partial_sum__y_offset)); + ctx.AddVirtualColumn( + "ecdsa/signature0/exponentiate_key/slope", + VirtualColumn( + /*column=*/ecdsa__signature0__exponentiate_key__slope_column, + /*step=*/SafeDiv(ecdsa_builtin_row_ratio, 512), + /*row_offset=*/ecdsa__signature0__exponentiate_key__slope_offset)); + ctx.AddVirtualColumn( + "ecdsa/signature0/exponentiate_key/selector", + VirtualColumn( + /*column=*/ecdsa__signature0__exponentiate_key__selector_column, + /*step=*/SafeDiv(ecdsa_builtin_row_ratio, 512), + /*row_offset=*/ecdsa__signature0__exponentiate_key__selector_offset)); + ctx.AddVirtualColumn( + "ecdsa/signature0/exponentiate_key/x_diff_inv", + VirtualColumn( + /*column=*/ecdsa__signature0__exponentiate_key__x_diff_inv_column, + /*step=*/SafeDiv(ecdsa_builtin_row_ratio, 512), + /*row_offset=*/ecdsa__signature0__exponentiate_key__x_diff_inv_offset)); + ctx.AddVirtualColumn( + "ecdsa/signature0/add_results_slope", + VirtualColumn( + /*column=*/ecdsa__signature0__add_results_slope_column, /*step=*/ecdsa_builtin_row_ratio, + /*row_offset=*/ecdsa__signature0__add_results_slope_offset)); + ctx.AddVirtualColumn( + "ecdsa/signature0/add_results_inv", + VirtualColumn( + /*column=*/ecdsa__signature0__add_results_inv_column, /*step=*/ecdsa_builtin_row_ratio, + /*row_offset=*/ecdsa__signature0__add_results_inv_offset)); + ctx.AddVirtualColumn( + "ecdsa/signature0/extract_r_slope", + VirtualColumn( + /*column=*/ecdsa__signature0__extract_r_slope_column, /*step=*/ecdsa_builtin_row_ratio, + /*row_offset=*/ecdsa__signature0__extract_r_slope_offset)); + ctx.AddVirtualColumn( + "ecdsa/signature0/extract_r_inv", + VirtualColumn( + /*column=*/ecdsa__signature0__extract_r_inv_column, /*step=*/ecdsa_builtin_row_ratio, + /*row_offset=*/ecdsa__signature0__extract_r_inv_offset)); + ctx.AddVirtualColumn( + "ecdsa/signature0/z_inv", + VirtualColumn( + /*column=*/ecdsa__signature0__z_inv_column, /*step=*/ecdsa_builtin_row_ratio, + /*row_offset=*/ecdsa__signature0__z_inv_offset)); + ctx.AddVirtualColumn( + "ecdsa/signature0/r_w_inv", VirtualColumn( + /*column=*/ecdsa__signature0__r_w_inv_column, + /*step=*/SafeDiv(ecdsa_builtin_row_ratio, 2), + /*row_offset=*/ecdsa__signature0__r_w_inv_offset)); ctx.AddVirtualColumn( - "range_check16_pool", + "ecdsa/signature0/q_x_squared", VirtualColumn( - /*column=*/range_check16_pool_column, /*step=*/range_check_units_row_ratio, - /*row_offset=*/range_check16_pool_offset)); + /*column=*/ecdsa__signature0__q_x_squared_column, /*step=*/ecdsa_builtin_row_ratio, + /*row_offset=*/ecdsa__signature0__q_x_squared_offset)); ctx.AddVirtualColumn( - "cpu/decode/mem_inst/addr", + "bitwise/var_pool/addr", VirtualColumn( - /*column=*/mem_pool__addr_column, /*step=*/(16) * (cpu_component_step), - /*row_offset=*/((cpu__decode__mem_inst_suboffset) * (memory_units_row_ratio)) + + /*column=*/mem_pool__addr_column, /*step=*/SafeDiv(bitwise__row_ratio, 4), + /*row_offset=*/((bitwise__var_pool_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset))); ctx.AddVirtualColumn( - "cpu/decode/mem_inst/value", + "bitwise/var_pool/value", VirtualColumn( - /*column=*/mem_pool__value_column, /*step=*/(16) * (cpu_component_step), - /*row_offset=*/((cpu__decode__mem_inst_suboffset) * (memory_units_row_ratio)) + + /*column=*/mem_pool__value_column, /*step=*/SafeDiv(bitwise__row_ratio, 4), + /*row_offset=*/((bitwise__var_pool_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset))); ctx.AddVirtualColumn( - "cpu/decode/pc", + "bitwise/x/addr", VirtualColumn( - /*column=*/mem_pool__addr_column, /*step=*/(16) * (cpu_component_step), - /*row_offset=*/((cpu__decode__mem_inst_suboffset) * (memory_units_row_ratio)) + + /*column=*/mem_pool__addr_column, /*step=*/bitwise__row_ratio, + /*row_offset=*/((bitwise__var_pool_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset))); ctx.AddVirtualColumn( - "cpu/decode/instruction", + "bitwise/x/value", VirtualColumn( - /*column=*/mem_pool__value_column, /*step=*/(16) * (cpu_component_step), - /*row_offset=*/((cpu__decode__mem_inst_suboffset) * (memory_units_row_ratio)) + + /*column=*/mem_pool__value_column, /*step=*/bitwise__row_ratio, + /*row_offset=*/((bitwise__var_pool_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset))); ctx.AddVirtualColumn( - "cpu/decode/opcode_range_check/column", + "bitwise/y/addr", VirtualColumn( + /*column=*/mem_pool__addr_column, /*step=*/bitwise__row_ratio, + /*row_offset=*/ + ((SafeDiv(bitwise__row_ratio, 4)) + + ((bitwise__var_pool_suboffset) * (memory_units_row_ratio))) + + (mem_pool__addr_offset))); + ctx.AddVirtualColumn( + "bitwise/y/value", VirtualColumn( + /*column=*/mem_pool__value_column, /*step=*/bitwise__row_ratio, + /*row_offset=*/ + ((SafeDiv(bitwise__row_ratio, 4)) + + ((bitwise__var_pool_suboffset) * (memory_units_row_ratio))) + + (mem_pool__value_offset))); + ctx.AddVirtualColumn( + "bitwise/x_and_y/addr", VirtualColumn( + /*column=*/mem_pool__addr_column, /*step=*/bitwise__row_ratio, + /*row_offset=*/ + ((SafeDiv(bitwise__row_ratio, 2)) + + ((bitwise__var_pool_suboffset) * (memory_units_row_ratio))) + + (mem_pool__addr_offset))); + ctx.AddVirtualColumn( + "bitwise/x_and_y/value", VirtualColumn( - /*column=*/cpu__decode__opcode_range_check__column_column, /*step=*/cpu_component_step, - /*row_offset=*/cpu__decode__opcode_range_check__column_offset)); + /*column=*/mem_pool__value_column, /*step=*/bitwise__row_ratio, + /*row_offset=*/ + ((SafeDiv(bitwise__row_ratio, 2)) + + ((bitwise__var_pool_suboffset) * (memory_units_row_ratio))) + + (mem_pool__value_offset))); ctx.AddVirtualColumn( - "cpu/decode/off0", + "bitwise/x_xor_y/addr", VirtualColumn( + /*column=*/mem_pool__addr_column, /*step=*/bitwise__row_ratio, + /*row_offset=*/ + ((SafeDiv((3) * (bitwise__row_ratio), 4)) + + ((bitwise__var_pool_suboffset) * (memory_units_row_ratio))) + + (mem_pool__addr_offset))); + ctx.AddVirtualColumn( + "bitwise/x_xor_y/value", VirtualColumn( - /*column=*/range_check16_pool_column, /*step=*/(16) * (cpu_component_step), - /*row_offset=*/((cpu__decode__off0_suboffset) * (range_check_units_row_ratio)) + - (range_check16_pool_offset))); + /*column=*/mem_pool__value_column, /*step=*/bitwise__row_ratio, + /*row_offset=*/ + ((SafeDiv((3) * (bitwise__row_ratio), 4)) + + ((bitwise__var_pool_suboffset) * (memory_units_row_ratio))) + + (mem_pool__value_offset))); ctx.AddVirtualColumn( - "cpu/decode/off1", + "bitwise/x_or_y/addr", VirtualColumn( - /*column=*/range_check16_pool_column, /*step=*/(16) * (cpu_component_step), - /*row_offset=*/((cpu__decode__off1_suboffset) * (range_check_units_row_ratio)) + - (range_check16_pool_offset))); + /*column=*/mem_pool__addr_column, /*step=*/bitwise__row_ratio, + /*row_offset=*/((bitwise__x_or_y_suboffset) * (memory_units_row_ratio)) + + (mem_pool__addr_offset))); ctx.AddVirtualColumn( - "cpu/decode/off2", + "bitwise/x_or_y/value", VirtualColumn( - /*column=*/range_check16_pool_column, /*step=*/(16) * (cpu_component_step), - /*row_offset=*/((cpu__decode__off2_suboffset) * (range_check_units_row_ratio)) + - (range_check16_pool_offset))); + /*column=*/mem_pool__value_column, /*step=*/bitwise__row_ratio, + /*row_offset=*/((bitwise__x_or_y_suboffset) * (memory_units_row_ratio)) + + (mem_pool__value_offset))); ctx.AddVirtualColumn( - "cpu/registers/ap", + "bitwise/diluted_var_pool", VirtualColumn( - /*column=*/cpu__registers__ap_column, /*step=*/(16) * (cpu_component_step), - /*row_offset=*/cpu__registers__ap_offset)); + /*column=*/diluted_pool_column, /*step=*/SafeDiv(bitwise__row_ratio, 64), + /*row_offset=*/((bitwise__diluted_var_pool_suboffset) * (diluted_units_row_ratio)) + + (diluted_pool_offset))); ctx.AddVirtualColumn( - "cpu/registers/fp", + "bitwise/x", VirtualColumn( - /*column=*/cpu__registers__fp_column, /*step=*/(16) * (cpu_component_step), - /*row_offset=*/cpu__registers__fp_offset)); + /*column=*/diluted_pool_column, /*step=*/SafeDiv(bitwise__row_ratio, 64), + /*row_offset=*/((bitwise__diluted_var_pool_suboffset) * (diluted_units_row_ratio)) + + (diluted_pool_offset))); ctx.AddVirtualColumn( - "cpu/operands/mem_dst/addr", + "bitwise/y", VirtualColumn( + /*column=*/diluted_pool_column, /*step=*/SafeDiv(bitwise__row_ratio, 64), + /*row_offset=*/ + ((SafeDiv(bitwise__row_ratio, 4)) + + ((bitwise__diluted_var_pool_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset))); + ctx.AddVirtualColumn( + "bitwise/x_and_y", VirtualColumn( - /*column=*/mem_pool__addr_column, /*step=*/(16) * (cpu_component_step), - /*row_offset=*/((cpu__operands__mem_dst_suboffset) * (memory_units_row_ratio)) + - (mem_pool__addr_offset))); + /*column=*/diluted_pool_column, /*step=*/SafeDiv(bitwise__row_ratio, 64), + /*row_offset=*/ + ((SafeDiv(bitwise__row_ratio, 2)) + + ((bitwise__diluted_var_pool_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset))); ctx.AddVirtualColumn( - "cpu/operands/mem_dst/value", + "bitwise/x_xor_y", VirtualColumn( - /*column=*/mem_pool__value_column, /*step=*/(16) * (cpu_component_step), - /*row_offset=*/((cpu__operands__mem_dst_suboffset) * (memory_units_row_ratio)) + - (mem_pool__value_offset))); + /*column=*/diluted_pool_column, /*step=*/SafeDiv(bitwise__row_ratio, 64), + /*row_offset=*/ + ((SafeDiv((3) * (bitwise__row_ratio), 4)) + + ((bitwise__diluted_var_pool_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset))); ctx.AddVirtualColumn( - "cpu/operands/mem_op0/addr", + "bitwise/trim_unpacking192", VirtualColumn( - /*column=*/mem_pool__addr_column, /*step=*/(16) * (cpu_component_step), - /*row_offset=*/((cpu__operands__mem_op0_suboffset) * (memory_units_row_ratio)) + - (mem_pool__addr_offset))); + /*column=*/diluted_pool_column, /*step=*/bitwise__row_ratio, + /*row_offset=*/((bitwise__trim_unpacking192_suboffset) * (diluted_units_row_ratio)) + + (diluted_pool_offset))); ctx.AddVirtualColumn( - "cpu/operands/mem_op0/value", + "bitwise/trim_unpacking193", VirtualColumn( - /*column=*/mem_pool__value_column, /*step=*/(16) * (cpu_component_step), - /*row_offset=*/((cpu__operands__mem_op0_suboffset) * (memory_units_row_ratio)) + - (mem_pool__value_offset))); + /*column=*/diluted_pool_column, /*step=*/bitwise__row_ratio, + /*row_offset=*/((bitwise__trim_unpacking193_suboffset) * (diluted_units_row_ratio)) + + (diluted_pool_offset))); ctx.AddVirtualColumn( - "cpu/operands/mem_op1/addr", + "bitwise/trim_unpacking194", VirtualColumn( - /*column=*/mem_pool__addr_column, /*step=*/(16) * (cpu_component_step), - /*row_offset=*/((cpu__operands__mem_op1_suboffset) * (memory_units_row_ratio)) + - (mem_pool__addr_offset))); + /*column=*/diluted_pool_column, /*step=*/bitwise__row_ratio, + /*row_offset=*/((bitwise__trim_unpacking194_suboffset) * (diluted_units_row_ratio)) + + (diluted_pool_offset))); + ctx.AddVirtualColumn( + "bitwise/trim_unpacking195", + VirtualColumn( + /*column=*/diluted_pool_column, /*step=*/bitwise__row_ratio, + /*row_offset=*/((bitwise__trim_unpacking195_suboffset) * (diluted_units_row_ratio)) + + (diluted_pool_offset))); + ctx.AddVirtualColumn( + "ec_op/p_x/addr", VirtualColumn( + /*column=*/mem_pool__addr_column, /*step=*/ec_op_builtin_row_ratio, + /*row_offset=*/((ec_op__p_x_suboffset) * (memory_units_row_ratio)) + + (mem_pool__addr_offset))); + ctx.AddVirtualColumn( + "ec_op/p_x/value", VirtualColumn( + /*column=*/mem_pool__value_column, /*step=*/ec_op_builtin_row_ratio, + /*row_offset=*/((ec_op__p_x_suboffset) * (memory_units_row_ratio)) + + (mem_pool__value_offset))); + ctx.AddVirtualColumn( + "ec_op/p_y/addr", VirtualColumn( + /*column=*/mem_pool__addr_column, /*step=*/ec_op_builtin_row_ratio, + /*row_offset=*/((ec_op__p_y_suboffset) * (memory_units_row_ratio)) + + (mem_pool__addr_offset))); + ctx.AddVirtualColumn( + "ec_op/p_y/value", VirtualColumn( + /*column=*/mem_pool__value_column, /*step=*/ec_op_builtin_row_ratio, + /*row_offset=*/((ec_op__p_y_suboffset) * (memory_units_row_ratio)) + + (mem_pool__value_offset))); + ctx.AddVirtualColumn( + "ec_op/q_x/addr", VirtualColumn( + /*column=*/mem_pool__addr_column, /*step=*/ec_op_builtin_row_ratio, + /*row_offset=*/((ec_op__q_x_suboffset) * (memory_units_row_ratio)) + + (mem_pool__addr_offset))); + ctx.AddVirtualColumn( + "ec_op/q_x/value", VirtualColumn( + /*column=*/mem_pool__value_column, /*step=*/ec_op_builtin_row_ratio, + /*row_offset=*/((ec_op__q_x_suboffset) * (memory_units_row_ratio)) + + (mem_pool__value_offset))); + ctx.AddVirtualColumn( + "ec_op/q_y/addr", VirtualColumn( + /*column=*/mem_pool__addr_column, /*step=*/ec_op_builtin_row_ratio, + /*row_offset=*/((ec_op__q_y_suboffset) * (memory_units_row_ratio)) + + (mem_pool__addr_offset))); + ctx.AddVirtualColumn( + "ec_op/q_y/value", VirtualColumn( + /*column=*/mem_pool__value_column, /*step=*/ec_op_builtin_row_ratio, + /*row_offset=*/((ec_op__q_y_suboffset) * (memory_units_row_ratio)) + + (mem_pool__value_offset))); + ctx.AddVirtualColumn( + "ec_op/m/addr", VirtualColumn( + /*column=*/mem_pool__addr_column, /*step=*/ec_op_builtin_row_ratio, + /*row_offset=*/((ec_op__m_suboffset) * (memory_units_row_ratio)) + + (mem_pool__addr_offset))); + ctx.AddVirtualColumn( + "ec_op/m/value", VirtualColumn( + /*column=*/mem_pool__value_column, /*step=*/ec_op_builtin_row_ratio, + /*row_offset=*/((ec_op__m_suboffset) * (memory_units_row_ratio)) + + (mem_pool__value_offset))); + ctx.AddVirtualColumn( + "ec_op/r_x/addr", VirtualColumn( + /*column=*/mem_pool__addr_column, /*step=*/ec_op_builtin_row_ratio, + /*row_offset=*/((ec_op__r_x_suboffset) * (memory_units_row_ratio)) + + (mem_pool__addr_offset))); + ctx.AddVirtualColumn( + "ec_op/r_x/value", VirtualColumn( + /*column=*/mem_pool__value_column, /*step=*/ec_op_builtin_row_ratio, + /*row_offset=*/((ec_op__r_x_suboffset) * (memory_units_row_ratio)) + + (mem_pool__value_offset))); + ctx.AddVirtualColumn( + "ec_op/r_y/addr", VirtualColumn( + /*column=*/mem_pool__addr_column, /*step=*/ec_op_builtin_row_ratio, + /*row_offset=*/((ec_op__r_y_suboffset) * (memory_units_row_ratio)) + + (mem_pool__addr_offset))); + ctx.AddVirtualColumn( + "ec_op/r_y/value", VirtualColumn( + /*column=*/mem_pool__value_column, /*step=*/ec_op_builtin_row_ratio, + /*row_offset=*/((ec_op__r_y_suboffset) * (memory_units_row_ratio)) + + (mem_pool__value_offset))); + ctx.AddVirtualColumn( + "ec_op/doubled_points/x", VirtualColumn( + /*column=*/ec_op__doubled_points__x_column, + /*step=*/SafeDiv(ec_op_builtin_row_ratio, 256), + /*row_offset=*/ec_op__doubled_points__x_offset)); + ctx.AddVirtualColumn( + "ec_op/doubled_points/y", VirtualColumn( + /*column=*/ec_op__doubled_points__y_column, + /*step=*/SafeDiv(ec_op_builtin_row_ratio, 256), + /*row_offset=*/ec_op__doubled_points__y_offset)); + ctx.AddVirtualColumn( + "ec_op/doubling_slope", + VirtualColumn( + /*column=*/ec_op__doubling_slope_column, /*step=*/SafeDiv(ec_op_builtin_row_ratio, 256), + /*row_offset=*/ec_op__doubling_slope_offset)); + ctx.AddVirtualColumn( + "ec_op/ec_subset_sum/partial_sum/x", + VirtualColumn( + /*column=*/ec_op__ec_subset_sum__partial_sum__x_column, + /*step=*/SafeDiv(ec_op_builtin_row_ratio, 256), + /*row_offset=*/ec_op__ec_subset_sum__partial_sum__x_offset)); ctx.AddVirtualColumn( - "cpu/operands/mem_op1/value", + "ec_op/ec_subset_sum/partial_sum/y", VirtualColumn( - /*column=*/mem_pool__value_column, /*step=*/(16) * (cpu_component_step), - /*row_offset=*/((cpu__operands__mem_op1_suboffset) * (memory_units_row_ratio)) + - (mem_pool__value_offset))); + /*column=*/ec_op__ec_subset_sum__partial_sum__y_column, + /*step=*/SafeDiv(ec_op_builtin_row_ratio, 256), + /*row_offset=*/ec_op__ec_subset_sum__partial_sum__y_offset)); ctx.AddVirtualColumn( - "cpu/operands/ops_mul", - VirtualColumn( - /*column=*/cpu__operands__ops_mul_column, /*step=*/(16) * (cpu_component_step), - /*row_offset=*/cpu__operands__ops_mul_offset)); + "ec_op/ec_subset_sum/slope", VirtualColumn( + /*column=*/ec_op__ec_subset_sum__slope_column, + /*step=*/SafeDiv(ec_op_builtin_row_ratio, 256), + /*row_offset=*/ec_op__ec_subset_sum__slope_offset)); ctx.AddVirtualColumn( - "cpu/operands/res", + "ec_op/ec_subset_sum/selector", VirtualColumn( + /*column=*/ec_op__ec_subset_sum__selector_column, + /*step=*/SafeDiv(ec_op_builtin_row_ratio, 256), + /*row_offset=*/ec_op__ec_subset_sum__selector_offset)); + ctx.AddVirtualColumn( + "ec_op/ec_subset_sum/x_diff_inv", VirtualColumn( - /*column=*/cpu__operands__res_column, /*step=*/(16) * (cpu_component_step), - /*row_offset=*/cpu__operands__res_offset)); + /*column=*/ec_op__ec_subset_sum__x_diff_inv_column, + /*step=*/SafeDiv(ec_op_builtin_row_ratio, 256), + /*row_offset=*/ec_op__ec_subset_sum__x_diff_inv_offset)); ctx.AddVirtualColumn( - "cpu/update_registers/update_pc/tmp0", + "ec_op/ec_subset_sum/bit_unpacking/prod_ones196", VirtualColumn( - /*column=*/cpu__update_registers__update_pc__tmp0_column, - /*step=*/(16) * (cpu_component_step), - /*row_offset=*/cpu__update_registers__update_pc__tmp0_offset)); + /*column=*/ec_op__ec_subset_sum__bit_unpacking__prod_ones196_column, + /*step=*/ec_op_builtin_row_ratio, + /*row_offset=*/ec_op__ec_subset_sum__bit_unpacking__prod_ones196_offset)); ctx.AddVirtualColumn( - "cpu/update_registers/update_pc/tmp1", + "ec_op/ec_subset_sum/bit_unpacking/prod_ones192", VirtualColumn( - /*column=*/cpu__update_registers__update_pc__tmp1_column, - /*step=*/(16) * (cpu_component_step), - /*row_offset=*/cpu__update_registers__update_pc__tmp1_offset)); + /*column=*/ec_op__ec_subset_sum__bit_unpacking__prod_ones192_column, + /*step=*/ec_op_builtin_row_ratio, + /*row_offset=*/ec_op__ec_subset_sum__bit_unpacking__prod_ones192_offset)); ctx.AddVirtualColumn( - "memory/sorted/addr", + "keccak/input_output/addr", VirtualColumn( - /*column=*/memory__sorted__addr_column, /*step=*/memory_units_row_ratio, - /*row_offset=*/memory__sorted__addr_offset)); + /*column=*/mem_pool__addr_column, /*step=*/SafeDiv(keccak__row_ratio, 16), + /*row_offset=*/((keccak__input_output_suboffset) * (memory_units_row_ratio)) + + (mem_pool__addr_offset))); ctx.AddVirtualColumn( - "memory/sorted/value", + "keccak/input_output/value", VirtualColumn( - /*column=*/memory__sorted__value_column, /*step=*/memory_units_row_ratio, - /*row_offset=*/memory__sorted__value_offset)); + /*column=*/mem_pool__value_column, /*step=*/SafeDiv(keccak__row_ratio, 16), + /*row_offset=*/((keccak__input_output_suboffset) * (memory_units_row_ratio)) + + (mem_pool__value_offset))); ctx.AddVirtualColumn( - "memory/multi_column_perm/perm/cum_prod0", + "keccak/keccak/diluted_column0", VirtualColumn( - /*column=*/memory__multi_column_perm__perm__cum_prod0_column - num_columns_first, - /*step=*/memory_units_row_ratio, - /*row_offset=*/memory__multi_column_perm__perm__cum_prod0_offset)); + /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), + /*row_offset=*/((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio)) + + (diluted_pool_offset))); ctx.AddVirtualColumn( - "orig/public_memory/addr", + "keccak/keccak/state", VirtualColumn( - /*column=*/mem_pool__addr_column, /*step=*/(8) * (memory_units_row_ratio), - /*row_offset=*/((orig__public_memory_suboffset) * (memory_units_row_ratio)) + - (mem_pool__addr_offset))); + /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), + /*row_offset=*/((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio)) + + (diluted_pool_offset))); ctx.AddVirtualColumn( - "orig/public_memory/value", + "keccak/keccak/state_begin", VirtualColumn( - /*column=*/mem_pool__value_column, /*step=*/(8) * (memory_units_row_ratio), - /*row_offset=*/((orig__public_memory_suboffset) * (memory_units_row_ratio)) + - (mem_pool__value_offset))); + /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 128), + /*row_offset=*/((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio)) + + (diluted_pool_offset))); ctx.AddVirtualColumn( - "range_check16/sorted", + "keccak/keccak/state_end", VirtualColumn( - /*column=*/range_check16__sorted_column, /*step=*/range_check_units_row_ratio, - /*row_offset=*/range_check16__sorted_offset)); + /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 128), + /*row_offset=*/ + ((SafeDiv((3) * (keccak__row_ratio), 512)) + + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset))); ctx.AddVirtualColumn( - "range_check16/perm/cum_prod0", + "keccak/keccak/parse_to_diluted/reshaped_intermediate", VirtualColumn( - /*column=*/range_check16__perm__cum_prod0_column - num_columns_first, - /*step=*/range_check_units_row_ratio, - /*row_offset=*/range_check16__perm__cum_prod0_offset)); + /*column=*/keccak__keccak__parse_to_diluted__reshaped_intermediate_column, + /*step=*/SafeDiv(keccak__row_ratio, 32768), + /*row_offset=*/keccak__keccak__parse_to_diluted__reshaped_intermediate_offset)); ctx.AddVirtualColumn( - "diluted_pool", VirtualColumn( - /*column=*/diluted_pool_column, /*step=*/diluted_units_row_ratio, - /*row_offset=*/diluted_pool_offset)); + "keccak/keccak/parse_to_diluted/final_reshaped_input", + VirtualColumn( + /*column=*/keccak__keccak__parse_to_diluted__final_reshaped_input_column, + /*step=*/SafeDiv(keccak__row_ratio, 32768), + /*row_offset=*/keccak__keccak__parse_to_diluted__final_reshaped_input_offset)); ctx.AddVirtualColumn( - "diluted_check/permuted_values", + "keccak/keccak/parse_to_diluted/cumulative_sum", VirtualColumn( - /*column=*/diluted_check__permuted_values_column, /*step=*/diluted_units_row_ratio, - /*row_offset=*/diluted_check__permuted_values_offset)); + /*column=*/keccak__keccak__parse_to_diluted__cumulative_sum_column, + /*step=*/SafeDiv(keccak__row_ratio, 4096), + /*row_offset=*/keccak__keccak__parse_to_diluted__cumulative_sum_offset)); ctx.AddVirtualColumn( - "diluted_check/cumulative_value", + "keccak/keccak/diluted_column1", VirtualColumn( - /*column=*/diluted_check__cumulative_value_column - num_columns_first, - /*step=*/diluted_units_row_ratio, /*row_offset=*/diluted_check__cumulative_value_offset)); + /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), + /*row_offset=*/((keccak__keccak__diluted_column1_suboffset) * (diluted_units_row_ratio)) + + (diluted_pool_offset))); ctx.AddVirtualColumn( - "diluted_check/permutation/cum_prod0", + "keccak/keccak/chi_iota_aux0", VirtualColumn( - /*column=*/diluted_check__permutation__cum_prod0_column - num_columns_first, - /*step=*/diluted_units_row_ratio, - /*row_offset=*/diluted_check__permutation__cum_prod0_offset)); + /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), + /*row_offset=*/((keccak__keccak__diluted_column1_suboffset) * (diluted_units_row_ratio)) + + (diluted_pool_offset))); ctx.AddVirtualColumn( - "pedersen/input0/addr", + "keccak/keccak/diluted_column2", VirtualColumn( - /*column=*/mem_pool__addr_column, /*step=*/pedersen_builtin_row_ratio, - /*row_offset=*/((pedersen__input0_suboffset) * (memory_units_row_ratio)) + - (mem_pool__addr_offset))); + /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), + /*row_offset=*/((keccak__keccak__diluted_column2_suboffset) * (diluted_units_row_ratio)) + + (diluted_pool_offset))); ctx.AddVirtualColumn( - "pedersen/input0/value", + "keccak/keccak/chi_iota_aux2", VirtualColumn( - /*column=*/mem_pool__value_column, /*step=*/pedersen_builtin_row_ratio, - /*row_offset=*/((pedersen__input0_suboffset) * (memory_units_row_ratio)) + - (mem_pool__value_offset))); + /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), + /*row_offset=*/((keccak__keccak__diluted_column2_suboffset) * (diluted_units_row_ratio)) + + (diluted_pool_offset))); ctx.AddVirtualColumn( - "pedersen/input1/addr", + "keccak/keccak/parity0_0", VirtualColumn( - /*column=*/mem_pool__addr_column, /*step=*/pedersen_builtin_row_ratio, - /*row_offset=*/((pedersen__input1_suboffset) * (memory_units_row_ratio)) + - (mem_pool__addr_offset))); + /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), + /*row_offset=*/ + ((SafeDiv((25) * (keccak__row_ratio), 128)) + + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset))); ctx.AddVirtualColumn( - "pedersen/input1/value", + "keccak/keccak/parity0_1", VirtualColumn( - /*column=*/mem_pool__value_column, /*step=*/pedersen_builtin_row_ratio, - /*row_offset=*/((pedersen__input1_suboffset) * (memory_units_row_ratio)) + - (mem_pool__value_offset))); + /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), + /*row_offset=*/ + ((SafeDiv((25) * (keccak__row_ratio), 128)) + + ((keccak__keccak__diluted_column1_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset))); ctx.AddVirtualColumn( - "pedersen/output/addr", + "keccak/keccak/parity0_2", VirtualColumn( - /*column=*/mem_pool__addr_column, /*step=*/pedersen_builtin_row_ratio, - /*row_offset=*/((pedersen__output_suboffset) * (memory_units_row_ratio)) + - (mem_pool__addr_offset))); + /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), + /*row_offset=*/ + ((SafeDiv((25) * (keccak__row_ratio), 128)) + + ((keccak__keccak__diluted_column2_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset))); ctx.AddVirtualColumn( - "pedersen/output/value", + "keccak/keccak/parity0_3", VirtualColumn( - /*column=*/mem_pool__value_column, /*step=*/pedersen_builtin_row_ratio, - /*row_offset=*/((pedersen__output_suboffset) * (memory_units_row_ratio)) + - (mem_pool__value_offset))); + /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), + /*row_offset=*/ + (((SafeDiv((3) * (keccak__row_ratio), 512)) + + (SafeDiv((25) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset))); ctx.AddVirtualColumn( - "pedersen/hash0/ec_subset_sum/partial_sum/x", + "keccak/keccak/parity0_4", VirtualColumn( - /*column=*/pedersen__hash0__ec_subset_sum__partial_sum__x_column, - /*step=*/SafeDiv(pedersen_builtin_row_ratio, 512), - /*row_offset=*/pedersen__hash0__ec_subset_sum__partial_sum__x_offset)); + /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), + /*row_offset=*/ + (((SafeDiv((3) * (keccak__row_ratio), 512)) + + (SafeDiv((25) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column1_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset))); ctx.AddVirtualColumn( - "pedersen/hash0/ec_subset_sum/partial_sum/y", + "keccak/keccak/parity1_0", VirtualColumn( - /*column=*/pedersen__hash0__ec_subset_sum__partial_sum__y_column, - /*step=*/SafeDiv(pedersen_builtin_row_ratio, 512), - /*row_offset=*/pedersen__hash0__ec_subset_sum__partial_sum__y_offset)); + /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), + /*row_offset=*/ + (((SafeDiv((3) * (keccak__row_ratio), 512)) + + (SafeDiv((25) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column2_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset))); ctx.AddVirtualColumn( - "pedersen/hash0/ec_subset_sum/slope", + "keccak/keccak/parity1_1", VirtualColumn( - /*column=*/pedersen__hash0__ec_subset_sum__slope_column, - /*step=*/SafeDiv(pedersen_builtin_row_ratio, 512), - /*row_offset=*/pedersen__hash0__ec_subset_sum__slope_offset)); + /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), + /*row_offset=*/ + ((((SafeDiv((3) * (keccak__row_ratio), 512)) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((25) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset))); ctx.AddVirtualColumn( - "pedersen/hash0/ec_subset_sum/selector", + "keccak/keccak/parity1_2", VirtualColumn( - /*column=*/pedersen__hash0__ec_subset_sum__selector_column, - /*step=*/SafeDiv(pedersen_builtin_row_ratio, 512), - /*row_offset=*/pedersen__hash0__ec_subset_sum__selector_offset)); + /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), + /*row_offset=*/ + ((((SafeDiv((3) * (keccak__row_ratio), 512)) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((25) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column1_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset))); ctx.AddVirtualColumn( - "pedersen/hash0/ec_subset_sum/bit_unpacking/prod_ones196", + "keccak/keccak/parity1_3", VirtualColumn( - /*column=*/pedersen__hash0__ec_subset_sum__bit_unpacking__prod_ones196_column, - /*step=*/SafeDiv(pedersen_builtin_row_ratio, 2), - /*row_offset=*/pedersen__hash0__ec_subset_sum__bit_unpacking__prod_ones196_offset)); + /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), + /*row_offset=*/ + ((((SafeDiv((3) * (keccak__row_ratio), 512)) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((25) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column2_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset))); ctx.AddVirtualColumn( - "pedersen/hash0/ec_subset_sum/bit_unpacking/prod_ones192", + "keccak/keccak/parity1_4", VirtualColumn( - /*column=*/pedersen__hash0__ec_subset_sum__bit_unpacking__prod_ones192_column, - /*step=*/SafeDiv(pedersen_builtin_row_ratio, 2), - /*row_offset=*/pedersen__hash0__ec_subset_sum__bit_unpacking__prod_ones192_offset)); + /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), + /*row_offset=*/ + (((((SafeDiv((3) * (keccak__row_ratio), 512)) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((25) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset))); ctx.AddVirtualColumn( - "range_check_builtin/mem/addr", + "keccak/keccak/parity2_0", VirtualColumn( - /*column=*/mem_pool__addr_column, /*step=*/range_check_builtin_row_ratio, - /*row_offset=*/((range_check_builtin__mem_suboffset) * (memory_units_row_ratio)) + - (mem_pool__addr_offset))); + /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), + /*row_offset=*/ + (((((SafeDiv((3) * (keccak__row_ratio), 512)) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((25) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column1_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset))); ctx.AddVirtualColumn( - "range_check_builtin/mem/value", + "keccak/keccak/parity2_1", VirtualColumn( - /*column=*/mem_pool__value_column, /*step=*/range_check_builtin_row_ratio, - /*row_offset=*/((range_check_builtin__mem_suboffset) * (memory_units_row_ratio)) + - (mem_pool__value_offset))); + /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), + /*row_offset=*/ + (((((SafeDiv((3) * (keccak__row_ratio), 512)) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((25) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column2_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset))); ctx.AddVirtualColumn( - "range_check_builtin/inner_range_check", + "keccak/keccak/parity2_2", VirtualColumn( - /*column=*/range_check16_pool_column, /*step=*/SafeDiv(range_check_builtin_row_ratio, 8), + /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), /*row_offset=*/ - ((range_check_builtin__inner_range_check_suboffset) * (range_check_units_row_ratio)) + - (range_check16_pool_offset))); + ((((((SafeDiv((3) * (keccak__row_ratio), 512)) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((25) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset))); ctx.AddVirtualColumn( - "ecdsa/pubkey/addr", + "keccak/keccak/parity2_3", VirtualColumn( - /*column=*/mem_pool__addr_column, /*step=*/ecdsa_builtin_row_ratio, - /*row_offset=*/((ecdsa__pubkey_suboffset) * (memory_units_row_ratio)) + - (mem_pool__addr_offset))); + /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), + /*row_offset=*/ + ((((((SafeDiv((3) * (keccak__row_ratio), 512)) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((25) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column1_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset))); ctx.AddVirtualColumn( - "ecdsa/pubkey/value", + "keccak/keccak/parity2_4", VirtualColumn( - /*column=*/mem_pool__value_column, /*step=*/ecdsa_builtin_row_ratio, - /*row_offset=*/((ecdsa__pubkey_suboffset) * (memory_units_row_ratio)) + - (mem_pool__value_offset))); + /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), + /*row_offset=*/ + ((((((SafeDiv((3) * (keccak__row_ratio), 512)) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((25) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column2_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset))); ctx.AddVirtualColumn( - "ecdsa/message/addr", + "keccak/keccak/diluted_column3", VirtualColumn( - /*column=*/mem_pool__addr_column, /*step=*/ecdsa_builtin_row_ratio, - /*row_offset=*/((ecdsa__message_suboffset) * (memory_units_row_ratio)) + - (mem_pool__addr_offset))); + /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), + /*row_offset=*/((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio)) + + (diluted_pool_offset))); ctx.AddVirtualColumn( - "ecdsa/message/value", + "keccak/keccak/after_theta_rho_pi", VirtualColumn( - /*column=*/mem_pool__value_column, /*step=*/ecdsa_builtin_row_ratio, - /*row_offset=*/((ecdsa__message_suboffset) * (memory_units_row_ratio)) + - (mem_pool__value_offset))); - ctx.AddVirtualColumn( - "ecdsa/signature0/key_points/x", VirtualColumn( - /*column=*/ecdsa__signature0__key_points__x_column, - /*step=*/SafeDiv(ecdsa_builtin_row_ratio, 512), - /*row_offset=*/ecdsa__signature0__key_points__x_offset)); + /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), + /*row_offset=*/((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio)) + + (diluted_pool_offset))); ctx.AddVirtualColumn( - "ecdsa/signature0/key_points/y", VirtualColumn( - /*column=*/ecdsa__signature0__key_points__y_column, - /*step=*/SafeDiv(ecdsa_builtin_row_ratio, 512), - /*row_offset=*/ecdsa__signature0__key_points__y_offset)); + "keccak/keccak/rotated_parity0", VirtualColumn( + /*column=*/keccak__keccak__rotated_parity0_column, + /*step=*/SafeDiv(keccak__row_ratio, 4096), + /*row_offset=*/keccak__keccak__rotated_parity0_offset)); ctx.AddVirtualColumn( - "ecdsa/signature0/doubling_slope", - VirtualColumn( - /*column=*/ecdsa__signature0__doubling_slope_column, - /*step=*/SafeDiv(ecdsa_builtin_row_ratio, 512), - /*row_offset=*/ecdsa__signature0__doubling_slope_offset)); + "keccak/keccak/rotated_parity1", VirtualColumn( + /*column=*/keccak__keccak__rotated_parity1_column, + /*step=*/SafeDiv(keccak__row_ratio, 4096), + /*row_offset=*/keccak__keccak__rotated_parity1_offset)); ctx.AddVirtualColumn( - "ecdsa/signature0/exponentiate_generator/partial_sum/x", - VirtualColumn( - /*column=*/ecdsa__signature0__exponentiate_generator__partial_sum__x_column, - /*step=*/SafeDiv(ecdsa_builtin_row_ratio, 256), - /*row_offset=*/ecdsa__signature0__exponentiate_generator__partial_sum__x_offset)); + "keccak/keccak/rotated_parity2", VirtualColumn( + /*column=*/keccak__keccak__rotated_parity2_column, + /*step=*/SafeDiv(keccak__row_ratio, 4096), + /*row_offset=*/keccak__keccak__rotated_parity2_offset)); ctx.AddVirtualColumn( - "ecdsa/signature0/exponentiate_generator/partial_sum/y", - VirtualColumn( - /*column=*/ecdsa__signature0__exponentiate_generator__partial_sum__y_column, - /*step=*/SafeDiv(ecdsa_builtin_row_ratio, 256), - /*row_offset=*/ecdsa__signature0__exponentiate_generator__partial_sum__y_offset)); + "keccak/keccak/rotated_parity3", VirtualColumn( + /*column=*/keccak__keccak__rotated_parity3_column, + /*step=*/SafeDiv(keccak__row_ratio, 4096), + /*row_offset=*/keccak__keccak__rotated_parity3_offset)); ctx.AddVirtualColumn( - "ecdsa/signature0/exponentiate_generator/slope", - VirtualColumn( - /*column=*/ecdsa__signature0__exponentiate_generator__slope_column, - /*step=*/SafeDiv(ecdsa_builtin_row_ratio, 256), - /*row_offset=*/ecdsa__signature0__exponentiate_generator__slope_offset)); + "keccak/keccak/rotated_parity4", VirtualColumn( + /*column=*/keccak__keccak__rotated_parity4_column, + /*step=*/SafeDiv(keccak__row_ratio, 4096), + /*row_offset=*/keccak__keccak__rotated_parity4_offset)); ctx.AddVirtualColumn( - "ecdsa/signature0/exponentiate_generator/selector", + "keccak/keccak/theta_aux_i0_j0", VirtualColumn( - /*column=*/ecdsa__signature0__exponentiate_generator__selector_column, - /*step=*/SafeDiv(ecdsa_builtin_row_ratio, 256), - /*row_offset=*/ecdsa__signature0__exponentiate_generator__selector_offset)); + /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), + /*row_offset=*/ + (((((((SafeDiv((3) * (keccak__row_ratio), 512)) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((25) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset))); ctx.AddVirtualColumn( - "ecdsa/signature0/exponentiate_generator/x_diff_inv", + "keccak/keccak/theta_aux_i0_j1", VirtualColumn( - /*column=*/ecdsa__signature0__exponentiate_generator__x_diff_inv_column, - /*step=*/SafeDiv(ecdsa_builtin_row_ratio, 256), - /*row_offset=*/ecdsa__signature0__exponentiate_generator__x_diff_inv_offset)); + /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), + /*row_offset=*/ + (((((((SafeDiv((3) * (keccak__row_ratio), 512)) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((25) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column1_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset))); ctx.AddVirtualColumn( - "ecdsa/signature0/exponentiate_key/partial_sum/x", + "keccak/keccak/theta_aux_i0_j2", VirtualColumn( - /*column=*/ecdsa__signature0__exponentiate_key__partial_sum__x_column, - /*step=*/SafeDiv(ecdsa_builtin_row_ratio, 512), - /*row_offset=*/ecdsa__signature0__exponentiate_key__partial_sum__x_offset)); + /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), + /*row_offset=*/ + (((((((SafeDiv((3) * (keccak__row_ratio), 512)) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((25) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column2_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset))); ctx.AddVirtualColumn( - "ecdsa/signature0/exponentiate_key/partial_sum/y", + "keccak/keccak/theta_aux_i0_j3", VirtualColumn( - /*column=*/ecdsa__signature0__exponentiate_key__partial_sum__y_column, - /*step=*/SafeDiv(ecdsa_builtin_row_ratio, 512), - /*row_offset=*/ecdsa__signature0__exponentiate_key__partial_sum__y_offset)); + /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), + /*row_offset=*/ + ((SafeDiv((25) * (keccak__row_ratio), 128)) + + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset))); ctx.AddVirtualColumn( - "ecdsa/signature0/exponentiate_key/slope", + "keccak/keccak/theta_aux_i0_j4", VirtualColumn( - /*column=*/ecdsa__signature0__exponentiate_key__slope_column, - /*step=*/SafeDiv(ecdsa_builtin_row_ratio, 512), - /*row_offset=*/ecdsa__signature0__exponentiate_key__slope_offset)); + /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), + /*row_offset=*/ + ((((((((SafeDiv((3) * (keccak__row_ratio), 512)) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((25) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset))); ctx.AddVirtualColumn( - "ecdsa/signature0/exponentiate_key/selector", + "keccak/keccak/theta_aux_i1_j0", VirtualColumn( - /*column=*/ecdsa__signature0__exponentiate_key__selector_column, - /*step=*/SafeDiv(ecdsa_builtin_row_ratio, 512), - /*row_offset=*/ecdsa__signature0__exponentiate_key__selector_offset)); + /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), + /*row_offset=*/ + ((((((((SafeDiv((3) * (keccak__row_ratio), 512)) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((25) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column1_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset))); ctx.AddVirtualColumn( - "ecdsa/signature0/exponentiate_key/x_diff_inv", + "keccak/keccak/theta_aux_i1_j1", VirtualColumn( - /*column=*/ecdsa__signature0__exponentiate_key__x_diff_inv_column, - /*step=*/SafeDiv(ecdsa_builtin_row_ratio, 512), - /*row_offset=*/ecdsa__signature0__exponentiate_key__x_diff_inv_offset)); + /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), + /*row_offset=*/ + ((((((((SafeDiv((3) * (keccak__row_ratio), 512)) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((25) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column2_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset))); ctx.AddVirtualColumn( - "ecdsa/signature0/add_results_slope", + "keccak/keccak/theta_aux_i1_j2", VirtualColumn( - /*column=*/ecdsa__signature0__add_results_slope_column, /*step=*/ecdsa_builtin_row_ratio, - /*row_offset=*/ecdsa__signature0__add_results_slope_offset)); + /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), + /*row_offset=*/ + (((SafeDiv((3) * (keccak__row_ratio), 512)) + + (SafeDiv((25) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset))); ctx.AddVirtualColumn( - "ecdsa/signature0/add_results_inv", + "keccak/keccak/theta_aux_i1_j3", VirtualColumn( - /*column=*/ecdsa__signature0__add_results_inv_column, /*step=*/ecdsa_builtin_row_ratio, - /*row_offset=*/ecdsa__signature0__add_results_inv_offset)); + /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), + /*row_offset=*/ + (((((((((SafeDiv((3) * (keccak__row_ratio), 512)) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((25) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset))); ctx.AddVirtualColumn( - "ecdsa/signature0/extract_r_slope", + "keccak/keccak/theta_aux_i1_j4", VirtualColumn( - /*column=*/ecdsa__signature0__extract_r_slope_column, /*step=*/ecdsa_builtin_row_ratio, - /*row_offset=*/ecdsa__signature0__extract_r_slope_offset)); + /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), + /*row_offset=*/ + (((((((((SafeDiv((3) * (keccak__row_ratio), 512)) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((25) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column1_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset))); ctx.AddVirtualColumn( - "ecdsa/signature0/extract_r_inv", + "keccak/keccak/theta_aux_i2_j0", VirtualColumn( - /*column=*/ecdsa__signature0__extract_r_inv_column, /*step=*/ecdsa_builtin_row_ratio, - /*row_offset=*/ecdsa__signature0__extract_r_inv_offset)); + /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), + /*row_offset=*/ + (((((((((SafeDiv((3) * (keccak__row_ratio), 512)) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((25) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column2_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset))); ctx.AddVirtualColumn( - "ecdsa/signature0/z_inv", + "keccak/keccak/theta_aux_i2_j1", VirtualColumn( - /*column=*/ecdsa__signature0__z_inv_column, /*step=*/ecdsa_builtin_row_ratio, - /*row_offset=*/ecdsa__signature0__z_inv_offset)); - ctx.AddVirtualColumn( - "ecdsa/signature0/r_w_inv", VirtualColumn( - /*column=*/ecdsa__signature0__r_w_inv_column, - /*step=*/SafeDiv(ecdsa_builtin_row_ratio, 2), - /*row_offset=*/ecdsa__signature0__r_w_inv_offset)); + /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), + /*row_offset=*/ + ((((SafeDiv((3) * (keccak__row_ratio), 512)) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((25) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset))); ctx.AddVirtualColumn( - "ecdsa/signature0/q_x_squared", + "keccak/keccak/theta_aux_i2_j2", VirtualColumn( - /*column=*/ecdsa__signature0__q_x_squared_column, /*step=*/ecdsa_builtin_row_ratio, - /*row_offset=*/ecdsa__signature0__q_x_squared_offset)); + /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), + /*row_offset=*/ + ((((((((((SafeDiv((3) * (keccak__row_ratio), 512)) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((25) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset))); ctx.AddVirtualColumn( - "bitwise/var_pool/addr", + "keccak/keccak/theta_aux_i2_j3", VirtualColumn( - /*column=*/mem_pool__addr_column, /*step=*/SafeDiv(bitwise__row_ratio, 4), - /*row_offset=*/((bitwise__var_pool_suboffset) * (memory_units_row_ratio)) + - (mem_pool__addr_offset))); + /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), + /*row_offset=*/ + ((((((((((SafeDiv((3) * (keccak__row_ratio), 512)) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((25) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column1_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset))); ctx.AddVirtualColumn( - "bitwise/var_pool/value", + "keccak/keccak/theta_aux_i2_j4", VirtualColumn( - /*column=*/mem_pool__value_column, /*step=*/SafeDiv(bitwise__row_ratio, 4), - /*row_offset=*/((bitwise__var_pool_suboffset) * (memory_units_row_ratio)) + - (mem_pool__value_offset))); + /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), + /*row_offset=*/ + ((((((((((SafeDiv((3) * (keccak__row_ratio), 512)) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((25) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column2_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset))); ctx.AddVirtualColumn( - "bitwise/x/addr", + "keccak/keccak/theta_aux_i3_j0", VirtualColumn( - /*column=*/mem_pool__addr_column, /*step=*/bitwise__row_ratio, - /*row_offset=*/((bitwise__var_pool_suboffset) * (memory_units_row_ratio)) + - (mem_pool__addr_offset))); + /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), + /*row_offset=*/ + (((((SafeDiv((3) * (keccak__row_ratio), 512)) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((25) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset))); ctx.AddVirtualColumn( - "bitwise/x/value", + "keccak/keccak/theta_aux_i3_j1", VirtualColumn( - /*column=*/mem_pool__value_column, /*step=*/bitwise__row_ratio, - /*row_offset=*/((bitwise__var_pool_suboffset) * (memory_units_row_ratio)) + - (mem_pool__value_offset))); - ctx.AddVirtualColumn( - "bitwise/y/addr", VirtualColumn( - /*column=*/mem_pool__addr_column, /*step=*/bitwise__row_ratio, - /*row_offset=*/ - ((SafeDiv(bitwise__row_ratio, 4)) + - ((bitwise__var_pool_suboffset) * (memory_units_row_ratio))) + - (mem_pool__addr_offset))); - ctx.AddVirtualColumn( - "bitwise/y/value", VirtualColumn( - /*column=*/mem_pool__value_column, /*step=*/bitwise__row_ratio, - /*row_offset=*/ - ((SafeDiv(bitwise__row_ratio, 4)) + - ((bitwise__var_pool_suboffset) * (memory_units_row_ratio))) + - (mem_pool__value_offset))); - ctx.AddVirtualColumn( - "bitwise/x_and_y/addr", VirtualColumn( - /*column=*/mem_pool__addr_column, /*step=*/bitwise__row_ratio, - /*row_offset=*/ - ((SafeDiv(bitwise__row_ratio, 2)) + - ((bitwise__var_pool_suboffset) * (memory_units_row_ratio))) + - (mem_pool__addr_offset))); + /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), + /*row_offset=*/ + ((((((SafeDiv((3) * (keccak__row_ratio), 512)) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((25) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset))); ctx.AddVirtualColumn( - "bitwise/x_and_y/value", + "keccak/keccak/theta_aux_i3_j2", VirtualColumn( - /*column=*/mem_pool__value_column, /*step=*/bitwise__row_ratio, + /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), /*row_offset=*/ - ((SafeDiv(bitwise__row_ratio, 2)) + - ((bitwise__var_pool_suboffset) * (memory_units_row_ratio))) + - (mem_pool__value_offset))); - ctx.AddVirtualColumn( - "bitwise/x_xor_y/addr", VirtualColumn( - /*column=*/mem_pool__addr_column, /*step=*/bitwise__row_ratio, - /*row_offset=*/ - ((SafeDiv((3) * (bitwise__row_ratio), 4)) + - ((bitwise__var_pool_suboffset) * (memory_units_row_ratio))) + - (mem_pool__addr_offset))); + (((((((SafeDiv((3) * (keccak__row_ratio), 512)) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((25) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset))); ctx.AddVirtualColumn( - "bitwise/x_xor_y/value", + "keccak/keccak/theta_aux_i3_j3", VirtualColumn( - /*column=*/mem_pool__value_column, /*step=*/bitwise__row_ratio, + /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), /*row_offset=*/ - ((SafeDiv((3) * (bitwise__row_ratio), 4)) + - ((bitwise__var_pool_suboffset) * (memory_units_row_ratio))) + - (mem_pool__value_offset))); + ((((((((SafeDiv((3) * (keccak__row_ratio), 512)) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((25) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset))); ctx.AddVirtualColumn( - "bitwise/x_or_y/addr", + "keccak/keccak/theta_aux_i3_j4", VirtualColumn( - /*column=*/mem_pool__addr_column, /*step=*/bitwise__row_ratio, - /*row_offset=*/((bitwise__x_or_y_suboffset) * (memory_units_row_ratio)) + - (mem_pool__addr_offset))); + /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), + /*row_offset=*/ + (((((((((SafeDiv((3) * (keccak__row_ratio), 512)) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((25) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset))); ctx.AddVirtualColumn( - "bitwise/x_or_y/value", + "keccak/keccak/theta_aux_i4_j0", VirtualColumn( - /*column=*/mem_pool__value_column, /*step=*/bitwise__row_ratio, - /*row_offset=*/((bitwise__x_or_y_suboffset) * (memory_units_row_ratio)) + - (mem_pool__value_offset))); + /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), + /*row_offset=*/ + ((((((((((SafeDiv((3) * (keccak__row_ratio), 512)) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((25) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset))); ctx.AddVirtualColumn( - "bitwise/diluted_var_pool", + "keccak/keccak/theta_aux_i4_j1_start0_stop8", VirtualColumn( - /*column=*/diluted_pool_column, /*step=*/SafeDiv(bitwise__row_ratio, 64), - /*row_offset=*/((bitwise__diluted_var_pool_suboffset) * (diluted_units_row_ratio)) + + /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), + /*row_offset=*/ + ((SafeDiv((3) * (keccak__row_ratio), 512)) + + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset))); ctx.AddVirtualColumn( - "bitwise/x", + "keccak/keccak/theta_aux_i4_j1_start8_stop16", VirtualColumn( - /*column=*/diluted_pool_column, /*step=*/SafeDiv(bitwise__row_ratio, 64), - /*row_offset=*/((bitwise__diluted_var_pool_suboffset) * (diluted_units_row_ratio)) + + /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), + /*row_offset=*/ + ((SafeDiv((7) * (keccak__row_ratio), 512)) + + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset))); ctx.AddVirtualColumn( - "bitwise/y", VirtualColumn( - /*column=*/diluted_pool_column, /*step=*/SafeDiv(bitwise__row_ratio, 64), - /*row_offset=*/ - ((SafeDiv(bitwise__row_ratio, 4)) + - ((bitwise__diluted_var_pool_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset))); + "keccak/keccak/theta_aux_i4_j1_start16_stop24", + VirtualColumn( + /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), + /*row_offset=*/ + ((SafeDiv((11) * (keccak__row_ratio), 512)) + + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset))); ctx.AddVirtualColumn( - "bitwise/x_and_y", + "keccak/keccak/theta_aux_i4_j2_start0_stop8", VirtualColumn( - /*column=*/diluted_pool_column, /*step=*/SafeDiv(bitwise__row_ratio, 64), + /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), /*row_offset=*/ - ((SafeDiv(bitwise__row_ratio, 2)) + - ((bitwise__diluted_var_pool_suboffset) * (diluted_units_row_ratio))) + + ((SafeDiv((15) * (keccak__row_ratio), 512)) + + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset))); ctx.AddVirtualColumn( - "bitwise/x_xor_y", + "keccak/keccak/theta_aux_i4_j2_start8_stop16", VirtualColumn( - /*column=*/diluted_pool_column, /*step=*/SafeDiv(bitwise__row_ratio, 64), + /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), /*row_offset=*/ - ((SafeDiv((3) * (bitwise__row_ratio), 4)) + - ((bitwise__diluted_var_pool_suboffset) * (diluted_units_row_ratio))) + + ((SafeDiv((19) * (keccak__row_ratio), 512)) + + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset))); ctx.AddVirtualColumn( - "bitwise/trim_unpacking192", + "keccak/keccak/theta_aux_i4_j2_start16_stop24", VirtualColumn( - /*column=*/diluted_pool_column, /*step=*/bitwise__row_ratio, - /*row_offset=*/((bitwise__trim_unpacking192_suboffset) * (diluted_units_row_ratio)) + + /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), + /*row_offset=*/ + ((SafeDiv((23) * (keccak__row_ratio), 512)) + + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset))); ctx.AddVirtualColumn( - "bitwise/trim_unpacking193", + "keccak/keccak/theta_aux_i4_j3_start0_stop8", VirtualColumn( - /*column=*/diluted_pool_column, /*step=*/bitwise__row_ratio, - /*row_offset=*/((bitwise__trim_unpacking193_suboffset) * (diluted_units_row_ratio)) + + /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), + /*row_offset=*/ + ((SafeDiv((27) * (keccak__row_ratio), 512)) + + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset))); ctx.AddVirtualColumn( - "bitwise/trim_unpacking194", + "keccak/keccak/theta_aux_i4_j3_start8_stop16", VirtualColumn( - /*column=*/diluted_pool_column, /*step=*/bitwise__row_ratio, - /*row_offset=*/((bitwise__trim_unpacking194_suboffset) * (diluted_units_row_ratio)) + + /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), + /*row_offset=*/ + ((SafeDiv((31) * (keccak__row_ratio), 512)) + + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset))); ctx.AddVirtualColumn( - "bitwise/trim_unpacking195", + "keccak/keccak/theta_aux_i4_j3_start16_stop24", VirtualColumn( - /*column=*/diluted_pool_column, /*step=*/bitwise__row_ratio, - /*row_offset=*/((bitwise__trim_unpacking195_suboffset) * (diluted_units_row_ratio)) + + /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), + /*row_offset=*/ + ((SafeDiv((35) * (keccak__row_ratio), 512)) + + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset))); ctx.AddVirtualColumn( - "ec_op/p_x/addr", VirtualColumn( - /*column=*/mem_pool__addr_column, /*step=*/ec_op_builtin_row_ratio, - /*row_offset=*/((ec_op__p_x_suboffset) * (memory_units_row_ratio)) + - (mem_pool__addr_offset))); - ctx.AddVirtualColumn( - "ec_op/p_x/value", VirtualColumn( - /*column=*/mem_pool__value_column, /*step=*/ec_op_builtin_row_ratio, - /*row_offset=*/((ec_op__p_x_suboffset) * (memory_units_row_ratio)) + - (mem_pool__value_offset))); - ctx.AddVirtualColumn( - "ec_op/p_y/addr", VirtualColumn( - /*column=*/mem_pool__addr_column, /*step=*/ec_op_builtin_row_ratio, - /*row_offset=*/((ec_op__p_y_suboffset) * (memory_units_row_ratio)) + - (mem_pool__addr_offset))); - ctx.AddVirtualColumn( - "ec_op/p_y/value", VirtualColumn( - /*column=*/mem_pool__value_column, /*step=*/ec_op_builtin_row_ratio, - /*row_offset=*/((ec_op__p_y_suboffset) * (memory_units_row_ratio)) + - (mem_pool__value_offset))); - ctx.AddVirtualColumn( - "ec_op/q_x/addr", VirtualColumn( - /*column=*/mem_pool__addr_column, /*step=*/ec_op_builtin_row_ratio, - /*row_offset=*/((ec_op__q_x_suboffset) * (memory_units_row_ratio)) + - (mem_pool__addr_offset))); - ctx.AddVirtualColumn( - "ec_op/q_x/value", VirtualColumn( - /*column=*/mem_pool__value_column, /*step=*/ec_op_builtin_row_ratio, - /*row_offset=*/((ec_op__q_x_suboffset) * (memory_units_row_ratio)) + - (mem_pool__value_offset))); - ctx.AddVirtualColumn( - "ec_op/q_y/addr", VirtualColumn( - /*column=*/mem_pool__addr_column, /*step=*/ec_op_builtin_row_ratio, - /*row_offset=*/((ec_op__q_y_suboffset) * (memory_units_row_ratio)) + - (mem_pool__addr_offset))); - ctx.AddVirtualColumn( - "ec_op/q_y/value", VirtualColumn( - /*column=*/mem_pool__value_column, /*step=*/ec_op_builtin_row_ratio, - /*row_offset=*/((ec_op__q_y_suboffset) * (memory_units_row_ratio)) + - (mem_pool__value_offset))); - ctx.AddVirtualColumn( - "ec_op/m/addr", VirtualColumn( - /*column=*/mem_pool__addr_column, /*step=*/ec_op_builtin_row_ratio, - /*row_offset=*/((ec_op__m_suboffset) * (memory_units_row_ratio)) + - (mem_pool__addr_offset))); - ctx.AddVirtualColumn( - "ec_op/m/value", VirtualColumn( - /*column=*/mem_pool__value_column, /*step=*/ec_op_builtin_row_ratio, - /*row_offset=*/((ec_op__m_suboffset) * (memory_units_row_ratio)) + - (mem_pool__value_offset))); - ctx.AddVirtualColumn( - "ec_op/r_x/addr", VirtualColumn( - /*column=*/mem_pool__addr_column, /*step=*/ec_op_builtin_row_ratio, - /*row_offset=*/((ec_op__r_x_suboffset) * (memory_units_row_ratio)) + - (mem_pool__addr_offset))); - ctx.AddVirtualColumn( - "ec_op/r_x/value", VirtualColumn( - /*column=*/mem_pool__value_column, /*step=*/ec_op_builtin_row_ratio, - /*row_offset=*/((ec_op__r_x_suboffset) * (memory_units_row_ratio)) + - (mem_pool__value_offset))); - ctx.AddVirtualColumn( - "ec_op/r_y/addr", VirtualColumn( - /*column=*/mem_pool__addr_column, /*step=*/ec_op_builtin_row_ratio, - /*row_offset=*/((ec_op__r_y_suboffset) * (memory_units_row_ratio)) + - (mem_pool__addr_offset))); - ctx.AddVirtualColumn( - "ec_op/r_y/value", VirtualColumn( - /*column=*/mem_pool__value_column, /*step=*/ec_op_builtin_row_ratio, - /*row_offset=*/((ec_op__r_y_suboffset) * (memory_units_row_ratio)) + - (mem_pool__value_offset))); - ctx.AddVirtualColumn( - "ec_op/doubled_points/x", VirtualColumn( - /*column=*/ec_op__doubled_points__x_column, - /*step=*/SafeDiv(ec_op_builtin_row_ratio, 256), - /*row_offset=*/ec_op__doubled_points__x_offset)); - ctx.AddVirtualColumn( - "ec_op/doubled_points/y", VirtualColumn( - /*column=*/ec_op__doubled_points__y_column, - /*step=*/SafeDiv(ec_op_builtin_row_ratio, 256), - /*row_offset=*/ec_op__doubled_points__y_offset)); - ctx.AddVirtualColumn( - "ec_op/doubling_slope", + "keccak/keccak/theta_aux_i4_j4_start0_stop8", VirtualColumn( - /*column=*/ec_op__doubling_slope_column, /*step=*/SafeDiv(ec_op_builtin_row_ratio, 256), - /*row_offset=*/ec_op__doubling_slope_offset)); + /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), + /*row_offset=*/ + ((SafeDiv((39) * (keccak__row_ratio), 512)) + + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset))); ctx.AddVirtualColumn( - "ec_op/ec_subset_sum/partial_sum/x", + "keccak/keccak/theta_aux_i4_j4_start8_stop16", VirtualColumn( - /*column=*/ec_op__ec_subset_sum__partial_sum__x_column, - /*step=*/SafeDiv(ec_op_builtin_row_ratio, 256), - /*row_offset=*/ec_op__ec_subset_sum__partial_sum__x_offset)); + /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), + /*row_offset=*/ + ((SafeDiv((43) * (keccak__row_ratio), 512)) + + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset))); ctx.AddVirtualColumn( - "ec_op/ec_subset_sum/partial_sum/y", + "keccak/keccak/theta_aux_i4_j4_start16_stop24", VirtualColumn( - /*column=*/ec_op__ec_subset_sum__partial_sum__y_column, - /*step=*/SafeDiv(ec_op_builtin_row_ratio, 256), - /*row_offset=*/ec_op__ec_subset_sum__partial_sum__y_offset)); - ctx.AddVirtualColumn( - "ec_op/ec_subset_sum/slope", VirtualColumn( - /*column=*/ec_op__ec_subset_sum__slope_column, - /*step=*/SafeDiv(ec_op_builtin_row_ratio, 256), - /*row_offset=*/ec_op__ec_subset_sum__slope_offset)); + /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), + /*row_offset=*/ + ((SafeDiv((47) * (keccak__row_ratio), 512)) + + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset))); ctx.AddVirtualColumn( - "ec_op/ec_subset_sum/selector", VirtualColumn( - /*column=*/ec_op__ec_subset_sum__selector_column, - /*step=*/SafeDiv(ec_op_builtin_row_ratio, 256), - /*row_offset=*/ec_op__ec_subset_sum__selector_offset)); + "poseidon/param_0/input_output/addr", + VirtualColumn( + /*column=*/mem_pool__addr_column, /*step=*/SafeDiv(poseidon__row_ratio, 2), + /*row_offset=*/((poseidon__param_0__input_output_suboffset) * (memory_units_row_ratio)) + + (mem_pool__addr_offset))); ctx.AddVirtualColumn( - "ec_op/ec_subset_sum/x_diff_inv", + "poseidon/param_0/input_output/value", VirtualColumn( - /*column=*/ec_op__ec_subset_sum__x_diff_inv_column, - /*step=*/SafeDiv(ec_op_builtin_row_ratio, 256), - /*row_offset=*/ec_op__ec_subset_sum__x_diff_inv_offset)); + /*column=*/mem_pool__value_column, /*step=*/SafeDiv(poseidon__row_ratio, 2), + /*row_offset=*/((poseidon__param_0__input_output_suboffset) * (memory_units_row_ratio)) + + (mem_pool__value_offset))); ctx.AddVirtualColumn( - "ec_op/ec_subset_sum/bit_unpacking/prod_ones196", + "poseidon/param_1/input_output/addr", VirtualColumn( - /*column=*/ec_op__ec_subset_sum__bit_unpacking__prod_ones196_column, - /*step=*/ec_op_builtin_row_ratio, - /*row_offset=*/ec_op__ec_subset_sum__bit_unpacking__prod_ones196_offset)); + /*column=*/mem_pool__addr_column, /*step=*/SafeDiv(poseidon__row_ratio, 2), + /*row_offset=*/((poseidon__param_1__input_output_suboffset) * (memory_units_row_ratio)) + + (mem_pool__addr_offset))); ctx.AddVirtualColumn( - "ec_op/ec_subset_sum/bit_unpacking/prod_ones192", + "poseidon/param_1/input_output/value", VirtualColumn( - /*column=*/ec_op__ec_subset_sum__bit_unpacking__prod_ones192_column, - /*step=*/ec_op_builtin_row_ratio, - /*row_offset=*/ec_op__ec_subset_sum__bit_unpacking__prod_ones192_offset)); + /*column=*/mem_pool__value_column, /*step=*/SafeDiv(poseidon__row_ratio, 2), + /*row_offset=*/((poseidon__param_1__input_output_suboffset) * (memory_units_row_ratio)) + + (mem_pool__value_offset))); ctx.AddVirtualColumn( - "keccak/input_output/addr", + "poseidon/param_2/input_output/addr", VirtualColumn( - /*column=*/mem_pool__addr_column, /*step=*/SafeDiv(keccak__row_ratio, 16), - /*row_offset=*/((keccak__input_output_suboffset) * (memory_units_row_ratio)) + + /*column=*/mem_pool__addr_column, /*step=*/SafeDiv(poseidon__row_ratio, 2), + /*row_offset=*/((poseidon__param_2__input_output_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset))); ctx.AddVirtualColumn( - "keccak/input_output/value", + "poseidon/param_2/input_output/value", VirtualColumn( - /*column=*/mem_pool__value_column, /*step=*/SafeDiv(keccak__row_ratio, 16), - /*row_offset=*/((keccak__input_output_suboffset) * (memory_units_row_ratio)) + + /*column=*/mem_pool__value_column, /*step=*/SafeDiv(poseidon__row_ratio, 2), + /*row_offset=*/((poseidon__param_2__input_output_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset))); ctx.AddVirtualColumn( - "keccak/keccak/diluted_column0", + "poseidon/poseidon/full_rounds_state0", VirtualColumn( - /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), - /*row_offset=*/((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio)) + - (diluted_pool_offset))); + /*column=*/poseidon__poseidon__full_rounds_state0_column, + /*step=*/SafeDiv(poseidon__row_ratio, 8), + /*row_offset=*/poseidon__poseidon__full_rounds_state0_offset)); ctx.AddVirtualColumn( - "keccak/keccak/state", + "poseidon/poseidon/full_rounds_state1", VirtualColumn( - /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), - /*row_offset=*/((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio)) + - (diluted_pool_offset))); + /*column=*/poseidon__poseidon__full_rounds_state1_column, + /*step=*/SafeDiv(poseidon__row_ratio, 8), + /*row_offset=*/poseidon__poseidon__full_rounds_state1_offset)); ctx.AddVirtualColumn( - "keccak/keccak/state_begin", + "poseidon/poseidon/full_rounds_state2", VirtualColumn( - /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 128), - /*row_offset=*/((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio)) + - (diluted_pool_offset))); + /*column=*/poseidon__poseidon__full_rounds_state2_column, + /*step=*/SafeDiv(poseidon__row_ratio, 8), + /*row_offset=*/poseidon__poseidon__full_rounds_state2_offset)); ctx.AddVirtualColumn( - "keccak/keccak/state_end", + "poseidon/poseidon/full_rounds_state0_squared", VirtualColumn( - /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 128), - /*row_offset=*/ - ((SafeDiv((3) * (keccak__row_ratio), 512)) + - ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset))); + /*column=*/poseidon__poseidon__full_rounds_state0_squared_column, + /*step=*/SafeDiv(poseidon__row_ratio, 8), + /*row_offset=*/poseidon__poseidon__full_rounds_state0_squared_offset)); ctx.AddVirtualColumn( - "keccak/keccak/parse_to_diluted/reshaped_intermediate", + "poseidon/poseidon/full_rounds_state1_squared", VirtualColumn( - /*column=*/keccak__keccak__parse_to_diluted__reshaped_intermediate_column, - /*step=*/SafeDiv(keccak__row_ratio, 32768), - /*row_offset=*/keccak__keccak__parse_to_diluted__reshaped_intermediate_offset)); + /*column=*/poseidon__poseidon__full_rounds_state1_squared_column, + /*step=*/SafeDiv(poseidon__row_ratio, 8), + /*row_offset=*/poseidon__poseidon__full_rounds_state1_squared_offset)); ctx.AddVirtualColumn( - "keccak/keccak/parse_to_diluted/final_reshaped_input", + "poseidon/poseidon/full_rounds_state2_squared", VirtualColumn( - /*column=*/keccak__keccak__parse_to_diluted__final_reshaped_input_column, - /*step=*/SafeDiv(keccak__row_ratio, 32768), - /*row_offset=*/keccak__keccak__parse_to_diluted__final_reshaped_input_offset)); + /*column=*/poseidon__poseidon__full_rounds_state2_squared_column, + /*step=*/SafeDiv(poseidon__row_ratio, 8), + /*row_offset=*/poseidon__poseidon__full_rounds_state2_squared_offset)); ctx.AddVirtualColumn( - "keccak/keccak/parse_to_diluted/cumulative_sum", + "poseidon/poseidon/partial_rounds_state0", VirtualColumn( - /*column=*/keccak__keccak__parse_to_diluted__cumulative_sum_column, - /*step=*/SafeDiv(keccak__row_ratio, 4096), - /*row_offset=*/keccak__keccak__parse_to_diluted__cumulative_sum_offset)); + /*column=*/poseidon__poseidon__partial_rounds_state0_column, + /*step=*/SafeDiv(poseidon__row_ratio, 64), + /*row_offset=*/poseidon__poseidon__partial_rounds_state0_offset)); ctx.AddVirtualColumn( - "keccak/keccak/diluted_column1", + "poseidon/poseidon/partial_rounds_state1", VirtualColumn( - /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), - /*row_offset=*/((keccak__keccak__diluted_column1_suboffset) * (diluted_units_row_ratio)) + - (diluted_pool_offset))); + /*column=*/poseidon__poseidon__partial_rounds_state1_column, + /*step=*/SafeDiv(poseidon__row_ratio, 32), + /*row_offset=*/poseidon__poseidon__partial_rounds_state1_offset)); ctx.AddVirtualColumn( - "keccak/keccak/chi_iota_aux0", + "poseidon/poseidon/partial_rounds_state0_squared", VirtualColumn( - /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), - /*row_offset=*/((keccak__keccak__diluted_column1_suboffset) * (diluted_units_row_ratio)) + - (diluted_pool_offset))); + /*column=*/poseidon__poseidon__partial_rounds_state0_squared_column, + /*step=*/SafeDiv(poseidon__row_ratio, 64), + /*row_offset=*/poseidon__poseidon__partial_rounds_state0_squared_offset)); ctx.AddVirtualColumn( - "keccak/keccak/diluted_column2", + "poseidon/poseidon/partial_rounds_state1_squared", VirtualColumn( - /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), - /*row_offset=*/((keccak__keccak__diluted_column2_suboffset) * (diluted_units_row_ratio)) + - (diluted_pool_offset))); + /*column=*/poseidon__poseidon__partial_rounds_state1_squared_column, + /*step=*/SafeDiv(poseidon__row_ratio, 32), + /*row_offset=*/poseidon__poseidon__partial_rounds_state1_squared_offset)); ctx.AddVirtualColumn( - "keccak/keccak/chi_iota_aux2", + "range_check96_builtin/mem/addr", VirtualColumn( - /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), - /*row_offset=*/((keccak__keccak__diluted_column2_suboffset) * (diluted_units_row_ratio)) + - (diluted_pool_offset))); + /*column=*/mem_pool__addr_column, /*step=*/range_check96_builtin_row_ratio, + /*row_offset=*/((range_check96_builtin__mem_suboffset) * (memory_units_row_ratio)) + + (mem_pool__addr_offset))); ctx.AddVirtualColumn( - "keccak/keccak/parity0_0", + "range_check96_builtin/mem/value", VirtualColumn( - /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), - /*row_offset=*/ - ((SafeDiv((25) * (keccak__row_ratio), 128)) + - ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset))); + /*column=*/mem_pool__value_column, /*step=*/range_check96_builtin_row_ratio, + /*row_offset=*/((range_check96_builtin__mem_suboffset) * (memory_units_row_ratio)) + + (mem_pool__value_offset))); ctx.AddVirtualColumn( - "keccak/keccak/parity0_1", + "range_check96_builtin/inner_range_check0", VirtualColumn( - /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), + /*column=*/range_check16_pool_column, /*step=*/range_check96_builtin_row_ratio, /*row_offset=*/ - ((SafeDiv((25) * (keccak__row_ratio), 128)) + - ((keccak__keccak__diluted_column1_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset))); + ((range_check96_builtin__inner_range_check0_suboffset) * + (range_check_units_row_ratio)) + + (range_check16_pool_offset))); ctx.AddVirtualColumn( - "keccak/keccak/parity0_2", + "range_check96_builtin/inner_range_check1", VirtualColumn( - /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), + /*column=*/range_check16_pool_column, /*step=*/range_check96_builtin_row_ratio, /*row_offset=*/ - ((SafeDiv((25) * (keccak__row_ratio), 128)) + - ((keccak__keccak__diluted_column2_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset))); + ((range_check96_builtin__inner_range_check1_suboffset) * + (range_check_units_row_ratio)) + + (range_check16_pool_offset))); ctx.AddVirtualColumn( - "keccak/keccak/parity0_3", + "range_check96_builtin/inner_range_check2", VirtualColumn( - /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), + /*column=*/range_check16_pool_column, /*step=*/range_check96_builtin_row_ratio, /*row_offset=*/ - (((SafeDiv((3) * (keccak__row_ratio), 512)) + - (SafeDiv((25) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset))); + ((range_check96_builtin__inner_range_check2_suboffset) * + (range_check_units_row_ratio)) + + (range_check16_pool_offset))); ctx.AddVirtualColumn( - "keccak/keccak/parity0_4", + "range_check96_builtin/inner_range_check3", VirtualColumn( - /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), + /*column=*/range_check16_pool_column, /*step=*/range_check96_builtin_row_ratio, /*row_offset=*/ - (((SafeDiv((3) * (keccak__row_ratio), 512)) + - (SafeDiv((25) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column1_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset))); + ((range_check96_builtin__inner_range_check3_suboffset) * + (range_check_units_row_ratio)) + + (range_check16_pool_offset))); ctx.AddVirtualColumn( - "keccak/keccak/parity1_0", + "range_check96_builtin/inner_range_check4", VirtualColumn( - /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), + /*column=*/range_check16_pool_column, /*step=*/range_check96_builtin_row_ratio, /*row_offset=*/ - (((SafeDiv((3) * (keccak__row_ratio), 512)) + - (SafeDiv((25) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column2_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset))); + ((range_check96_builtin__inner_range_check4_suboffset) * + (range_check_units_row_ratio)) + + (range_check16_pool_offset))); ctx.AddVirtualColumn( - "keccak/keccak/parity1_1", + "range_check96_builtin/inner_range_check5", VirtualColumn( - /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), + /*column=*/range_check16_pool_column, /*step=*/range_check96_builtin_row_ratio, /*row_offset=*/ - ((((SafeDiv((3) * (keccak__row_ratio), 512)) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((25) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset))); + ((range_check96_builtin__inner_range_check5_suboffset) * + (range_check_units_row_ratio)) + + (range_check16_pool_offset))); ctx.AddVirtualColumn( - "keccak/keccak/parity1_2", + "add_mod/p0/addr", VirtualColumn( + /*column=*/mem_pool__addr_column, /*step=*/add_mod__row_ratio, + /*row_offset=*/((add_mod__p0_suboffset) * (memory_units_row_ratio)) + + (mem_pool__addr_offset))); + ctx.AddVirtualColumn( + "add_mod/p0/value", VirtualColumn( + /*column=*/mem_pool__value_column, /*step=*/add_mod__row_ratio, + /*row_offset=*/((add_mod__p0_suboffset) * (memory_units_row_ratio)) + + (mem_pool__value_offset))); + ctx.AddVirtualColumn( + "add_mod/p1/addr", VirtualColumn( + /*column=*/mem_pool__addr_column, /*step=*/add_mod__row_ratio, + /*row_offset=*/((add_mod__p1_suboffset) * (memory_units_row_ratio)) + + (mem_pool__addr_offset))); + ctx.AddVirtualColumn( + "add_mod/p1/value", VirtualColumn( + /*column=*/mem_pool__value_column, /*step=*/add_mod__row_ratio, + /*row_offset=*/((add_mod__p1_suboffset) * (memory_units_row_ratio)) + + (mem_pool__value_offset))); + ctx.AddVirtualColumn( + "add_mod/p2/addr", VirtualColumn( + /*column=*/mem_pool__addr_column, /*step=*/add_mod__row_ratio, + /*row_offset=*/((add_mod__p2_suboffset) * (memory_units_row_ratio)) + + (mem_pool__addr_offset))); + ctx.AddVirtualColumn( + "add_mod/p2/value", VirtualColumn( + /*column=*/mem_pool__value_column, /*step=*/add_mod__row_ratio, + /*row_offset=*/((add_mod__p2_suboffset) * (memory_units_row_ratio)) + + (mem_pool__value_offset))); + ctx.AddVirtualColumn( + "add_mod/p3/addr", VirtualColumn( + /*column=*/mem_pool__addr_column, /*step=*/add_mod__row_ratio, + /*row_offset=*/((add_mod__p3_suboffset) * (memory_units_row_ratio)) + + (mem_pool__addr_offset))); + ctx.AddVirtualColumn( + "add_mod/p3/value", VirtualColumn( + /*column=*/mem_pool__value_column, /*step=*/add_mod__row_ratio, + /*row_offset=*/((add_mod__p3_suboffset) * (memory_units_row_ratio)) + + (mem_pool__value_offset))); + ctx.AddVirtualColumn( + "add_mod/values_ptr/addr", VirtualColumn( - /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), - /*row_offset=*/ - ((((SafeDiv((3) * (keccak__row_ratio), 512)) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((25) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column1_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset))); + /*column=*/mem_pool__addr_column, /*step=*/add_mod__row_ratio, + /*row_offset=*/((add_mod__values_ptr_suboffset) * (memory_units_row_ratio)) + + (mem_pool__addr_offset))); ctx.AddVirtualColumn( - "keccak/keccak/parity1_3", + "add_mod/values_ptr/value", VirtualColumn( - /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), - /*row_offset=*/ - ((((SafeDiv((3) * (keccak__row_ratio), 512)) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((25) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column2_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset))); + /*column=*/mem_pool__value_column, /*step=*/add_mod__row_ratio, + /*row_offset=*/((add_mod__values_ptr_suboffset) * (memory_units_row_ratio)) + + (mem_pool__value_offset))); ctx.AddVirtualColumn( - "keccak/keccak/parity1_4", + "add_mod/offsets_ptr/addr", VirtualColumn( - /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), - /*row_offset=*/ - (((((SafeDiv((3) * (keccak__row_ratio), 512)) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((25) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset))); + /*column=*/mem_pool__addr_column, /*step=*/add_mod__row_ratio, + /*row_offset=*/((add_mod__offsets_ptr_suboffset) * (memory_units_row_ratio)) + + (mem_pool__addr_offset))); ctx.AddVirtualColumn( - "keccak/keccak/parity2_0", + "add_mod/offsets_ptr/value", VirtualColumn( - /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), - /*row_offset=*/ - (((((SafeDiv((3) * (keccak__row_ratio), 512)) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((25) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column1_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset))); + /*column=*/mem_pool__value_column, /*step=*/add_mod__row_ratio, + /*row_offset=*/((add_mod__offsets_ptr_suboffset) * (memory_units_row_ratio)) + + (mem_pool__value_offset))); ctx.AddVirtualColumn( - "keccak/keccak/parity2_1", + "add_mod/n/addr", VirtualColumn( + /*column=*/mem_pool__addr_column, /*step=*/add_mod__row_ratio, + /*row_offset=*/((add_mod__n_suboffset) * (memory_units_row_ratio)) + + (mem_pool__addr_offset))); + ctx.AddVirtualColumn( + "add_mod/n/value", VirtualColumn( + /*column=*/mem_pool__value_column, /*step=*/add_mod__row_ratio, + /*row_offset=*/((add_mod__n_suboffset) * (memory_units_row_ratio)) + + (mem_pool__value_offset))); + ctx.AddVirtualColumn( + "add_mod/a_offset/addr", VirtualColumn( - /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), - /*row_offset=*/ - (((((SafeDiv((3) * (keccak__row_ratio), 512)) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((25) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column2_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset))); + /*column=*/mem_pool__addr_column, /*step=*/add_mod__row_ratio, + /*row_offset=*/((add_mod__a_offset_suboffset) * (memory_units_row_ratio)) + + (mem_pool__addr_offset))); ctx.AddVirtualColumn( - "keccak/keccak/parity2_2", + "add_mod/a_offset/value", VirtualColumn( - /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), - /*row_offset=*/ - ((((((SafeDiv((3) * (keccak__row_ratio), 512)) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((25) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset))); + /*column=*/mem_pool__value_column, /*step=*/add_mod__row_ratio, + /*row_offset=*/((add_mod__a_offset_suboffset) * (memory_units_row_ratio)) + + (mem_pool__value_offset))); ctx.AddVirtualColumn( - "keccak/keccak/parity2_3", + "add_mod/b_offset/addr", VirtualColumn( - /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), - /*row_offset=*/ - ((((((SafeDiv((3) * (keccak__row_ratio), 512)) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((25) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column1_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset))); + /*column=*/mem_pool__addr_column, /*step=*/add_mod__row_ratio, + /*row_offset=*/((add_mod__b_offset_suboffset) * (memory_units_row_ratio)) + + (mem_pool__addr_offset))); ctx.AddVirtualColumn( - "keccak/keccak/parity2_4", + "add_mod/b_offset/value", VirtualColumn( - /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), - /*row_offset=*/ - ((((((SafeDiv((3) * (keccak__row_ratio), 512)) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((25) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column2_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset))); + /*column=*/mem_pool__value_column, /*step=*/add_mod__row_ratio, + /*row_offset=*/((add_mod__b_offset_suboffset) * (memory_units_row_ratio)) + + (mem_pool__value_offset))); ctx.AddVirtualColumn( - "keccak/keccak/diluted_column3", + "add_mod/c_offset/addr", VirtualColumn( - /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), - /*row_offset=*/((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio)) + - (diluted_pool_offset))); + /*column=*/mem_pool__addr_column, /*step=*/add_mod__row_ratio, + /*row_offset=*/((add_mod__c_offset_suboffset) * (memory_units_row_ratio)) + + (mem_pool__addr_offset))); ctx.AddVirtualColumn( - "keccak/keccak/after_theta_rho_pi", + "add_mod/c_offset/value", VirtualColumn( - /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), - /*row_offset=*/((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio)) + - (diluted_pool_offset))); + /*column=*/mem_pool__value_column, /*step=*/add_mod__row_ratio, + /*row_offset=*/((add_mod__c_offset_suboffset) * (memory_units_row_ratio)) + + (mem_pool__value_offset))); ctx.AddVirtualColumn( - "keccak/keccak/rotated_parity0", VirtualColumn( - /*column=*/keccak__keccak__rotated_parity0_column, - /*step=*/SafeDiv(keccak__row_ratio, 4096), - /*row_offset=*/keccak__keccak__rotated_parity0_offset)); + "add_mod/a0/addr", VirtualColumn( + /*column=*/mem_pool__addr_column, /*step=*/add_mod__row_ratio, + /*row_offset=*/((add_mod__a0_suboffset) * (memory_units_row_ratio)) + + (mem_pool__addr_offset))); ctx.AddVirtualColumn( - "keccak/keccak/rotated_parity1", VirtualColumn( - /*column=*/keccak__keccak__rotated_parity1_column, - /*step=*/SafeDiv(keccak__row_ratio, 4096), - /*row_offset=*/keccak__keccak__rotated_parity1_offset)); + "add_mod/a0/value", VirtualColumn( + /*column=*/mem_pool__value_column, /*step=*/add_mod__row_ratio, + /*row_offset=*/((add_mod__a0_suboffset) * (memory_units_row_ratio)) + + (mem_pool__value_offset))); ctx.AddVirtualColumn( - "keccak/keccak/rotated_parity2", VirtualColumn( - /*column=*/keccak__keccak__rotated_parity2_column, - /*step=*/SafeDiv(keccak__row_ratio, 4096), - /*row_offset=*/keccak__keccak__rotated_parity2_offset)); + "add_mod/a1/addr", VirtualColumn( + /*column=*/mem_pool__addr_column, /*step=*/add_mod__row_ratio, + /*row_offset=*/((add_mod__a1_suboffset) * (memory_units_row_ratio)) + + (mem_pool__addr_offset))); ctx.AddVirtualColumn( - "keccak/keccak/rotated_parity3", VirtualColumn( - /*column=*/keccak__keccak__rotated_parity3_column, - /*step=*/SafeDiv(keccak__row_ratio, 4096), - /*row_offset=*/keccak__keccak__rotated_parity3_offset)); + "add_mod/a1/value", VirtualColumn( + /*column=*/mem_pool__value_column, /*step=*/add_mod__row_ratio, + /*row_offset=*/((add_mod__a1_suboffset) * (memory_units_row_ratio)) + + (mem_pool__value_offset))); ctx.AddVirtualColumn( - "keccak/keccak/rotated_parity4", VirtualColumn( - /*column=*/keccak__keccak__rotated_parity4_column, - /*step=*/SafeDiv(keccak__row_ratio, 4096), - /*row_offset=*/keccak__keccak__rotated_parity4_offset)); + "add_mod/a2/addr", VirtualColumn( + /*column=*/mem_pool__addr_column, /*step=*/add_mod__row_ratio, + /*row_offset=*/((add_mod__a2_suboffset) * (memory_units_row_ratio)) + + (mem_pool__addr_offset))); ctx.AddVirtualColumn( - "keccak/keccak/theta_aux_i0_j0", + "add_mod/a2/value", VirtualColumn( + /*column=*/mem_pool__value_column, /*step=*/add_mod__row_ratio, + /*row_offset=*/((add_mod__a2_suboffset) * (memory_units_row_ratio)) + + (mem_pool__value_offset))); + ctx.AddVirtualColumn( + "add_mod/a3/addr", VirtualColumn( + /*column=*/mem_pool__addr_column, /*step=*/add_mod__row_ratio, + /*row_offset=*/((add_mod__a3_suboffset) * (memory_units_row_ratio)) + + (mem_pool__addr_offset))); + ctx.AddVirtualColumn( + "add_mod/a3/value", VirtualColumn( + /*column=*/mem_pool__value_column, /*step=*/add_mod__row_ratio, + /*row_offset=*/((add_mod__a3_suboffset) * (memory_units_row_ratio)) + + (mem_pool__value_offset))); + ctx.AddVirtualColumn( + "add_mod/b0/addr", VirtualColumn( + /*column=*/mem_pool__addr_column, /*step=*/add_mod__row_ratio, + /*row_offset=*/((add_mod__b0_suboffset) * (memory_units_row_ratio)) + + (mem_pool__addr_offset))); + ctx.AddVirtualColumn( + "add_mod/b0/value", VirtualColumn( + /*column=*/mem_pool__value_column, /*step=*/add_mod__row_ratio, + /*row_offset=*/((add_mod__b0_suboffset) * (memory_units_row_ratio)) + + (mem_pool__value_offset))); + ctx.AddVirtualColumn( + "add_mod/b1/addr", VirtualColumn( + /*column=*/mem_pool__addr_column, /*step=*/add_mod__row_ratio, + /*row_offset=*/((add_mod__b1_suboffset) * (memory_units_row_ratio)) + + (mem_pool__addr_offset))); + ctx.AddVirtualColumn( + "add_mod/b1/value", VirtualColumn( + /*column=*/mem_pool__value_column, /*step=*/add_mod__row_ratio, + /*row_offset=*/((add_mod__b1_suboffset) * (memory_units_row_ratio)) + + (mem_pool__value_offset))); + ctx.AddVirtualColumn( + "add_mod/b2/addr", VirtualColumn( + /*column=*/mem_pool__addr_column, /*step=*/add_mod__row_ratio, + /*row_offset=*/((add_mod__b2_suboffset) * (memory_units_row_ratio)) + + (mem_pool__addr_offset))); + ctx.AddVirtualColumn( + "add_mod/b2/value", VirtualColumn( + /*column=*/mem_pool__value_column, /*step=*/add_mod__row_ratio, + /*row_offset=*/((add_mod__b2_suboffset) * (memory_units_row_ratio)) + + (mem_pool__value_offset))); + ctx.AddVirtualColumn( + "add_mod/b3/addr", VirtualColumn( + /*column=*/mem_pool__addr_column, /*step=*/add_mod__row_ratio, + /*row_offset=*/((add_mod__b3_suboffset) * (memory_units_row_ratio)) + + (mem_pool__addr_offset))); + ctx.AddVirtualColumn( + "add_mod/b3/value", VirtualColumn( + /*column=*/mem_pool__value_column, /*step=*/add_mod__row_ratio, + /*row_offset=*/((add_mod__b3_suboffset) * (memory_units_row_ratio)) + + (mem_pool__value_offset))); + ctx.AddVirtualColumn( + "add_mod/c0/addr", VirtualColumn( + /*column=*/mem_pool__addr_column, /*step=*/add_mod__row_ratio, + /*row_offset=*/((add_mod__c0_suboffset) * (memory_units_row_ratio)) + + (mem_pool__addr_offset))); + ctx.AddVirtualColumn( + "add_mod/c0/value", VirtualColumn( + /*column=*/mem_pool__value_column, /*step=*/add_mod__row_ratio, + /*row_offset=*/((add_mod__c0_suboffset) * (memory_units_row_ratio)) + + (mem_pool__value_offset))); + ctx.AddVirtualColumn( + "add_mod/c1/addr", VirtualColumn( + /*column=*/mem_pool__addr_column, /*step=*/add_mod__row_ratio, + /*row_offset=*/((add_mod__c1_suboffset) * (memory_units_row_ratio)) + + (mem_pool__addr_offset))); + ctx.AddVirtualColumn( + "add_mod/c1/value", VirtualColumn( + /*column=*/mem_pool__value_column, /*step=*/add_mod__row_ratio, + /*row_offset=*/((add_mod__c1_suboffset) * (memory_units_row_ratio)) + + (mem_pool__value_offset))); + ctx.AddVirtualColumn( + "add_mod/c2/addr", VirtualColumn( + /*column=*/mem_pool__addr_column, /*step=*/add_mod__row_ratio, + /*row_offset=*/((add_mod__c2_suboffset) * (memory_units_row_ratio)) + + (mem_pool__addr_offset))); + ctx.AddVirtualColumn( + "add_mod/c2/value", VirtualColumn( + /*column=*/mem_pool__value_column, /*step=*/add_mod__row_ratio, + /*row_offset=*/((add_mod__c2_suboffset) * (memory_units_row_ratio)) + + (mem_pool__value_offset))); + ctx.AddVirtualColumn( + "add_mod/c3/addr", VirtualColumn( + /*column=*/mem_pool__addr_column, /*step=*/add_mod__row_ratio, + /*row_offset=*/((add_mod__c3_suboffset) * (memory_units_row_ratio)) + + (mem_pool__addr_offset))); + ctx.AddVirtualColumn( + "add_mod/c3/value", VirtualColumn( + /*column=*/mem_pool__value_column, /*step=*/add_mod__row_ratio, + /*row_offset=*/((add_mod__c3_suboffset) * (memory_units_row_ratio)) + + (mem_pool__value_offset))); + ctx.AddVirtualColumn( + "add_mod/sub_p_bit", VirtualColumn( + /*column=*/add_mod__sub_p_bit_column, /*step=*/add_mod__row_ratio, + /*row_offset=*/add_mod__sub_p_bit_offset)); + ctx.AddVirtualColumn( + "add_mod/carry1_bit", VirtualColumn( + /*column=*/add_mod__carry1_bit_column, /*step=*/add_mod__row_ratio, + /*row_offset=*/add_mod__carry1_bit_offset)); + ctx.AddVirtualColumn( + "add_mod/carry2_bit", VirtualColumn( + /*column=*/add_mod__carry2_bit_column, /*step=*/add_mod__row_ratio, + /*row_offset=*/add_mod__carry2_bit_offset)); + ctx.AddVirtualColumn( + "add_mod/carry3_bit", VirtualColumn( + /*column=*/add_mod__carry3_bit_column, /*step=*/add_mod__row_ratio, + /*row_offset=*/add_mod__carry3_bit_offset)); + ctx.AddVirtualColumn( + "add_mod/carry1_sign", VirtualColumn( - /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), - /*row_offset=*/ - (((((((SafeDiv((3) * (keccak__row_ratio), 512)) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((25) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset))); + /*column=*/add_mod__carry1_sign_column, /*step=*/add_mod__row_ratio, + /*row_offset=*/add_mod__carry1_sign_offset)); + ctx.AddVirtualColumn( + "add_mod/carry2_sign", + VirtualColumn( + /*column=*/add_mod__carry2_sign_column, /*step=*/add_mod__row_ratio, + /*row_offset=*/add_mod__carry2_sign_offset)); + ctx.AddVirtualColumn( + "add_mod/carry3_sign", + VirtualColumn( + /*column=*/add_mod__carry3_sign_column, /*step=*/add_mod__row_ratio, + /*row_offset=*/add_mod__carry3_sign_offset)); + ctx.AddVirtualColumn( + "mul_mod/p0/addr", VirtualColumn( + /*column=*/mem_pool__addr_column, /*step=*/mul_mod__row_ratio, + /*row_offset=*/((mul_mod__p0_suboffset) * (memory_units_row_ratio)) + + (mem_pool__addr_offset))); + ctx.AddVirtualColumn( + "mul_mod/p0/value", VirtualColumn( + /*column=*/mem_pool__value_column, /*step=*/mul_mod__row_ratio, + /*row_offset=*/((mul_mod__p0_suboffset) * (memory_units_row_ratio)) + + (mem_pool__value_offset))); + ctx.AddVirtualColumn( + "mul_mod/p1/addr", VirtualColumn( + /*column=*/mem_pool__addr_column, /*step=*/mul_mod__row_ratio, + /*row_offset=*/((mul_mod__p1_suboffset) * (memory_units_row_ratio)) + + (mem_pool__addr_offset))); + ctx.AddVirtualColumn( + "mul_mod/p1/value", VirtualColumn( + /*column=*/mem_pool__value_column, /*step=*/mul_mod__row_ratio, + /*row_offset=*/((mul_mod__p1_suboffset) * (memory_units_row_ratio)) + + (mem_pool__value_offset))); + ctx.AddVirtualColumn( + "mul_mod/p2/addr", VirtualColumn( + /*column=*/mem_pool__addr_column, /*step=*/mul_mod__row_ratio, + /*row_offset=*/((mul_mod__p2_suboffset) * (memory_units_row_ratio)) + + (mem_pool__addr_offset))); + ctx.AddVirtualColumn( + "mul_mod/p2/value", VirtualColumn( + /*column=*/mem_pool__value_column, /*step=*/mul_mod__row_ratio, + /*row_offset=*/((mul_mod__p2_suboffset) * (memory_units_row_ratio)) + + (mem_pool__value_offset))); + ctx.AddVirtualColumn( + "mul_mod/p3/addr", VirtualColumn( + /*column=*/mem_pool__addr_column, /*step=*/mul_mod__row_ratio, + /*row_offset=*/((mul_mod__p3_suboffset) * (memory_units_row_ratio)) + + (mem_pool__addr_offset))); + ctx.AddVirtualColumn( + "mul_mod/p3/value", VirtualColumn( + /*column=*/mem_pool__value_column, /*step=*/mul_mod__row_ratio, + /*row_offset=*/((mul_mod__p3_suboffset) * (memory_units_row_ratio)) + + (mem_pool__value_offset))); ctx.AddVirtualColumn( - "keccak/keccak/theta_aux_i0_j1", + "mul_mod/values_ptr/addr", VirtualColumn( - /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), - /*row_offset=*/ - (((((((SafeDiv((3) * (keccak__row_ratio), 512)) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((25) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column1_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset))); + /*column=*/mem_pool__addr_column, /*step=*/mul_mod__row_ratio, + /*row_offset=*/((mul_mod__values_ptr_suboffset) * (memory_units_row_ratio)) + + (mem_pool__addr_offset))); ctx.AddVirtualColumn( - "keccak/keccak/theta_aux_i0_j2", + "mul_mod/values_ptr/value", VirtualColumn( - /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), - /*row_offset=*/ - (((((((SafeDiv((3) * (keccak__row_ratio), 512)) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((25) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column2_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset))); + /*column=*/mem_pool__value_column, /*step=*/mul_mod__row_ratio, + /*row_offset=*/((mul_mod__values_ptr_suboffset) * (memory_units_row_ratio)) + + (mem_pool__value_offset))); ctx.AddVirtualColumn( - "keccak/keccak/theta_aux_i0_j3", + "mul_mod/offsets_ptr/addr", VirtualColumn( - /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), - /*row_offset=*/ - ((SafeDiv((25) * (keccak__row_ratio), 128)) + - ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset))); + /*column=*/mem_pool__addr_column, /*step=*/mul_mod__row_ratio, + /*row_offset=*/((mul_mod__offsets_ptr_suboffset) * (memory_units_row_ratio)) + + (mem_pool__addr_offset))); ctx.AddVirtualColumn( - "keccak/keccak/theta_aux_i0_j4", + "mul_mod/offsets_ptr/value", VirtualColumn( - /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), - /*row_offset=*/ - ((((((((SafeDiv((3) * (keccak__row_ratio), 512)) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((25) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset))); + /*column=*/mem_pool__value_column, /*step=*/mul_mod__row_ratio, + /*row_offset=*/((mul_mod__offsets_ptr_suboffset) * (memory_units_row_ratio)) + + (mem_pool__value_offset))); ctx.AddVirtualColumn( - "keccak/keccak/theta_aux_i1_j0", + "mul_mod/n/addr", VirtualColumn( + /*column=*/mem_pool__addr_column, /*step=*/mul_mod__row_ratio, + /*row_offset=*/((mul_mod__n_suboffset) * (memory_units_row_ratio)) + + (mem_pool__addr_offset))); + ctx.AddVirtualColumn( + "mul_mod/n/value", VirtualColumn( + /*column=*/mem_pool__value_column, /*step=*/mul_mod__row_ratio, + /*row_offset=*/((mul_mod__n_suboffset) * (memory_units_row_ratio)) + + (mem_pool__value_offset))); + ctx.AddVirtualColumn( + "mul_mod/a_offset/addr", VirtualColumn( - /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), - /*row_offset=*/ - ((((((((SafeDiv((3) * (keccak__row_ratio), 512)) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((25) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column1_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset))); + /*column=*/mem_pool__addr_column, /*step=*/mul_mod__row_ratio, + /*row_offset=*/((mul_mod__a_offset_suboffset) * (memory_units_row_ratio)) + + (mem_pool__addr_offset))); ctx.AddVirtualColumn( - "keccak/keccak/theta_aux_i1_j1", + "mul_mod/a_offset/value", VirtualColumn( - /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), - /*row_offset=*/ - ((((((((SafeDiv((3) * (keccak__row_ratio), 512)) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((25) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column2_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset))); + /*column=*/mem_pool__value_column, /*step=*/mul_mod__row_ratio, + /*row_offset=*/((mul_mod__a_offset_suboffset) * (memory_units_row_ratio)) + + (mem_pool__value_offset))); ctx.AddVirtualColumn( - "keccak/keccak/theta_aux_i1_j2", + "mul_mod/b_offset/addr", VirtualColumn( - /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), - /*row_offset=*/ - (((SafeDiv((3) * (keccak__row_ratio), 512)) + - (SafeDiv((25) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset))); + /*column=*/mem_pool__addr_column, /*step=*/mul_mod__row_ratio, + /*row_offset=*/((mul_mod__b_offset_suboffset) * (memory_units_row_ratio)) + + (mem_pool__addr_offset))); ctx.AddVirtualColumn( - "keccak/keccak/theta_aux_i1_j3", + "mul_mod/b_offset/value", VirtualColumn( - /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), - /*row_offset=*/ - (((((((((SafeDiv((3) * (keccak__row_ratio), 512)) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((25) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset))); + /*column=*/mem_pool__value_column, /*step=*/mul_mod__row_ratio, + /*row_offset=*/((mul_mod__b_offset_suboffset) * (memory_units_row_ratio)) + + (mem_pool__value_offset))); ctx.AddVirtualColumn( - "keccak/keccak/theta_aux_i1_j4", + "mul_mod/c_offset/addr", VirtualColumn( - /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), - /*row_offset=*/ - (((((((((SafeDiv((3) * (keccak__row_ratio), 512)) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((25) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column1_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset))); + /*column=*/mem_pool__addr_column, /*step=*/mul_mod__row_ratio, + /*row_offset=*/((mul_mod__c_offset_suboffset) * (memory_units_row_ratio)) + + (mem_pool__addr_offset))); ctx.AddVirtualColumn( - "keccak/keccak/theta_aux_i2_j0", + "mul_mod/c_offset/value", VirtualColumn( - /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), + /*column=*/mem_pool__value_column, /*step=*/mul_mod__row_ratio, + /*row_offset=*/((mul_mod__c_offset_suboffset) * (memory_units_row_ratio)) + + (mem_pool__value_offset))); + ctx.AddVirtualColumn( + "mul_mod/a0/addr", VirtualColumn( + /*column=*/mem_pool__addr_column, /*step=*/mul_mod__row_ratio, + /*row_offset=*/((mul_mod__a0_suboffset) * (memory_units_row_ratio)) + + (mem_pool__addr_offset))); + ctx.AddVirtualColumn( + "mul_mod/a0/value", VirtualColumn( + /*column=*/mem_pool__value_column, /*step=*/mul_mod__row_ratio, + /*row_offset=*/((mul_mod__a0_suboffset) * (memory_units_row_ratio)) + + (mem_pool__value_offset))); + ctx.AddVirtualColumn( + "mul_mod/a1/addr", VirtualColumn( + /*column=*/mem_pool__addr_column, /*step=*/mul_mod__row_ratio, + /*row_offset=*/((mul_mod__a1_suboffset) * (memory_units_row_ratio)) + + (mem_pool__addr_offset))); + ctx.AddVirtualColumn( + "mul_mod/a1/value", VirtualColumn( + /*column=*/mem_pool__value_column, /*step=*/mul_mod__row_ratio, + /*row_offset=*/((mul_mod__a1_suboffset) * (memory_units_row_ratio)) + + (mem_pool__value_offset))); + ctx.AddVirtualColumn( + "mul_mod/a2/addr", VirtualColumn( + /*column=*/mem_pool__addr_column, /*step=*/mul_mod__row_ratio, + /*row_offset=*/((mul_mod__a2_suboffset) * (memory_units_row_ratio)) + + (mem_pool__addr_offset))); + ctx.AddVirtualColumn( + "mul_mod/a2/value", VirtualColumn( + /*column=*/mem_pool__value_column, /*step=*/mul_mod__row_ratio, + /*row_offset=*/((mul_mod__a2_suboffset) * (memory_units_row_ratio)) + + (mem_pool__value_offset))); + ctx.AddVirtualColumn( + "mul_mod/a3/addr", VirtualColumn( + /*column=*/mem_pool__addr_column, /*step=*/mul_mod__row_ratio, + /*row_offset=*/((mul_mod__a3_suboffset) * (memory_units_row_ratio)) + + (mem_pool__addr_offset))); + ctx.AddVirtualColumn( + "mul_mod/a3/value", VirtualColumn( + /*column=*/mem_pool__value_column, /*step=*/mul_mod__row_ratio, + /*row_offset=*/((mul_mod__a3_suboffset) * (memory_units_row_ratio)) + + (mem_pool__value_offset))); + ctx.AddVirtualColumn( + "mul_mod/b0/addr", VirtualColumn( + /*column=*/mem_pool__addr_column, /*step=*/mul_mod__row_ratio, + /*row_offset=*/((mul_mod__b0_suboffset) * (memory_units_row_ratio)) + + (mem_pool__addr_offset))); + ctx.AddVirtualColumn( + "mul_mod/b0/value", VirtualColumn( + /*column=*/mem_pool__value_column, /*step=*/mul_mod__row_ratio, + /*row_offset=*/((mul_mod__b0_suboffset) * (memory_units_row_ratio)) + + (mem_pool__value_offset))); + ctx.AddVirtualColumn( + "mul_mod/b1/addr", VirtualColumn( + /*column=*/mem_pool__addr_column, /*step=*/mul_mod__row_ratio, + /*row_offset=*/((mul_mod__b1_suboffset) * (memory_units_row_ratio)) + + (mem_pool__addr_offset))); + ctx.AddVirtualColumn( + "mul_mod/b1/value", VirtualColumn( + /*column=*/mem_pool__value_column, /*step=*/mul_mod__row_ratio, + /*row_offset=*/((mul_mod__b1_suboffset) * (memory_units_row_ratio)) + + (mem_pool__value_offset))); + ctx.AddVirtualColumn( + "mul_mod/b2/addr", VirtualColumn( + /*column=*/mem_pool__addr_column, /*step=*/mul_mod__row_ratio, + /*row_offset=*/((mul_mod__b2_suboffset) * (memory_units_row_ratio)) + + (mem_pool__addr_offset))); + ctx.AddVirtualColumn( + "mul_mod/b2/value", VirtualColumn( + /*column=*/mem_pool__value_column, /*step=*/mul_mod__row_ratio, + /*row_offset=*/((mul_mod__b2_suboffset) * (memory_units_row_ratio)) + + (mem_pool__value_offset))); + ctx.AddVirtualColumn( + "mul_mod/b3/addr", VirtualColumn( + /*column=*/mem_pool__addr_column, /*step=*/mul_mod__row_ratio, + /*row_offset=*/((mul_mod__b3_suboffset) * (memory_units_row_ratio)) + + (mem_pool__addr_offset))); + ctx.AddVirtualColumn( + "mul_mod/b3/value", VirtualColumn( + /*column=*/mem_pool__value_column, /*step=*/mul_mod__row_ratio, + /*row_offset=*/((mul_mod__b3_suboffset) * (memory_units_row_ratio)) + + (mem_pool__value_offset))); + ctx.AddVirtualColumn( + "mul_mod/c0/addr", VirtualColumn( + /*column=*/mem_pool__addr_column, /*step=*/mul_mod__row_ratio, + /*row_offset=*/((mul_mod__c0_suboffset) * (memory_units_row_ratio)) + + (mem_pool__addr_offset))); + ctx.AddVirtualColumn( + "mul_mod/c0/value", VirtualColumn( + /*column=*/mem_pool__value_column, /*step=*/mul_mod__row_ratio, + /*row_offset=*/((mul_mod__c0_suboffset) * (memory_units_row_ratio)) + + (mem_pool__value_offset))); + ctx.AddVirtualColumn( + "mul_mod/c1/addr", VirtualColumn( + /*column=*/mem_pool__addr_column, /*step=*/mul_mod__row_ratio, + /*row_offset=*/((mul_mod__c1_suboffset) * (memory_units_row_ratio)) + + (mem_pool__addr_offset))); + ctx.AddVirtualColumn( + "mul_mod/c1/value", VirtualColumn( + /*column=*/mem_pool__value_column, /*step=*/mul_mod__row_ratio, + /*row_offset=*/((mul_mod__c1_suboffset) * (memory_units_row_ratio)) + + (mem_pool__value_offset))); + ctx.AddVirtualColumn( + "mul_mod/c2/addr", VirtualColumn( + /*column=*/mem_pool__addr_column, /*step=*/mul_mod__row_ratio, + /*row_offset=*/((mul_mod__c2_suboffset) * (memory_units_row_ratio)) + + (mem_pool__addr_offset))); + ctx.AddVirtualColumn( + "mul_mod/c2/value", VirtualColumn( + /*column=*/mem_pool__value_column, /*step=*/mul_mod__row_ratio, + /*row_offset=*/((mul_mod__c2_suboffset) * (memory_units_row_ratio)) + + (mem_pool__value_offset))); + ctx.AddVirtualColumn( + "mul_mod/c3/addr", VirtualColumn( + /*column=*/mem_pool__addr_column, /*step=*/mul_mod__row_ratio, + /*row_offset=*/((mul_mod__c3_suboffset) * (memory_units_row_ratio)) + + (mem_pool__addr_offset))); + ctx.AddVirtualColumn( + "mul_mod/c3/value", VirtualColumn( + /*column=*/mem_pool__value_column, /*step=*/mul_mod__row_ratio, + /*row_offset=*/((mul_mod__c3_suboffset) * (memory_units_row_ratio)) + + (mem_pool__value_offset))); + ctx.AddVirtualColumn( + "mul_mod/p_multiplier0/part0", + VirtualColumn( + /*column=*/range_check16_pool_column, /*step=*/mul_mod__row_ratio, /*row_offset=*/ - (((((((((SafeDiv((3) * (keccak__row_ratio), 512)) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((25) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column2_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset))); + ((mul_mod__p_multiplier0__part0_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset))); ctx.AddVirtualColumn( - "keccak/keccak/theta_aux_i2_j1", + "mul_mod/p_multiplier0/part1", VirtualColumn( - /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), + /*column=*/range_check16_pool_column, /*step=*/mul_mod__row_ratio, /*row_offset=*/ - ((((SafeDiv((3) * (keccak__row_ratio), 512)) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((25) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset))); + ((mul_mod__p_multiplier0__part1_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset))); ctx.AddVirtualColumn( - "keccak/keccak/theta_aux_i2_j2", + "mul_mod/p_multiplier0/part2", VirtualColumn( - /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), + /*column=*/range_check16_pool_column, /*step=*/mul_mod__row_ratio, /*row_offset=*/ - ((((((((((SafeDiv((3) * (keccak__row_ratio), 512)) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((25) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset))); + ((mul_mod__p_multiplier0__part2_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset))); ctx.AddVirtualColumn( - "keccak/keccak/theta_aux_i2_j3", + "mul_mod/p_multiplier0/part3", VirtualColumn( - /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), + /*column=*/range_check16_pool_column, /*step=*/mul_mod__row_ratio, /*row_offset=*/ - ((((((((((SafeDiv((3) * (keccak__row_ratio), 512)) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((25) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column1_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset))); + ((mul_mod__p_multiplier0__part3_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset))); ctx.AddVirtualColumn( - "keccak/keccak/theta_aux_i2_j4", + "mul_mod/p_multiplier0/part4", VirtualColumn( - /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), + /*column=*/range_check16_pool_column, /*step=*/mul_mod__row_ratio, /*row_offset=*/ - ((((((((((SafeDiv((3) * (keccak__row_ratio), 512)) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((25) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column2_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset))); + ((mul_mod__p_multiplier0__part4_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset))); ctx.AddVirtualColumn( - "keccak/keccak/theta_aux_i3_j0", + "mul_mod/p_multiplier0/part5", VirtualColumn( - /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), + /*column=*/range_check16_pool_column, /*step=*/mul_mod__row_ratio, /*row_offset=*/ - (((((SafeDiv((3) * (keccak__row_ratio), 512)) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((25) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset))); + ((mul_mod__p_multiplier0__part5_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset))); ctx.AddVirtualColumn( - "keccak/keccak/theta_aux_i3_j1", + "mul_mod/p_multiplier1/part0", VirtualColumn( - /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), + /*column=*/range_check16_pool_column, /*step=*/mul_mod__row_ratio, /*row_offset=*/ - ((((((SafeDiv((3) * (keccak__row_ratio), 512)) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((25) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset))); + ((mul_mod__p_multiplier1__part0_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset))); ctx.AddVirtualColumn( - "keccak/keccak/theta_aux_i3_j2", + "mul_mod/p_multiplier1/part1", VirtualColumn( - /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), + /*column=*/range_check16_pool_column, /*step=*/mul_mod__row_ratio, /*row_offset=*/ - (((((((SafeDiv((3) * (keccak__row_ratio), 512)) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((25) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset))); + ((mul_mod__p_multiplier1__part1_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset))); ctx.AddVirtualColumn( - "keccak/keccak/theta_aux_i3_j3", + "mul_mod/p_multiplier1/part2", VirtualColumn( - /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), + /*column=*/range_check16_pool_column, /*step=*/mul_mod__row_ratio, /*row_offset=*/ - ((((((((SafeDiv((3) * (keccak__row_ratio), 512)) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((25) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset))); + ((mul_mod__p_multiplier1__part2_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset))); ctx.AddVirtualColumn( - "keccak/keccak/theta_aux_i3_j4", + "mul_mod/p_multiplier1/part3", VirtualColumn( - /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), + /*column=*/range_check16_pool_column, /*step=*/mul_mod__row_ratio, /*row_offset=*/ - (((((((((SafeDiv((3) * (keccak__row_ratio), 512)) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((25) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset))); + ((mul_mod__p_multiplier1__part3_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset))); + ctx.AddVirtualColumn( + "mul_mod/p_multiplier1/part4", + VirtualColumn( + /*column=*/range_check16_pool_column, /*step=*/mul_mod__row_ratio, + /*row_offset=*/ + ((mul_mod__p_multiplier1__part4_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset))); ctx.AddVirtualColumn( - "keccak/keccak/theta_aux_i4_j0", + "mul_mod/p_multiplier1/part5", VirtualColumn( - /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), + /*column=*/range_check16_pool_column, /*step=*/mul_mod__row_ratio, /*row_offset=*/ - ((((((((((SafeDiv((3) * (keccak__row_ratio), 512)) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((25) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset))); + ((mul_mod__p_multiplier1__part5_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset))); ctx.AddVirtualColumn( - "keccak/keccak/theta_aux_i4_j1_start0_stop8", + "mul_mod/p_multiplier2/part0", VirtualColumn( - /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), + /*column=*/range_check16_pool_column, /*step=*/mul_mod__row_ratio, /*row_offset=*/ - ((SafeDiv((3) * (keccak__row_ratio), 512)) + - ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset))); + ((mul_mod__p_multiplier2__part0_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset))); ctx.AddVirtualColumn( - "keccak/keccak/theta_aux_i4_j1_start8_stop16", + "mul_mod/p_multiplier2/part1", VirtualColumn( - /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), + /*column=*/range_check16_pool_column, /*step=*/mul_mod__row_ratio, /*row_offset=*/ - ((SafeDiv((7) * (keccak__row_ratio), 512)) + - ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset))); + ((mul_mod__p_multiplier2__part1_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset))); ctx.AddVirtualColumn( - "keccak/keccak/theta_aux_i4_j1_start16_stop24", + "mul_mod/p_multiplier2/part2", VirtualColumn( - /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), + /*column=*/range_check16_pool_column, /*step=*/mul_mod__row_ratio, /*row_offset=*/ - ((SafeDiv((11) * (keccak__row_ratio), 512)) + - ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset))); + ((mul_mod__p_multiplier2__part2_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset))); ctx.AddVirtualColumn( - "keccak/keccak/theta_aux_i4_j2_start0_stop8", + "mul_mod/p_multiplier2/part3", VirtualColumn( - /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), + /*column=*/range_check16_pool_column, /*step=*/mul_mod__row_ratio, /*row_offset=*/ - ((SafeDiv((15) * (keccak__row_ratio), 512)) + - ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset))); + ((mul_mod__p_multiplier2__part3_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset))); ctx.AddVirtualColumn( - "keccak/keccak/theta_aux_i4_j2_start8_stop16", + "mul_mod/p_multiplier2/part4", VirtualColumn( - /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), + /*column=*/range_check16_pool_column, /*step=*/mul_mod__row_ratio, /*row_offset=*/ - ((SafeDiv((19) * (keccak__row_ratio), 512)) + - ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset))); + ((mul_mod__p_multiplier2__part4_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset))); ctx.AddVirtualColumn( - "keccak/keccak/theta_aux_i4_j2_start16_stop24", + "mul_mod/p_multiplier2/part5", VirtualColumn( - /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), + /*column=*/range_check16_pool_column, /*step=*/mul_mod__row_ratio, /*row_offset=*/ - ((SafeDiv((23) * (keccak__row_ratio), 512)) + - ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset))); + ((mul_mod__p_multiplier2__part5_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset))); ctx.AddVirtualColumn( - "keccak/keccak/theta_aux_i4_j3_start0_stop8", + "mul_mod/p_multiplier3/part0", VirtualColumn( - /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), + /*column=*/range_check16_pool_column, /*step=*/mul_mod__row_ratio, /*row_offset=*/ - ((SafeDiv((27) * (keccak__row_ratio), 512)) + - ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset))); + ((mul_mod__p_multiplier3__part0_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset))); ctx.AddVirtualColumn( - "keccak/keccak/theta_aux_i4_j3_start8_stop16", + "mul_mod/p_multiplier3/part1", VirtualColumn( - /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), + /*column=*/range_check16_pool_column, /*step=*/mul_mod__row_ratio, /*row_offset=*/ - ((SafeDiv((31) * (keccak__row_ratio), 512)) + - ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset))); + ((mul_mod__p_multiplier3__part1_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset))); ctx.AddVirtualColumn( - "keccak/keccak/theta_aux_i4_j3_start16_stop24", + "mul_mod/p_multiplier3/part2", VirtualColumn( - /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), + /*column=*/range_check16_pool_column, /*step=*/mul_mod__row_ratio, /*row_offset=*/ - ((SafeDiv((35) * (keccak__row_ratio), 512)) + - ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset))); + ((mul_mod__p_multiplier3__part2_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset))); ctx.AddVirtualColumn( - "keccak/keccak/theta_aux_i4_j4_start0_stop8", + "mul_mod/p_multiplier3/part3", VirtualColumn( - /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), + /*column=*/range_check16_pool_column, /*step=*/mul_mod__row_ratio, /*row_offset=*/ - ((SafeDiv((39) * (keccak__row_ratio), 512)) + - ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset))); + ((mul_mod__p_multiplier3__part3_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset))); ctx.AddVirtualColumn( - "keccak/keccak/theta_aux_i4_j4_start8_stop16", + "mul_mod/p_multiplier3/part4", VirtualColumn( - /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), + /*column=*/range_check16_pool_column, /*step=*/mul_mod__row_ratio, /*row_offset=*/ - ((SafeDiv((43) * (keccak__row_ratio), 512)) + - ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset))); + ((mul_mod__p_multiplier3__part4_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset))); ctx.AddVirtualColumn( - "keccak/keccak/theta_aux_i4_j4_start16_stop24", + "mul_mod/p_multiplier3/part5", VirtualColumn( - /*column=*/diluted_pool_column, /*step=*/SafeDiv(keccak__row_ratio, 4096), + /*column=*/range_check16_pool_column, /*step=*/mul_mod__row_ratio, /*row_offset=*/ - ((SafeDiv((47) * (keccak__row_ratio), 512)) + - ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset))); + ((mul_mod__p_multiplier3__part5_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset))); ctx.AddVirtualColumn( - "poseidon/param_0/input_output/addr", + "mul_mod/carry0/part0", VirtualColumn( - /*column=*/mem_pool__addr_column, /*step=*/SafeDiv(poseidon__row_ratio, 2), - /*row_offset=*/((poseidon__param_0__input_output_suboffset) * (memory_units_row_ratio)) + - (mem_pool__addr_offset))); + /*column=*/range_check16_pool_column, /*step=*/mul_mod__row_ratio, + /*row_offset=*/((mul_mod__carry0__part0_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset))); ctx.AddVirtualColumn( - "poseidon/param_0/input_output/value", + "mul_mod/carry0/part1", VirtualColumn( - /*column=*/mem_pool__value_column, /*step=*/SafeDiv(poseidon__row_ratio, 2), - /*row_offset=*/((poseidon__param_0__input_output_suboffset) * (memory_units_row_ratio)) + - (mem_pool__value_offset))); + /*column=*/range_check16_pool_column, /*step=*/mul_mod__row_ratio, + /*row_offset=*/((mul_mod__carry0__part1_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset))); ctx.AddVirtualColumn( - "poseidon/param_1/input_output/addr", + "mul_mod/carry0/part2", VirtualColumn( - /*column=*/mem_pool__addr_column, /*step=*/SafeDiv(poseidon__row_ratio, 2), - /*row_offset=*/((poseidon__param_1__input_output_suboffset) * (memory_units_row_ratio)) + - (mem_pool__addr_offset))); + /*column=*/range_check16_pool_column, /*step=*/mul_mod__row_ratio, + /*row_offset=*/((mul_mod__carry0__part2_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset))); ctx.AddVirtualColumn( - "poseidon/param_1/input_output/value", + "mul_mod/carry0/part3", VirtualColumn( - /*column=*/mem_pool__value_column, /*step=*/SafeDiv(poseidon__row_ratio, 2), - /*row_offset=*/((poseidon__param_1__input_output_suboffset) * (memory_units_row_ratio)) + - (mem_pool__value_offset))); + /*column=*/range_check16_pool_column, /*step=*/mul_mod__row_ratio, + /*row_offset=*/((mul_mod__carry0__part3_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset))); ctx.AddVirtualColumn( - "poseidon/param_2/input_output/addr", + "mul_mod/carry0/part4", VirtualColumn( - /*column=*/mem_pool__addr_column, /*step=*/SafeDiv(poseidon__row_ratio, 2), - /*row_offset=*/((poseidon__param_2__input_output_suboffset) * (memory_units_row_ratio)) + - (mem_pool__addr_offset))); + /*column=*/range_check16_pool_column, /*step=*/mul_mod__row_ratio, + /*row_offset=*/((mul_mod__carry0__part4_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset))); ctx.AddVirtualColumn( - "poseidon/param_2/input_output/value", + "mul_mod/carry0/part5", VirtualColumn( - /*column=*/mem_pool__value_column, /*step=*/SafeDiv(poseidon__row_ratio, 2), - /*row_offset=*/((poseidon__param_2__input_output_suboffset) * (memory_units_row_ratio)) + - (mem_pool__value_offset))); + /*column=*/range_check16_pool_column, /*step=*/mul_mod__row_ratio, + /*row_offset=*/((mul_mod__carry0__part5_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset))); ctx.AddVirtualColumn( - "poseidon/poseidon/full_rounds_state0", + "mul_mod/carry0/part6", VirtualColumn( - /*column=*/poseidon__poseidon__full_rounds_state0_column, - /*step=*/SafeDiv(poseidon__row_ratio, 8), - /*row_offset=*/poseidon__poseidon__full_rounds_state0_offset)); + /*column=*/range_check16_pool_column, /*step=*/mul_mod__row_ratio, + /*row_offset=*/((mul_mod__carry0__part6_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset))); ctx.AddVirtualColumn( - "poseidon/poseidon/full_rounds_state1", + "mul_mod/carry1/part0", VirtualColumn( - /*column=*/poseidon__poseidon__full_rounds_state1_column, - /*step=*/SafeDiv(poseidon__row_ratio, 8), - /*row_offset=*/poseidon__poseidon__full_rounds_state1_offset)); + /*column=*/range_check16_pool_column, /*step=*/mul_mod__row_ratio, + /*row_offset=*/((mul_mod__carry1__part0_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset))); ctx.AddVirtualColumn( - "poseidon/poseidon/full_rounds_state2", + "mul_mod/carry1/part1", VirtualColumn( - /*column=*/poseidon__poseidon__full_rounds_state2_column, - /*step=*/SafeDiv(poseidon__row_ratio, 8), - /*row_offset=*/poseidon__poseidon__full_rounds_state2_offset)); + /*column=*/range_check16_pool_column, /*step=*/mul_mod__row_ratio, + /*row_offset=*/((mul_mod__carry1__part1_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset))); ctx.AddVirtualColumn( - "poseidon/poseidon/full_rounds_state0_squared", + "mul_mod/carry1/part2", VirtualColumn( - /*column=*/poseidon__poseidon__full_rounds_state0_squared_column, - /*step=*/SafeDiv(poseidon__row_ratio, 8), - /*row_offset=*/poseidon__poseidon__full_rounds_state0_squared_offset)); + /*column=*/range_check16_pool_column, /*step=*/mul_mod__row_ratio, + /*row_offset=*/((mul_mod__carry1__part2_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset))); ctx.AddVirtualColumn( - "poseidon/poseidon/full_rounds_state1_squared", + "mul_mod/carry1/part3", VirtualColumn( - /*column=*/poseidon__poseidon__full_rounds_state1_squared_column, - /*step=*/SafeDiv(poseidon__row_ratio, 8), - /*row_offset=*/poseidon__poseidon__full_rounds_state1_squared_offset)); + /*column=*/range_check16_pool_column, /*step=*/mul_mod__row_ratio, + /*row_offset=*/((mul_mod__carry1__part3_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset))); ctx.AddVirtualColumn( - "poseidon/poseidon/full_rounds_state2_squared", + "mul_mod/carry1/part4", VirtualColumn( - /*column=*/poseidon__poseidon__full_rounds_state2_squared_column, - /*step=*/SafeDiv(poseidon__row_ratio, 8), - /*row_offset=*/poseidon__poseidon__full_rounds_state2_squared_offset)); + /*column=*/range_check16_pool_column, /*step=*/mul_mod__row_ratio, + /*row_offset=*/((mul_mod__carry1__part4_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset))); ctx.AddVirtualColumn( - "poseidon/poseidon/partial_rounds_state0", + "mul_mod/carry1/part5", VirtualColumn( - /*column=*/poseidon__poseidon__partial_rounds_state0_column, - /*step=*/SafeDiv(poseidon__row_ratio, 64), - /*row_offset=*/poseidon__poseidon__partial_rounds_state0_offset)); + /*column=*/range_check16_pool_column, /*step=*/mul_mod__row_ratio, + /*row_offset=*/((mul_mod__carry1__part5_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset))); ctx.AddVirtualColumn( - "poseidon/poseidon/partial_rounds_state1", + "mul_mod/carry1/part6", VirtualColumn( - /*column=*/poseidon__poseidon__partial_rounds_state1_column, - /*step=*/SafeDiv(poseidon__row_ratio, 32), - /*row_offset=*/poseidon__poseidon__partial_rounds_state1_offset)); + /*column=*/range_check16_pool_column, /*step=*/mul_mod__row_ratio, + /*row_offset=*/((mul_mod__carry1__part6_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset))); ctx.AddVirtualColumn( - "poseidon/poseidon/partial_rounds_state0_squared", + "mul_mod/carry2/part0", VirtualColumn( - /*column=*/poseidon__poseidon__partial_rounds_state0_squared_column, - /*step=*/SafeDiv(poseidon__row_ratio, 64), - /*row_offset=*/poseidon__poseidon__partial_rounds_state0_squared_offset)); + /*column=*/range_check16_pool_column, /*step=*/mul_mod__row_ratio, + /*row_offset=*/((mul_mod__carry2__part0_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset))); ctx.AddVirtualColumn( - "poseidon/poseidon/partial_rounds_state1_squared", + "mul_mod/carry2/part1", VirtualColumn( - /*column=*/poseidon__poseidon__partial_rounds_state1_squared_column, - /*step=*/SafeDiv(poseidon__row_ratio, 32), - /*row_offset=*/poseidon__poseidon__partial_rounds_state1_squared_offset)); + /*column=*/range_check16_pool_column, /*step=*/mul_mod__row_ratio, + /*row_offset=*/((mul_mod__carry2__part1_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset))); + ctx.AddVirtualColumn( + "mul_mod/carry2/part2", + VirtualColumn( + /*column=*/range_check16_pool_column, /*step=*/mul_mod__row_ratio, + /*row_offset=*/((mul_mod__carry2__part2_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset))); + ctx.AddVirtualColumn( + "mul_mod/carry2/part3", + VirtualColumn( + /*column=*/range_check16_pool_column, /*step=*/mul_mod__row_ratio, + /*row_offset=*/((mul_mod__carry2__part3_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset))); + ctx.AddVirtualColumn( + "mul_mod/carry2/part4", + VirtualColumn( + /*column=*/range_check16_pool_column, /*step=*/mul_mod__row_ratio, + /*row_offset=*/((mul_mod__carry2__part4_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset))); + ctx.AddVirtualColumn( + "mul_mod/carry2/part5", + VirtualColumn( + /*column=*/range_check16_pool_column, /*step=*/mul_mod__row_ratio, + /*row_offset=*/((mul_mod__carry2__part5_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset))); + ctx.AddVirtualColumn( + "mul_mod/carry2/part6", + VirtualColumn( + /*column=*/range_check16_pool_column, /*step=*/mul_mod__row_ratio, + /*row_offset=*/((mul_mod__carry2__part6_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset))); + ctx.AddVirtualColumn( + "mul_mod/carry3/part0", + VirtualColumn( + /*column=*/range_check16_pool_column, /*step=*/mul_mod__row_ratio, + /*row_offset=*/((mul_mod__carry3__part0_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset))); + ctx.AddVirtualColumn( + "mul_mod/carry3/part1", + VirtualColumn( + /*column=*/range_check16_pool_column, /*step=*/mul_mod__row_ratio, + /*row_offset=*/((mul_mod__carry3__part1_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset))); + ctx.AddVirtualColumn( + "mul_mod/carry3/part2", + VirtualColumn( + /*column=*/range_check16_pool_column, /*step=*/mul_mod__row_ratio, + /*row_offset=*/((mul_mod__carry3__part2_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset))); + ctx.AddVirtualColumn( + "mul_mod/carry3/part3", + VirtualColumn( + /*column=*/range_check16_pool_column, /*step=*/mul_mod__row_ratio, + /*row_offset=*/((mul_mod__carry3__part3_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset))); + ctx.AddVirtualColumn( + "mul_mod/carry3/part4", + VirtualColumn( + /*column=*/range_check16_pool_column, /*step=*/mul_mod__row_ratio, + /*row_offset=*/((mul_mod__carry3__part4_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset))); + ctx.AddVirtualColumn( + "mul_mod/carry3/part5", + VirtualColumn( + /*column=*/range_check16_pool_column, /*step=*/mul_mod__row_ratio, + /*row_offset=*/((mul_mod__carry3__part5_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset))); + ctx.AddVirtualColumn( + "mul_mod/carry3/part6", + VirtualColumn( + /*column=*/range_check16_pool_column, /*step=*/mul_mod__row_ratio, + /*row_offset=*/((mul_mod__carry3__part6_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset))); + ctx.AddVirtualColumn( + "mul_mod/carry4/part0", + VirtualColumn( + /*column=*/range_check16_pool_column, /*step=*/mul_mod__row_ratio, + /*row_offset=*/((mul_mod__carry4__part0_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset))); + ctx.AddVirtualColumn( + "mul_mod/carry4/part1", + VirtualColumn( + /*column=*/range_check16_pool_column, /*step=*/mul_mod__row_ratio, + /*row_offset=*/((mul_mod__carry4__part1_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset))); + ctx.AddVirtualColumn( + "mul_mod/carry4/part2", + VirtualColumn( + /*column=*/range_check16_pool_column, /*step=*/mul_mod__row_ratio, + /*row_offset=*/((mul_mod__carry4__part2_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset))); + ctx.AddVirtualColumn( + "mul_mod/carry4/part3", + VirtualColumn( + /*column=*/range_check16_pool_column, /*step=*/mul_mod__row_ratio, + /*row_offset=*/((mul_mod__carry4__part3_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset))); + ctx.AddVirtualColumn( + "mul_mod/carry4/part4", + VirtualColumn( + /*column=*/range_check16_pool_column, /*step=*/mul_mod__row_ratio, + /*row_offset=*/((mul_mod__carry4__part4_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset))); + ctx.AddVirtualColumn( + "mul_mod/carry4/part5", + VirtualColumn( + /*column=*/range_check16_pool_column, /*step=*/mul_mod__row_ratio, + /*row_offset=*/((mul_mod__carry4__part5_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset))); + ctx.AddVirtualColumn( + "mul_mod/carry4/part6", + VirtualColumn( + /*column=*/range_check16_pool_column, /*step=*/mul_mod__row_ratio, + /*row_offset=*/((mul_mod__carry4__part6_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset))); + ctx.AddVirtualColumn( + "mul_mod/carry5/part0", + VirtualColumn( + /*column=*/range_check16_pool_column, /*step=*/mul_mod__row_ratio, + /*row_offset=*/((mul_mod__carry5__part0_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset))); + ctx.AddVirtualColumn( + "mul_mod/carry5/part1", + VirtualColumn( + /*column=*/range_check16_pool_column, /*step=*/mul_mod__row_ratio, + /*row_offset=*/((mul_mod__carry5__part1_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset))); + ctx.AddVirtualColumn( + "mul_mod/carry5/part2", + VirtualColumn( + /*column=*/range_check16_pool_column, /*step=*/mul_mod__row_ratio, + /*row_offset=*/((mul_mod__carry5__part2_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset))); + ctx.AddVirtualColumn( + "mul_mod/carry5/part3", + VirtualColumn( + /*column=*/range_check16_pool_column, /*step=*/mul_mod__row_ratio, + /*row_offset=*/((mul_mod__carry5__part3_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset))); + ctx.AddVirtualColumn( + "mul_mod/carry5/part4", + VirtualColumn( + /*column=*/range_check16_pool_column, /*step=*/mul_mod__row_ratio, + /*row_offset=*/((mul_mod__carry5__part4_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset))); + ctx.AddVirtualColumn( + "mul_mod/carry5/part5", + VirtualColumn( + /*column=*/range_check16_pool_column, /*step=*/mul_mod__row_ratio, + /*row_offset=*/((mul_mod__carry5__part5_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset))); + ctx.AddVirtualColumn( + "mul_mod/carry5/part6", + VirtualColumn( + /*column=*/range_check16_pool_column, /*step=*/mul_mod__row_ratio, + /*row_offset=*/((mul_mod__carry5__part6_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset))); ctx.AddPeriodicColumn( "pedersen/points/x", @@ -26713,2095 +30783,2810 @@ template std::vector> CpuAirDefinition::GetMask() const { std::vector> mask; - mask.reserve(755); + mask.reserve(941); + mask.emplace_back( + cpu__decode__opcode_range_check__column_offset, + cpu__decode__opcode_range_check__column_column); + mask.emplace_back( + (cpu_component_step) + (cpu__decode__opcode_range_check__column_offset), + cpu__decode__opcode_range_check__column_column); + mask.emplace_back( + ((cpu__decode__mem_inst_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset), + mem_pool__value_column); + mask.emplace_back( + ((cpu__decode__off2_suboffset) * (range_check_units_row_ratio)) + (range_check16_pool_offset), + range_check16_pool_column); + mask.emplace_back( + ((cpu__decode__off1_suboffset) * (range_check_units_row_ratio)) + (range_check16_pool_offset), + range_check16_pool_column); + mask.emplace_back( + ((cpu__decode__off0_suboffset) * (range_check_units_row_ratio)) + (range_check16_pool_offset), + range_check16_pool_column); + mask.emplace_back( + ((2) * (cpu_component_step)) + (cpu__decode__opcode_range_check__column_offset), + cpu__decode__opcode_range_check__column_column); + mask.emplace_back( + (((2) * (cpu_component_step)) + (cpu_component_step)) + + (cpu__decode__opcode_range_check__column_offset), + cpu__decode__opcode_range_check__column_column); + mask.emplace_back( + ((4) * (cpu_component_step)) + (cpu__decode__opcode_range_check__column_offset), + cpu__decode__opcode_range_check__column_column); + mask.emplace_back( + (((4) * (cpu_component_step)) + (cpu_component_step)) + + (cpu__decode__opcode_range_check__column_offset), + cpu__decode__opcode_range_check__column_column); + mask.emplace_back( + ((3) * (cpu_component_step)) + (cpu__decode__opcode_range_check__column_offset), + cpu__decode__opcode_range_check__column_column); + mask.emplace_back( + (((3) * (cpu_component_step)) + (cpu_component_step)) + + (cpu__decode__opcode_range_check__column_offset), + cpu__decode__opcode_range_check__column_column); + mask.emplace_back( + ((5) * (cpu_component_step)) + (cpu__decode__opcode_range_check__column_offset), + cpu__decode__opcode_range_check__column_column); + mask.emplace_back( + (((5) * (cpu_component_step)) + (cpu_component_step)) + + (cpu__decode__opcode_range_check__column_offset), + cpu__decode__opcode_range_check__column_column); + mask.emplace_back( + ((6) * (cpu_component_step)) + (cpu__decode__opcode_range_check__column_offset), + cpu__decode__opcode_range_check__column_column); + mask.emplace_back( + (((6) * (cpu_component_step)) + (cpu_component_step)) + + (cpu__decode__opcode_range_check__column_offset), + cpu__decode__opcode_range_check__column_column); + mask.emplace_back( + ((9) * (cpu_component_step)) + (cpu__decode__opcode_range_check__column_offset), + cpu__decode__opcode_range_check__column_column); + mask.emplace_back( + (((9) * (cpu_component_step)) + (cpu_component_step)) + + (cpu__decode__opcode_range_check__column_offset), + cpu__decode__opcode_range_check__column_column); + mask.emplace_back( + ((7) * (cpu_component_step)) + (cpu__decode__opcode_range_check__column_offset), + cpu__decode__opcode_range_check__column_column); + mask.emplace_back( + (((7) * (cpu_component_step)) + (cpu_component_step)) + + (cpu__decode__opcode_range_check__column_offset), + cpu__decode__opcode_range_check__column_column); + mask.emplace_back( + ((8) * (cpu_component_step)) + (cpu__decode__opcode_range_check__column_offset), + cpu__decode__opcode_range_check__column_column); + mask.emplace_back( + (((8) * (cpu_component_step)) + (cpu_component_step)) + + (cpu__decode__opcode_range_check__column_offset), + cpu__decode__opcode_range_check__column_column); + mask.emplace_back( + ((12) * (cpu_component_step)) + (cpu__decode__opcode_range_check__column_offset), + cpu__decode__opcode_range_check__column_column); + mask.emplace_back( + (((12) * (cpu_component_step)) + (cpu_component_step)) + + (cpu__decode__opcode_range_check__column_offset), + cpu__decode__opcode_range_check__column_column); + mask.emplace_back( + ((13) * (cpu_component_step)) + (cpu__decode__opcode_range_check__column_offset), + cpu__decode__opcode_range_check__column_column); + mask.emplace_back( + (((13) * (cpu_component_step)) + (cpu_component_step)) + + (cpu__decode__opcode_range_check__column_offset), + cpu__decode__opcode_range_check__column_column); + mask.emplace_back( + ((cpu__operands__mem_dst_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset), + mem_pool__addr_column); + mask.emplace_back(cpu__registers__fp_offset, cpu__registers__fp_column); + mask.emplace_back(cpu__registers__ap_offset, cpu__registers__ap_column); + mask.emplace_back( + ((cpu__operands__mem_op0_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset), + mem_pool__addr_column); + mask.emplace_back( + ((cpu_component_step) + (cpu_component_step)) + + (cpu__decode__opcode_range_check__column_offset), + cpu__decode__opcode_range_check__column_column); + mask.emplace_back( + ((cpu__operands__mem_op1_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset), + mem_pool__addr_column); + mask.emplace_back( + ((cpu__decode__mem_inst_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset), + mem_pool__addr_column); + mask.emplace_back( + ((cpu__operands__mem_op0_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset), + mem_pool__value_column); + mask.emplace_back(cpu__operands__ops_mul_offset, cpu__operands__ops_mul_column); + mask.emplace_back( + ((cpu__operands__mem_op1_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset), + mem_pool__value_column); + mask.emplace_back(cpu__operands__res_offset, cpu__operands__res_column); + mask.emplace_back( + cpu__update_registers__update_pc__tmp0_offset, cpu__update_registers__update_pc__tmp0_column); + mask.emplace_back( + ((cpu__operands__mem_dst_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset), + mem_pool__value_column); + mask.emplace_back( + cpu__update_registers__update_pc__tmp1_offset, cpu__update_registers__update_pc__tmp1_column); + mask.emplace_back( + (((16) * (cpu_component_step)) + + ((cpu__decode__mem_inst_suboffset) * (memory_units_row_ratio))) + + (mem_pool__addr_offset), + mem_pool__addr_column); + mask.emplace_back( + ((16) * (cpu_component_step)) + (cpu__registers__ap_offset), cpu__registers__ap_column); + mask.emplace_back( + ((10) * (cpu_component_step)) + (cpu__decode__opcode_range_check__column_offset), + cpu__decode__opcode_range_check__column_column); + mask.emplace_back( + (((10) * (cpu_component_step)) + (cpu_component_step)) + + (cpu__decode__opcode_range_check__column_offset), + cpu__decode__opcode_range_check__column_column); + mask.emplace_back( + ((11) * (cpu_component_step)) + (cpu__decode__opcode_range_check__column_offset), + cpu__decode__opcode_range_check__column_column); + mask.emplace_back( + (((11) * (cpu_component_step)) + (cpu_component_step)) + + (cpu__decode__opcode_range_check__column_offset), + cpu__decode__opcode_range_check__column_column); + mask.emplace_back( + ((16) * (cpu_component_step)) + (cpu__registers__fp_offset), cpu__registers__fp_column); + mask.emplace_back( + ((14) * (cpu_component_step)) + (cpu__decode__opcode_range_check__column_offset), + cpu__decode__opcode_range_check__column_column); + mask.emplace_back( + (((14) * (cpu_component_step)) + (cpu_component_step)) + + (cpu__decode__opcode_range_check__column_offset), + cpu__decode__opcode_range_check__column_column); + mask.emplace_back(memory__sorted__addr_offset, memory__sorted__addr_column); + mask.emplace_back(memory__sorted__value_offset, memory__sorted__value_column); + mask.emplace_back(mem_pool__addr_offset, mem_pool__addr_column); + mask.emplace_back(mem_pool__value_offset, mem_pool__value_column); + mask.emplace_back( + (memory_units_row_ratio) + (memory__sorted__addr_offset), memory__sorted__addr_column); + mask.emplace_back( + (memory_units_row_ratio) + (memory__sorted__value_offset), memory__sorted__value_column); + mask.emplace_back((memory_units_row_ratio) + (mem_pool__addr_offset), mem_pool__addr_column); + mask.emplace_back((memory_units_row_ratio) + (mem_pool__value_offset), mem_pool__value_column); + mask.emplace_back( + ((orig__public_memory_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset), + mem_pool__addr_column); + mask.emplace_back( + ((orig__public_memory_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset), + mem_pool__value_column); + mask.emplace_back(range_check16__sorted_offset, range_check16__sorted_column); + mask.emplace_back(range_check16_pool_offset, range_check16_pool_column); + mask.emplace_back( + (range_check_units_row_ratio) + (range_check16__sorted_offset), range_check16__sorted_column); + mask.emplace_back( + (range_check_units_row_ratio) + (range_check16_pool_offset), range_check16_pool_column); + mask.emplace_back(diluted_check__permuted_values_offset, diluted_check__permuted_values_column); + mask.emplace_back(diluted_pool_offset, diluted_pool_column); + mask.emplace_back( + (diluted_units_row_ratio) + (diluted_check__permuted_values_offset), + diluted_check__permuted_values_column); + mask.emplace_back((diluted_units_row_ratio) + (diluted_pool_offset), diluted_pool_column); + mask.emplace_back( + pedersen__hash0__ec_subset_sum__bit_unpacking__prod_ones192_offset, + pedersen__hash0__ec_subset_sum__bit_unpacking__prod_ones192_column); + mask.emplace_back( + pedersen__hash0__ec_subset_sum__selector_offset, + pedersen__hash0__ec_subset_sum__selector_column); + mask.emplace_back( + (SafeDiv(pedersen_builtin_row_ratio, 512)) + + (pedersen__hash0__ec_subset_sum__selector_offset), + pedersen__hash0__ec_subset_sum__selector_column); + mask.emplace_back( + (SafeDiv((3) * (pedersen_builtin_row_ratio), 8)) + + (pedersen__hash0__ec_subset_sum__selector_offset), + pedersen__hash0__ec_subset_sum__selector_column); + mask.emplace_back( + pedersen__hash0__ec_subset_sum__bit_unpacking__prod_ones196_offset, + pedersen__hash0__ec_subset_sum__bit_unpacking__prod_ones196_column); + mask.emplace_back( + (SafeDiv((193) * (pedersen_builtin_row_ratio), 512)) + + (pedersen__hash0__ec_subset_sum__selector_offset), + pedersen__hash0__ec_subset_sum__selector_column); + mask.emplace_back( + (SafeDiv((49) * (pedersen_builtin_row_ratio), 128)) + + (pedersen__hash0__ec_subset_sum__selector_offset), + pedersen__hash0__ec_subset_sum__selector_column); + mask.emplace_back( + (SafeDiv((251) * (pedersen_builtin_row_ratio), 512)) + + (pedersen__hash0__ec_subset_sum__selector_offset), + pedersen__hash0__ec_subset_sum__selector_column); + mask.emplace_back( + (SafeDiv((63) * (pedersen_builtin_row_ratio), 128)) + + (pedersen__hash0__ec_subset_sum__selector_offset), + pedersen__hash0__ec_subset_sum__selector_column); + mask.emplace_back( + (SafeDiv((197) * (pedersen_builtin_row_ratio), 512)) + + (pedersen__hash0__ec_subset_sum__selector_offset), + pedersen__hash0__ec_subset_sum__selector_column); + mask.emplace_back( + pedersen__hash0__ec_subset_sum__partial_sum__x_offset, + pedersen__hash0__ec_subset_sum__partial_sum__x_column); + mask.emplace_back( + pedersen__hash0__ec_subset_sum__partial_sum__y_offset, + pedersen__hash0__ec_subset_sum__partial_sum__y_column); + mask.emplace_back( + (SafeDiv(pedersen_builtin_row_ratio, 512)) + + (pedersen__hash0__ec_subset_sum__partial_sum__x_offset), + pedersen__hash0__ec_subset_sum__partial_sum__x_column); + mask.emplace_back( + (SafeDiv(pedersen_builtin_row_ratio, 512)) + + (pedersen__hash0__ec_subset_sum__partial_sum__y_offset), + pedersen__hash0__ec_subset_sum__partial_sum__y_column); + mask.emplace_back( + pedersen__hash0__ec_subset_sum__slope_offset, pedersen__hash0__ec_subset_sum__slope_column); + mask.emplace_back( + (SafeDiv((255) * (pedersen_builtin_row_ratio), 512)) + + (pedersen__hash0__ec_subset_sum__partial_sum__x_offset), + pedersen__hash0__ec_subset_sum__partial_sum__x_column); + mask.emplace_back( + (SafeDiv((255) * (pedersen_builtin_row_ratio), 512)) + + (pedersen__hash0__ec_subset_sum__partial_sum__y_offset), + pedersen__hash0__ec_subset_sum__partial_sum__y_column); + mask.emplace_back( + (SafeDiv(pedersen_builtin_row_ratio, 2)) + + (pedersen__hash0__ec_subset_sum__partial_sum__x_offset), + pedersen__hash0__ec_subset_sum__partial_sum__x_column); + mask.emplace_back( + (SafeDiv(pedersen_builtin_row_ratio, 2)) + + (pedersen__hash0__ec_subset_sum__partial_sum__y_offset), + pedersen__hash0__ec_subset_sum__partial_sum__y_column); + mask.emplace_back( + ((pedersen__input0_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset), + mem_pool__value_column); + mask.emplace_back( + ((pedersen_builtin_row_ratio) + ((pedersen__input0_suboffset) * (memory_units_row_ratio))) + + (mem_pool__addr_offset), + mem_pool__addr_column); + mask.emplace_back( + ((pedersen__output_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset), + mem_pool__addr_column); + mask.emplace_back( + ((pedersen__input0_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset), + mem_pool__addr_column); + mask.emplace_back( + (SafeDiv(pedersen_builtin_row_ratio, 2)) + (pedersen__hash0__ec_subset_sum__selector_offset), + pedersen__hash0__ec_subset_sum__selector_column); + mask.emplace_back( + ((pedersen__input1_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset), + mem_pool__value_column); mask.emplace_back( - cpu__decode__opcode_range_check__column_offset, - cpu__decode__opcode_range_check__column_column); + ((pedersen__input1_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset), + mem_pool__addr_column); mask.emplace_back( - (cpu_component_step) + (cpu__decode__opcode_range_check__column_offset), - cpu__decode__opcode_range_check__column_column); + ((pedersen__output_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset), + mem_pool__value_column); mask.emplace_back( - ((cpu__decode__mem_inst_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset), + ((SafeDiv(pedersen_builtin_row_ratio, 2)) + + (SafeDiv((255) * (pedersen_builtin_row_ratio), 512))) + + (pedersen__hash0__ec_subset_sum__partial_sum__x_offset), + pedersen__hash0__ec_subset_sum__partial_sum__x_column); + mask.emplace_back( + ((range_check_builtin__mem_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset), mem_pool__value_column); mask.emplace_back( - ((cpu__decode__off2_suboffset) * (range_check_units_row_ratio)) + (range_check16_pool_offset), + ((range_check_builtin__inner_range_check_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset), range_check16_pool_column); mask.emplace_back( - ((cpu__decode__off1_suboffset) * (range_check_units_row_ratio)) + (range_check16_pool_offset), + ((SafeDiv(range_check_builtin_row_ratio, 8)) + + ((range_check_builtin__inner_range_check_suboffset) * (range_check_units_row_ratio))) + + (range_check16_pool_offset), range_check16_pool_column); mask.emplace_back( - ((cpu__decode__off0_suboffset) * (range_check_units_row_ratio)) + (range_check16_pool_offset), + ((SafeDiv(range_check_builtin_row_ratio, 4)) + + ((range_check_builtin__inner_range_check_suboffset) * (range_check_units_row_ratio))) + + (range_check16_pool_offset), range_check16_pool_column); mask.emplace_back( - ((2) * (cpu_component_step)) + (cpu__decode__opcode_range_check__column_offset), - cpu__decode__opcode_range_check__column_column); + ((SafeDiv((3) * (range_check_builtin_row_ratio), 8)) + + ((range_check_builtin__inner_range_check_suboffset) * (range_check_units_row_ratio))) + + (range_check16_pool_offset), + range_check16_pool_column); mask.emplace_back( - (((2) * (cpu_component_step)) + (cpu_component_step)) + - (cpu__decode__opcode_range_check__column_offset), - cpu__decode__opcode_range_check__column_column); + ((SafeDiv(range_check_builtin_row_ratio, 2)) + + ((range_check_builtin__inner_range_check_suboffset) * (range_check_units_row_ratio))) + + (range_check16_pool_offset), + range_check16_pool_column); mask.emplace_back( - ((4) * (cpu_component_step)) + (cpu__decode__opcode_range_check__column_offset), - cpu__decode__opcode_range_check__column_column); + ((SafeDiv((5) * (range_check_builtin_row_ratio), 8)) + + ((range_check_builtin__inner_range_check_suboffset) * (range_check_units_row_ratio))) + + (range_check16_pool_offset), + range_check16_pool_column); mask.emplace_back( - (((4) * (cpu_component_step)) + (cpu_component_step)) + - (cpu__decode__opcode_range_check__column_offset), - cpu__decode__opcode_range_check__column_column); + ((SafeDiv((3) * (range_check_builtin_row_ratio), 4)) + + ((range_check_builtin__inner_range_check_suboffset) * (range_check_units_row_ratio))) + + (range_check16_pool_offset), + range_check16_pool_column); mask.emplace_back( - ((3) * (cpu_component_step)) + (cpu__decode__opcode_range_check__column_offset), - cpu__decode__opcode_range_check__column_column); + ((SafeDiv((7) * (range_check_builtin_row_ratio), 8)) + + ((range_check_builtin__inner_range_check_suboffset) * (range_check_units_row_ratio))) + + (range_check16_pool_offset), + range_check16_pool_column); mask.emplace_back( - (((3) * (cpu_component_step)) + (cpu_component_step)) + - (cpu__decode__opcode_range_check__column_offset), - cpu__decode__opcode_range_check__column_column); + ((range_check_builtin_row_ratio) + + ((range_check_builtin__mem_suboffset) * (memory_units_row_ratio))) + + (mem_pool__addr_offset), + mem_pool__addr_column); mask.emplace_back( - ((5) * (cpu_component_step)) + (cpu__decode__opcode_range_check__column_offset), - cpu__decode__opcode_range_check__column_column); + ((range_check_builtin__mem_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset), + mem_pool__addr_column); mask.emplace_back( - (((5) * (cpu_component_step)) + (cpu_component_step)) + - (cpu__decode__opcode_range_check__column_offset), - cpu__decode__opcode_range_check__column_column); + ecdsa__signature0__key_points__x_offset, ecdsa__signature0__key_points__x_column); mask.emplace_back( - ((6) * (cpu_component_step)) + (cpu__decode__opcode_range_check__column_offset), - cpu__decode__opcode_range_check__column_column); + ecdsa__signature0__key_points__y_offset, ecdsa__signature0__key_points__y_column); mask.emplace_back( - (((6) * (cpu_component_step)) + (cpu_component_step)) + - (cpu__decode__opcode_range_check__column_offset), - cpu__decode__opcode_range_check__column_column); + (SafeDiv(ecdsa_builtin_row_ratio, 512)) + (ecdsa__signature0__key_points__x_offset), + ecdsa__signature0__key_points__x_column); mask.emplace_back( - ((9) * (cpu_component_step)) + (cpu__decode__opcode_range_check__column_offset), - cpu__decode__opcode_range_check__column_column); + (SafeDiv(ecdsa_builtin_row_ratio, 512)) + (ecdsa__signature0__key_points__y_offset), + ecdsa__signature0__key_points__y_column); mask.emplace_back( - (((9) * (cpu_component_step)) + (cpu_component_step)) + - (cpu__decode__opcode_range_check__column_offset), - cpu__decode__opcode_range_check__column_column); + ecdsa__signature0__doubling_slope_offset, ecdsa__signature0__doubling_slope_column); mask.emplace_back( - ((7) * (cpu_component_step)) + (cpu__decode__opcode_range_check__column_offset), - cpu__decode__opcode_range_check__column_column); + ecdsa__signature0__exponentiate_generator__selector_offset, + ecdsa__signature0__exponentiate_generator__selector_column); mask.emplace_back( - (((7) * (cpu_component_step)) + (cpu_component_step)) + - (cpu__decode__opcode_range_check__column_offset), - cpu__decode__opcode_range_check__column_column); + (SafeDiv(ecdsa_builtin_row_ratio, 256)) + + (ecdsa__signature0__exponentiate_generator__selector_offset), + ecdsa__signature0__exponentiate_generator__selector_column); mask.emplace_back( - ((8) * (cpu_component_step)) + (cpu__decode__opcode_range_check__column_offset), - cpu__decode__opcode_range_check__column_column); + ecdsa__signature0__exponentiate_generator__partial_sum__x_offset, + ecdsa__signature0__exponentiate_generator__partial_sum__x_column); + mask.emplace_back( + ecdsa__signature0__exponentiate_generator__partial_sum__y_offset, + ecdsa__signature0__exponentiate_generator__partial_sum__y_column); + mask.emplace_back( + (SafeDiv(ecdsa_builtin_row_ratio, 256)) + + (ecdsa__signature0__exponentiate_generator__partial_sum__x_offset), + ecdsa__signature0__exponentiate_generator__partial_sum__x_column); + mask.emplace_back( + (SafeDiv(ecdsa_builtin_row_ratio, 256)) + + (ecdsa__signature0__exponentiate_generator__partial_sum__y_offset), + ecdsa__signature0__exponentiate_generator__partial_sum__y_column); + mask.emplace_back( + ecdsa__signature0__exponentiate_generator__slope_offset, + ecdsa__signature0__exponentiate_generator__slope_column); + mask.emplace_back( + ecdsa__signature0__exponentiate_generator__x_diff_inv_offset, + ecdsa__signature0__exponentiate_generator__x_diff_inv_column); + mask.emplace_back( + ecdsa__signature0__exponentiate_key__selector_offset, + ecdsa__signature0__exponentiate_key__selector_column); + mask.emplace_back( + (SafeDiv(ecdsa_builtin_row_ratio, 512)) + + (ecdsa__signature0__exponentiate_key__selector_offset), + ecdsa__signature0__exponentiate_key__selector_column); + mask.emplace_back( + ecdsa__signature0__exponentiate_key__partial_sum__x_offset, + ecdsa__signature0__exponentiate_key__partial_sum__x_column); + mask.emplace_back( + ecdsa__signature0__exponentiate_key__partial_sum__y_offset, + ecdsa__signature0__exponentiate_key__partial_sum__y_column); + mask.emplace_back( + (SafeDiv(ecdsa_builtin_row_ratio, 512)) + + (ecdsa__signature0__exponentiate_key__partial_sum__x_offset), + ecdsa__signature0__exponentiate_key__partial_sum__x_column); + mask.emplace_back( + (SafeDiv(ecdsa_builtin_row_ratio, 512)) + + (ecdsa__signature0__exponentiate_key__partial_sum__y_offset), + ecdsa__signature0__exponentiate_key__partial_sum__y_column); + mask.emplace_back( + ecdsa__signature0__exponentiate_key__slope_offset, + ecdsa__signature0__exponentiate_key__slope_column); + mask.emplace_back( + ecdsa__signature0__exponentiate_key__x_diff_inv_offset, + ecdsa__signature0__exponentiate_key__x_diff_inv_column); + mask.emplace_back( + (SafeDiv((255) * (ecdsa_builtin_row_ratio), 256)) + + (ecdsa__signature0__exponentiate_generator__partial_sum__x_offset), + ecdsa__signature0__exponentiate_generator__partial_sum__x_column); + mask.emplace_back( + (SafeDiv((255) * (ecdsa_builtin_row_ratio), 256)) + + (ecdsa__signature0__exponentiate_generator__partial_sum__y_offset), + ecdsa__signature0__exponentiate_generator__partial_sum__y_column); + mask.emplace_back( + (SafeDiv((255) * (ecdsa_builtin_row_ratio), 512)) + + (ecdsa__signature0__exponentiate_key__partial_sum__x_offset), + ecdsa__signature0__exponentiate_key__partial_sum__x_column); + mask.emplace_back( + (SafeDiv((255) * (ecdsa_builtin_row_ratio), 512)) + + (ecdsa__signature0__exponentiate_key__partial_sum__y_offset), + ecdsa__signature0__exponentiate_key__partial_sum__y_column); + mask.emplace_back( + (SafeDiv(ecdsa_builtin_row_ratio, 2)) + (ecdsa__signature0__key_points__x_offset), + ecdsa__signature0__key_points__x_column); + mask.emplace_back( + (SafeDiv(ecdsa_builtin_row_ratio, 2)) + (ecdsa__signature0__key_points__y_offset), + ecdsa__signature0__key_points__y_column); + mask.emplace_back( + ecdsa__signature0__add_results_slope_offset, ecdsa__signature0__add_results_slope_column); + mask.emplace_back( + ecdsa__signature0__add_results_inv_offset, ecdsa__signature0__add_results_inv_column); + mask.emplace_back( + ((SafeDiv(ecdsa_builtin_row_ratio, 2)) + (SafeDiv((255) * (ecdsa_builtin_row_ratio), 512))) + + (ecdsa__signature0__exponentiate_key__partial_sum__x_offset), + ecdsa__signature0__exponentiate_key__partial_sum__x_column); + mask.emplace_back( + ((SafeDiv(ecdsa_builtin_row_ratio, 2)) + (SafeDiv((255) * (ecdsa_builtin_row_ratio), 512))) + + (ecdsa__signature0__exponentiate_key__partial_sum__y_offset), + ecdsa__signature0__exponentiate_key__partial_sum__y_column); + mask.emplace_back( + ecdsa__signature0__extract_r_slope_offset, ecdsa__signature0__extract_r_slope_column); + mask.emplace_back( + ecdsa__signature0__extract_r_inv_offset, ecdsa__signature0__extract_r_inv_column); + mask.emplace_back(ecdsa__signature0__z_inv_offset, ecdsa__signature0__z_inv_column); + mask.emplace_back(ecdsa__signature0__r_w_inv_offset, ecdsa__signature0__r_w_inv_column); + mask.emplace_back(ecdsa__signature0__q_x_squared_offset, ecdsa__signature0__q_x_squared_column); + mask.emplace_back( + ((ecdsa__pubkey_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset), + mem_pool__addr_column); + mask.emplace_back( + ((ecdsa__message_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset), + mem_pool__addr_column); + mask.emplace_back( + ((ecdsa_builtin_row_ratio) + ((ecdsa__pubkey_suboffset) * (memory_units_row_ratio))) + + (mem_pool__addr_offset), + mem_pool__addr_column); + mask.emplace_back( + ((ecdsa__message_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset), + mem_pool__value_column); + mask.emplace_back( + ((ecdsa__pubkey_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset), + mem_pool__value_column); + mask.emplace_back( + ((bitwise__var_pool_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset), + mem_pool__addr_column); + mask.emplace_back( + ((SafeDiv(bitwise__row_ratio, 4)) + + ((bitwise__var_pool_suboffset) * (memory_units_row_ratio))) + + (mem_pool__addr_offset), + mem_pool__addr_column); + mask.emplace_back( + ((bitwise__x_or_y_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset), + mem_pool__addr_column); + mask.emplace_back( + ((SafeDiv((3) * (bitwise__row_ratio), 4)) + + ((bitwise__var_pool_suboffset) * (memory_units_row_ratio))) + + (mem_pool__addr_offset), + mem_pool__addr_column); + mask.emplace_back( + ((bitwise__row_ratio) + ((bitwise__var_pool_suboffset) * (memory_units_row_ratio))) + + (mem_pool__addr_offset), + mem_pool__addr_column); + mask.emplace_back( + ((bitwise__var_pool_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset), + mem_pool__value_column); + mask.emplace_back( + ((bitwise__diluted_var_pool_suboffset) * (diluted_units_row_ratio)) + (diluted_pool_offset), + diluted_pool_column); + mask.emplace_back( + ((SafeDiv(bitwise__row_ratio, 64)) + + ((bitwise__diluted_var_pool_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); + mask.emplace_back( + ((SafeDiv(bitwise__row_ratio, 32)) + + ((bitwise__diluted_var_pool_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); + mask.emplace_back( + ((SafeDiv((3) * (bitwise__row_ratio), 64)) + + ((bitwise__diluted_var_pool_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); + mask.emplace_back( + ((SafeDiv(bitwise__row_ratio, 16)) + + ((bitwise__diluted_var_pool_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); + mask.emplace_back( + ((SafeDiv((5) * (bitwise__row_ratio), 64)) + + ((bitwise__diluted_var_pool_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - (((8) * (cpu_component_step)) + (cpu_component_step)) + - (cpu__decode__opcode_range_check__column_offset), - cpu__decode__opcode_range_check__column_column); + ((SafeDiv((3) * (bitwise__row_ratio), 32)) + + ((bitwise__diluted_var_pool_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - ((12) * (cpu_component_step)) + (cpu__decode__opcode_range_check__column_offset), - cpu__decode__opcode_range_check__column_column); + ((SafeDiv((7) * (bitwise__row_ratio), 64)) + + ((bitwise__diluted_var_pool_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - (((12) * (cpu_component_step)) + (cpu_component_step)) + - (cpu__decode__opcode_range_check__column_offset), - cpu__decode__opcode_range_check__column_column); + ((SafeDiv(bitwise__row_ratio, 8)) + + ((bitwise__diluted_var_pool_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - ((13) * (cpu_component_step)) + (cpu__decode__opcode_range_check__column_offset), - cpu__decode__opcode_range_check__column_column); + ((SafeDiv((9) * (bitwise__row_ratio), 64)) + + ((bitwise__diluted_var_pool_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - (((13) * (cpu_component_step)) + (cpu_component_step)) + - (cpu__decode__opcode_range_check__column_offset), - cpu__decode__opcode_range_check__column_column); + ((SafeDiv((5) * (bitwise__row_ratio), 32)) + + ((bitwise__diluted_var_pool_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - ((cpu__operands__mem_dst_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset), - mem_pool__addr_column); - mask.emplace_back(cpu__registers__fp_offset, cpu__registers__fp_column); - mask.emplace_back(cpu__registers__ap_offset, cpu__registers__ap_column); + ((SafeDiv((11) * (bitwise__row_ratio), 64)) + + ((bitwise__diluted_var_pool_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - ((cpu__operands__mem_op0_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset), - mem_pool__addr_column); + ((SafeDiv((3) * (bitwise__row_ratio), 16)) + + ((bitwise__diluted_var_pool_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - ((cpu_component_step) + (cpu_component_step)) + - (cpu__decode__opcode_range_check__column_offset), - cpu__decode__opcode_range_check__column_column); + ((SafeDiv((13) * (bitwise__row_ratio), 64)) + + ((bitwise__diluted_var_pool_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - ((cpu__operands__mem_op1_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset), - mem_pool__addr_column); + ((SafeDiv((7) * (bitwise__row_ratio), 32)) + + ((bitwise__diluted_var_pool_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - ((cpu__decode__mem_inst_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset), - mem_pool__addr_column); + ((SafeDiv((15) * (bitwise__row_ratio), 64)) + + ((bitwise__diluted_var_pool_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - ((cpu__operands__mem_op0_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset), + ((bitwise__x_or_y_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset), mem_pool__value_column); - mask.emplace_back(cpu__operands__ops_mul_offset, cpu__operands__ops_mul_column); mask.emplace_back( - ((cpu__operands__mem_op1_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset), + ((SafeDiv(bitwise__row_ratio, 2)) + + ((bitwise__var_pool_suboffset) * (memory_units_row_ratio))) + + (mem_pool__value_offset), mem_pool__value_column); - mask.emplace_back(cpu__operands__res_offset, cpu__operands__res_column); - mask.emplace_back( - cpu__update_registers__update_pc__tmp0_offset, cpu__update_registers__update_pc__tmp0_column); mask.emplace_back( - ((cpu__operands__mem_dst_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset), + ((SafeDiv((3) * (bitwise__row_ratio), 4)) + + ((bitwise__var_pool_suboffset) * (memory_units_row_ratio))) + + (mem_pool__value_offset), mem_pool__value_column); mask.emplace_back( - cpu__update_registers__update_pc__tmp1_offset, cpu__update_registers__update_pc__tmp1_column); - mask.emplace_back( - (((16) * (cpu_component_step)) + - ((cpu__decode__mem_inst_suboffset) * (memory_units_row_ratio))) + - (mem_pool__addr_offset), - mem_pool__addr_column); + ((SafeDiv(bitwise__row_ratio, 2)) + + ((bitwise__diluted_var_pool_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - ((16) * (cpu_component_step)) + (cpu__registers__ap_offset), cpu__registers__ap_column); + ((SafeDiv(bitwise__row_ratio, 4)) + + ((bitwise__diluted_var_pool_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - ((10) * (cpu_component_step)) + (cpu__decode__opcode_range_check__column_offset), - cpu__decode__opcode_range_check__column_column); + ((SafeDiv((3) * (bitwise__row_ratio), 4)) + + ((bitwise__diluted_var_pool_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - (((10) * (cpu_component_step)) + (cpu_component_step)) + - (cpu__decode__opcode_range_check__column_offset), - cpu__decode__opcode_range_check__column_column); + ((bitwise__trim_unpacking192_suboffset) * (diluted_units_row_ratio)) + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - ((11) * (cpu_component_step)) + (cpu__decode__opcode_range_check__column_offset), - cpu__decode__opcode_range_check__column_column); + (((SafeDiv((3) * (bitwise__row_ratio), 16)) + (SafeDiv(bitwise__row_ratio, 2))) + + ((bitwise__diluted_var_pool_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - (((11) * (cpu_component_step)) + (cpu_component_step)) + - (cpu__decode__opcode_range_check__column_offset), - cpu__decode__opcode_range_check__column_column); + (((SafeDiv((3) * (bitwise__row_ratio), 16)) + (SafeDiv((3) * (bitwise__row_ratio), 4))) + + ((bitwise__diluted_var_pool_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - ((16) * (cpu_component_step)) + (cpu__registers__fp_offset), cpu__registers__fp_column); + ((bitwise__trim_unpacking193_suboffset) * (diluted_units_row_ratio)) + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - ((14) * (cpu_component_step)) + (cpu__decode__opcode_range_check__column_offset), - cpu__decode__opcode_range_check__column_column); + (((SafeDiv((13) * (bitwise__row_ratio), 64)) + (SafeDiv(bitwise__row_ratio, 2))) + + ((bitwise__diluted_var_pool_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - (((14) * (cpu_component_step)) + (cpu_component_step)) + - (cpu__decode__opcode_range_check__column_offset), - cpu__decode__opcode_range_check__column_column); - mask.emplace_back(memory__sorted__addr_offset, memory__sorted__addr_column); - mask.emplace_back(memory__sorted__value_offset, memory__sorted__value_column); - mask.emplace_back(mem_pool__addr_offset, mem_pool__addr_column); - mask.emplace_back(mem_pool__value_offset, mem_pool__value_column); + (((SafeDiv((13) * (bitwise__row_ratio), 64)) + (SafeDiv((3) * (bitwise__row_ratio), 4))) + + ((bitwise__diluted_var_pool_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - (memory_units_row_ratio) + (memory__sorted__addr_offset), memory__sorted__addr_column); + ((bitwise__trim_unpacking194_suboffset) * (diluted_units_row_ratio)) + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - (memory_units_row_ratio) + (memory__sorted__value_offset), memory__sorted__value_column); - mask.emplace_back((memory_units_row_ratio) + (mem_pool__addr_offset), mem_pool__addr_column); - mask.emplace_back((memory_units_row_ratio) + (mem_pool__value_offset), mem_pool__value_column); + (((SafeDiv((7) * (bitwise__row_ratio), 32)) + (SafeDiv(bitwise__row_ratio, 2))) + + ((bitwise__diluted_var_pool_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - ((orig__public_memory_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset), - mem_pool__addr_column); + (((SafeDiv((7) * (bitwise__row_ratio), 32)) + (SafeDiv((3) * (bitwise__row_ratio), 4))) + + ((bitwise__diluted_var_pool_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - ((orig__public_memory_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset), - mem_pool__value_column); - mask.emplace_back(range_check16__sorted_offset, range_check16__sorted_column); - mask.emplace_back(range_check16_pool_offset, range_check16_pool_column); + ((bitwise__trim_unpacking195_suboffset) * (diluted_units_row_ratio)) + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - (range_check_units_row_ratio) + (range_check16__sorted_offset), range_check16__sorted_column); + (((SafeDiv((15) * (bitwise__row_ratio), 64)) + (SafeDiv(bitwise__row_ratio, 2))) + + ((bitwise__diluted_var_pool_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - (range_check_units_row_ratio) + (range_check16_pool_offset), range_check16_pool_column); - mask.emplace_back(diluted_check__permuted_values_offset, diluted_check__permuted_values_column); - mask.emplace_back(diluted_pool_offset, diluted_pool_column); + (((SafeDiv((15) * (bitwise__row_ratio), 64)) + (SafeDiv((3) * (bitwise__row_ratio), 4))) + + ((bitwise__diluted_var_pool_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - (diluted_units_row_ratio) + (diluted_check__permuted_values_offset), - diluted_check__permuted_values_column); - mask.emplace_back((diluted_units_row_ratio) + (diluted_pool_offset), diluted_pool_column); + ((ec_op__p_x_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset), + mem_pool__addr_column); mask.emplace_back( - pedersen__hash0__ec_subset_sum__bit_unpacking__prod_ones192_offset, - pedersen__hash0__ec_subset_sum__bit_unpacking__prod_ones192_column); + ((ec_op_builtin_row_ratio) + ((ec_op__p_x_suboffset) * (memory_units_row_ratio))) + + (mem_pool__addr_offset), + mem_pool__addr_column); mask.emplace_back( - pedersen__hash0__ec_subset_sum__selector_offset, - pedersen__hash0__ec_subset_sum__selector_column); + ((ec_op__p_y_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset), + mem_pool__addr_column); mask.emplace_back( - (SafeDiv(pedersen_builtin_row_ratio, 512)) + - (pedersen__hash0__ec_subset_sum__selector_offset), - pedersen__hash0__ec_subset_sum__selector_column); + ((ec_op__q_x_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset), + mem_pool__addr_column); mask.emplace_back( - (SafeDiv((3) * (pedersen_builtin_row_ratio), 8)) + - (pedersen__hash0__ec_subset_sum__selector_offset), - pedersen__hash0__ec_subset_sum__selector_column); + ((ec_op__q_y_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset), + mem_pool__addr_column); mask.emplace_back( - pedersen__hash0__ec_subset_sum__bit_unpacking__prod_ones196_offset, - pedersen__hash0__ec_subset_sum__bit_unpacking__prod_ones196_column); + ((ec_op__m_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset), + mem_pool__addr_column); mask.emplace_back( - (SafeDiv((193) * (pedersen_builtin_row_ratio), 512)) + - (pedersen__hash0__ec_subset_sum__selector_offset), - pedersen__hash0__ec_subset_sum__selector_column); + ((ec_op__r_x_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset), + mem_pool__addr_column); mask.emplace_back( - (SafeDiv((49) * (pedersen_builtin_row_ratio), 128)) + - (pedersen__hash0__ec_subset_sum__selector_offset), - pedersen__hash0__ec_subset_sum__selector_column); + ((ec_op__r_y_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset), + mem_pool__addr_column); + mask.emplace_back(ec_op__doubling_slope_offset, ec_op__doubling_slope_column); + mask.emplace_back(ec_op__doubled_points__x_offset, ec_op__doubled_points__x_column); + mask.emplace_back(ec_op__doubled_points__y_offset, ec_op__doubled_points__y_column); mask.emplace_back( - (SafeDiv((251) * (pedersen_builtin_row_ratio), 512)) + - (pedersen__hash0__ec_subset_sum__selector_offset), - pedersen__hash0__ec_subset_sum__selector_column); + (SafeDiv(ec_op_builtin_row_ratio, 256)) + (ec_op__doubled_points__x_offset), + ec_op__doubled_points__x_column); mask.emplace_back( - (SafeDiv((63) * (pedersen_builtin_row_ratio), 128)) + - (pedersen__hash0__ec_subset_sum__selector_offset), - pedersen__hash0__ec_subset_sum__selector_column); + (SafeDiv(ec_op_builtin_row_ratio, 256)) + (ec_op__doubled_points__y_offset), + ec_op__doubled_points__y_column); mask.emplace_back( - (SafeDiv((197) * (pedersen_builtin_row_ratio), 512)) + - (pedersen__hash0__ec_subset_sum__selector_offset), - pedersen__hash0__ec_subset_sum__selector_column); + ((ec_op__q_x_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset), + mem_pool__value_column); mask.emplace_back( - pedersen__hash0__ec_subset_sum__partial_sum__x_offset, - pedersen__hash0__ec_subset_sum__partial_sum__x_column); + ((ec_op__q_y_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset), + mem_pool__value_column); mask.emplace_back( - pedersen__hash0__ec_subset_sum__partial_sum__y_offset, - pedersen__hash0__ec_subset_sum__partial_sum__y_column); + ec_op__ec_subset_sum__bit_unpacking__prod_ones192_offset, + ec_op__ec_subset_sum__bit_unpacking__prod_ones192_column); + mask.emplace_back(ec_op__ec_subset_sum__selector_offset, ec_op__ec_subset_sum__selector_column); mask.emplace_back( - (SafeDiv(pedersen_builtin_row_ratio, 512)) + - (pedersen__hash0__ec_subset_sum__partial_sum__x_offset), - pedersen__hash0__ec_subset_sum__partial_sum__x_column); + (SafeDiv(ec_op_builtin_row_ratio, 256)) + (ec_op__ec_subset_sum__selector_offset), + ec_op__ec_subset_sum__selector_column); mask.emplace_back( - (SafeDiv(pedersen_builtin_row_ratio, 512)) + - (pedersen__hash0__ec_subset_sum__partial_sum__y_offset), - pedersen__hash0__ec_subset_sum__partial_sum__y_column); + (SafeDiv((3) * (ec_op_builtin_row_ratio), 4)) + (ec_op__ec_subset_sum__selector_offset), + ec_op__ec_subset_sum__selector_column); mask.emplace_back( - pedersen__hash0__ec_subset_sum__slope_offset, pedersen__hash0__ec_subset_sum__slope_column); + ec_op__ec_subset_sum__bit_unpacking__prod_ones196_offset, + ec_op__ec_subset_sum__bit_unpacking__prod_ones196_column); mask.emplace_back( - (SafeDiv((255) * (pedersen_builtin_row_ratio), 512)) + - (pedersen__hash0__ec_subset_sum__partial_sum__x_offset), - pedersen__hash0__ec_subset_sum__partial_sum__x_column); + (SafeDiv((193) * (ec_op_builtin_row_ratio), 256)) + (ec_op__ec_subset_sum__selector_offset), + ec_op__ec_subset_sum__selector_column); mask.emplace_back( - (SafeDiv((255) * (pedersen_builtin_row_ratio), 512)) + - (pedersen__hash0__ec_subset_sum__partial_sum__y_offset), - pedersen__hash0__ec_subset_sum__partial_sum__y_column); + (SafeDiv((49) * (ec_op_builtin_row_ratio), 64)) + (ec_op__ec_subset_sum__selector_offset), + ec_op__ec_subset_sum__selector_column); mask.emplace_back( - (SafeDiv(pedersen_builtin_row_ratio, 2)) + - (pedersen__hash0__ec_subset_sum__partial_sum__x_offset), - pedersen__hash0__ec_subset_sum__partial_sum__x_column); + (SafeDiv((251) * (ec_op_builtin_row_ratio), 256)) + (ec_op__ec_subset_sum__selector_offset), + ec_op__ec_subset_sum__selector_column); mask.emplace_back( - (SafeDiv(pedersen_builtin_row_ratio, 2)) + - (pedersen__hash0__ec_subset_sum__partial_sum__y_offset), - pedersen__hash0__ec_subset_sum__partial_sum__y_column); + (SafeDiv((63) * (ec_op_builtin_row_ratio), 64)) + (ec_op__ec_subset_sum__selector_offset), + ec_op__ec_subset_sum__selector_column); mask.emplace_back( - ((pedersen__input0_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset), - mem_pool__value_column); + (SafeDiv((197) * (ec_op_builtin_row_ratio), 256)) + (ec_op__ec_subset_sum__selector_offset), + ec_op__ec_subset_sum__selector_column); mask.emplace_back( - ((pedersen_builtin_row_ratio) + ((pedersen__input0_suboffset) * (memory_units_row_ratio))) + - (mem_pool__addr_offset), - mem_pool__addr_column); + ec_op__ec_subset_sum__partial_sum__x_offset, ec_op__ec_subset_sum__partial_sum__x_column); mask.emplace_back( - ((pedersen__output_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset), - mem_pool__addr_column); + ec_op__ec_subset_sum__partial_sum__y_offset, ec_op__ec_subset_sum__partial_sum__y_column); mask.emplace_back( - ((pedersen__input0_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset), - mem_pool__addr_column); + (SafeDiv(ec_op_builtin_row_ratio, 256)) + (ec_op__ec_subset_sum__partial_sum__x_offset), + ec_op__ec_subset_sum__partial_sum__x_column); mask.emplace_back( - (SafeDiv(pedersen_builtin_row_ratio, 2)) + (pedersen__hash0__ec_subset_sum__selector_offset), - pedersen__hash0__ec_subset_sum__selector_column); + (SafeDiv(ec_op_builtin_row_ratio, 256)) + (ec_op__ec_subset_sum__partial_sum__y_offset), + ec_op__ec_subset_sum__partial_sum__y_column); + mask.emplace_back(ec_op__ec_subset_sum__slope_offset, ec_op__ec_subset_sum__slope_column); mask.emplace_back( - ((pedersen__input1_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset), - mem_pool__value_column); + ec_op__ec_subset_sum__x_diff_inv_offset, ec_op__ec_subset_sum__x_diff_inv_column); mask.emplace_back( - ((pedersen__input1_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset), - mem_pool__addr_column); + ((ec_op__m_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset), + mem_pool__value_column); mask.emplace_back( - ((pedersen__output_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset), + ((ec_op__p_x_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset), mem_pool__value_column); mask.emplace_back( - ((SafeDiv(pedersen_builtin_row_ratio, 2)) + - (SafeDiv((255) * (pedersen_builtin_row_ratio), 512))) + - (pedersen__hash0__ec_subset_sum__partial_sum__x_offset), - pedersen__hash0__ec_subset_sum__partial_sum__x_column); + ((ec_op__p_y_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset), + mem_pool__value_column); mask.emplace_back( - ((range_check_builtin__mem_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset), + ((ec_op__r_x_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset), mem_pool__value_column); mask.emplace_back( - ((range_check_builtin__inner_range_check_suboffset) * (range_check_units_row_ratio)) + - (range_check16_pool_offset), - range_check16_pool_column); + (SafeDiv((255) * (ec_op_builtin_row_ratio), 256)) + + (ec_op__ec_subset_sum__partial_sum__x_offset), + ec_op__ec_subset_sum__partial_sum__x_column); mask.emplace_back( - ((SafeDiv(range_check_builtin_row_ratio, 8)) + - ((range_check_builtin__inner_range_check_suboffset) * (range_check_units_row_ratio))) + - (range_check16_pool_offset), - range_check16_pool_column); + ((ec_op__r_y_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset), + mem_pool__value_column); mask.emplace_back( - ((SafeDiv(range_check_builtin_row_ratio, 4)) + - ((range_check_builtin__inner_range_check_suboffset) * (range_check_units_row_ratio))) + - (range_check16_pool_offset), - range_check16_pool_column); + (SafeDiv((255) * (ec_op_builtin_row_ratio), 256)) + + (ec_op__ec_subset_sum__partial_sum__y_offset), + ec_op__ec_subset_sum__partial_sum__y_column); mask.emplace_back( - ((SafeDiv((3) * (range_check_builtin_row_ratio), 8)) + - ((range_check_builtin__inner_range_check_suboffset) * (range_check_units_row_ratio))) + - (range_check16_pool_offset), - range_check16_pool_column); + ((keccak__input_output_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset), + mem_pool__addr_column); mask.emplace_back( - ((SafeDiv(range_check_builtin_row_ratio, 2)) + - ((range_check_builtin__inner_range_check_suboffset) * (range_check_units_row_ratio))) + - (range_check16_pool_offset), - range_check16_pool_column); + ((SafeDiv(keccak__row_ratio, 16)) + + ((keccak__input_output_suboffset) * (memory_units_row_ratio))) + + (mem_pool__addr_offset), + mem_pool__addr_column); mask.emplace_back( - ((SafeDiv((5) * (range_check_builtin_row_ratio), 8)) + - ((range_check_builtin__inner_range_check_suboffset) * (range_check_units_row_ratio))) + - (range_check16_pool_offset), - range_check16_pool_column); + keccak__keccak__parse_to_diluted__reshaped_intermediate_offset, + keccak__keccak__parse_to_diluted__reshaped_intermediate_column); mask.emplace_back( - ((SafeDiv((3) * (range_check_builtin_row_ratio), 4)) + - ((range_check_builtin__inner_range_check_suboffset) * (range_check_units_row_ratio))) + - (range_check16_pool_offset), - range_check16_pool_column); + ((keccak__input_output_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset), + mem_pool__value_column); mask.emplace_back( - ((SafeDiv((7) * (range_check_builtin_row_ratio), 8)) + - ((range_check_builtin__inner_range_check_suboffset) * (range_check_units_row_ratio))) + - (range_check16_pool_offset), - range_check16_pool_column); + (SafeDiv(keccak__row_ratio, 32768)) + + (keccak__keccak__parse_to_diluted__reshaped_intermediate_offset), + keccak__keccak__parse_to_diluted__reshaped_intermediate_column); mask.emplace_back( - ((range_check_builtin_row_ratio) + - ((range_check_builtin__mem_suboffset) * (memory_units_row_ratio))) + - (mem_pool__addr_offset), - mem_pool__addr_column); + ((SafeDiv(keccak__row_ratio, 16)) + + ((keccak__input_output_suboffset) * (memory_units_row_ratio))) + + (mem_pool__value_offset), + mem_pool__value_column); mask.emplace_back( - ((range_check_builtin__mem_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset), - mem_pool__addr_column); + (SafeDiv(keccak__row_ratio, 16384)) + + (keccak__keccak__parse_to_diluted__reshaped_intermediate_offset), + keccak__keccak__parse_to_diluted__reshaped_intermediate_column); mask.emplace_back( - ecdsa__signature0__key_points__x_offset, ecdsa__signature0__key_points__x_column); + ((SafeDiv(keccak__row_ratio, 8)) + + ((keccak__input_output_suboffset) * (memory_units_row_ratio))) + + (mem_pool__value_offset), + mem_pool__value_column); mask.emplace_back( - ecdsa__signature0__key_points__y_offset, ecdsa__signature0__key_points__y_column); + (SafeDiv((3) * (keccak__row_ratio), 32768)) + + (keccak__keccak__parse_to_diluted__reshaped_intermediate_offset), + keccak__keccak__parse_to_diluted__reshaped_intermediate_column); mask.emplace_back( - (SafeDiv(ecdsa_builtin_row_ratio, 512)) + (ecdsa__signature0__key_points__x_offset), - ecdsa__signature0__key_points__x_column); + ((SafeDiv((3) * (keccak__row_ratio), 16)) + + ((keccak__input_output_suboffset) * (memory_units_row_ratio))) + + (mem_pool__value_offset), + mem_pool__value_column); mask.emplace_back( - (SafeDiv(ecdsa_builtin_row_ratio, 512)) + (ecdsa__signature0__key_points__y_offset), - ecdsa__signature0__key_points__y_column); + (SafeDiv(keccak__row_ratio, 8192)) + + (keccak__keccak__parse_to_diluted__reshaped_intermediate_offset), + keccak__keccak__parse_to_diluted__reshaped_intermediate_column); mask.emplace_back( - ecdsa__signature0__doubling_slope_offset, ecdsa__signature0__doubling_slope_column); + ((SafeDiv(keccak__row_ratio, 4)) + + ((keccak__input_output_suboffset) * (memory_units_row_ratio))) + + (mem_pool__value_offset), + mem_pool__value_column); mask.emplace_back( - ecdsa__signature0__exponentiate_generator__selector_offset, - ecdsa__signature0__exponentiate_generator__selector_column); + (SafeDiv((5) * (keccak__row_ratio), 32768)) + + (keccak__keccak__parse_to_diluted__reshaped_intermediate_offset), + keccak__keccak__parse_to_diluted__reshaped_intermediate_column); mask.emplace_back( - (SafeDiv(ecdsa_builtin_row_ratio, 256)) + - (ecdsa__signature0__exponentiate_generator__selector_offset), - ecdsa__signature0__exponentiate_generator__selector_column); + ((SafeDiv((5) * (keccak__row_ratio), 16)) + + ((keccak__input_output_suboffset) * (memory_units_row_ratio))) + + (mem_pool__value_offset), + mem_pool__value_column); mask.emplace_back( - ecdsa__signature0__exponentiate_generator__partial_sum__x_offset, - ecdsa__signature0__exponentiate_generator__partial_sum__x_column); + (SafeDiv((3) * (keccak__row_ratio), 16384)) + + (keccak__keccak__parse_to_diluted__reshaped_intermediate_offset), + keccak__keccak__parse_to_diluted__reshaped_intermediate_column); mask.emplace_back( - ecdsa__signature0__exponentiate_generator__partial_sum__y_offset, - ecdsa__signature0__exponentiate_generator__partial_sum__y_column); + ((SafeDiv((3) * (keccak__row_ratio), 8)) + + ((keccak__input_output_suboffset) * (memory_units_row_ratio))) + + (mem_pool__value_offset), + mem_pool__value_column); mask.emplace_back( - (SafeDiv(ecdsa_builtin_row_ratio, 256)) + - (ecdsa__signature0__exponentiate_generator__partial_sum__x_offset), - ecdsa__signature0__exponentiate_generator__partial_sum__x_column); + (SafeDiv((7) * (keccak__row_ratio), 32768)) + + (keccak__keccak__parse_to_diluted__reshaped_intermediate_offset), + keccak__keccak__parse_to_diluted__reshaped_intermediate_column); mask.emplace_back( - (SafeDiv(ecdsa_builtin_row_ratio, 256)) + - (ecdsa__signature0__exponentiate_generator__partial_sum__y_offset), - ecdsa__signature0__exponentiate_generator__partial_sum__y_column); + ((SafeDiv((7) * (keccak__row_ratio), 16)) + + ((keccak__input_output_suboffset) * (memory_units_row_ratio))) + + (mem_pool__value_offset), + mem_pool__value_column); mask.emplace_back( - ecdsa__signature0__exponentiate_generator__slope_offset, - ecdsa__signature0__exponentiate_generator__slope_column); + (SafeDiv(keccak__row_ratio, 4096)) + + (keccak__keccak__parse_to_diluted__reshaped_intermediate_offset), + keccak__keccak__parse_to_diluted__reshaped_intermediate_column); mask.emplace_back( - ecdsa__signature0__exponentiate_generator__x_diff_inv_offset, - ecdsa__signature0__exponentiate_generator__x_diff_inv_column); + ((SafeDiv(keccak__row_ratio, 2)) + + ((keccak__input_output_suboffset) * (memory_units_row_ratio))) + + (mem_pool__value_offset), + mem_pool__value_column); mask.emplace_back( - ecdsa__signature0__exponentiate_key__selector_offset, - ecdsa__signature0__exponentiate_key__selector_column); + ((SafeDiv(keccak__row_ratio, 4096)) + (SafeDiv(keccak__row_ratio, 32768))) + + (keccak__keccak__parse_to_diluted__reshaped_intermediate_offset), + keccak__keccak__parse_to_diluted__reshaped_intermediate_column); mask.emplace_back( - (SafeDiv(ecdsa_builtin_row_ratio, 512)) + - (ecdsa__signature0__exponentiate_key__selector_offset), - ecdsa__signature0__exponentiate_key__selector_column); + (((SafeDiv(keccak__row_ratio, 2)) + (SafeDiv(keccak__row_ratio, 16))) + + ((keccak__input_output_suboffset) * (memory_units_row_ratio))) + + (mem_pool__value_offset), + mem_pool__value_column); mask.emplace_back( - ecdsa__signature0__exponentiate_key__partial_sum__x_offset, - ecdsa__signature0__exponentiate_key__partial_sum__x_column); + ((SafeDiv(keccak__row_ratio, 4096)) + (SafeDiv(keccak__row_ratio, 16384))) + + (keccak__keccak__parse_to_diluted__reshaped_intermediate_offset), + keccak__keccak__parse_to_diluted__reshaped_intermediate_column); mask.emplace_back( - ecdsa__signature0__exponentiate_key__partial_sum__y_offset, - ecdsa__signature0__exponentiate_key__partial_sum__y_column); + (((SafeDiv(keccak__row_ratio, 2)) + (SafeDiv(keccak__row_ratio, 8))) + + ((keccak__input_output_suboffset) * (memory_units_row_ratio))) + + (mem_pool__value_offset), + mem_pool__value_column); mask.emplace_back( - (SafeDiv(ecdsa_builtin_row_ratio, 512)) + - (ecdsa__signature0__exponentiate_key__partial_sum__x_offset), - ecdsa__signature0__exponentiate_key__partial_sum__x_column); + ((SafeDiv(keccak__row_ratio, 4096)) + (SafeDiv((3) * (keccak__row_ratio), 32768))) + + (keccak__keccak__parse_to_diluted__reshaped_intermediate_offset), + keccak__keccak__parse_to_diluted__reshaped_intermediate_column); mask.emplace_back( - (SafeDiv(ecdsa_builtin_row_ratio, 512)) + - (ecdsa__signature0__exponentiate_key__partial_sum__y_offset), - ecdsa__signature0__exponentiate_key__partial_sum__y_column); + (((SafeDiv(keccak__row_ratio, 2)) + (SafeDiv((3) * (keccak__row_ratio), 16))) + + ((keccak__input_output_suboffset) * (memory_units_row_ratio))) + + (mem_pool__value_offset), + mem_pool__value_column); mask.emplace_back( - ecdsa__signature0__exponentiate_key__slope_offset, - ecdsa__signature0__exponentiate_key__slope_column); + ((SafeDiv(keccak__row_ratio, 4096)) + (SafeDiv(keccak__row_ratio, 8192))) + + (keccak__keccak__parse_to_diluted__reshaped_intermediate_offset), + keccak__keccak__parse_to_diluted__reshaped_intermediate_column); mask.emplace_back( - ecdsa__signature0__exponentiate_key__x_diff_inv_offset, - ecdsa__signature0__exponentiate_key__x_diff_inv_column); + (((SafeDiv(keccak__row_ratio, 2)) + (SafeDiv(keccak__row_ratio, 4))) + + ((keccak__input_output_suboffset) * (memory_units_row_ratio))) + + (mem_pool__value_offset), + mem_pool__value_column); mask.emplace_back( - (SafeDiv((255) * (ecdsa_builtin_row_ratio), 256)) + - (ecdsa__signature0__exponentiate_generator__partial_sum__x_offset), - ecdsa__signature0__exponentiate_generator__partial_sum__x_column); + ((SafeDiv(keccak__row_ratio, 4096)) + (SafeDiv((5) * (keccak__row_ratio), 32768))) + + (keccak__keccak__parse_to_diluted__reshaped_intermediate_offset), + keccak__keccak__parse_to_diluted__reshaped_intermediate_column); mask.emplace_back( - (SafeDiv((255) * (ecdsa_builtin_row_ratio), 256)) + - (ecdsa__signature0__exponentiate_generator__partial_sum__y_offset), - ecdsa__signature0__exponentiate_generator__partial_sum__y_column); + (((SafeDiv(keccak__row_ratio, 2)) + (SafeDiv((5) * (keccak__row_ratio), 16))) + + ((keccak__input_output_suboffset) * (memory_units_row_ratio))) + + (mem_pool__value_offset), + mem_pool__value_column); mask.emplace_back( - (SafeDiv((255) * (ecdsa_builtin_row_ratio), 512)) + - (ecdsa__signature0__exponentiate_key__partial_sum__x_offset), - ecdsa__signature0__exponentiate_key__partial_sum__x_column); + ((SafeDiv(keccak__row_ratio, 4096)) + (SafeDiv((3) * (keccak__row_ratio), 16384))) + + (keccak__keccak__parse_to_diluted__reshaped_intermediate_offset), + keccak__keccak__parse_to_diluted__reshaped_intermediate_column); mask.emplace_back( - (SafeDiv((255) * (ecdsa_builtin_row_ratio), 512)) + - (ecdsa__signature0__exponentiate_key__partial_sum__y_offset), - ecdsa__signature0__exponentiate_key__partial_sum__y_column); + (((SafeDiv(keccak__row_ratio, 2)) + (SafeDiv((3) * (keccak__row_ratio), 8))) + + ((keccak__input_output_suboffset) * (memory_units_row_ratio))) + + (mem_pool__value_offset), + mem_pool__value_column); mask.emplace_back( - (SafeDiv(ecdsa_builtin_row_ratio, 2)) + (ecdsa__signature0__key_points__x_offset), - ecdsa__signature0__key_points__x_column); + ((SafeDiv(keccak__row_ratio, 4096)) + (SafeDiv((7) * (keccak__row_ratio), 32768))) + + (keccak__keccak__parse_to_diluted__reshaped_intermediate_offset), + keccak__keccak__parse_to_diluted__reshaped_intermediate_column); mask.emplace_back( - (SafeDiv(ecdsa_builtin_row_ratio, 2)) + (ecdsa__signature0__key_points__y_offset), - ecdsa__signature0__key_points__y_column); + (((SafeDiv(keccak__row_ratio, 2)) + (SafeDiv((7) * (keccak__row_ratio), 16))) + + ((keccak__input_output_suboffset) * (memory_units_row_ratio))) + + (mem_pool__value_offset), + mem_pool__value_column); mask.emplace_back( - ecdsa__signature0__add_results_slope_offset, ecdsa__signature0__add_results_slope_column); + keccak__keccak__parse_to_diluted__final_reshaped_input_offset, + keccak__keccak__parse_to_diluted__final_reshaped_input_column); mask.emplace_back( - ecdsa__signature0__add_results_inv_offset, ecdsa__signature0__add_results_inv_column); + (SafeDiv(keccak__row_ratio, 2048)) + + (keccak__keccak__parse_to_diluted__final_reshaped_input_offset), + keccak__keccak__parse_to_diluted__final_reshaped_input_column); mask.emplace_back( - ((SafeDiv(ecdsa_builtin_row_ratio, 2)) + (SafeDiv((255) * (ecdsa_builtin_row_ratio), 512))) + - (ecdsa__signature0__exponentiate_key__partial_sum__x_offset), - ecdsa__signature0__exponentiate_key__partial_sum__x_column); + (keccak__row_ratio) + (keccak__keccak__parse_to_diluted__reshaped_intermediate_offset), + keccak__keccak__parse_to_diluted__reshaped_intermediate_column); mask.emplace_back( - ((SafeDiv(ecdsa_builtin_row_ratio, 2)) + (SafeDiv((255) * (ecdsa_builtin_row_ratio), 512))) + - (ecdsa__signature0__exponentiate_key__partial_sum__y_offset), - ecdsa__signature0__exponentiate_key__partial_sum__y_column); + (SafeDiv(keccak__row_ratio, 1024)) + + (keccak__keccak__parse_to_diluted__final_reshaped_input_offset), + keccak__keccak__parse_to_diluted__final_reshaped_input_column); mask.emplace_back( - ecdsa__signature0__extract_r_slope_offset, ecdsa__signature0__extract_r_slope_column); + ((2) * (keccak__row_ratio)) + + (keccak__keccak__parse_to_diluted__reshaped_intermediate_offset), + keccak__keccak__parse_to_diluted__reshaped_intermediate_column); mask.emplace_back( - ecdsa__signature0__extract_r_inv_offset, ecdsa__signature0__extract_r_inv_column); - mask.emplace_back(ecdsa__signature0__z_inv_offset, ecdsa__signature0__z_inv_column); - mask.emplace_back(ecdsa__signature0__r_w_inv_offset, ecdsa__signature0__r_w_inv_column); - mask.emplace_back(ecdsa__signature0__q_x_squared_offset, ecdsa__signature0__q_x_squared_column); + (SafeDiv((3) * (keccak__row_ratio), 2048)) + + (keccak__keccak__parse_to_diluted__final_reshaped_input_offset), + keccak__keccak__parse_to_diluted__final_reshaped_input_column); mask.emplace_back( - ((ecdsa__pubkey_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset), - mem_pool__addr_column); + ((3) * (keccak__row_ratio)) + + (keccak__keccak__parse_to_diluted__reshaped_intermediate_offset), + keccak__keccak__parse_to_diluted__reshaped_intermediate_column); mask.emplace_back( - ((ecdsa__message_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset), - mem_pool__addr_column); + (SafeDiv(keccak__row_ratio, 512)) + + (keccak__keccak__parse_to_diluted__final_reshaped_input_offset), + keccak__keccak__parse_to_diluted__final_reshaped_input_column); mask.emplace_back( - ((ecdsa_builtin_row_ratio) + ((ecdsa__pubkey_suboffset) * (memory_units_row_ratio))) + - (mem_pool__addr_offset), - mem_pool__addr_column); + ((4) * (keccak__row_ratio)) + + (keccak__keccak__parse_to_diluted__reshaped_intermediate_offset), + keccak__keccak__parse_to_diluted__reshaped_intermediate_column); mask.emplace_back( - ((ecdsa__message_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset), - mem_pool__value_column); + (SafeDiv((5) * (keccak__row_ratio), 2048)) + + (keccak__keccak__parse_to_diluted__final_reshaped_input_offset), + keccak__keccak__parse_to_diluted__final_reshaped_input_column); mask.emplace_back( - ((ecdsa__pubkey_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset), - mem_pool__value_column); + ((5) * (keccak__row_ratio)) + + (keccak__keccak__parse_to_diluted__reshaped_intermediate_offset), + keccak__keccak__parse_to_diluted__reshaped_intermediate_column); mask.emplace_back( - ((bitwise__var_pool_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset), - mem_pool__addr_column); + (SafeDiv((3) * (keccak__row_ratio), 1024)) + + (keccak__keccak__parse_to_diluted__final_reshaped_input_offset), + keccak__keccak__parse_to_diluted__final_reshaped_input_column); mask.emplace_back( - ((SafeDiv(bitwise__row_ratio, 4)) + - ((bitwise__var_pool_suboffset) * (memory_units_row_ratio))) + - (mem_pool__addr_offset), - mem_pool__addr_column); + ((6) * (keccak__row_ratio)) + + (keccak__keccak__parse_to_diluted__reshaped_intermediate_offset), + keccak__keccak__parse_to_diluted__reshaped_intermediate_column); mask.emplace_back( - ((bitwise__x_or_y_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset), - mem_pool__addr_column); + (SafeDiv((7) * (keccak__row_ratio), 2048)) + + (keccak__keccak__parse_to_diluted__final_reshaped_input_offset), + keccak__keccak__parse_to_diluted__final_reshaped_input_column); mask.emplace_back( - ((SafeDiv((3) * (bitwise__row_ratio), 4)) + - ((bitwise__var_pool_suboffset) * (memory_units_row_ratio))) + - (mem_pool__addr_offset), - mem_pool__addr_column); + ((7) * (keccak__row_ratio)) + + (keccak__keccak__parse_to_diluted__reshaped_intermediate_offset), + keccak__keccak__parse_to_diluted__reshaped_intermediate_column); mask.emplace_back( - ((bitwise__row_ratio) + ((bitwise__var_pool_suboffset) * (memory_units_row_ratio))) + - (mem_pool__addr_offset), - mem_pool__addr_column); + (SafeDiv(keccak__row_ratio, 256)) + + (keccak__keccak__parse_to_diluted__final_reshaped_input_offset), + keccak__keccak__parse_to_diluted__final_reshaped_input_column); mask.emplace_back( - ((bitwise__var_pool_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset), - mem_pool__value_column); + ((8) * (keccak__row_ratio)) + + (keccak__keccak__parse_to_diluted__reshaped_intermediate_offset), + keccak__keccak__parse_to_diluted__reshaped_intermediate_column); mask.emplace_back( - ((bitwise__diluted_var_pool_suboffset) * (diluted_units_row_ratio)) + (diluted_pool_offset), - diluted_pool_column); + (SafeDiv((9) * (keccak__row_ratio), 2048)) + + (keccak__keccak__parse_to_diluted__final_reshaped_input_offset), + keccak__keccak__parse_to_diluted__final_reshaped_input_column); mask.emplace_back( - ((SafeDiv(bitwise__row_ratio, 64)) + - ((bitwise__diluted_var_pool_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((9) * (keccak__row_ratio)) + + (keccak__keccak__parse_to_diluted__reshaped_intermediate_offset), + keccak__keccak__parse_to_diluted__reshaped_intermediate_column); mask.emplace_back( - ((SafeDiv(bitwise__row_ratio, 32)) + - ((bitwise__diluted_var_pool_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + (SafeDiv((5) * (keccak__row_ratio), 1024)) + + (keccak__keccak__parse_to_diluted__final_reshaped_input_offset), + keccak__keccak__parse_to_diluted__final_reshaped_input_column); mask.emplace_back( - ((SafeDiv((3) * (bitwise__row_ratio), 64)) + - ((bitwise__diluted_var_pool_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((10) * (keccak__row_ratio)) + + (keccak__keccak__parse_to_diluted__reshaped_intermediate_offset), + keccak__keccak__parse_to_diluted__reshaped_intermediate_column); mask.emplace_back( - ((SafeDiv(bitwise__row_ratio, 16)) + - ((bitwise__diluted_var_pool_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + (SafeDiv((11) * (keccak__row_ratio), 2048)) + + (keccak__keccak__parse_to_diluted__final_reshaped_input_offset), + keccak__keccak__parse_to_diluted__final_reshaped_input_column); mask.emplace_back( - ((SafeDiv((5) * (bitwise__row_ratio), 64)) + - ((bitwise__diluted_var_pool_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((11) * (keccak__row_ratio)) + + (keccak__keccak__parse_to_diluted__reshaped_intermediate_offset), + keccak__keccak__parse_to_diluted__reshaped_intermediate_column); mask.emplace_back( - ((SafeDiv((3) * (bitwise__row_ratio), 32)) + - ((bitwise__diluted_var_pool_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + (SafeDiv((3) * (keccak__row_ratio), 512)) + + (keccak__keccak__parse_to_diluted__final_reshaped_input_offset), + keccak__keccak__parse_to_diluted__final_reshaped_input_column); mask.emplace_back( - ((SafeDiv((7) * (bitwise__row_ratio), 64)) + - ((bitwise__diluted_var_pool_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((12) * (keccak__row_ratio)) + + (keccak__keccak__parse_to_diluted__reshaped_intermediate_offset), + keccak__keccak__parse_to_diluted__reshaped_intermediate_column); mask.emplace_back( - ((SafeDiv(bitwise__row_ratio, 8)) + - ((bitwise__diluted_var_pool_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + (SafeDiv((13) * (keccak__row_ratio), 2048)) + + (keccak__keccak__parse_to_diluted__final_reshaped_input_offset), + keccak__keccak__parse_to_diluted__final_reshaped_input_column); mask.emplace_back( - ((SafeDiv((9) * (bitwise__row_ratio), 64)) + - ((bitwise__diluted_var_pool_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((13) * (keccak__row_ratio)) + + (keccak__keccak__parse_to_diluted__reshaped_intermediate_offset), + keccak__keccak__parse_to_diluted__reshaped_intermediate_column); mask.emplace_back( - ((SafeDiv((5) * (bitwise__row_ratio), 32)) + - ((bitwise__diluted_var_pool_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + (SafeDiv((7) * (keccak__row_ratio), 1024)) + + (keccak__keccak__parse_to_diluted__final_reshaped_input_offset), + keccak__keccak__parse_to_diluted__final_reshaped_input_column); mask.emplace_back( - ((SafeDiv((11) * (bitwise__row_ratio), 64)) + - ((bitwise__diluted_var_pool_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((14) * (keccak__row_ratio)) + + (keccak__keccak__parse_to_diluted__reshaped_intermediate_offset), + keccak__keccak__parse_to_diluted__reshaped_intermediate_column); mask.emplace_back( - ((SafeDiv((3) * (bitwise__row_ratio), 16)) + - ((bitwise__diluted_var_pool_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + (SafeDiv((15) * (keccak__row_ratio), 2048)) + + (keccak__keccak__parse_to_diluted__final_reshaped_input_offset), + keccak__keccak__parse_to_diluted__final_reshaped_input_column); mask.emplace_back( - ((SafeDiv((13) * (bitwise__row_ratio), 64)) + - ((bitwise__diluted_var_pool_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((15) * (keccak__row_ratio)) + + (keccak__keccak__parse_to_diluted__reshaped_intermediate_offset), + keccak__keccak__parse_to_diluted__reshaped_intermediate_column); mask.emplace_back( - ((SafeDiv((7) * (bitwise__row_ratio), 32)) + - ((bitwise__diluted_var_pool_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + (SafeDiv((25) * (keccak__row_ratio), 128)) + + (keccak__keccak__parse_to_diluted__cumulative_sum_offset), + keccak__keccak__parse_to_diluted__cumulative_sum_column); mask.emplace_back( - ((SafeDiv((15) * (bitwise__row_ratio), 64)) + - ((bitwise__diluted_var_pool_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + keccak__keccak__parse_to_diluted__cumulative_sum_offset, + keccak__keccak__parse_to_diluted__cumulative_sum_column); mask.emplace_back( - ((bitwise__x_or_y_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset), - mem_pool__value_column); + (((2) * (keccak__row_ratio)) + (SafeDiv((3) * (keccak__row_ratio), 128))) + + (keccak__keccak__parse_to_diluted__cumulative_sum_offset), + keccak__keccak__parse_to_diluted__cumulative_sum_column); mask.emplace_back( - ((SafeDiv(bitwise__row_ratio, 2)) + - ((bitwise__var_pool_suboffset) * (memory_units_row_ratio))) + - (mem_pool__value_offset), - mem_pool__value_column); + (SafeDiv(keccak__row_ratio, 2048)) + + (keccak__keccak__parse_to_diluted__cumulative_sum_offset), + keccak__keccak__parse_to_diluted__cumulative_sum_column); mask.emplace_back( - ((SafeDiv((3) * (bitwise__row_ratio), 4)) + - ((bitwise__var_pool_suboffset) * (memory_units_row_ratio))) + - (mem_pool__value_offset), - mem_pool__value_column); + (((SafeDiv(keccak__row_ratio, 2048)) + ((2) * (keccak__row_ratio))) + + (SafeDiv((3) * (keccak__row_ratio), 128))) + + (keccak__keccak__parse_to_diluted__cumulative_sum_offset), + keccak__keccak__parse_to_diluted__cumulative_sum_column); mask.emplace_back( - ((SafeDiv(bitwise__row_ratio, 2)) + - ((bitwise__diluted_var_pool_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + (((4) * (keccak__row_ratio)) + (SafeDiv((3) * (keccak__row_ratio), 64))) + + (keccak__keccak__parse_to_diluted__cumulative_sum_offset), + keccak__keccak__parse_to_diluted__cumulative_sum_column); mask.emplace_back( - ((SafeDiv(bitwise__row_ratio, 4)) + - ((bitwise__diluted_var_pool_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + (SafeDiv(keccak__row_ratio, 32768)) + + (keccak__keccak__parse_to_diluted__final_reshaped_input_offset), + keccak__keccak__parse_to_diluted__final_reshaped_input_column); + mask.emplace_back( + (((SafeDiv(keccak__row_ratio, 2048)) + ((4) * (keccak__row_ratio))) + + (SafeDiv((3) * (keccak__row_ratio), 64))) + + (keccak__keccak__parse_to_diluted__cumulative_sum_offset), + keccak__keccak__parse_to_diluted__cumulative_sum_column); mask.emplace_back( - ((SafeDiv((3) * (bitwise__row_ratio), 4)) + - ((bitwise__diluted_var_pool_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((SafeDiv(keccak__row_ratio, 2048)) + (SafeDiv(keccak__row_ratio, 32768))) + + (keccak__keccak__parse_to_diluted__final_reshaped_input_offset), + keccak__keccak__parse_to_diluted__final_reshaped_input_column); mask.emplace_back( - ((bitwise__trim_unpacking192_suboffset) * (diluted_units_row_ratio)) + (diluted_pool_offset), - diluted_pool_column); + (((6) * (keccak__row_ratio)) + (SafeDiv((9) * (keccak__row_ratio), 128))) + + (keccak__keccak__parse_to_diluted__cumulative_sum_offset), + keccak__keccak__parse_to_diluted__cumulative_sum_column); mask.emplace_back( - (((SafeDiv((3) * (bitwise__row_ratio), 16)) + (SafeDiv(bitwise__row_ratio, 2))) + - ((bitwise__diluted_var_pool_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + (SafeDiv(keccak__row_ratio, 16384)) + + (keccak__keccak__parse_to_diluted__final_reshaped_input_offset), + keccak__keccak__parse_to_diluted__final_reshaped_input_column); mask.emplace_back( - (((SafeDiv((3) * (bitwise__row_ratio), 16)) + (SafeDiv((3) * (bitwise__row_ratio), 4))) + - ((bitwise__diluted_var_pool_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + (((SafeDiv(keccak__row_ratio, 2048)) + ((6) * (keccak__row_ratio))) + + (SafeDiv((9) * (keccak__row_ratio), 128))) + + (keccak__keccak__parse_to_diluted__cumulative_sum_offset), + keccak__keccak__parse_to_diluted__cumulative_sum_column); mask.emplace_back( - ((bitwise__trim_unpacking193_suboffset) * (diluted_units_row_ratio)) + (diluted_pool_offset), - diluted_pool_column); + ((SafeDiv(keccak__row_ratio, 2048)) + (SafeDiv(keccak__row_ratio, 16384))) + + (keccak__keccak__parse_to_diluted__final_reshaped_input_offset), + keccak__keccak__parse_to_diluted__final_reshaped_input_column); mask.emplace_back( - (((SafeDiv((13) * (bitwise__row_ratio), 64)) + (SafeDiv(bitwise__row_ratio, 2))) + - ((bitwise__diluted_var_pool_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + (((8) * (keccak__row_ratio)) + (SafeDiv((3) * (keccak__row_ratio), 32))) + + (keccak__keccak__parse_to_diluted__cumulative_sum_offset), + keccak__keccak__parse_to_diluted__cumulative_sum_column); mask.emplace_back( - (((SafeDiv((13) * (bitwise__row_ratio), 64)) + (SafeDiv((3) * (bitwise__row_ratio), 4))) + - ((bitwise__diluted_var_pool_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + (SafeDiv((3) * (keccak__row_ratio), 32768)) + + (keccak__keccak__parse_to_diluted__final_reshaped_input_offset), + keccak__keccak__parse_to_diluted__final_reshaped_input_column); mask.emplace_back( - ((bitwise__trim_unpacking194_suboffset) * (diluted_units_row_ratio)) + (diluted_pool_offset), - diluted_pool_column); + (((SafeDiv(keccak__row_ratio, 2048)) + ((8) * (keccak__row_ratio))) + + (SafeDiv((3) * (keccak__row_ratio), 32))) + + (keccak__keccak__parse_to_diluted__cumulative_sum_offset), + keccak__keccak__parse_to_diluted__cumulative_sum_column); mask.emplace_back( - (((SafeDiv((7) * (bitwise__row_ratio), 32)) + (SafeDiv(bitwise__row_ratio, 2))) + - ((bitwise__diluted_var_pool_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((SafeDiv(keccak__row_ratio, 2048)) + (SafeDiv((3) * (keccak__row_ratio), 32768))) + + (keccak__keccak__parse_to_diluted__final_reshaped_input_offset), + keccak__keccak__parse_to_diluted__final_reshaped_input_column); mask.emplace_back( - (((SafeDiv((7) * (bitwise__row_ratio), 32)) + (SafeDiv((3) * (bitwise__row_ratio), 4))) + - ((bitwise__diluted_var_pool_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + (((10) * (keccak__row_ratio)) + (SafeDiv((15) * (keccak__row_ratio), 128))) + + (keccak__keccak__parse_to_diluted__cumulative_sum_offset), + keccak__keccak__parse_to_diluted__cumulative_sum_column); mask.emplace_back( - ((bitwise__trim_unpacking195_suboffset) * (diluted_units_row_ratio)) + (diluted_pool_offset), - diluted_pool_column); + (SafeDiv(keccak__row_ratio, 8192)) + + (keccak__keccak__parse_to_diluted__final_reshaped_input_offset), + keccak__keccak__parse_to_diluted__final_reshaped_input_column); mask.emplace_back( - (((SafeDiv((15) * (bitwise__row_ratio), 64)) + (SafeDiv(bitwise__row_ratio, 2))) + - ((bitwise__diluted_var_pool_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + (((SafeDiv(keccak__row_ratio, 2048)) + ((10) * (keccak__row_ratio))) + + (SafeDiv((15) * (keccak__row_ratio), 128))) + + (keccak__keccak__parse_to_diluted__cumulative_sum_offset), + keccak__keccak__parse_to_diluted__cumulative_sum_column); mask.emplace_back( - (((SafeDiv((15) * (bitwise__row_ratio), 64)) + (SafeDiv((3) * (bitwise__row_ratio), 4))) + - ((bitwise__diluted_var_pool_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((SafeDiv(keccak__row_ratio, 2048)) + (SafeDiv(keccak__row_ratio, 8192))) + + (keccak__keccak__parse_to_diluted__final_reshaped_input_offset), + keccak__keccak__parse_to_diluted__final_reshaped_input_column); mask.emplace_back( - ((ec_op__p_x_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset), - mem_pool__addr_column); + (((12) * (keccak__row_ratio)) + (SafeDiv((9) * (keccak__row_ratio), 64))) + + (keccak__keccak__parse_to_diluted__cumulative_sum_offset), + keccak__keccak__parse_to_diluted__cumulative_sum_column); mask.emplace_back( - ((ec_op_builtin_row_ratio) + ((ec_op__p_x_suboffset) * (memory_units_row_ratio))) + - (mem_pool__addr_offset), - mem_pool__addr_column); + (SafeDiv((5) * (keccak__row_ratio), 32768)) + + (keccak__keccak__parse_to_diluted__final_reshaped_input_offset), + keccak__keccak__parse_to_diluted__final_reshaped_input_column); mask.emplace_back( - ((ec_op__p_y_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset), - mem_pool__addr_column); + (((SafeDiv(keccak__row_ratio, 2048)) + ((12) * (keccak__row_ratio))) + + (SafeDiv((9) * (keccak__row_ratio), 64))) + + (keccak__keccak__parse_to_diluted__cumulative_sum_offset), + keccak__keccak__parse_to_diluted__cumulative_sum_column); mask.emplace_back( - ((ec_op__q_x_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset), - mem_pool__addr_column); + ((SafeDiv(keccak__row_ratio, 2048)) + (SafeDiv((5) * (keccak__row_ratio), 32768))) + + (keccak__keccak__parse_to_diluted__final_reshaped_input_offset), + keccak__keccak__parse_to_diluted__final_reshaped_input_column); mask.emplace_back( - ((ec_op__q_y_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset), - mem_pool__addr_column); + (((14) * (keccak__row_ratio)) + (SafeDiv((21) * (keccak__row_ratio), 128))) + + (keccak__keccak__parse_to_diluted__cumulative_sum_offset), + keccak__keccak__parse_to_diluted__cumulative_sum_column); mask.emplace_back( - ((ec_op__m_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset), - mem_pool__addr_column); + (SafeDiv((3) * (keccak__row_ratio), 16384)) + + (keccak__keccak__parse_to_diluted__final_reshaped_input_offset), + keccak__keccak__parse_to_diluted__final_reshaped_input_column); mask.emplace_back( - ((ec_op__r_x_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset), - mem_pool__addr_column); + (((SafeDiv(keccak__row_ratio, 2048)) + ((14) * (keccak__row_ratio))) + + (SafeDiv((21) * (keccak__row_ratio), 128))) + + (keccak__keccak__parse_to_diluted__cumulative_sum_offset), + keccak__keccak__parse_to_diluted__cumulative_sum_column); mask.emplace_back( - ((ec_op__r_y_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset), - mem_pool__addr_column); - mask.emplace_back(ec_op__doubling_slope_offset, ec_op__doubling_slope_column); - mask.emplace_back(ec_op__doubled_points__x_offset, ec_op__doubled_points__x_column); - mask.emplace_back(ec_op__doubled_points__y_offset, ec_op__doubled_points__y_column); + ((SafeDiv(keccak__row_ratio, 2048)) + (SafeDiv((3) * (keccak__row_ratio), 16384))) + + (keccak__keccak__parse_to_diluted__final_reshaped_input_offset), + keccak__keccak__parse_to_diluted__final_reshaped_input_column); mask.emplace_back( - (SafeDiv(ec_op_builtin_row_ratio, 256)) + (ec_op__doubled_points__x_offset), - ec_op__doubled_points__x_column); + (SafeDiv((7) * (keccak__row_ratio), 32768)) + + (keccak__keccak__parse_to_diluted__final_reshaped_input_offset), + keccak__keccak__parse_to_diluted__final_reshaped_input_column); mask.emplace_back( - (SafeDiv(ec_op_builtin_row_ratio, 256)) + (ec_op__doubled_points__y_offset), - ec_op__doubled_points__y_column); + ((SafeDiv(keccak__row_ratio, 2048)) + (SafeDiv((25) * (keccak__row_ratio), 128))) + + (keccak__keccak__parse_to_diluted__cumulative_sum_offset), + keccak__keccak__parse_to_diluted__cumulative_sum_column); mask.emplace_back( - ((ec_op__q_x_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset), - mem_pool__value_column); + ((SafeDiv(keccak__row_ratio, 2048)) + (SafeDiv((7) * (keccak__row_ratio), 32768))) + + (keccak__keccak__parse_to_diluted__final_reshaped_input_offset), + keccak__keccak__parse_to_diluted__final_reshaped_input_column); mask.emplace_back( - ((ec_op__q_y_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset), - mem_pool__value_column); + (SafeDiv((63) * (keccak__row_ratio), 4)) + + (keccak__keccak__parse_to_diluted__cumulative_sum_offset), + keccak__keccak__parse_to_diluted__cumulative_sum_column); mask.emplace_back( - ec_op__ec_subset_sum__bit_unpacking__prod_ones192_offset, - ec_op__ec_subset_sum__bit_unpacking__prod_ones192_column); - mask.emplace_back(ec_op__ec_subset_sum__selector_offset, ec_op__ec_subset_sum__selector_column); + (SafeDiv(keccak__row_ratio, 128)) + (keccak__keccak__parse_to_diluted__cumulative_sum_offset), + keccak__keccak__parse_to_diluted__cumulative_sum_column); mask.emplace_back( - (SafeDiv(ec_op_builtin_row_ratio, 256)) + (ec_op__ec_subset_sum__selector_offset), - ec_op__ec_subset_sum__selector_column); + ((SafeDiv(keccak__row_ratio, 2048)) + (SafeDiv((63) * (keccak__row_ratio), 4))) + + (keccak__keccak__parse_to_diluted__cumulative_sum_offset), + keccak__keccak__parse_to_diluted__cumulative_sum_column); mask.emplace_back( - (SafeDiv((3) * (ec_op_builtin_row_ratio), 4)) + (ec_op__ec_subset_sum__selector_offset), - ec_op__ec_subset_sum__selector_column); + ((SafeDiv(keccak__row_ratio, 2048)) + (SafeDiv(keccak__row_ratio, 128))) + + (keccak__keccak__parse_to_diluted__cumulative_sum_offset), + keccak__keccak__parse_to_diluted__cumulative_sum_column); mask.emplace_back( - ec_op__ec_subset_sum__bit_unpacking__prod_ones196_offset, - ec_op__ec_subset_sum__bit_unpacking__prod_ones196_column); + ((SafeDiv((63) * (keccak__row_ratio), 4)) + + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - (SafeDiv((193) * (ec_op_builtin_row_ratio), 256)) + (ec_op__ec_subset_sum__selector_offset), - ec_op__ec_subset_sum__selector_column); + ((SafeDiv((15) * (keccak__row_ratio), 2048)) + (SafeDiv((63) * (keccak__row_ratio), 4))) + + (keccak__keccak__parse_to_diluted__cumulative_sum_offset), + keccak__keccak__parse_to_diluted__cumulative_sum_column); mask.emplace_back( - (SafeDiv((49) * (ec_op_builtin_row_ratio), 64)) + (ec_op__ec_subset_sum__selector_offset), - ec_op__ec_subset_sum__selector_column); + ((SafeDiv((15) * (keccak__row_ratio), 2048)) + (SafeDiv(keccak__row_ratio, 128))) + + (keccak__keccak__parse_to_diluted__cumulative_sum_offset), + keccak__keccak__parse_to_diluted__cumulative_sum_column); mask.emplace_back( - (SafeDiv((251) * (ec_op_builtin_row_ratio), 256)) + (ec_op__ec_subset_sum__selector_offset), - ec_op__ec_subset_sum__selector_column); + (((SafeDiv((63) * (keccak__row_ratio), 4)) + (SafeDiv((3) * (keccak__row_ratio), 512))) + + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - (SafeDiv((63) * (ec_op_builtin_row_ratio), 64)) + (ec_op__ec_subset_sum__selector_offset), - ec_op__ec_subset_sum__selector_column); + ((SafeDiv((31) * (keccak__row_ratio), 4096)) + (SafeDiv((63) * (keccak__row_ratio), 4))) + + (keccak__keccak__parse_to_diluted__cumulative_sum_offset), + keccak__keccak__parse_to_diluted__cumulative_sum_column); mask.emplace_back( - (SafeDiv((197) * (ec_op_builtin_row_ratio), 256)) + (ec_op__ec_subset_sum__selector_offset), - ec_op__ec_subset_sum__selector_column); + ((SafeDiv((31) * (keccak__row_ratio), 4096)) + (SafeDiv(keccak__row_ratio, 128))) + + (keccak__keccak__parse_to_diluted__cumulative_sum_offset), + keccak__keccak__parse_to_diluted__cumulative_sum_column); mask.emplace_back( - ec_op__ec_subset_sum__partial_sum__x_offset, ec_op__ec_subset_sum__partial_sum__x_column); + (SafeDiv(keccak__row_ratio, 4)) + (keccak__keccak__parse_to_diluted__cumulative_sum_offset), + keccak__keccak__parse_to_diluted__cumulative_sum_column); mask.emplace_back( - ec_op__ec_subset_sum__partial_sum__y_offset, ec_op__ec_subset_sum__partial_sum__y_column); + ((SafeDiv(keccak__row_ratio, 2048)) + (SafeDiv(keccak__row_ratio, 4))) + + (keccak__keccak__parse_to_diluted__cumulative_sum_offset), + keccak__keccak__parse_to_diluted__cumulative_sum_column); mask.emplace_back( - (SafeDiv(ec_op_builtin_row_ratio, 256)) + (ec_op__ec_subset_sum__partial_sum__x_offset), - ec_op__ec_subset_sum__partial_sum__x_column); + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio)) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - (SafeDiv(ec_op_builtin_row_ratio, 256)) + (ec_op__ec_subset_sum__partial_sum__y_offset), - ec_op__ec_subset_sum__partial_sum__y_column); - mask.emplace_back(ec_op__ec_subset_sum__slope_offset, ec_op__ec_subset_sum__slope_column); + (SafeDiv((15) * (keccak__row_ratio), 2048)) + + (keccak__keccak__parse_to_diluted__cumulative_sum_offset), + keccak__keccak__parse_to_diluted__cumulative_sum_column); mask.emplace_back( - ec_op__ec_subset_sum__x_diff_inv_offset, ec_op__ec_subset_sum__x_diff_inv_column); + ((SafeDiv((15) * (keccak__row_ratio), 2048)) + (SafeDiv(keccak__row_ratio, 4))) + + (keccak__keccak__parse_to_diluted__cumulative_sum_offset), + keccak__keccak__parse_to_diluted__cumulative_sum_column); mask.emplace_back( - ((ec_op__m_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset), - mem_pool__value_column); + ((SafeDiv((3) * (keccak__row_ratio), 512)) + + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - ((ec_op__p_x_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset), - mem_pool__value_column); + (SafeDiv((31) * (keccak__row_ratio), 4096)) + + (keccak__keccak__parse_to_diluted__cumulative_sum_offset), + keccak__keccak__parse_to_diluted__cumulative_sum_column); mask.emplace_back( - ((ec_op__p_y_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset), - mem_pool__value_column); + ((SafeDiv((31) * (keccak__row_ratio), 4096)) + (SafeDiv(keccak__row_ratio, 4))) + + (keccak__keccak__parse_to_diluted__cumulative_sum_offset), + keccak__keccak__parse_to_diluted__cumulative_sum_column); mask.emplace_back( - ((ec_op__r_x_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset), - mem_pool__value_column); + ((SafeDiv((25) * (keccak__row_ratio), 128)) + + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - (SafeDiv((255) * (ec_op_builtin_row_ratio), 256)) + - (ec_op__ec_subset_sum__partial_sum__x_offset), - ec_op__ec_subset_sum__partial_sum__x_column); + ((SafeDiv((5) * (keccak__row_ratio), 128)) + + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - ((ec_op__r_y_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset), - mem_pool__value_column); + ((SafeDiv((5) * (keccak__row_ratio), 64)) + + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - (SafeDiv((255) * (ec_op_builtin_row_ratio), 256)) + - (ec_op__ec_subset_sum__partial_sum__y_offset), - ec_op__ec_subset_sum__partial_sum__y_column); + ((SafeDiv((15) * (keccak__row_ratio), 128)) + + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - ((keccak__input_output_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset), - mem_pool__addr_column); + ((SafeDiv((5) * (keccak__row_ratio), 32)) + + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - ((SafeDiv(keccak__row_ratio, 16)) + - ((keccak__input_output_suboffset) * (memory_units_row_ratio))) + - (mem_pool__addr_offset), - mem_pool__addr_column); + (((SafeDiv((3) * (keccak__row_ratio), 512)) + (SafeDiv((25) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column2_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - keccak__keccak__parse_to_diluted__reshaped_intermediate_offset, - keccak__keccak__parse_to_diluted__reshaped_intermediate_column); + (((((SafeDiv((3) * (keccak__row_ratio), 512)) + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((25) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column1_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - ((keccak__input_output_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset), - mem_pool__value_column); + ((SafeDiv((25) * (keccak__row_ratio), 128)) + + ((keccak__keccak__diluted_column1_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - (SafeDiv(keccak__row_ratio, 32768)) + - (keccak__keccak__parse_to_diluted__reshaped_intermediate_offset), - keccak__keccak__parse_to_diluted__reshaped_intermediate_column); + ((SafeDiv(keccak__row_ratio, 128)) + + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - ((SafeDiv(keccak__row_ratio, 16)) + - ((keccak__input_output_suboffset) * (memory_units_row_ratio))) + - (mem_pool__value_offset), - mem_pool__value_column); + ((SafeDiv((3) * (keccak__row_ratio), 64)) + + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - (SafeDiv(keccak__row_ratio, 16384)) + - (keccak__keccak__parse_to_diluted__reshaped_intermediate_offset), - keccak__keccak__parse_to_diluted__reshaped_intermediate_column); + ((SafeDiv((11) * (keccak__row_ratio), 128)) + + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( ((SafeDiv(keccak__row_ratio, 8)) + - ((keccak__input_output_suboffset) * (memory_units_row_ratio))) + - (mem_pool__value_offset), - mem_pool__value_column); - mask.emplace_back( - (SafeDiv((3) * (keccak__row_ratio), 32768)) + - (keccak__keccak__parse_to_diluted__reshaped_intermediate_offset), - keccak__keccak__parse_to_diluted__reshaped_intermediate_column); + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - ((SafeDiv((3) * (keccak__row_ratio), 16)) + - ((keccak__input_output_suboffset) * (memory_units_row_ratio))) + - (mem_pool__value_offset), - mem_pool__value_column); + ((SafeDiv((21) * (keccak__row_ratio), 128)) + + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - (SafeDiv(keccak__row_ratio, 8192)) + - (keccak__keccak__parse_to_diluted__reshaped_intermediate_offset), - keccak__keccak__parse_to_diluted__reshaped_intermediate_column); + ((((SafeDiv((3) * (keccak__row_ratio), 512)) + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((25) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - ((SafeDiv(keccak__row_ratio, 4)) + - ((keccak__input_output_suboffset) * (memory_units_row_ratio))) + - (mem_pool__value_offset), - mem_pool__value_column); + (((((SafeDiv((3) * (keccak__row_ratio), 512)) + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((25) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column2_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - (SafeDiv((5) * (keccak__row_ratio), 32768)) + - (keccak__keccak__parse_to_diluted__reshaped_intermediate_offset), - keccak__keccak__parse_to_diluted__reshaped_intermediate_column); + ((SafeDiv((25) * (keccak__row_ratio), 128)) + + ((keccak__keccak__diluted_column2_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - ((SafeDiv((5) * (keccak__row_ratio), 16)) + - ((keccak__input_output_suboffset) * (memory_units_row_ratio))) + - (mem_pool__value_offset), - mem_pool__value_column); + ((SafeDiv(keccak__row_ratio, 64)) + + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - (SafeDiv((3) * (keccak__row_ratio), 16384)) + - (keccak__keccak__parse_to_diluted__reshaped_intermediate_offset), - keccak__keccak__parse_to_diluted__reshaped_intermediate_column); + ((SafeDiv((7) * (keccak__row_ratio), 128)) + + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - ((SafeDiv((3) * (keccak__row_ratio), 8)) + - ((keccak__input_output_suboffset) * (memory_units_row_ratio))) + - (mem_pool__value_offset), - mem_pool__value_column); + ((SafeDiv((3) * (keccak__row_ratio), 32)) + + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - (SafeDiv((7) * (keccak__row_ratio), 32768)) + - (keccak__keccak__parse_to_diluted__reshaped_intermediate_offset), - keccak__keccak__parse_to_diluted__reshaped_intermediate_column); + ((SafeDiv((17) * (keccak__row_ratio), 128)) + + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - ((SafeDiv((7) * (keccak__row_ratio), 16)) + - ((keccak__input_output_suboffset) * (memory_units_row_ratio))) + - (mem_pool__value_offset), - mem_pool__value_column); + ((SafeDiv((11) * (keccak__row_ratio), 64)) + + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - (SafeDiv(keccak__row_ratio, 4096)) + - (keccak__keccak__parse_to_diluted__reshaped_intermediate_offset), - keccak__keccak__parse_to_diluted__reshaped_intermediate_column); + ((((SafeDiv((3) * (keccak__row_ratio), 512)) + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((25) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column1_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - ((SafeDiv(keccak__row_ratio, 2)) + - ((keccak__input_output_suboffset) * (memory_units_row_ratio))) + - (mem_pool__value_offset), - mem_pool__value_column); + ((((((SafeDiv((3) * (keccak__row_ratio), 512)) + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((25) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - ((SafeDiv(keccak__row_ratio, 4096)) + (SafeDiv(keccak__row_ratio, 32768))) + - (keccak__keccak__parse_to_diluted__reshaped_intermediate_offset), - keccak__keccak__parse_to_diluted__reshaped_intermediate_column); + (((SafeDiv((3) * (keccak__row_ratio), 512)) + (SafeDiv((25) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - (((SafeDiv(keccak__row_ratio, 2)) + (SafeDiv(keccak__row_ratio, 16))) + - ((keccak__input_output_suboffset) * (memory_units_row_ratio))) + - (mem_pool__value_offset), - mem_pool__value_column); + ((SafeDiv((3) * (keccak__row_ratio), 128)) + + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - ((SafeDiv(keccak__row_ratio, 4096)) + (SafeDiv(keccak__row_ratio, 16384))) + - (keccak__keccak__parse_to_diluted__reshaped_intermediate_offset), - keccak__keccak__parse_to_diluted__reshaped_intermediate_column); + ((SafeDiv(keccak__row_ratio, 16)) + + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - (((SafeDiv(keccak__row_ratio, 2)) + (SafeDiv(keccak__row_ratio, 8))) + - ((keccak__input_output_suboffset) * (memory_units_row_ratio))) + - (mem_pool__value_offset), - mem_pool__value_column); + ((SafeDiv((13) * (keccak__row_ratio), 128)) + + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - ((SafeDiv(keccak__row_ratio, 4096)) + (SafeDiv((3) * (keccak__row_ratio), 32768))) + - (keccak__keccak__parse_to_diluted__reshaped_intermediate_offset), - keccak__keccak__parse_to_diluted__reshaped_intermediate_column); + ((SafeDiv((9) * (keccak__row_ratio), 64)) + + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - (((SafeDiv(keccak__row_ratio, 2)) + (SafeDiv((3) * (keccak__row_ratio), 16))) + - ((keccak__input_output_suboffset) * (memory_units_row_ratio))) + - (mem_pool__value_offset), - mem_pool__value_column); + ((SafeDiv((23) * (keccak__row_ratio), 128)) + + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - ((SafeDiv(keccak__row_ratio, 4096)) + (SafeDiv(keccak__row_ratio, 8192))) + - (keccak__keccak__parse_to_diluted__reshaped_intermediate_offset), - keccak__keccak__parse_to_diluted__reshaped_intermediate_column); + ((((SafeDiv((3) * (keccak__row_ratio), 512)) + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((25) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column2_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - (((SafeDiv(keccak__row_ratio, 2)) + (SafeDiv(keccak__row_ratio, 4))) + - ((keccak__input_output_suboffset) * (memory_units_row_ratio))) + - (mem_pool__value_offset), - mem_pool__value_column); + ((((((SafeDiv((3) * (keccak__row_ratio), 512)) + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((25) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column1_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - ((SafeDiv(keccak__row_ratio, 4096)) + (SafeDiv((5) * (keccak__row_ratio), 32768))) + - (keccak__keccak__parse_to_diluted__reshaped_intermediate_offset), - keccak__keccak__parse_to_diluted__reshaped_intermediate_column); + (((SafeDiv((3) * (keccak__row_ratio), 512)) + (SafeDiv((25) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column1_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - (((SafeDiv(keccak__row_ratio, 2)) + (SafeDiv((5) * (keccak__row_ratio), 16))) + - ((keccak__input_output_suboffset) * (memory_units_row_ratio))) + - (mem_pool__value_offset), - mem_pool__value_column); + ((SafeDiv(keccak__row_ratio, 32)) + + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - ((SafeDiv(keccak__row_ratio, 4096)) + (SafeDiv((3) * (keccak__row_ratio), 16384))) + - (keccak__keccak__parse_to_diluted__reshaped_intermediate_offset), - keccak__keccak__parse_to_diluted__reshaped_intermediate_column); + ((SafeDiv((9) * (keccak__row_ratio), 128)) + + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - (((SafeDiv(keccak__row_ratio, 2)) + (SafeDiv((3) * (keccak__row_ratio), 8))) + - ((keccak__input_output_suboffset) * (memory_units_row_ratio))) + - (mem_pool__value_offset), - mem_pool__value_column); + ((SafeDiv((7) * (keccak__row_ratio), 64)) + + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - ((SafeDiv(keccak__row_ratio, 4096)) + (SafeDiv((7) * (keccak__row_ratio), 32768))) + - (keccak__keccak__parse_to_diluted__reshaped_intermediate_offset), - keccak__keccak__parse_to_diluted__reshaped_intermediate_column); + ((SafeDiv((19) * (keccak__row_ratio), 128)) + + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - (((SafeDiv(keccak__row_ratio, 2)) + (SafeDiv((7) * (keccak__row_ratio), 16))) + - ((keccak__input_output_suboffset) * (memory_units_row_ratio))) + - (mem_pool__value_offset), - mem_pool__value_column); + ((SafeDiv((3) * (keccak__row_ratio), 16)) + + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - keccak__keccak__parse_to_diluted__final_reshaped_input_offset, - keccak__keccak__parse_to_diluted__final_reshaped_input_column); + (((((SafeDiv((3) * (keccak__row_ratio), 512)) + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((25) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - (SafeDiv(keccak__row_ratio, 2048)) + - (keccak__keccak__parse_to_diluted__final_reshaped_input_offset), - keccak__keccak__parse_to_diluted__final_reshaped_input_column); + ((((((SafeDiv((3) * (keccak__row_ratio), 512)) + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((25) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column2_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - (keccak__row_ratio) + (keccak__keccak__parse_to_diluted__reshaped_intermediate_offset), - keccak__keccak__parse_to_diluted__reshaped_intermediate_column); + (SafeDiv(keccak__row_ratio, 4)) + (keccak__keccak__rotated_parity0_offset), + keccak__keccak__rotated_parity0_column); + mask.emplace_back(keccak__keccak__rotated_parity0_offset, keccak__keccak__rotated_parity0_column); mask.emplace_back( - (SafeDiv(keccak__row_ratio, 1024)) + - (keccak__keccak__parse_to_diluted__final_reshaped_input_offset), - keccak__keccak__parse_to_diluted__final_reshaped_input_column); + (((SafeDiv((63) * (keccak__row_ratio), 4)) + (SafeDiv((25) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - ((2) * (keccak__row_ratio)) + - (keccak__keccak__parse_to_diluted__reshaped_intermediate_offset), - keccak__keccak__parse_to_diluted__reshaped_intermediate_column); + (SafeDiv(keccak__row_ratio, 4)) + (keccak__keccak__rotated_parity1_offset), + keccak__keccak__rotated_parity1_column); + mask.emplace_back(keccak__keccak__rotated_parity1_offset, keccak__keccak__rotated_parity1_column); mask.emplace_back( - (SafeDiv((3) * (keccak__row_ratio), 2048)) + - (keccak__keccak__parse_to_diluted__final_reshaped_input_offset), - keccak__keccak__parse_to_diluted__final_reshaped_input_column); + (((SafeDiv((63) * (keccak__row_ratio), 4)) + (SafeDiv((25) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column1_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - ((3) * (keccak__row_ratio)) + - (keccak__keccak__parse_to_diluted__reshaped_intermediate_offset), - keccak__keccak__parse_to_diluted__reshaped_intermediate_column); + (SafeDiv(keccak__row_ratio, 4)) + (keccak__keccak__rotated_parity2_offset), + keccak__keccak__rotated_parity2_column); + mask.emplace_back(keccak__keccak__rotated_parity2_offset, keccak__keccak__rotated_parity2_column); mask.emplace_back( - (SafeDiv(keccak__row_ratio, 512)) + - (keccak__keccak__parse_to_diluted__final_reshaped_input_offset), - keccak__keccak__parse_to_diluted__final_reshaped_input_column); + (((SafeDiv((63) * (keccak__row_ratio), 4)) + (SafeDiv((25) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column2_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - ((4) * (keccak__row_ratio)) + - (keccak__keccak__parse_to_diluted__reshaped_intermediate_offset), - keccak__keccak__parse_to_diluted__reshaped_intermediate_column); + (SafeDiv(keccak__row_ratio, 4)) + (keccak__keccak__rotated_parity3_offset), + keccak__keccak__rotated_parity3_column); + mask.emplace_back(keccak__keccak__rotated_parity3_offset, keccak__keccak__rotated_parity3_column); mask.emplace_back( - (SafeDiv((5) * (keccak__row_ratio), 2048)) + - (keccak__keccak__parse_to_diluted__final_reshaped_input_offset), - keccak__keccak__parse_to_diluted__final_reshaped_input_column); + ((((SafeDiv((63) * (keccak__row_ratio), 4)) + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((25) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - ((5) * (keccak__row_ratio)) + - (keccak__keccak__parse_to_diluted__reshaped_intermediate_offset), - keccak__keccak__parse_to_diluted__reshaped_intermediate_column); + (SafeDiv(keccak__row_ratio, 4)) + (keccak__keccak__rotated_parity4_offset), + keccak__keccak__rotated_parity4_column); + mask.emplace_back(keccak__keccak__rotated_parity4_offset, keccak__keccak__rotated_parity4_column); mask.emplace_back( - (SafeDiv((3) * (keccak__row_ratio), 1024)) + - (keccak__keccak__parse_to_diluted__final_reshaped_input_offset), - keccak__keccak__parse_to_diluted__final_reshaped_input_column); + ((((SafeDiv((63) * (keccak__row_ratio), 4)) + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((25) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column1_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - ((6) * (keccak__row_ratio)) + - (keccak__keccak__parse_to_diluted__reshaped_intermediate_offset), - keccak__keccak__parse_to_diluted__reshaped_intermediate_column); + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio)) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - (SafeDiv((7) * (keccak__row_ratio), 2048)) + - (keccak__keccak__parse_to_diluted__final_reshaped_input_offset), - keccak__keccak__parse_to_diluted__final_reshaped_input_column); + (((((((SafeDiv((3) * (keccak__row_ratio), 512)) + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((25) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - ((7) * (keccak__row_ratio)) + - (keccak__keccak__parse_to_diluted__reshaped_intermediate_offset), - keccak__keccak__parse_to_diluted__reshaped_intermediate_column); + ((SafeDiv((5) * (keccak__row_ratio), 64)) + + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - (SafeDiv(keccak__row_ratio, 256)) + - (keccak__keccak__parse_to_diluted__final_reshaped_input_offset), - keccak__keccak__parse_to_diluted__final_reshaped_input_column); + (((SafeDiv(keccak__row_ratio, 4)) + (SafeDiv((5) * (keccak__row_ratio), 64))) + + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - ((8) * (keccak__row_ratio)) + - (keccak__keccak__parse_to_diluted__reshaped_intermediate_offset), - keccak__keccak__parse_to_diluted__reshaped_intermediate_column); + ((((((((((SafeDiv(keccak__row_ratio, 4)) + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((25) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column2_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - (SafeDiv((9) * (keccak__row_ratio), 2048)) + - (keccak__keccak__parse_to_diluted__final_reshaped_input_offset), - keccak__keccak__parse_to_diluted__final_reshaped_input_column); + (SafeDiv((63) * (keccak__row_ratio), 4)) + (keccak__keccak__rotated_parity2_offset), + keccak__keccak__rotated_parity2_column); mask.emplace_back( - ((9) * (keccak__row_ratio)) + - (keccak__keccak__parse_to_diluted__reshaped_intermediate_offset), - keccak__keccak__parse_to_diluted__reshaped_intermediate_column); + (((SafeDiv((63) * (keccak__row_ratio), 4)) + (SafeDiv(keccak__row_ratio, 128))) + + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - (SafeDiv((5) * (keccak__row_ratio), 1024)) + - (keccak__keccak__parse_to_diluted__final_reshaped_input_offset), - keccak__keccak__parse_to_diluted__final_reshaped_input_column); + (((((((((SafeDiv((3) * (keccak__row_ratio), 512)) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((25) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column2_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - ((10) * (keccak__row_ratio)) + - (keccak__keccak__parse_to_diluted__reshaped_intermediate_offset), - keccak__keccak__parse_to_diluted__reshaped_intermediate_column); + ((SafeDiv((5) * (keccak__row_ratio), 32)) + + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - (SafeDiv((11) * (keccak__row_ratio), 2048)) + - (keccak__keccak__parse_to_diluted__final_reshaped_input_offset), - keccak__keccak__parse_to_diluted__final_reshaped_input_column); + (((SafeDiv((31) * (keccak__row_ratio), 2)) + (SafeDiv((5) * (keccak__row_ratio), 32))) + + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - ((11) * (keccak__row_ratio)) + - (keccak__keccak__parse_to_diluted__reshaped_intermediate_offset), - keccak__keccak__parse_to_diluted__reshaped_intermediate_column); + (((((((((((SafeDiv((31) * (keccak__row_ratio), 2)) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((25) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - (SafeDiv((3) * (keccak__row_ratio), 512)) + - (keccak__keccak__parse_to_diluted__final_reshaped_input_offset), - keccak__keccak__parse_to_diluted__final_reshaped_input_column); + (((SafeDiv(keccak__row_ratio, 2)) + (SafeDiv((25) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column1_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - ((12) * (keccak__row_ratio)) + - (keccak__keccak__parse_to_diluted__reshaped_intermediate_offset), - keccak__keccak__parse_to_diluted__reshaped_intermediate_column); + (SafeDiv(keccak__row_ratio, 2)) + (keccak__keccak__rotated_parity3_offset), + keccak__keccak__rotated_parity3_column); mask.emplace_back( - (SafeDiv((13) * (keccak__row_ratio), 2048)) + - (keccak__keccak__parse_to_diluted__final_reshaped_input_offset), - keccak__keccak__parse_to_diluted__final_reshaped_input_column); + (((SafeDiv(keccak__row_ratio, 2)) + (SafeDiv(keccak__row_ratio, 64))) + + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - ((13) * (keccak__row_ratio)) + - (keccak__keccak__parse_to_diluted__reshaped_intermediate_offset), - keccak__keccak__parse_to_diluted__reshaped_intermediate_column); + ((((((((((SafeDiv((3) * (keccak__row_ratio), 512)) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((25) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - (SafeDiv((7) * (keccak__row_ratio), 1024)) + - (keccak__keccak__parse_to_diluted__final_reshaped_input_offset), - keccak__keccak__parse_to_diluted__final_reshaped_input_column); + ((SafeDiv((5) * (keccak__row_ratio), 128)) + + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - ((14) * (keccak__row_ratio)) + - (keccak__keccak__parse_to_diluted__reshaped_intermediate_offset), - keccak__keccak__parse_to_diluted__reshaped_intermediate_column); + ((((7) * (keccak__row_ratio)) + (SafeDiv((5) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - (SafeDiv((15) * (keccak__row_ratio), 2048)) + - (keccak__keccak__parse_to_diluted__final_reshaped_input_offset), - keccak__keccak__parse_to_diluted__final_reshaped_input_column); + ((((((((((7) * (keccak__row_ratio)) + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((25) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column1_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - ((15) * (keccak__row_ratio)) + - (keccak__keccak__parse_to_diluted__reshaped_intermediate_offset), - keccak__keccak__parse_to_diluted__reshaped_intermediate_column); + ((((9) * (keccak__row_ratio)) + (SafeDiv((25) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column2_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - (SafeDiv((25) * (keccak__row_ratio), 128)) + - (keccak__keccak__parse_to_diluted__cumulative_sum_offset), - keccak__keccak__parse_to_diluted__cumulative_sum_column); + ((9) * (keccak__row_ratio)) + (keccak__keccak__rotated_parity4_offset), + keccak__keccak__rotated_parity4_column); mask.emplace_back( - keccak__keccak__parse_to_diluted__cumulative_sum_offset, - keccak__keccak__parse_to_diluted__cumulative_sum_column); + ((((9) * (keccak__row_ratio)) + (SafeDiv((3) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - (((2) * (keccak__row_ratio)) + (SafeDiv((3) * (keccak__row_ratio), 128))) + - (keccak__keccak__parse_to_diluted__cumulative_sum_offset), - keccak__keccak__parse_to_diluted__cumulative_sum_column); + ((((((((SafeDiv((3) * (keccak__row_ratio), 512)) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((25) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column1_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - (SafeDiv(keccak__row_ratio, 2048)) + - (keccak__keccak__parse_to_diluted__cumulative_sum_offset), - keccak__keccak__parse_to_diluted__cumulative_sum_column); + ((SafeDiv((15) * (keccak__row_ratio), 128)) + + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - (((SafeDiv(keccak__row_ratio, 2048)) + ((2) * (keccak__row_ratio))) + - (SafeDiv((3) * (keccak__row_ratio), 128))) + - (keccak__keccak__parse_to_diluted__cumulative_sum_offset), - keccak__keccak__parse_to_diluted__cumulative_sum_column); + (((SafeDiv((27) * (keccak__row_ratio), 4)) + (SafeDiv((15) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - (((4) * (keccak__row_ratio)) + (SafeDiv((3) * (keccak__row_ratio), 64))) + - (keccak__keccak__parse_to_diluted__cumulative_sum_offset), - keccak__keccak__parse_to_diluted__cumulative_sum_column); + ((((((SafeDiv((27) * (keccak__row_ratio), 4)) + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((25) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - (SafeDiv(keccak__row_ratio, 32768)) + - (keccak__keccak__parse_to_diluted__final_reshaped_input_offset), - keccak__keccak__parse_to_diluted__final_reshaped_input_column); + ((((SafeDiv((37) * (keccak__row_ratio), 4)) + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((25) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - (((SafeDiv(keccak__row_ratio, 2048)) + ((4) * (keccak__row_ratio))) + - (SafeDiv((3) * (keccak__row_ratio), 64))) + - (keccak__keccak__parse_to_diluted__cumulative_sum_offset), - keccak__keccak__parse_to_diluted__cumulative_sum_column); + (SafeDiv((37) * (keccak__row_ratio), 4)) + (keccak__keccak__rotated_parity0_offset), + keccak__keccak__rotated_parity0_column); mask.emplace_back( - ((SafeDiv(keccak__row_ratio, 2048)) + (SafeDiv(keccak__row_ratio, 32768))) + - (keccak__keccak__parse_to_diluted__final_reshaped_input_offset), - keccak__keccak__parse_to_diluted__final_reshaped_input_column); + (((SafeDiv((37) * (keccak__row_ratio), 4)) + (SafeDiv(keccak__row_ratio, 32))) + + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - (((6) * (keccak__row_ratio)) + (SafeDiv((9) * (keccak__row_ratio), 128))) + - (keccak__keccak__parse_to_diluted__cumulative_sum_offset), - keccak__keccak__parse_to_diluted__cumulative_sum_column); + (((((SafeDiv((3) * (keccak__row_ratio), 512)) + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((25) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - (SafeDiv(keccak__row_ratio, 16384)) + - (keccak__keccak__parse_to_diluted__final_reshaped_input_offset), - keccak__keccak__parse_to_diluted__final_reshaped_input_column); + ((SafeDiv(keccak__row_ratio, 8)) + + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - (((SafeDiv(keccak__row_ratio, 2048)) + ((6) * (keccak__row_ratio))) + - (SafeDiv((9) * (keccak__row_ratio), 128))) + - (keccak__keccak__parse_to_diluted__cumulative_sum_offset), - keccak__keccak__parse_to_diluted__cumulative_sum_column); + ((((9) * (keccak__row_ratio)) + (SafeDiv(keccak__row_ratio, 8))) + + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - ((SafeDiv(keccak__row_ratio, 2048)) + (SafeDiv(keccak__row_ratio, 16384))) + - (keccak__keccak__parse_to_diluted__final_reshaped_input_offset), - keccak__keccak__parse_to_diluted__final_reshaped_input_column); + ((((((((9) * (keccak__row_ratio)) + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((25) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - (((8) * (keccak__row_ratio)) + (SafeDiv((3) * (keccak__row_ratio), 32))) + - (keccak__keccak__parse_to_diluted__cumulative_sum_offset), - keccak__keccak__parse_to_diluted__cumulative_sum_column); + (((((7) * (keccak__row_ratio)) + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((25) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column1_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - (SafeDiv((3) * (keccak__row_ratio), 32768)) + - (keccak__keccak__parse_to_diluted__final_reshaped_input_offset), - keccak__keccak__parse_to_diluted__final_reshaped_input_column); + ((7) * (keccak__row_ratio)) + (keccak__keccak__rotated_parity1_offset), + keccak__keccak__rotated_parity1_column); mask.emplace_back( - (((SafeDiv(keccak__row_ratio, 2048)) + ((8) * (keccak__row_ratio))) + - (SafeDiv((3) * (keccak__row_ratio), 32))) + - (keccak__keccak__parse_to_diluted__cumulative_sum_offset), - keccak__keccak__parse_to_diluted__cumulative_sum_column); + ((((7) * (keccak__row_ratio)) + (SafeDiv((5) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - ((SafeDiv(keccak__row_ratio, 2048)) + (SafeDiv((3) * (keccak__row_ratio), 32768))) + - (keccak__keccak__parse_to_diluted__final_reshaped_input_offset), - keccak__keccak__parse_to_diluted__final_reshaped_input_column); + ((((((SafeDiv((3) * (keccak__row_ratio), 512)) + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((25) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - (((10) * (keccak__row_ratio)) + (SafeDiv((15) * (keccak__row_ratio), 128))) + - (keccak__keccak__parse_to_diluted__cumulative_sum_offset), - keccak__keccak__parse_to_diluted__cumulative_sum_column); + ((SafeDiv(keccak__row_ratio, 128)) + + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - (SafeDiv(keccak__row_ratio, 8192)) + - (keccak__keccak__parse_to_diluted__final_reshaped_input_offset), - keccak__keccak__parse_to_diluted__final_reshaped_input_column); + ((((11) * (keccak__row_ratio)) + (SafeDiv(keccak__row_ratio, 128))) + + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - (((SafeDiv(keccak__row_ratio, 2048)) + ((10) * (keccak__row_ratio))) + - (SafeDiv((15) * (keccak__row_ratio), 128))) + - (keccak__keccak__parse_to_diluted__cumulative_sum_offset), - keccak__keccak__parse_to_diluted__cumulative_sum_column); + (((((((((11) * (keccak__row_ratio)) + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((25) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column1_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - ((SafeDiv(keccak__row_ratio, 2048)) + (SafeDiv(keccak__row_ratio, 8192))) + - (keccak__keccak__parse_to_diluted__final_reshaped_input_offset), - keccak__keccak__parse_to_diluted__final_reshaped_input_column); + ((((5) * (keccak__row_ratio)) + (SafeDiv((25) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - (((12) * (keccak__row_ratio)) + (SafeDiv((9) * (keccak__row_ratio), 64))) + - (keccak__keccak__parse_to_diluted__cumulative_sum_offset), - keccak__keccak__parse_to_diluted__cumulative_sum_column); + ((5) * (keccak__row_ratio)) + (keccak__keccak__rotated_parity2_offset), + keccak__keccak__rotated_parity2_column); mask.emplace_back( - (SafeDiv((5) * (keccak__row_ratio), 32768)) + - (keccak__keccak__parse_to_diluted__final_reshaped_input_offset), - keccak__keccak__parse_to_diluted__final_reshaped_input_column); + ((((5) * (keccak__row_ratio)) + (SafeDiv((3) * (keccak__row_ratio), 64))) + + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - (((SafeDiv(keccak__row_ratio, 2048)) + ((12) * (keccak__row_ratio))) + - (SafeDiv((9) * (keccak__row_ratio), 64))) + - (keccak__keccak__parse_to_diluted__cumulative_sum_offset), - keccak__keccak__parse_to_diluted__cumulative_sum_column); + (((((((SafeDiv((3) * (keccak__row_ratio), 512)) + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((25) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column1_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - ((SafeDiv(keccak__row_ratio, 2048)) + (SafeDiv((5) * (keccak__row_ratio), 32768))) + - (keccak__keccak__parse_to_diluted__final_reshaped_input_offset), - keccak__keccak__parse_to_diluted__final_reshaped_input_column); + ((SafeDiv((11) * (keccak__row_ratio), 128)) + + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - (((14) * (keccak__row_ratio)) + (SafeDiv((21) * (keccak__row_ratio), 128))) + - (keccak__keccak__parse_to_diluted__cumulative_sum_offset), - keccak__keccak__parse_to_diluted__cumulative_sum_column); + (((SafeDiv((3) * (keccak__row_ratio), 2)) + (SafeDiv((11) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - (SafeDiv((3) * (keccak__row_ratio), 16384)) + - (keccak__keccak__parse_to_diluted__final_reshaped_input_offset), - keccak__keccak__parse_to_diluted__final_reshaped_input_column); + (((((SafeDiv((3) * (keccak__row_ratio), 2)) + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((25) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - (((SafeDiv(keccak__row_ratio, 2048)) + ((14) * (keccak__row_ratio))) + - (SafeDiv((21) * (keccak__row_ratio), 128))) + - (keccak__keccak__parse_to_diluted__cumulative_sum_offset), - keccak__keccak__parse_to_diluted__cumulative_sum_column); + (((SafeDiv((29) * (keccak__row_ratio), 2)) + (SafeDiv((25) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column1_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - ((SafeDiv(keccak__row_ratio, 2048)) + (SafeDiv((3) * (keccak__row_ratio), 16384))) + - (keccak__keccak__parse_to_diluted__final_reshaped_input_offset), - keccak__keccak__parse_to_diluted__final_reshaped_input_column); + (SafeDiv((29) * (keccak__row_ratio), 2)) + (keccak__keccak__rotated_parity3_offset), + keccak__keccak__rotated_parity3_column); mask.emplace_back( - (SafeDiv((7) * (keccak__row_ratio), 32768)) + - (keccak__keccak__parse_to_diluted__final_reshaped_input_offset), - keccak__keccak__parse_to_diluted__final_reshaped_input_column); + (((SafeDiv((29) * (keccak__row_ratio), 2)) + (SafeDiv((7) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - ((SafeDiv(keccak__row_ratio, 2048)) + (SafeDiv((25) * (keccak__row_ratio), 128))) + - (keccak__keccak__parse_to_diluted__cumulative_sum_offset), - keccak__keccak__parse_to_diluted__cumulative_sum_column); + ((((SafeDiv((3) * (keccak__row_ratio), 512)) + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((25) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - ((SafeDiv(keccak__row_ratio, 2048)) + (SafeDiv((7) * (keccak__row_ratio), 32768))) + - (keccak__keccak__parse_to_diluted__final_reshaped_input_offset), - keccak__keccak__parse_to_diluted__final_reshaped_input_column); + (((SafeDiv(keccak__row_ratio, 256)) + (SafeDiv((21) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - (SafeDiv((63) * (keccak__row_ratio), 4)) + - (keccak__keccak__parse_to_diluted__cumulative_sum_offset), - keccak__keccak__parse_to_diluted__cumulative_sum_column); + (((SafeDiv((55) * (keccak__row_ratio), 4)) + (SafeDiv((21) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - (SafeDiv(keccak__row_ratio, 128)) + (keccak__keccak__parse_to_diluted__cumulative_sum_offset), - keccak__keccak__parse_to_diluted__cumulative_sum_column); + (((SafeDiv((55) * (keccak__row_ratio), 4)) + (SafeDiv((3) * (keccak__row_ratio), 512))) + + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - ((SafeDiv(keccak__row_ratio, 2048)) + (SafeDiv((63) * (keccak__row_ratio), 4))) + - (keccak__keccak__parse_to_diluted__cumulative_sum_offset), - keccak__keccak__parse_to_diluted__cumulative_sum_column); + (((SafeDiv(keccak__row_ratio, 512)) + (SafeDiv((25) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column2_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - ((SafeDiv(keccak__row_ratio, 2048)) + (SafeDiv(keccak__row_ratio, 128))) + - (keccak__keccak__parse_to_diluted__cumulative_sum_offset), - keccak__keccak__parse_to_diluted__cumulative_sum_column); + (SafeDiv(keccak__row_ratio, 512)) + (keccak__keccak__rotated_parity4_offset), + keccak__keccak__rotated_parity4_column); mask.emplace_back( - ((SafeDiv((63) * (keccak__row_ratio), 4)) + + (((SafeDiv(keccak__row_ratio, 512)) + (SafeDiv(keccak__row_ratio, 16))) + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - ((SafeDiv((15) * (keccak__row_ratio), 2048)) + (SafeDiv((63) * (keccak__row_ratio), 4))) + - (keccak__keccak__parse_to_diluted__cumulative_sum_offset), - keccak__keccak__parse_to_diluted__cumulative_sum_column); + ((((SafeDiv((55) * (keccak__row_ratio), 4)) + (SafeDiv(keccak__row_ratio, 512))) + + (SafeDiv((21) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - ((SafeDiv((15) * (keccak__row_ratio), 2048)) + (SafeDiv(keccak__row_ratio, 128))) + - (keccak__keccak__parse_to_diluted__cumulative_sum_offset), - keccak__keccak__parse_to_diluted__cumulative_sum_column); + (((SafeDiv((55) * (keccak__row_ratio), 4)) + (SafeDiv((7) * (keccak__row_ratio), 512))) + + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - (((SafeDiv((63) * (keccak__row_ratio), 4)) + (SafeDiv((3) * (keccak__row_ratio), 512))) + - ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + + (((SafeDiv(keccak__row_ratio, 256)) + (SafeDiv((25) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column2_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - ((SafeDiv((31) * (keccak__row_ratio), 4096)) + (SafeDiv((63) * (keccak__row_ratio), 4))) + - (keccak__keccak__parse_to_diluted__cumulative_sum_offset), - keccak__keccak__parse_to_diluted__cumulative_sum_column); + (SafeDiv(keccak__row_ratio, 256)) + (keccak__keccak__rotated_parity4_offset), + keccak__keccak__rotated_parity4_column); mask.emplace_back( - ((SafeDiv((31) * (keccak__row_ratio), 4096)) + (SafeDiv(keccak__row_ratio, 128))) + - (keccak__keccak__parse_to_diluted__cumulative_sum_offset), - keccak__keccak__parse_to_diluted__cumulative_sum_column); + (((SafeDiv(keccak__row_ratio, 256)) + (SafeDiv(keccak__row_ratio, 16))) + + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - (SafeDiv(keccak__row_ratio, 4)) + (keccak__keccak__parse_to_diluted__cumulative_sum_offset), - keccak__keccak__parse_to_diluted__cumulative_sum_column); + ((((SafeDiv((55) * (keccak__row_ratio), 4)) + (SafeDiv(keccak__row_ratio, 256))) + + (SafeDiv((21) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - ((SafeDiv(keccak__row_ratio, 2048)) + (SafeDiv(keccak__row_ratio, 4))) + - (keccak__keccak__parse_to_diluted__cumulative_sum_offset), - keccak__keccak__parse_to_diluted__cumulative_sum_column); + (((SafeDiv((55) * (keccak__row_ratio), 4)) + (SafeDiv((11) * (keccak__row_ratio), 512))) + + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio)) + + (((SafeDiv((9) * (keccak__row_ratio), 4)) + (SafeDiv((25) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column2_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - (SafeDiv((15) * (keccak__row_ratio), 2048)) + - (keccak__keccak__parse_to_diluted__cumulative_sum_offset), - keccak__keccak__parse_to_diluted__cumulative_sum_column); + (SafeDiv((9) * (keccak__row_ratio), 4)) + (keccak__keccak__rotated_parity4_offset), + keccak__keccak__rotated_parity4_column); mask.emplace_back( - ((SafeDiv((15) * (keccak__row_ratio), 2048)) + (SafeDiv(keccak__row_ratio, 4))) + - (keccak__keccak__parse_to_diluted__cumulative_sum_offset), - keccak__keccak__parse_to_diluted__cumulative_sum_column); + (((SafeDiv((9) * (keccak__row_ratio), 4)) + (SafeDiv(keccak__row_ratio, 16))) + + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); + mask.emplace_back( + ((SafeDiv((21) * (keccak__row_ratio), 128)) + + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( ((SafeDiv((3) * (keccak__row_ratio), 512)) + - ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - (SafeDiv((31) * (keccak__row_ratio), 4096)) + - (keccak__keccak__parse_to_diluted__cumulative_sum_offset), - keccak__keccak__parse_to_diluted__cumulative_sum_column); + (((SafeDiv((1153) * (keccak__row_ratio), 512)) + (SafeDiv((25) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column2_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - ((SafeDiv((31) * (keccak__row_ratio), 4096)) + (SafeDiv(keccak__row_ratio, 4))) + - (keccak__keccak__parse_to_diluted__cumulative_sum_offset), - keccak__keccak__parse_to_diluted__cumulative_sum_column); + (SafeDiv((1153) * (keccak__row_ratio), 512)) + (keccak__keccak__rotated_parity4_offset), + keccak__keccak__rotated_parity4_column); mask.emplace_back( - ((SafeDiv((25) * (keccak__row_ratio), 128)) + + (((SafeDiv((1153) * (keccak__row_ratio), 512)) + (SafeDiv(keccak__row_ratio, 16))) + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - ((SafeDiv((5) * (keccak__row_ratio), 128)) + - ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + + (((SafeDiv(keccak__row_ratio, 512)) + (SafeDiv((21) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - ((SafeDiv((5) * (keccak__row_ratio), 64)) + - ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + + ((SafeDiv((7) * (keccak__row_ratio), 512)) + + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - ((SafeDiv((15) * (keccak__row_ratio), 128)) + - ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + + (((SafeDiv((577) * (keccak__row_ratio), 256)) + (SafeDiv((25) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column2_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - ((SafeDiv((5) * (keccak__row_ratio), 32)) + + (SafeDiv((577) * (keccak__row_ratio), 256)) + (keccak__keccak__rotated_parity4_offset), + keccak__keccak__rotated_parity4_column); + mask.emplace_back( + (((SafeDiv((577) * (keccak__row_ratio), 256)) + (SafeDiv(keccak__row_ratio, 16))) + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - (((SafeDiv((3) * (keccak__row_ratio), 512)) + (SafeDiv((25) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column2_suboffset) * (diluted_units_row_ratio))) + + ((SafeDiv((11) * (keccak__row_ratio), 512)) + + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - (((((SafeDiv((3) * (keccak__row_ratio), 512)) + (SafeDiv((3) * (keccak__row_ratio), 512))) + + ((SafeDiv((3) * (keccak__row_ratio), 64)) + + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); + mask.emplace_back( + ((((5) * (keccak__row_ratio)) + (SafeDiv((3) * (keccak__row_ratio), 64))) + + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); + mask.emplace_back( + ((((((((((5) * (keccak__row_ratio)) + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + (SafeDiv((3) * (keccak__row_ratio), 512))) + (SafeDiv((25) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column1_suboffset) * (diluted_units_row_ratio))) + + ((keccak__keccak__diluted_column2_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - ((SafeDiv((25) * (keccak__row_ratio), 128)) + - ((keccak__keccak__diluted_column1_suboffset) * (diluted_units_row_ratio))) + + (((((11) * (keccak__row_ratio)) + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((25) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - ((SafeDiv(keccak__row_ratio, 128)) + + ((11) * (keccak__row_ratio)) + (keccak__keccak__rotated_parity0_offset), + keccak__keccak__rotated_parity0_column); + mask.emplace_back( + ((((11) * (keccak__row_ratio)) + (SafeDiv((9) * (keccak__row_ratio), 128))) + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - ((SafeDiv((3) * (keccak__row_ratio), 64)) + - ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + + ((((((((SafeDiv((3) * (keccak__row_ratio), 512)) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((25) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column2_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - ((SafeDiv((11) * (keccak__row_ratio), 128)) + - ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + + ((SafeDiv((7) * (keccak__row_ratio), 128)) + + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - ((SafeDiv(keccak__row_ratio, 8)) + - ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + + (((SafeDiv((3) * (keccak__row_ratio), 4)) + (SafeDiv((7) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - ((SafeDiv((21) * (keccak__row_ratio), 128)) + - ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + + ((((SafeDiv((3) * (keccak__row_ratio), 4)) + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((25) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - ((((SafeDiv((3) * (keccak__row_ratio), 512)) + (SafeDiv((3) * (keccak__row_ratio), 512))) + + ((((SafeDiv((61) * (keccak__row_ratio), 4)) + (SafeDiv((3) * (keccak__row_ratio), 512))) + (SafeDiv((25) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column1_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); + mask.emplace_back( + (SafeDiv((61) * (keccak__row_ratio), 4)) + (keccak__keccak__rotated_parity1_offset), + keccak__keccak__rotated_parity1_column); + mask.emplace_back( + (((SafeDiv((61) * (keccak__row_ratio), 4)) + (SafeDiv((5) * (keccak__row_ratio), 64))) + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - (((((SafeDiv((3) * (keccak__row_ratio), 512)) + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (((SafeDiv((3) * (keccak__row_ratio), 512)) + (SafeDiv((25) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); + mask.emplace_back( + ((SafeDiv((17) * (keccak__row_ratio), 128)) + + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); + mask.emplace_back( + (((SafeDiv((5) * (keccak__row_ratio), 2)) + (SafeDiv((17) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); + mask.emplace_back( + ((((((((SafeDiv((5) * (keccak__row_ratio), 2)) + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + (SafeDiv((3) * (keccak__row_ratio), 512))) + (SafeDiv((25) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column2_suboffset) * (diluted_units_row_ratio))) + + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - ((SafeDiv((25) * (keccak__row_ratio), 128)) + - ((keccak__keccak__diluted_column2_suboffset) * (diluted_units_row_ratio))) + + (((SafeDiv((27) * (keccak__row_ratio), 2)) + (SafeDiv((25) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - ((SafeDiv(keccak__row_ratio, 64)) + + (SafeDiv((27) * (keccak__row_ratio), 2)) + (keccak__keccak__rotated_parity2_offset), + keccak__keccak__rotated_parity2_column); + mask.emplace_back( + (((SafeDiv((27) * (keccak__row_ratio), 2)) + (SafeDiv((11) * (keccak__row_ratio), 128))) + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - ((SafeDiv((7) * (keccak__row_ratio), 128)) + - ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + + (((((((SafeDiv((3) * (keccak__row_ratio), 512)) + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((25) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - ((SafeDiv((3) * (keccak__row_ratio), 32)) + - ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + + ((SafeDiv(keccak__row_ratio, 64)) + + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - ((SafeDiv((17) * (keccak__row_ratio), 128)) + - ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + + (((SafeDiv((43) * (keccak__row_ratio), 4)) + (SafeDiv(keccak__row_ratio, 64))) + + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - ((SafeDiv((11) * (keccak__row_ratio), 64)) + - ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + + ((((((((SafeDiv((43) * (keccak__row_ratio), 4)) + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((25) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column2_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); + mask.emplace_back( + (((SafeDiv((21) * (keccak__row_ratio), 4)) + (SafeDiv((25) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column1_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - ((((SafeDiv((3) * (keccak__row_ratio), 512)) + (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((25) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column1_suboffset) * (diluted_units_row_ratio))) + + (SafeDiv((21) * (keccak__row_ratio), 4)) + (keccak__keccak__rotated_parity3_offset), + keccak__keccak__rotated_parity3_column); + mask.emplace_back( + (((SafeDiv((21) * (keccak__row_ratio), 4)) + (SafeDiv((3) * (keccak__row_ratio), 32))) + + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - ((((((SafeDiv((3) * (keccak__row_ratio), 512)) + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (((((((SafeDiv((3) * (keccak__row_ratio), 512)) + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + (SafeDiv((3) * (keccak__row_ratio), 512))) + (SafeDiv((3) * (keccak__row_ratio), 512))) + (SafeDiv((25) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + + ((keccak__keccak__diluted_column2_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - (((SafeDiv((3) * (keccak__row_ratio), 512)) + (SafeDiv((25) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + + ((SafeDiv((3) * (keccak__row_ratio), 32)) + + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - ((SafeDiv((3) * (keccak__row_ratio), 128)) + - ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + + (((SafeDiv((25) * (keccak__row_ratio), 4)) + (SafeDiv((3) * (keccak__row_ratio), 32))) + + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - ((SafeDiv(keccak__row_ratio, 16)) + + (((((((((((SafeDiv((25) * (keccak__row_ratio), 4)) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((25) * (keccak__row_ratio), 128))) + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - ((SafeDiv((13) * (keccak__row_ratio), 128)) + - ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + + (((SafeDiv((39) * (keccak__row_ratio), 4)) + (SafeDiv((25) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column2_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - ((SafeDiv((9) * (keccak__row_ratio), 64)) + - ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + (SafeDiv((39) * (keccak__row_ratio), 4)) + (keccak__keccak__rotated_parity4_offset), + keccak__keccak__rotated_parity4_column); mask.emplace_back( - ((SafeDiv((23) * (keccak__row_ratio), 128)) + + (((SafeDiv((39) * (keccak__row_ratio), 4)) + (SafeDiv((13) * (keccak__row_ratio), 128))) + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - ((((SafeDiv((3) * (keccak__row_ratio), 512)) + (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((25) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column2_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); - mask.emplace_back( - ((((((SafeDiv((3) * (keccak__row_ratio), 512)) + (SafeDiv((3) * (keccak__row_ratio), 512))) + + ((((((((((SafeDiv((3) * (keccak__row_ratio), 512)) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + (SafeDiv((3) * (keccak__row_ratio), 512))) + (SafeDiv((3) * (keccak__row_ratio), 512))) + (SafeDiv((25) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column1_suboffset) * (diluted_units_row_ratio))) + + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - (((SafeDiv((3) * (keccak__row_ratio), 512)) + (SafeDiv((25) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column1_suboffset) * (diluted_units_row_ratio))) + + (((SafeDiv(keccak__row_ratio, 256)) + (SafeDiv((11) * (keccak__row_ratio), 64))) + + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - ((SafeDiv(keccak__row_ratio, 32)) + - ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + + (((SafeDiv((39) * (keccak__row_ratio), 4)) + (SafeDiv((11) * (keccak__row_ratio), 64))) + + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - ((SafeDiv((9) * (keccak__row_ratio), 128)) + - ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + + (((SafeDiv((39) * (keccak__row_ratio), 4)) + (SafeDiv((15) * (keccak__row_ratio), 512))) + + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - ((SafeDiv((7) * (keccak__row_ratio), 64)) + + ((((SafeDiv(keccak__row_ratio, 512)) + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((25) * (keccak__row_ratio), 128))) + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - ((SafeDiv((19) * (keccak__row_ratio), 128)) + + (SafeDiv(keccak__row_ratio, 512)) + (keccak__keccak__rotated_parity0_offset), + keccak__keccak__rotated_parity0_column); + mask.emplace_back( + (((SafeDiv(keccak__row_ratio, 512)) + (SafeDiv((7) * (keccak__row_ratio), 64))) + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - ((SafeDiv((3) * (keccak__row_ratio), 16)) + - ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + + ((((SafeDiv((39) * (keccak__row_ratio), 4)) + (SafeDiv(keccak__row_ratio, 512))) + + (SafeDiv((11) * (keccak__row_ratio), 64))) + + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - (((((SafeDiv((3) * (keccak__row_ratio), 512)) + (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((25) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + + (((SafeDiv((39) * (keccak__row_ratio), 4)) + (SafeDiv((19) * (keccak__row_ratio), 512))) + + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - ((((((SafeDiv((3) * (keccak__row_ratio), 512)) + (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + + ((((SafeDiv(keccak__row_ratio, 256)) + (SafeDiv((3) * (keccak__row_ratio), 512))) + (SafeDiv((25) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column2_suboffset) * (diluted_units_row_ratio))) + + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - (SafeDiv(keccak__row_ratio, 4)) + (keccak__keccak__rotated_parity0_offset), + (SafeDiv(keccak__row_ratio, 256)) + (keccak__keccak__rotated_parity0_offset), keccak__keccak__rotated_parity0_column); - mask.emplace_back(keccak__keccak__rotated_parity0_offset, keccak__keccak__rotated_parity0_column); mask.emplace_back( - (((SafeDiv((63) * (keccak__row_ratio), 4)) + (SafeDiv((25) * (keccak__row_ratio), 128))) + + (((SafeDiv(keccak__row_ratio, 256)) + (SafeDiv((7) * (keccak__row_ratio), 64))) + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - (SafeDiv(keccak__row_ratio, 4)) + (keccak__keccak__rotated_parity1_offset), - keccak__keccak__rotated_parity1_column); - mask.emplace_back(keccak__keccak__rotated_parity1_offset, keccak__keccak__rotated_parity1_column); - mask.emplace_back( - (((SafeDiv((63) * (keccak__row_ratio), 4)) + (SafeDiv((25) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column1_suboffset) * (diluted_units_row_ratio))) + + ((((SafeDiv((39) * (keccak__row_ratio), 4)) + (SafeDiv(keccak__row_ratio, 256))) + + (SafeDiv((11) * (keccak__row_ratio), 64))) + + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - (SafeDiv(keccak__row_ratio, 4)) + (keccak__keccak__rotated_parity2_offset), - keccak__keccak__rotated_parity2_column); - mask.emplace_back(keccak__keccak__rotated_parity2_offset, keccak__keccak__rotated_parity2_column); - mask.emplace_back( - (((SafeDiv((63) * (keccak__row_ratio), 4)) + (SafeDiv((25) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column2_suboffset) * (diluted_units_row_ratio))) + + (((SafeDiv((39) * (keccak__row_ratio), 4)) + (SafeDiv((23) * (keccak__row_ratio), 512))) + + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - (SafeDiv(keccak__row_ratio, 4)) + (keccak__keccak__rotated_parity3_offset), - keccak__keccak__rotated_parity3_column); - mask.emplace_back(keccak__keccak__rotated_parity3_offset, keccak__keccak__rotated_parity3_column); - mask.emplace_back( - ((((SafeDiv((63) * (keccak__row_ratio), 4)) + (SafeDiv((3) * (keccak__row_ratio), 512))) + + ((((SafeDiv((25) * (keccak__row_ratio), 4)) + (SafeDiv((3) * (keccak__row_ratio), 512))) + (SafeDiv((25) * (keccak__row_ratio), 128))) + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - (SafeDiv(keccak__row_ratio, 4)) + (keccak__keccak__rotated_parity4_offset), - keccak__keccak__rotated_parity4_column); - mask.emplace_back(keccak__keccak__rotated_parity4_offset, keccak__keccak__rotated_parity4_column); + (SafeDiv((25) * (keccak__row_ratio), 4)) + (keccak__keccak__rotated_parity0_offset), + keccak__keccak__rotated_parity0_column); mask.emplace_back( - ((((SafeDiv((63) * (keccak__row_ratio), 4)) + (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((25) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column1_suboffset) * (diluted_units_row_ratio))) + + (((SafeDiv((25) * (keccak__row_ratio), 4)) + (SafeDiv((7) * (keccak__row_ratio), 64))) + + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio)) + + ((SafeDiv((11) * (keccak__row_ratio), 64)) + + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - (((((((SafeDiv((3) * (keccak__row_ratio), 512)) + (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + + ((SafeDiv((15) * (keccak__row_ratio), 512)) + + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); + mask.emplace_back( + ((((SafeDiv((3201) * (keccak__row_ratio), 512)) + (SafeDiv((3) * (keccak__row_ratio), 512))) + (SafeDiv((25) * (keccak__row_ratio), 128))) + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - ((SafeDiv((5) * (keccak__row_ratio), 64)) + + (SafeDiv((3201) * (keccak__row_ratio), 512)) + (keccak__keccak__rotated_parity0_offset), + keccak__keccak__rotated_parity0_column); + mask.emplace_back( + (((SafeDiv((3201) * (keccak__row_ratio), 512)) + (SafeDiv((7) * (keccak__row_ratio), 64))) + + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); + mask.emplace_back( + (((SafeDiv(keccak__row_ratio, 512)) + (SafeDiv((11) * (keccak__row_ratio), 64))) + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - (((SafeDiv(keccak__row_ratio, 4)) + (SafeDiv((5) * (keccak__row_ratio), 64))) + + ((SafeDiv((19) * (keccak__row_ratio), 512)) + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - ((((((((((SafeDiv(keccak__row_ratio, 4)) + (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + + ((((SafeDiv((1601) * (keccak__row_ratio), 256)) + (SafeDiv((3) * (keccak__row_ratio), 512))) + (SafeDiv((25) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column2_suboffset) * (diluted_units_row_ratio))) + + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - (SafeDiv((63) * (keccak__row_ratio), 4)) + (keccak__keccak__rotated_parity2_offset), - keccak__keccak__rotated_parity2_column); + (SafeDiv((1601) * (keccak__row_ratio), 256)) + (keccak__keccak__rotated_parity0_offset), + keccak__keccak__rotated_parity0_column); mask.emplace_back( - (((SafeDiv((63) * (keccak__row_ratio), 4)) + (SafeDiv(keccak__row_ratio, 128))) + + (((SafeDiv((1601) * (keccak__row_ratio), 256)) + (SafeDiv((7) * (keccak__row_ratio), 64))) + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - (((((((((SafeDiv((3) * (keccak__row_ratio), 512)) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((25) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column2_suboffset) * (diluted_units_row_ratio))) + + ((SafeDiv((23) * (keccak__row_ratio), 512)) + + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - ((SafeDiv((5) * (keccak__row_ratio), 32)) + + (((SafeDiv(keccak__row_ratio, 256)) + (SafeDiv((23) * (keccak__row_ratio), 128))) + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - (((SafeDiv((31) * (keccak__row_ratio), 2)) + (SafeDiv((5) * (keccak__row_ratio), 32))) + + (((SafeDiv((41) * (keccak__row_ratio), 4)) + (SafeDiv((23) * (keccak__row_ratio), 128))) + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - (((((((((((SafeDiv((31) * (keccak__row_ratio), 2)) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((25) * (keccak__row_ratio), 128))) + + (((SafeDiv((41) * (keccak__row_ratio), 4)) + (SafeDiv((27) * (keccak__row_ratio), 512))) + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - (((SafeDiv(keccak__row_ratio, 2)) + (SafeDiv((25) * (keccak__row_ratio), 128))) + + ((((SafeDiv(keccak__row_ratio, 512)) + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((25) * (keccak__row_ratio), 128))) + ((keccak__keccak__diluted_column1_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - (SafeDiv(keccak__row_ratio, 2)) + (keccak__keccak__rotated_parity3_offset), - keccak__keccak__rotated_parity3_column); + (SafeDiv(keccak__row_ratio, 512)) + (keccak__keccak__rotated_parity1_offset), + keccak__keccak__rotated_parity1_column); mask.emplace_back( - (((SafeDiv(keccak__row_ratio, 2)) + (SafeDiv(keccak__row_ratio, 64))) + + (((SafeDiv(keccak__row_ratio, 512)) + (SafeDiv((15) * (keccak__row_ratio), 128))) + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - ((((((((((SafeDiv((3) * (keccak__row_ratio), 512)) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((25) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); - mask.emplace_back( - ((SafeDiv((5) * (keccak__row_ratio), 128)) + + ((((SafeDiv((41) * (keccak__row_ratio), 4)) + (SafeDiv(keccak__row_ratio, 512))) + + (SafeDiv((23) * (keccak__row_ratio), 128))) + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - ((((7) * (keccak__row_ratio)) + (SafeDiv((5) * (keccak__row_ratio), 128))) + + (((SafeDiv((41) * (keccak__row_ratio), 4)) + (SafeDiv((31) * (keccak__row_ratio), 512))) + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - ((((((((((7) * (keccak__row_ratio)) + (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + + ((((SafeDiv(keccak__row_ratio, 256)) + (SafeDiv((3) * (keccak__row_ratio), 512))) + (SafeDiv((25) * (keccak__row_ratio), 128))) + ((keccak__keccak__diluted_column1_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - ((((9) * (keccak__row_ratio)) + (SafeDiv((25) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column2_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); - mask.emplace_back( - ((9) * (keccak__row_ratio)) + (keccak__keccak__rotated_parity4_offset), - keccak__keccak__rotated_parity4_column); - mask.emplace_back( - ((((9) * (keccak__row_ratio)) + (SafeDiv((3) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + (SafeDiv(keccak__row_ratio, 256)) + (keccak__keccak__rotated_parity1_offset), + keccak__keccak__rotated_parity1_column); mask.emplace_back( - ((((((((SafeDiv((3) * (keccak__row_ratio), 512)) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((25) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column1_suboffset) * (diluted_units_row_ratio))) + + (((SafeDiv(keccak__row_ratio, 256)) + (SafeDiv((15) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - ((SafeDiv((15) * (keccak__row_ratio), 128)) + + ((((SafeDiv((41) * (keccak__row_ratio), 4)) + (SafeDiv(keccak__row_ratio, 256))) + + (SafeDiv((23) * (keccak__row_ratio), 128))) + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - (((SafeDiv((27) * (keccak__row_ratio), 4)) + (SafeDiv((15) * (keccak__row_ratio), 128))) + + (((SafeDiv((41) * (keccak__row_ratio), 4)) + (SafeDiv((35) * (keccak__row_ratio), 512))) + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - ((((((SafeDiv((27) * (keccak__row_ratio), 4)) + (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + + ((((SafeDiv((23) * (keccak__row_ratio), 4)) + (SafeDiv((3) * (keccak__row_ratio), 512))) + (SafeDiv((25) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + + ((keccak__keccak__diluted_column1_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - ((((SafeDiv((37) * (keccak__row_ratio), 4)) + (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((25) * (keccak__row_ratio), 128))) + + (SafeDiv((23) * (keccak__row_ratio), 4)) + (keccak__keccak__rotated_parity1_offset), + keccak__keccak__rotated_parity1_column); + mask.emplace_back( + (((SafeDiv((23) * (keccak__row_ratio), 4)) + (SafeDiv((15) * (keccak__row_ratio), 128))) + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - (SafeDiv((37) * (keccak__row_ratio), 4)) + (keccak__keccak__rotated_parity0_offset), - keccak__keccak__rotated_parity0_column); + ((SafeDiv((23) * (keccak__row_ratio), 128)) + + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - (((SafeDiv((37) * (keccak__row_ratio), 4)) + (SafeDiv(keccak__row_ratio, 32))) + - ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + + ((SafeDiv((27) * (keccak__row_ratio), 512)) + + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - (((((SafeDiv((3) * (keccak__row_ratio), 512)) + (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + + ((((SafeDiv((2945) * (keccak__row_ratio), 512)) + (SafeDiv((3) * (keccak__row_ratio), 512))) + (SafeDiv((25) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + + ((keccak__keccak__diluted_column1_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - ((SafeDiv(keccak__row_ratio, 8)) + - ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + + (SafeDiv((2945) * (keccak__row_ratio), 512)) + (keccak__keccak__rotated_parity1_offset), + keccak__keccak__rotated_parity1_column); + mask.emplace_back( + (((SafeDiv((2945) * (keccak__row_ratio), 512)) + (SafeDiv((15) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - ((((9) * (keccak__row_ratio)) + (SafeDiv(keccak__row_ratio, 8))) + + (((SafeDiv(keccak__row_ratio, 512)) + (SafeDiv((23) * (keccak__row_ratio), 128))) + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - ((((((((9) * (keccak__row_ratio)) + (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((25) * (keccak__row_ratio), 128))) + + ((SafeDiv((31) * (keccak__row_ratio), 512)) + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - (((((7) * (keccak__row_ratio)) + (SafeDiv((3) * (keccak__row_ratio), 512))) + + ((((SafeDiv((1473) * (keccak__row_ratio), 256)) + (SafeDiv((3) * (keccak__row_ratio), 512))) + (SafeDiv((25) * (keccak__row_ratio), 128))) + ((keccak__keccak__diluted_column1_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - ((7) * (keccak__row_ratio)) + (keccak__keccak__rotated_parity1_offset), + (SafeDiv((1473) * (keccak__row_ratio), 256)) + (keccak__keccak__rotated_parity1_offset), keccak__keccak__rotated_parity1_column); mask.emplace_back( - ((((7) * (keccak__row_ratio)) + (SafeDiv((5) * (keccak__row_ratio), 128))) + + (((SafeDiv((1473) * (keccak__row_ratio), 256)) + (SafeDiv((15) * (keccak__row_ratio), 128))) + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - ((((((SafeDiv((3) * (keccak__row_ratio), 512)) + (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((25) * (keccak__row_ratio), 128))) + + ((SafeDiv((35) * (keccak__row_ratio), 512)) + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - ((SafeDiv(keccak__row_ratio, 128)) + + ((SafeDiv(keccak__row_ratio, 16)) + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - ((((11) * (keccak__row_ratio)) + (SafeDiv(keccak__row_ratio, 128))) + + (((SafeDiv((45) * (keccak__row_ratio), 4)) + (SafeDiv(keccak__row_ratio, 16))) + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - (((((((((11) * (keccak__row_ratio)) + (SafeDiv((3) * (keccak__row_ratio), 512))) + + ((((((((((SafeDiv((45) * (keccak__row_ratio), 4)) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + (SafeDiv((3) * (keccak__row_ratio), 512))) + (SafeDiv((3) * (keccak__row_ratio), 512))) + (SafeDiv((3) * (keccak__row_ratio), 512))) + (SafeDiv((3) * (keccak__row_ratio), 512))) + (SafeDiv((25) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column1_suboffset) * (diluted_units_row_ratio))) + + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - ((((5) * (keccak__row_ratio)) + (SafeDiv((25) * (keccak__row_ratio), 128))) + + (((SafeDiv((19) * (keccak__row_ratio), 4)) + (SafeDiv((25) * (keccak__row_ratio), 128))) + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - ((5) * (keccak__row_ratio)) + (keccak__keccak__rotated_parity2_offset), + (SafeDiv((19) * (keccak__row_ratio), 4)) + (keccak__keccak__rotated_parity2_offset), keccak__keccak__rotated_parity2_column); mask.emplace_back( - ((((5) * (keccak__row_ratio)) + (SafeDiv((3) * (keccak__row_ratio), 64))) + + (((SafeDiv((19) * (keccak__row_ratio), 4)) + (SafeDiv(keccak__row_ratio, 8))) + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - (((((((SafeDiv((3) * (keccak__row_ratio), 512)) + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (((((((((SafeDiv((3) * (keccak__row_ratio), 512)) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + (SafeDiv((3) * (keccak__row_ratio), 512))) + (SafeDiv((3) * (keccak__row_ratio), 512))) + (SafeDiv((3) * (keccak__row_ratio), 512))) + (SafeDiv((25) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column1_suboffset) * (diluted_units_row_ratio))) + + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - ((SafeDiv((11) * (keccak__row_ratio), 128)) + + ((SafeDiv((9) * (keccak__row_ratio), 64)) + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - (((SafeDiv((3) * (keccak__row_ratio), 2)) + (SafeDiv((11) * (keccak__row_ratio), 128))) + + (((SafeDiv((15) * (keccak__row_ratio), 4)) + (SafeDiv((9) * (keccak__row_ratio), 64))) + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - (((((SafeDiv((3) * (keccak__row_ratio), 2)) + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (((((((((SafeDiv((15) * (keccak__row_ratio), 4)) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + (SafeDiv((3) * (keccak__row_ratio), 512))) + (SafeDiv((25) * (keccak__row_ratio), 128))) + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - (((SafeDiv((29) * (keccak__row_ratio), 2)) + (SafeDiv((25) * (keccak__row_ratio), 128))) + + (((SafeDiv((49) * (keccak__row_ratio), 4)) + (SafeDiv((25) * (keccak__row_ratio), 128))) + ((keccak__keccak__diluted_column1_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - (SafeDiv((29) * (keccak__row_ratio), 2)) + (keccak__keccak__rotated_parity3_offset), + (SafeDiv((49) * (keccak__row_ratio), 4)) + (keccak__keccak__rotated_parity3_offset), keccak__keccak__rotated_parity3_column); mask.emplace_back( - (((SafeDiv((29) * (keccak__row_ratio), 2)) + (SafeDiv((7) * (keccak__row_ratio), 128))) + + (((SafeDiv((49) * (keccak__row_ratio), 4)) + (SafeDiv((17) * (keccak__row_ratio), 128))) + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - ((((SafeDiv((3) * (keccak__row_ratio), 512)) + (SafeDiv((3) * (keccak__row_ratio), 512))) + + ((((((((SafeDiv((3) * (keccak__row_ratio), 512)) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + (SafeDiv((25) * (keccak__row_ratio), 128))) + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - (((SafeDiv(keccak__row_ratio, 256)) + (SafeDiv((21) * (keccak__row_ratio), 128))) + + ((SafeDiv((3) * (keccak__row_ratio), 128)) + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - (((SafeDiv((55) * (keccak__row_ratio), 4)) + (SafeDiv((21) * (keccak__row_ratio), 128))) + + (((SafeDiv((21) * (keccak__row_ratio), 4)) + (SafeDiv((3) * (keccak__row_ratio), 128))) + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - (((SafeDiv((55) * (keccak__row_ratio), 4)) + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (((SafeDiv((21) * (keccak__row_ratio), 4)) + (SafeDiv((25) * (keccak__row_ratio), 128))) + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - (((SafeDiv(keccak__row_ratio, 512)) + (SafeDiv((25) * (keccak__row_ratio), 128))) + + (((SafeDiv((43) * (keccak__row_ratio), 4)) + (SafeDiv((25) * (keccak__row_ratio), 128))) + ((keccak__keccak__diluted_column2_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - (SafeDiv(keccak__row_ratio, 512)) + (keccak__keccak__rotated_parity4_offset), + (SafeDiv((43) * (keccak__row_ratio), 4)) + (keccak__keccak__rotated_parity4_offset), keccak__keccak__rotated_parity4_column); mask.emplace_back( - (((SafeDiv(keccak__row_ratio, 512)) + (SafeDiv(keccak__row_ratio, 16))) + + (((SafeDiv((43) * (keccak__row_ratio), 4)) + (SafeDiv((9) * (keccak__row_ratio), 64))) + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - ((((SafeDiv((55) * (keccak__row_ratio), 4)) + (SafeDiv(keccak__row_ratio, 512))) + - (SafeDiv((21) * (keccak__row_ratio), 128))) + + ((SafeDiv((25) * (keccak__row_ratio), 128)) + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - (((SafeDiv((55) * (keccak__row_ratio), 4)) + (SafeDiv((7) * (keccak__row_ratio), 512))) + + ((SafeDiv((13) * (keccak__row_ratio), 128)) + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - (((SafeDiv(keccak__row_ratio, 256)) + (SafeDiv((25) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column2_suboffset) * (diluted_units_row_ratio))) + + ((((2) * (keccak__row_ratio)) + (SafeDiv((13) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - (SafeDiv(keccak__row_ratio, 256)) + (keccak__keccak__rotated_parity4_offset), - keccak__keccak__rotated_parity4_column); - mask.emplace_back( - (((SafeDiv(keccak__row_ratio, 256)) + (SafeDiv(keccak__row_ratio, 16))) + - ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + + ((((((((((((2) * (keccak__row_ratio)) + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((25) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column1_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - ((((SafeDiv((55) * (keccak__row_ratio), 4)) + (SafeDiv(keccak__row_ratio, 256))) + - (SafeDiv((21) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + + (((((14) * (keccak__row_ratio)) + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((25) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - (((SafeDiv((55) * (keccak__row_ratio), 4)) + (SafeDiv((11) * (keccak__row_ratio), 512))) + - ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((14) * (keccak__row_ratio)) + (keccak__keccak__rotated_parity0_offset), + keccak__keccak__rotated_parity0_column); mask.emplace_back( - (((SafeDiv((9) * (keccak__row_ratio), 4)) + (SafeDiv((25) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column2_suboffset) * (diluted_units_row_ratio))) + + ((((14) * (keccak__row_ratio)) + (SafeDiv((19) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - (SafeDiv((9) * (keccak__row_ratio), 4)) + (keccak__keccak__rotated_parity4_offset), - keccak__keccak__rotated_parity4_column); - mask.emplace_back( - (((SafeDiv((9) * (keccak__row_ratio), 4)) + (SafeDiv(keccak__row_ratio, 16))) + - ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + + ((((((((((SafeDiv((3) * (keccak__row_ratio), 512)) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((25) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column1_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - ((SafeDiv((21) * (keccak__row_ratio), 128)) + + ((SafeDiv((7) * (keccak__row_ratio), 64)) + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - ((SafeDiv((3) * (keccak__row_ratio), 512)) + + (((SafeDiv((9) * (keccak__row_ratio), 2)) + (SafeDiv((7) * (keccak__row_ratio), 64))) + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - (((SafeDiv((1153) * (keccak__row_ratio), 512)) + (SafeDiv((25) * (keccak__row_ratio), 128))) + + (((((((((((SafeDiv((9) * (keccak__row_ratio), 2)) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((25) * (keccak__row_ratio), 128))) + ((keccak__keccak__diluted_column2_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - (SafeDiv((1153) * (keccak__row_ratio), 512)) + (keccak__keccak__rotated_parity4_offset), - keccak__keccak__rotated_parity4_column); - mask.emplace_back( - (((SafeDiv((1153) * (keccak__row_ratio), 512)) + (SafeDiv(keccak__row_ratio, 16))) + - ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + + ((((SafeDiv((23) * (keccak__row_ratio), 2)) + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((25) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column1_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - (((SafeDiv(keccak__row_ratio, 512)) + (SafeDiv((21) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + (SafeDiv((23) * (keccak__row_ratio), 2)) + (keccak__keccak__rotated_parity1_offset), + keccak__keccak__rotated_parity1_column); mask.emplace_back( - ((SafeDiv((7) * (keccak__row_ratio), 512)) + - ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + + (((SafeDiv((23) * (keccak__row_ratio), 2)) + (SafeDiv((5) * (keccak__row_ratio), 32))) + + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - (((SafeDiv((577) * (keccak__row_ratio), 256)) + (SafeDiv((25) * (keccak__row_ratio), 128))) + + ((((((((((SafeDiv((3) * (keccak__row_ratio), 512)) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((25) * (keccak__row_ratio), 128))) + ((keccak__keccak__diluted_column2_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - (SafeDiv((577) * (keccak__row_ratio), 256)) + (keccak__keccak__rotated_parity4_offset), - keccak__keccak__rotated_parity4_column); - mask.emplace_back( - (((SafeDiv((577) * (keccak__row_ratio), 256)) + (SafeDiv(keccak__row_ratio, 16))) + - ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); - mask.emplace_back( - ((SafeDiv((11) * (keccak__row_ratio), 512)) + + (((SafeDiv(keccak__row_ratio, 256)) + (SafeDiv((3) * (keccak__row_ratio), 16))) + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - ((SafeDiv((3) * (keccak__row_ratio), 64)) + + (((SafeDiv(keccak__row_ratio, 2)) + (SafeDiv((3) * (keccak__row_ratio), 16))) + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - ((((5) * (keccak__row_ratio)) + (SafeDiv((3) * (keccak__row_ratio), 64))) + + (((SafeDiv(keccak__row_ratio, 2)) + (SafeDiv((39) * (keccak__row_ratio), 512))) + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - ((((((((((5) * (keccak__row_ratio)) + (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((25) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column2_suboffset) * (diluted_units_row_ratio))) + + (((SafeDiv(keccak__row_ratio, 512)) + (SafeDiv((25) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - (((((11) * (keccak__row_ratio)) + (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((25) * (keccak__row_ratio), 128))) + + (SafeDiv(keccak__row_ratio, 512)) + (keccak__keccak__rotated_parity2_offset), + keccak__keccak__rotated_parity2_column); + mask.emplace_back( + (((SafeDiv(keccak__row_ratio, 512)) + (SafeDiv((21) * (keccak__row_ratio), 128))) + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - ((11) * (keccak__row_ratio)) + (keccak__keccak__rotated_parity0_offset), - keccak__keccak__rotated_parity0_column); + ((((SafeDiv(keccak__row_ratio, 2)) + (SafeDiv(keccak__row_ratio, 512))) + + (SafeDiv((3) * (keccak__row_ratio), 16))) + + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - ((((11) * (keccak__row_ratio)) + (SafeDiv((9) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + + (((SafeDiv(keccak__row_ratio, 2)) + (SafeDiv((43) * (keccak__row_ratio), 512))) + + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - ((((((((SafeDiv((3) * (keccak__row_ratio), 512)) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((25) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column2_suboffset) * (diluted_units_row_ratio))) + + (((SafeDiv(keccak__row_ratio, 256)) + (SafeDiv((25) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - ((SafeDiv((7) * (keccak__row_ratio), 128)) + - ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + + (SafeDiv(keccak__row_ratio, 256)) + (keccak__keccak__rotated_parity2_offset), + keccak__keccak__rotated_parity2_column); + mask.emplace_back( + (((SafeDiv(keccak__row_ratio, 256)) + (SafeDiv((21) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - (((SafeDiv((3) * (keccak__row_ratio), 4)) + (SafeDiv((7) * (keccak__row_ratio), 128))) + + ((((SafeDiv(keccak__row_ratio, 2)) + (SafeDiv(keccak__row_ratio, 256))) + + (SafeDiv((3) * (keccak__row_ratio), 16))) + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - ((((SafeDiv((3) * (keccak__row_ratio), 4)) + (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((25) * (keccak__row_ratio), 128))) + + (((SafeDiv(keccak__row_ratio, 2)) + (SafeDiv((47) * (keccak__row_ratio), 512))) + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - ((((SafeDiv((61) * (keccak__row_ratio), 4)) + (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((25) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column1_suboffset) * (diluted_units_row_ratio))) + + (((SafeDiv((31) * (keccak__row_ratio), 2)) + (SafeDiv((25) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - (SafeDiv((61) * (keccak__row_ratio), 4)) + (keccak__keccak__rotated_parity1_offset), - keccak__keccak__rotated_parity1_column); + (SafeDiv((31) * (keccak__row_ratio), 2)) + (keccak__keccak__rotated_parity2_offset), + keccak__keccak__rotated_parity2_column); mask.emplace_back( - (((SafeDiv((61) * (keccak__row_ratio), 4)) + (SafeDiv((5) * (keccak__row_ratio), 64))) + + (((SafeDiv((31) * (keccak__row_ratio), 2)) + (SafeDiv((21) * (keccak__row_ratio), 128))) + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - (((SafeDiv((3) * (keccak__row_ratio), 512)) + (SafeDiv((25) * (keccak__row_ratio), 128))) + + ((SafeDiv((3) * (keccak__row_ratio), 16)) + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - ((SafeDiv((17) * (keccak__row_ratio), 128)) + + ((SafeDiv((39) * (keccak__row_ratio), 512)) + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - (((SafeDiv((5) * (keccak__row_ratio), 2)) + (SafeDiv((17) * (keccak__row_ratio), 128))) + + (((SafeDiv((7937) * (keccak__row_ratio), 512)) + (SafeDiv((25) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); + mask.emplace_back( + (SafeDiv((7937) * (keccak__row_ratio), 512)) + (keccak__keccak__rotated_parity2_offset), + keccak__keccak__rotated_parity2_column); + mask.emplace_back( + (((SafeDiv((7937) * (keccak__row_ratio), 512)) + (SafeDiv((21) * (keccak__row_ratio), 128))) + + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); + mask.emplace_back( + (((SafeDiv(keccak__row_ratio, 512)) + (SafeDiv((3) * (keccak__row_ratio), 16))) + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - ((((((((SafeDiv((5) * (keccak__row_ratio), 2)) + (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((25) * (keccak__row_ratio), 128))) + + ((SafeDiv((43) * (keccak__row_ratio), 512)) + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - (((SafeDiv((27) * (keccak__row_ratio), 2)) + (SafeDiv((25) * (keccak__row_ratio), 128))) + + (((SafeDiv((3969) * (keccak__row_ratio), 256)) + (SafeDiv((25) * (keccak__row_ratio), 128))) + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - (SafeDiv((27) * (keccak__row_ratio), 2)) + (keccak__keccak__rotated_parity2_offset), + (SafeDiv((3969) * (keccak__row_ratio), 256)) + (keccak__keccak__rotated_parity2_offset), keccak__keccak__rotated_parity2_column); mask.emplace_back( - (((SafeDiv((27) * (keccak__row_ratio), 2)) + (SafeDiv((11) * (keccak__row_ratio), 128))) + + (((SafeDiv((3969) * (keccak__row_ratio), 256)) + (SafeDiv((21) * (keccak__row_ratio), 128))) + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - (((((((SafeDiv((3) * (keccak__row_ratio), 512)) + (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((25) * (keccak__row_ratio), 128))) + + ((SafeDiv((47) * (keccak__row_ratio), 512)) + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - ((SafeDiv(keccak__row_ratio, 64)) + + ((SafeDiv((9) * (keccak__row_ratio), 128)) + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - (((SafeDiv((43) * (keccak__row_ratio), 4)) + (SafeDiv(keccak__row_ratio, 64))) + + (((SafeDiv((61) * (keccak__row_ratio), 4)) + (SafeDiv((9) * (keccak__row_ratio), 128))) + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - ((((((((SafeDiv((43) * (keccak__row_ratio), 4)) + (SafeDiv((3) * (keccak__row_ratio), 512))) + + ((((((((((SafeDiv((61) * (keccak__row_ratio), 4)) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + (SafeDiv((3) * (keccak__row_ratio), 512))) + (SafeDiv((3) * (keccak__row_ratio), 512))) + (SafeDiv((3) * (keccak__row_ratio), 512))) + (SafeDiv((3) * (keccak__row_ratio), 512))) + (SafeDiv((25) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column2_suboffset) * (diluted_units_row_ratio))) + + ((keccak__keccak__diluted_column1_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - (((SafeDiv((21) * (keccak__row_ratio), 4)) + (SafeDiv((25) * (keccak__row_ratio), 128))) + + (((SafeDiv((3) * (keccak__row_ratio), 4)) + (SafeDiv((25) * (keccak__row_ratio), 128))) + ((keccak__keccak__diluted_column1_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - (SafeDiv((21) * (keccak__row_ratio), 4)) + (keccak__keccak__rotated_parity3_offset), + (SafeDiv((3) * (keccak__row_ratio), 4)) + (keccak__keccak__rotated_parity3_offset), keccak__keccak__rotated_parity3_column); mask.emplace_back( - (((SafeDiv((21) * (keccak__row_ratio), 4)) + (SafeDiv((3) * (keccak__row_ratio), 32))) + + (((SafeDiv((3) * (keccak__row_ratio), 4)) + (SafeDiv((11) * (keccak__row_ratio), 64))) + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - (((((((SafeDiv((3) * (keccak__row_ratio), 512)) + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (((((((((SafeDiv((3) * (keccak__row_ratio), 512)) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + (SafeDiv((3) * (keccak__row_ratio), 512))) + (SafeDiv((3) * (keccak__row_ratio), 512))) + (SafeDiv((3) * (keccak__row_ratio), 512))) + (SafeDiv((25) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column2_suboffset) * (diluted_units_row_ratio))) + + ((keccak__keccak__diluted_column1_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - ((SafeDiv((3) * (keccak__row_ratio), 32)) + + ((SafeDiv((19) * (keccak__row_ratio), 128)) + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - (((SafeDiv((25) * (keccak__row_ratio), 4)) + (SafeDiv((3) * (keccak__row_ratio), 32))) + + ((((14) * (keccak__row_ratio)) + (SafeDiv((19) * (keccak__row_ratio), 128))) + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - (((((((((((SafeDiv((25) * (keccak__row_ratio), 4)) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + + (((((((((((14) * (keccak__row_ratio)) + (SafeDiv((3) * (keccak__row_ratio), 512))) + (SafeDiv((3) * (keccak__row_ratio), 512))) + (SafeDiv((3) * (keccak__row_ratio), 512))) + (SafeDiv((3) * (keccak__row_ratio), 512))) + @@ -28809,25 +33594,24 @@ std::vector> CpuAirDefinition::G (SafeDiv((3) * (keccak__row_ratio), 512))) + (SafeDiv((3) * (keccak__row_ratio), 512))) + (SafeDiv((25) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - (((SafeDiv((39) * (keccak__row_ratio), 4)) + (SafeDiv((25) * (keccak__row_ratio), 128))) + + ((((2) * (keccak__row_ratio)) + (SafeDiv((25) * (keccak__row_ratio), 128))) + ((keccak__keccak__diluted_column2_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - (SafeDiv((39) * (keccak__row_ratio), 4)) + (keccak__keccak__rotated_parity4_offset), + ((2) * (keccak__row_ratio)) + (keccak__keccak__rotated_parity4_offset), keccak__keccak__rotated_parity4_column); mask.emplace_back( - (((SafeDiv((39) * (keccak__row_ratio), 4)) + (SafeDiv((13) * (keccak__row_ratio), 128))) + + ((((2) * (keccak__row_ratio)) + (SafeDiv((23) * (keccak__row_ratio), 128))) + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - ((((((((((SafeDiv((3) * (keccak__row_ratio), 512)) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + + (((((((((SafeDiv((3) * (keccak__row_ratio), 512)) + (SafeDiv((3) * (keccak__row_ratio), 512))) + (SafeDiv((3) * (keccak__row_ratio), 512))) + (SafeDiv((3) * (keccak__row_ratio), 512))) + @@ -28835,1205 +33619,1126 @@ std::vector> CpuAirDefinition::G (SafeDiv((3) * (keccak__row_ratio), 512))) + (SafeDiv((3) * (keccak__row_ratio), 512))) + (SafeDiv((25) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); - mask.emplace_back( - (((SafeDiv(keccak__row_ratio, 256)) + (SafeDiv((11) * (keccak__row_ratio), 64))) + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - (((SafeDiv((39) * (keccak__row_ratio), 4)) + (SafeDiv((11) * (keccak__row_ratio), 64))) + + ((SafeDiv(keccak__row_ratio, 32)) + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - (((SafeDiv((39) * (keccak__row_ratio), 4)) + (SafeDiv((15) * (keccak__row_ratio), 512))) + + (((SafeDiv((7) * (keccak__row_ratio), 2)) + (SafeDiv(keccak__row_ratio, 32))) + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - ((((SafeDiv(keccak__row_ratio, 512)) + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (((((((((SafeDiv((7) * (keccak__row_ratio), 2)) + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + (SafeDiv((25) * (keccak__row_ratio), 128))) + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - (SafeDiv(keccak__row_ratio, 512)) + (keccak__keccak__rotated_parity0_offset), - keccak__keccak__rotated_parity0_column); - mask.emplace_back( - (((SafeDiv(keccak__row_ratio, 512)) + (SafeDiv((7) * (keccak__row_ratio), 64))) + + ((((SafeDiv((25) * (keccak__row_ratio), 2)) + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((25) * (keccak__row_ratio), 128))) + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - ((((SafeDiv((39) * (keccak__row_ratio), 4)) + (SafeDiv(keccak__row_ratio, 512))) + - (SafeDiv((11) * (keccak__row_ratio), 64))) + - ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + (SafeDiv((25) * (keccak__row_ratio), 2)) + (keccak__keccak__rotated_parity0_offset), + keccak__keccak__rotated_parity0_column); mask.emplace_back( - (((SafeDiv((39) * (keccak__row_ratio), 4)) + (SafeDiv((19) * (keccak__row_ratio), 512))) + - ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + + (((SafeDiv((25) * (keccak__row_ratio), 2)) + (SafeDiv((3) * (keccak__row_ratio), 16))) + + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - ((((SafeDiv(keccak__row_ratio, 256)) + (SafeDiv((3) * (keccak__row_ratio), 512))) + + ((((((((SafeDiv((3) * (keccak__row_ratio), 512)) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + + (SafeDiv((3) * (keccak__row_ratio), 512))) + (SafeDiv((25) * (keccak__row_ratio), 128))) + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - (SafeDiv(keccak__row_ratio, 256)) + (keccak__keccak__rotated_parity0_offset), - keccak__keccak__rotated_parity0_column); - mask.emplace_back( - (((SafeDiv(keccak__row_ratio, 256)) + (SafeDiv((7) * (keccak__row_ratio), 64))) + + ((SafeDiv(keccak__row_ratio, 4096)) + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - ((((SafeDiv((39) * (keccak__row_ratio), 4)) + (SafeDiv(keccak__row_ratio, 256))) + - (SafeDiv((11) * (keccak__row_ratio), 64))) + - ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + + ((keccak__keccak__diluted_column1_suboffset) * (diluted_units_row_ratio)) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - (((SafeDiv((39) * (keccak__row_ratio), 4)) + (SafeDiv((23) * (keccak__row_ratio), 512))) + - ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + + ((keccak__keccak__diluted_column2_suboffset) * (diluted_units_row_ratio)) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - ((((SafeDiv((25) * (keccak__row_ratio), 4)) + (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((25) * (keccak__row_ratio), 128))) + + (((SafeDiv(keccak__row_ratio, 4)) + (SafeDiv(keccak__row_ratio, 4096))) + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - (SafeDiv((25) * (keccak__row_ratio), 4)) + (keccak__keccak__rotated_parity0_offset), - keccak__keccak__rotated_parity0_column); - mask.emplace_back( - (((SafeDiv((25) * (keccak__row_ratio), 4)) + (SafeDiv((7) * (keccak__row_ratio), 64))) + - ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + + ((SafeDiv(keccak__row_ratio, 4)) + + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - ((SafeDiv((11) * (keccak__row_ratio), 64)) + + ((SafeDiv((33) * (keccak__row_ratio), 128)) + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - ((SafeDiv((15) * (keccak__row_ratio), 512)) + + (((SafeDiv(keccak__row_ratio, 4)) + (SafeDiv(keccak__row_ratio, 64))) + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - ((((SafeDiv((3201) * (keccak__row_ratio), 512)) + (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((25) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + + ((SafeDiv(keccak__row_ratio, 4)) + + ((keccak__keccak__diluted_column1_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - (SafeDiv((3201) * (keccak__row_ratio), 512)) + (keccak__keccak__rotated_parity0_offset), - keccak__keccak__rotated_parity0_column); + ((SafeDiv(keccak__row_ratio, 4)) + + ((keccak__keccak__diluted_column2_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - (((SafeDiv((3201) * (keccak__row_ratio), 512)) + (SafeDiv((7) * (keccak__row_ratio), 64))) + + (((SafeDiv((3) * (keccak__row_ratio), 4)) + (SafeDiv(keccak__row_ratio, 4096))) + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - (((SafeDiv(keccak__row_ratio, 512)) + (SafeDiv((11) * (keccak__row_ratio), 64))) + + ((SafeDiv((3) * (keccak__row_ratio), 4)) + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - ((SafeDiv((19) * (keccak__row_ratio), 512)) + + ((SafeDiv((97) * (keccak__row_ratio), 128)) + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - ((((SafeDiv((1601) * (keccak__row_ratio), 256)) + (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((25) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + + (((SafeDiv((3) * (keccak__row_ratio), 4)) + (SafeDiv(keccak__row_ratio, 64))) + + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - (SafeDiv((1601) * (keccak__row_ratio), 256)) + (keccak__keccak__rotated_parity0_offset), - keccak__keccak__rotated_parity0_column); + ((SafeDiv((3) * (keccak__row_ratio), 4)) + + ((keccak__keccak__diluted_column1_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - (((SafeDiv((1601) * (keccak__row_ratio), 256)) + (SafeDiv((7) * (keccak__row_ratio), 64))) + - ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + + ((SafeDiv((3) * (keccak__row_ratio), 4)) + + ((keccak__keccak__diluted_column2_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - ((SafeDiv((23) * (keccak__row_ratio), 512)) + - ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + + (((SafeDiv((7) * (keccak__row_ratio), 4)) + (SafeDiv(keccak__row_ratio, 4096))) + + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - (((SafeDiv(keccak__row_ratio, 256)) + (SafeDiv((23) * (keccak__row_ratio), 128))) + + ((SafeDiv((7) * (keccak__row_ratio), 4)) + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - (((SafeDiv((41) * (keccak__row_ratio), 4)) + (SafeDiv((23) * (keccak__row_ratio), 128))) + + ((SafeDiv((225) * (keccak__row_ratio), 128)) + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - (((SafeDiv((41) * (keccak__row_ratio), 4)) + (SafeDiv((27) * (keccak__row_ratio), 512))) + + (((SafeDiv((7) * (keccak__row_ratio), 4)) + (SafeDiv(keccak__row_ratio, 64))) + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - ((((SafeDiv(keccak__row_ratio, 512)) + (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((25) * (keccak__row_ratio), 128))) + + ((SafeDiv((7) * (keccak__row_ratio), 4)) + ((keccak__keccak__diluted_column1_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - (SafeDiv(keccak__row_ratio, 512)) + (keccak__keccak__rotated_parity1_offset), - keccak__keccak__rotated_parity1_column); + ((SafeDiv((7) * (keccak__row_ratio), 4)) + + ((keccak__keccak__diluted_column2_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - (((SafeDiv(keccak__row_ratio, 512)) + (SafeDiv((15) * (keccak__row_ratio), 128))) + + (((SafeDiv((15) * (keccak__row_ratio), 4)) + (SafeDiv(keccak__row_ratio, 4096))) + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - ((((SafeDiv((41) * (keccak__row_ratio), 4)) + (SafeDiv(keccak__row_ratio, 512))) + - (SafeDiv((23) * (keccak__row_ratio), 128))) + + ((SafeDiv((15) * (keccak__row_ratio), 4)) + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - (((SafeDiv((41) * (keccak__row_ratio), 4)) + (SafeDiv((31) * (keccak__row_ratio), 512))) + + ((SafeDiv((481) * (keccak__row_ratio), 128)) + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - ((((SafeDiv(keccak__row_ratio, 256)) + (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((25) * (keccak__row_ratio), 128))) + + (((SafeDiv((15) * (keccak__row_ratio), 4)) + (SafeDiv(keccak__row_ratio, 64))) + + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); + mask.emplace_back( + ((SafeDiv((15) * (keccak__row_ratio), 4)) + ((keccak__keccak__diluted_column1_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - (SafeDiv(keccak__row_ratio, 256)) + (keccak__keccak__rotated_parity1_offset), - keccak__keccak__rotated_parity1_column); + ((SafeDiv((15) * (keccak__row_ratio), 4)) + + ((keccak__keccak__diluted_column2_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - (((SafeDiv(keccak__row_ratio, 256)) + (SafeDiv((15) * (keccak__row_ratio), 128))) + + (((SafeDiv((31) * (keccak__row_ratio), 4)) + (SafeDiv(keccak__row_ratio, 4096))) + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - ((((SafeDiv((41) * (keccak__row_ratio), 4)) + (SafeDiv(keccak__row_ratio, 256))) + - (SafeDiv((23) * (keccak__row_ratio), 128))) + + ((SafeDiv((31) * (keccak__row_ratio), 4)) + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - (((SafeDiv((41) * (keccak__row_ratio), 4)) + (SafeDiv((35) * (keccak__row_ratio), 512))) + + ((SafeDiv((993) * (keccak__row_ratio), 128)) + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - ((((SafeDiv((23) * (keccak__row_ratio), 4)) + (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((25) * (keccak__row_ratio), 128))) + + (((SafeDiv((31) * (keccak__row_ratio), 4)) + (SafeDiv(keccak__row_ratio, 64))) + + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); + mask.emplace_back( + ((SafeDiv((31) * (keccak__row_ratio), 4)) + ((keccak__keccak__diluted_column1_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - (SafeDiv((23) * (keccak__row_ratio), 4)) + (keccak__keccak__rotated_parity1_offset), - keccak__keccak__rotated_parity1_column); + ((SafeDiv((31) * (keccak__row_ratio), 4)) + + ((keccak__keccak__diluted_column2_suboffset) * (diluted_units_row_ratio))) + + (diluted_pool_offset), + diluted_pool_column); mask.emplace_back( - (((SafeDiv((23) * (keccak__row_ratio), 4)) + (SafeDiv((15) * (keccak__row_ratio), 128))) + + (((SafeDiv((63) * (keccak__row_ratio), 4)) + (SafeDiv(keccak__row_ratio, 4096))) + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - ((SafeDiv((23) * (keccak__row_ratio), 128)) + + ((SafeDiv((63) * (keccak__row_ratio), 4)) + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - ((SafeDiv((27) * (keccak__row_ratio), 512)) + + ((SafeDiv((2017) * (keccak__row_ratio), 128)) + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - ((((SafeDiv((2945) * (keccak__row_ratio), 512)) + (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((25) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column1_suboffset) * (diluted_units_row_ratio))) + + (((SafeDiv((63) * (keccak__row_ratio), 4)) + (SafeDiv(keccak__row_ratio, 64))) + + ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - (SafeDiv((2945) * (keccak__row_ratio), 512)) + (keccak__keccak__rotated_parity1_offset), - keccak__keccak__rotated_parity1_column); - mask.emplace_back( - (((SafeDiv((2945) * (keccak__row_ratio), 512)) + (SafeDiv((15) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + + ((SafeDiv((63) * (keccak__row_ratio), 4)) + + ((keccak__keccak__diluted_column1_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - (((SafeDiv(keccak__row_ratio, 512)) + (SafeDiv((23) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + + ((SafeDiv((63) * (keccak__row_ratio), 4)) + + ((keccak__keccak__diluted_column2_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - ((SafeDiv((31) * (keccak__row_ratio), 512)) + - ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + + (((SafeDiv(keccak__row_ratio, 32)) + (SafeDiv(keccak__row_ratio, 4096))) + + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - ((((SafeDiv((1473) * (keccak__row_ratio), 256)) + (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((25) * (keccak__row_ratio), 128))) + + ((SafeDiv(keccak__row_ratio, 32)) + ((keccak__keccak__diluted_column1_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - (SafeDiv((1473) * (keccak__row_ratio), 256)) + (keccak__keccak__rotated_parity1_offset), - keccak__keccak__rotated_parity1_column); - mask.emplace_back( - (((SafeDiv((1473) * (keccak__row_ratio), 256)) + (SafeDiv((15) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + + ((SafeDiv(keccak__row_ratio, 32)) + + ((keccak__keccak__diluted_column2_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - ((SafeDiv((35) * (keccak__row_ratio), 512)) + - ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + + (((SafeDiv((3) * (keccak__row_ratio), 128)) + (SafeDiv(keccak__row_ratio, 4096))) + + ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - ((SafeDiv(keccak__row_ratio, 16)) + - ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + + ((SafeDiv((3) * (keccak__row_ratio), 128)) + + ((keccak__keccak__diluted_column1_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - (((SafeDiv((45) * (keccak__row_ratio), 4)) + (SafeDiv(keccak__row_ratio, 16))) + - ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + + ((SafeDiv((3) * (keccak__row_ratio), 128)) + + ((keccak__keccak__diluted_column2_suboffset) * (diluted_units_row_ratio))) + (diluted_pool_offset), diluted_pool_column); mask.emplace_back( - ((((((((((SafeDiv((45) * (keccak__row_ratio), 4)) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((25) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((poseidon__param_0__input_output_suboffset) * (memory_units_row_ratio)) + + (mem_pool__addr_offset), + mem_pool__addr_column); + mask.emplace_back( + ((SafeDiv(poseidon__row_ratio, 2)) + + ((poseidon__param_0__input_output_suboffset) * (memory_units_row_ratio))) + + (mem_pool__addr_offset), + mem_pool__addr_column); + mask.emplace_back( + ((poseidon__param_1__input_output_suboffset) * (memory_units_row_ratio)) + + (mem_pool__addr_offset), + mem_pool__addr_column); + mask.emplace_back( + ((SafeDiv(poseidon__row_ratio, 2)) + + ((poseidon__param_1__input_output_suboffset) * (memory_units_row_ratio))) + + (mem_pool__addr_offset), + mem_pool__addr_column); + mask.emplace_back( + ((poseidon__param_2__input_output_suboffset) * (memory_units_row_ratio)) + + (mem_pool__addr_offset), + mem_pool__addr_column); + mask.emplace_back( + ((SafeDiv(poseidon__row_ratio, 2)) + + ((poseidon__param_2__input_output_suboffset) * (memory_units_row_ratio))) + + (mem_pool__addr_offset), + mem_pool__addr_column); + mask.emplace_back( + poseidon__poseidon__full_rounds_state0_squared_offset, + poseidon__poseidon__full_rounds_state0_squared_column); + mask.emplace_back( + poseidon__poseidon__full_rounds_state0_offset, poseidon__poseidon__full_rounds_state0_column); + mask.emplace_back( + poseidon__poseidon__full_rounds_state1_squared_offset, + poseidon__poseidon__full_rounds_state1_squared_column); + mask.emplace_back( + poseidon__poseidon__full_rounds_state1_offset, poseidon__poseidon__full_rounds_state1_column); + mask.emplace_back( + poseidon__poseidon__full_rounds_state2_squared_offset, + poseidon__poseidon__full_rounds_state2_squared_column); + mask.emplace_back( + poseidon__poseidon__full_rounds_state2_offset, poseidon__poseidon__full_rounds_state2_column); + mask.emplace_back( + poseidon__poseidon__partial_rounds_state0_squared_offset, + poseidon__poseidon__partial_rounds_state0_squared_column); + mask.emplace_back( + poseidon__poseidon__partial_rounds_state0_offset, + poseidon__poseidon__partial_rounds_state0_column); + mask.emplace_back( + poseidon__poseidon__partial_rounds_state1_squared_offset, + poseidon__poseidon__partial_rounds_state1_squared_column); + mask.emplace_back( + poseidon__poseidon__partial_rounds_state1_offset, + poseidon__poseidon__partial_rounds_state1_column); + mask.emplace_back( + ((poseidon__param_0__input_output_suboffset) * (memory_units_row_ratio)) + + (mem_pool__value_offset), + mem_pool__value_column); + mask.emplace_back( + ((poseidon__param_1__input_output_suboffset) * (memory_units_row_ratio)) + + (mem_pool__value_offset), + mem_pool__value_column); + mask.emplace_back( + ((poseidon__param_2__input_output_suboffset) * (memory_units_row_ratio)) + + (mem_pool__value_offset), + mem_pool__value_column); + mask.emplace_back( + (SafeDiv(poseidon__row_ratio, 8)) + (poseidon__poseidon__full_rounds_state0_offset), + poseidon__poseidon__full_rounds_state0_column); + mask.emplace_back( + (SafeDiv(poseidon__row_ratio, 8)) + (poseidon__poseidon__full_rounds_state1_offset), + poseidon__poseidon__full_rounds_state1_column); + mask.emplace_back( + (SafeDiv(poseidon__row_ratio, 8)) + (poseidon__poseidon__full_rounds_state2_offset), + poseidon__poseidon__full_rounds_state2_column); + mask.emplace_back( + ((SafeDiv(poseidon__row_ratio, 2)) + + ((poseidon__param_0__input_output_suboffset) * (memory_units_row_ratio))) + + (mem_pool__value_offset), + mem_pool__value_column); + mask.emplace_back( + (SafeDiv((7) * (poseidon__row_ratio), 8)) + (poseidon__poseidon__full_rounds_state0_offset), + poseidon__poseidon__full_rounds_state0_column); + mask.emplace_back( + (SafeDiv((7) * (poseidon__row_ratio), 8)) + + (poseidon__poseidon__full_rounds_state0_squared_offset), + poseidon__poseidon__full_rounds_state0_squared_column); + mask.emplace_back( + (SafeDiv((7) * (poseidon__row_ratio), 8)) + (poseidon__poseidon__full_rounds_state1_offset), + poseidon__poseidon__full_rounds_state1_column); + mask.emplace_back( + (SafeDiv((7) * (poseidon__row_ratio), 8)) + + (poseidon__poseidon__full_rounds_state1_squared_offset), + poseidon__poseidon__full_rounds_state1_squared_column); + mask.emplace_back( + (SafeDiv((7) * (poseidon__row_ratio), 8)) + (poseidon__poseidon__full_rounds_state2_offset), + poseidon__poseidon__full_rounds_state2_column); + mask.emplace_back( + (SafeDiv((7) * (poseidon__row_ratio), 8)) + + (poseidon__poseidon__full_rounds_state2_squared_offset), + poseidon__poseidon__full_rounds_state2_squared_column); + mask.emplace_back( + ((SafeDiv(poseidon__row_ratio, 2)) + + ((poseidon__param_1__input_output_suboffset) * (memory_units_row_ratio))) + + (mem_pool__value_offset), + mem_pool__value_column); + mask.emplace_back( + ((SafeDiv(poseidon__row_ratio, 2)) + + ((poseidon__param_2__input_output_suboffset) * (memory_units_row_ratio))) + + (mem_pool__value_offset), + mem_pool__value_column); + mask.emplace_back( + (SafeDiv((61) * (poseidon__row_ratio), 64)) + + (poseidon__poseidon__partial_rounds_state0_offset), + poseidon__poseidon__partial_rounds_state0_column); + mask.emplace_back( + (SafeDiv(poseidon__row_ratio, 32)) + (poseidon__poseidon__partial_rounds_state1_offset), + poseidon__poseidon__partial_rounds_state1_column); + mask.emplace_back( + (SafeDiv((31) * (poseidon__row_ratio), 32)) + + (poseidon__poseidon__partial_rounds_state0_offset), + poseidon__poseidon__partial_rounds_state0_column); + mask.emplace_back( + (SafeDiv(poseidon__row_ratio, 16)) + (poseidon__poseidon__partial_rounds_state1_offset), + poseidon__poseidon__partial_rounds_state1_column); + mask.emplace_back( + (SafeDiv((63) * (poseidon__row_ratio), 64)) + + (poseidon__poseidon__partial_rounds_state0_offset), + poseidon__poseidon__partial_rounds_state0_column); + mask.emplace_back( + (SafeDiv((3) * (poseidon__row_ratio), 8)) + (poseidon__poseidon__full_rounds_state0_offset), + poseidon__poseidon__full_rounds_state0_column); + mask.emplace_back( + (SafeDiv((3) * (poseidon__row_ratio), 8)) + + (poseidon__poseidon__full_rounds_state0_squared_offset), + poseidon__poseidon__full_rounds_state0_squared_column); + mask.emplace_back( + (SafeDiv((3) * (poseidon__row_ratio), 8)) + (poseidon__poseidon__full_rounds_state1_offset), + poseidon__poseidon__full_rounds_state1_column); + mask.emplace_back( + (SafeDiv((3) * (poseidon__row_ratio), 8)) + + (poseidon__poseidon__full_rounds_state1_squared_offset), + poseidon__poseidon__full_rounds_state1_squared_column); + mask.emplace_back( + (SafeDiv((3) * (poseidon__row_ratio), 8)) + (poseidon__poseidon__full_rounds_state2_offset), + poseidon__poseidon__full_rounds_state2_column); + mask.emplace_back( + (SafeDiv((3) * (poseidon__row_ratio), 8)) + + (poseidon__poseidon__full_rounds_state2_squared_offset), + poseidon__poseidon__full_rounds_state2_squared_column); + mask.emplace_back( + (SafeDiv(poseidon__row_ratio, 64)) + (poseidon__poseidon__partial_rounds_state0_offset), + poseidon__poseidon__partial_rounds_state0_column); + mask.emplace_back( + (SafeDiv(poseidon__row_ratio, 32)) + (poseidon__poseidon__partial_rounds_state0_offset), + poseidon__poseidon__partial_rounds_state0_column); + mask.emplace_back( + (SafeDiv(poseidon__row_ratio, 64)) + + (poseidon__poseidon__partial_rounds_state0_squared_offset), + poseidon__poseidon__partial_rounds_state0_squared_column); + mask.emplace_back( + (SafeDiv((3) * (poseidon__row_ratio), 64)) + + (poseidon__poseidon__partial_rounds_state0_offset), + poseidon__poseidon__partial_rounds_state0_column); + mask.emplace_back( + (SafeDiv(poseidon__row_ratio, 32)) + + (poseidon__poseidon__partial_rounds_state0_squared_offset), + poseidon__poseidon__partial_rounds_state0_squared_column); + mask.emplace_back( + (SafeDiv((3) * (poseidon__row_ratio), 32)) + + (poseidon__poseidon__partial_rounds_state1_offset), + poseidon__poseidon__partial_rounds_state1_column); + mask.emplace_back( + (SafeDiv(poseidon__row_ratio, 32)) + + (poseidon__poseidon__partial_rounds_state1_squared_offset), + poseidon__poseidon__partial_rounds_state1_squared_column); + mask.emplace_back( + (SafeDiv(poseidon__row_ratio, 16)) + + (poseidon__poseidon__partial_rounds_state1_squared_offset), + poseidon__poseidon__partial_rounds_state1_squared_column); mask.emplace_back( - (((SafeDiv((19) * (keccak__row_ratio), 4)) + (SafeDiv((25) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + (SafeDiv(poseidon__row_ratio, 2)) + (poseidon__poseidon__full_rounds_state0_offset), + poseidon__poseidon__full_rounds_state0_column); mask.emplace_back( - (SafeDiv((19) * (keccak__row_ratio), 4)) + (keccak__keccak__rotated_parity2_offset), - keccak__keccak__rotated_parity2_column); + (SafeDiv((19) * (poseidon__row_ratio), 32)) + + (poseidon__poseidon__partial_rounds_state1_offset), + poseidon__poseidon__partial_rounds_state1_column); mask.emplace_back( - (((SafeDiv((19) * (keccak__row_ratio), 4)) + (SafeDiv(keccak__row_ratio, 8))) + - ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + (SafeDiv((19) * (poseidon__row_ratio), 32)) + + (poseidon__poseidon__partial_rounds_state1_squared_offset), + poseidon__poseidon__partial_rounds_state1_squared_column); mask.emplace_back( - (((((((((SafeDiv((3) * (keccak__row_ratio), 512)) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((25) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + (SafeDiv((5) * (poseidon__row_ratio), 8)) + + (poseidon__poseidon__partial_rounds_state1_offset), + poseidon__poseidon__partial_rounds_state1_column); mask.emplace_back( - ((SafeDiv((9) * (keccak__row_ratio), 64)) + - ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + (SafeDiv((5) * (poseidon__row_ratio), 8)) + + (poseidon__poseidon__partial_rounds_state1_squared_offset), + poseidon__poseidon__partial_rounds_state1_squared_column); mask.emplace_back( - (((SafeDiv((15) * (keccak__row_ratio), 4)) + (SafeDiv((9) * (keccak__row_ratio), 64))) + - ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + (SafeDiv((21) * (poseidon__row_ratio), 32)) + + (poseidon__poseidon__partial_rounds_state1_offset), + poseidon__poseidon__partial_rounds_state1_column); mask.emplace_back( - (((((((((SafeDiv((15) * (keccak__row_ratio), 4)) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((25) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + (SafeDiv((21) * (poseidon__row_ratio), 32)) + + (poseidon__poseidon__partial_rounds_state1_squared_offset), + poseidon__poseidon__partial_rounds_state1_squared_column); mask.emplace_back( - (((SafeDiv((49) * (keccak__row_ratio), 4)) + (SafeDiv((25) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column1_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + (SafeDiv(poseidon__row_ratio, 2)) + (poseidon__poseidon__full_rounds_state1_offset), + poseidon__poseidon__full_rounds_state1_column); mask.emplace_back( - (SafeDiv((49) * (keccak__row_ratio), 4)) + (keccak__keccak__rotated_parity3_offset), - keccak__keccak__rotated_parity3_column); + (SafeDiv(poseidon__row_ratio, 2)) + (poseidon__poseidon__full_rounds_state2_offset), + poseidon__poseidon__full_rounds_state2_column); mask.emplace_back( - (((SafeDiv((49) * (keccak__row_ratio), 4)) + (SafeDiv((17) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((range_check96_builtin__mem_suboffset) * (memory_units_row_ratio)) + + (mem_pool__value_offset), + mem_pool__value_column); mask.emplace_back( - ((((((((SafeDiv((3) * (keccak__row_ratio), 512)) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((25) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((range_check96_builtin__inner_range_check0_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset), + range_check16_pool_column); mask.emplace_back( - ((SafeDiv((3) * (keccak__row_ratio), 128)) + - ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((range_check96_builtin__inner_range_check1_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset), + range_check16_pool_column); mask.emplace_back( - (((SafeDiv((21) * (keccak__row_ratio), 4)) + (SafeDiv((3) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((range_check96_builtin__inner_range_check2_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset), + range_check16_pool_column); mask.emplace_back( - (((SafeDiv((21) * (keccak__row_ratio), 4)) + (SafeDiv((25) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((range_check96_builtin__inner_range_check3_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset), + range_check16_pool_column); mask.emplace_back( - (((SafeDiv((43) * (keccak__row_ratio), 4)) + (SafeDiv((25) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column2_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((range_check96_builtin__inner_range_check4_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset), + range_check16_pool_column); mask.emplace_back( - (SafeDiv((43) * (keccak__row_ratio), 4)) + (keccak__keccak__rotated_parity4_offset), - keccak__keccak__rotated_parity4_column); + ((range_check96_builtin__inner_range_check5_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset), + range_check16_pool_column); mask.emplace_back( - (((SafeDiv((43) * (keccak__row_ratio), 4)) + (SafeDiv((9) * (keccak__row_ratio), 64))) + - ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((range_check96_builtin_row_ratio) + + ((range_check96_builtin__mem_suboffset) * (memory_units_row_ratio))) + + (mem_pool__addr_offset), + mem_pool__addr_column); mask.emplace_back( - ((SafeDiv((25) * (keccak__row_ratio), 128)) + - ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((range_check96_builtin__mem_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset), + mem_pool__addr_column); mask.emplace_back( - ((SafeDiv((13) * (keccak__row_ratio), 128)) + - ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((add_mod__p0_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset), + mem_pool__addr_column); mask.emplace_back( - ((((2) * (keccak__row_ratio)) + (SafeDiv((13) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((add_mod__p1_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset), + mem_pool__addr_column); mask.emplace_back( - ((((((((((((2) * (keccak__row_ratio)) + (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((25) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column1_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((add_mod__p2_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset), + mem_pool__addr_column); mask.emplace_back( - (((((14) * (keccak__row_ratio)) + (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((25) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((add_mod__p3_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset), + mem_pool__addr_column); mask.emplace_back( - ((14) * (keccak__row_ratio)) + (keccak__keccak__rotated_parity0_offset), - keccak__keccak__rotated_parity0_column); + ((add_mod__values_ptr_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset), + mem_pool__addr_column); mask.emplace_back( - ((((14) * (keccak__row_ratio)) + (SafeDiv((19) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((add_mod__offsets_ptr_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset), + mem_pool__addr_column); mask.emplace_back( - ((((((((((SafeDiv((3) * (keccak__row_ratio), 512)) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((25) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column1_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((add_mod__n_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset), + mem_pool__addr_column); mask.emplace_back( - ((SafeDiv((7) * (keccak__row_ratio), 64)) + - ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((add_mod__row_ratio) + ((add_mod__p0_suboffset) * (memory_units_row_ratio))) + + (mem_pool__addr_offset), + mem_pool__addr_column); mask.emplace_back( - (((SafeDiv((9) * (keccak__row_ratio), 2)) + (SafeDiv((7) * (keccak__row_ratio), 64))) + - ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((add_mod__row_ratio) + ((add_mod__p0_suboffset) * (memory_units_row_ratio))) + + (mem_pool__value_offset), + mem_pool__value_column); mask.emplace_back( - (((((((((((SafeDiv((9) * (keccak__row_ratio), 2)) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((25) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column2_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((add_mod__p0_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset), + mem_pool__value_column); mask.emplace_back( - ((((SafeDiv((23) * (keccak__row_ratio), 2)) + (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((25) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column1_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((add_mod__n_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset), + mem_pool__value_column); mask.emplace_back( - (SafeDiv((23) * (keccak__row_ratio), 2)) + (keccak__keccak__rotated_parity1_offset), - keccak__keccak__rotated_parity1_column); + ((add_mod__row_ratio) + ((add_mod__p1_suboffset) * (memory_units_row_ratio))) + + (mem_pool__value_offset), + mem_pool__value_column); mask.emplace_back( - (((SafeDiv((23) * (keccak__row_ratio), 2)) + (SafeDiv((5) * (keccak__row_ratio), 32))) + - ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((add_mod__p1_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset), + mem_pool__value_column); mask.emplace_back( - ((((((((((SafeDiv((3) * (keccak__row_ratio), 512)) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((25) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column2_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((add_mod__row_ratio) + ((add_mod__p2_suboffset) * (memory_units_row_ratio))) + + (mem_pool__value_offset), + mem_pool__value_column); mask.emplace_back( - (((SafeDiv(keccak__row_ratio, 256)) + (SafeDiv((3) * (keccak__row_ratio), 16))) + - ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((add_mod__p2_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset), + mem_pool__value_column); mask.emplace_back( - (((SafeDiv(keccak__row_ratio, 2)) + (SafeDiv((3) * (keccak__row_ratio), 16))) + - ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((add_mod__row_ratio) + ((add_mod__p3_suboffset) * (memory_units_row_ratio))) + + (mem_pool__value_offset), + mem_pool__value_column); mask.emplace_back( - (((SafeDiv(keccak__row_ratio, 2)) + (SafeDiv((39) * (keccak__row_ratio), 512))) + - ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((add_mod__p3_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset), + mem_pool__value_column); mask.emplace_back( - (((SafeDiv(keccak__row_ratio, 512)) + (SafeDiv((25) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((add_mod__row_ratio) + ((add_mod__values_ptr_suboffset) * (memory_units_row_ratio))) + + (mem_pool__value_offset), + mem_pool__value_column); mask.emplace_back( - (SafeDiv(keccak__row_ratio, 512)) + (keccak__keccak__rotated_parity2_offset), - keccak__keccak__rotated_parity2_column); + ((add_mod__values_ptr_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset), + mem_pool__value_column); mask.emplace_back( - (((SafeDiv(keccak__row_ratio, 512)) + (SafeDiv((21) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((add_mod__row_ratio) + ((add_mod__offsets_ptr_suboffset) * (memory_units_row_ratio))) + + (mem_pool__value_offset), + mem_pool__value_column); mask.emplace_back( - ((((SafeDiv(keccak__row_ratio, 2)) + (SafeDiv(keccak__row_ratio, 512))) + - (SafeDiv((3) * (keccak__row_ratio), 16))) + - ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((add_mod__offsets_ptr_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset), + mem_pool__value_column); mask.emplace_back( - (((SafeDiv(keccak__row_ratio, 2)) + (SafeDiv((43) * (keccak__row_ratio), 512))) + - ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((add_mod__row_ratio) + ((add_mod__n_suboffset) * (memory_units_row_ratio))) + + (mem_pool__value_offset), + mem_pool__value_column); mask.emplace_back( - (((SafeDiv(keccak__row_ratio, 256)) + (SafeDiv((25) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((add_mod__a_offset_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset), + mem_pool__addr_column); mask.emplace_back( - (SafeDiv(keccak__row_ratio, 256)) + (keccak__keccak__rotated_parity2_offset), - keccak__keccak__rotated_parity2_column); + ((add_mod__b_offset_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset), + mem_pool__addr_column); mask.emplace_back( - (((SafeDiv(keccak__row_ratio, 256)) + (SafeDiv((21) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((add_mod__c_offset_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset), + mem_pool__addr_column); mask.emplace_back( - ((((SafeDiv(keccak__row_ratio, 2)) + (SafeDiv(keccak__row_ratio, 256))) + - (SafeDiv((3) * (keccak__row_ratio), 16))) + - ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((add_mod__a0_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset), + mem_pool__addr_column); mask.emplace_back( - (((SafeDiv(keccak__row_ratio, 2)) + (SafeDiv((47) * (keccak__row_ratio), 512))) + - ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((add_mod__a_offset_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset), + mem_pool__value_column); mask.emplace_back( - (((SafeDiv((31) * (keccak__row_ratio), 2)) + (SafeDiv((25) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((add_mod__a1_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset), + mem_pool__addr_column); mask.emplace_back( - (SafeDiv((31) * (keccak__row_ratio), 2)) + (keccak__keccak__rotated_parity2_offset), - keccak__keccak__rotated_parity2_column); + ((add_mod__a2_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset), + mem_pool__addr_column); mask.emplace_back( - (((SafeDiv((31) * (keccak__row_ratio), 2)) + (SafeDiv((21) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((add_mod__a3_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset), + mem_pool__addr_column); mask.emplace_back( - ((SafeDiv((3) * (keccak__row_ratio), 16)) + - ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((add_mod__b0_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset), + mem_pool__addr_column); mask.emplace_back( - ((SafeDiv((39) * (keccak__row_ratio), 512)) + - ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((add_mod__b_offset_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset), + mem_pool__value_column); mask.emplace_back( - (((SafeDiv((7937) * (keccak__row_ratio), 512)) + (SafeDiv((25) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((add_mod__b1_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset), + mem_pool__addr_column); mask.emplace_back( - (SafeDiv((7937) * (keccak__row_ratio), 512)) + (keccak__keccak__rotated_parity2_offset), - keccak__keccak__rotated_parity2_column); + ((add_mod__b2_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset), + mem_pool__addr_column); mask.emplace_back( - (((SafeDiv((7937) * (keccak__row_ratio), 512)) + (SafeDiv((21) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((add_mod__b3_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset), + mem_pool__addr_column); mask.emplace_back( - (((SafeDiv(keccak__row_ratio, 512)) + (SafeDiv((3) * (keccak__row_ratio), 16))) + - ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((add_mod__c0_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset), + mem_pool__addr_column); mask.emplace_back( - ((SafeDiv((43) * (keccak__row_ratio), 512)) + - ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((add_mod__c_offset_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset), + mem_pool__value_column); mask.emplace_back( - (((SafeDiv((3969) * (keccak__row_ratio), 256)) + (SafeDiv((25) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((add_mod__c1_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset), + mem_pool__addr_column); mask.emplace_back( - (SafeDiv((3969) * (keccak__row_ratio), 256)) + (keccak__keccak__rotated_parity2_offset), - keccak__keccak__rotated_parity2_column); + ((add_mod__c2_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset), + mem_pool__addr_column); mask.emplace_back( - (((SafeDiv((3969) * (keccak__row_ratio), 256)) + (SafeDiv((21) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((add_mod__c3_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset), + mem_pool__addr_column); + mask.emplace_back(add_mod__sub_p_bit_offset, add_mod__sub_p_bit_column); + mask.emplace_back(add_mod__carry1_bit_offset, add_mod__carry1_bit_column); + mask.emplace_back(add_mod__carry1_sign_offset, add_mod__carry1_sign_column); + mask.emplace_back(add_mod__carry2_bit_offset, add_mod__carry2_bit_column); + mask.emplace_back(add_mod__carry2_sign_offset, add_mod__carry2_sign_column); + mask.emplace_back(add_mod__carry3_bit_offset, add_mod__carry3_bit_column); + mask.emplace_back(add_mod__carry3_sign_offset, add_mod__carry3_sign_column); + mask.emplace_back( + ((add_mod__a1_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset), + mem_pool__value_column); mask.emplace_back( - ((SafeDiv((47) * (keccak__row_ratio), 512)) + - ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((add_mod__a2_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset), + mem_pool__value_column); mask.emplace_back( - ((SafeDiv((9) * (keccak__row_ratio), 128)) + - ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((add_mod__a3_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset), + mem_pool__value_column); mask.emplace_back( - (((SafeDiv((61) * (keccak__row_ratio), 4)) + (SafeDiv((9) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((add_mod__a0_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset), + mem_pool__value_column); mask.emplace_back( - ((((((((((SafeDiv((61) * (keccak__row_ratio), 4)) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((25) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column1_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((add_mod__b1_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset), + mem_pool__value_column); mask.emplace_back( - (((SafeDiv((3) * (keccak__row_ratio), 4)) + (SafeDiv((25) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column1_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((add_mod__b2_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset), + mem_pool__value_column); mask.emplace_back( - (SafeDiv((3) * (keccak__row_ratio), 4)) + (keccak__keccak__rotated_parity3_offset), - keccak__keccak__rotated_parity3_column); + ((add_mod__b3_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset), + mem_pool__value_column); mask.emplace_back( - (((SafeDiv((3) * (keccak__row_ratio), 4)) + (SafeDiv((11) * (keccak__row_ratio), 64))) + - ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((add_mod__b0_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset), + mem_pool__value_column); mask.emplace_back( - (((((((((SafeDiv((3) * (keccak__row_ratio), 512)) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((25) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column1_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((add_mod__c1_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset), + mem_pool__value_column); mask.emplace_back( - ((SafeDiv((19) * (keccak__row_ratio), 128)) + - ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((add_mod__c2_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset), + mem_pool__value_column); mask.emplace_back( - ((((14) * (keccak__row_ratio)) + (SafeDiv((19) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((add_mod__c3_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset), + mem_pool__value_column); mask.emplace_back( - (((((((((((14) * (keccak__row_ratio)) + (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((25) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((add_mod__c0_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset), + mem_pool__value_column); mask.emplace_back( - ((((2) * (keccak__row_ratio)) + (SafeDiv((25) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column2_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((mul_mod__p0_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset), + mem_pool__addr_column); mask.emplace_back( - ((2) * (keccak__row_ratio)) + (keccak__keccak__rotated_parity4_offset), - keccak__keccak__rotated_parity4_column); + ((mul_mod__p1_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset), + mem_pool__addr_column); mask.emplace_back( - ((((2) * (keccak__row_ratio)) + (SafeDiv((23) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((mul_mod__p2_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset), + mem_pool__addr_column); mask.emplace_back( - (((((((((SafeDiv((3) * (keccak__row_ratio), 512)) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((25) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((mul_mod__p3_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset), + mem_pool__addr_column); mask.emplace_back( - ((SafeDiv(keccak__row_ratio, 32)) + - ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((mul_mod__values_ptr_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset), + mem_pool__addr_column); mask.emplace_back( - (((SafeDiv((7) * (keccak__row_ratio), 2)) + (SafeDiv(keccak__row_ratio, 32))) + - ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((mul_mod__offsets_ptr_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset), + mem_pool__addr_column); mask.emplace_back( - (((((((((SafeDiv((7) * (keccak__row_ratio), 2)) + (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((25) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((mul_mod__n_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset), + mem_pool__addr_column); mask.emplace_back( - ((((SafeDiv((25) * (keccak__row_ratio), 2)) + (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((25) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((mul_mod__row_ratio) + ((mul_mod__p0_suboffset) * (memory_units_row_ratio))) + + (mem_pool__addr_offset), + mem_pool__addr_column); mask.emplace_back( - (SafeDiv((25) * (keccak__row_ratio), 2)) + (keccak__keccak__rotated_parity0_offset), - keccak__keccak__rotated_parity0_column); + ((mul_mod__row_ratio) + ((mul_mod__p0_suboffset) * (memory_units_row_ratio))) + + (mem_pool__value_offset), + mem_pool__value_column); mask.emplace_back( - (((SafeDiv((25) * (keccak__row_ratio), 2)) + (SafeDiv((3) * (keccak__row_ratio), 16))) + - ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((mul_mod__p0_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset), + mem_pool__value_column); mask.emplace_back( - ((((((((SafeDiv((3) * (keccak__row_ratio), 512)) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((3) * (keccak__row_ratio), 512))) + - (SafeDiv((25) * (keccak__row_ratio), 128))) + - ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((mul_mod__n_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset), + mem_pool__value_column); + mask.emplace_back( + ((mul_mod__row_ratio) + ((mul_mod__p1_suboffset) * (memory_units_row_ratio))) + + (mem_pool__value_offset), + mem_pool__value_column); mask.emplace_back( - ((SafeDiv(keccak__row_ratio, 4096)) + - ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((mul_mod__p1_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset), + mem_pool__value_column); mask.emplace_back( - ((keccak__keccak__diluted_column1_suboffset) * (diluted_units_row_ratio)) + - (diluted_pool_offset), - diluted_pool_column); + ((mul_mod__row_ratio) + ((mul_mod__p2_suboffset) * (memory_units_row_ratio))) + + (mem_pool__value_offset), + mem_pool__value_column); mask.emplace_back( - ((keccak__keccak__diluted_column2_suboffset) * (diluted_units_row_ratio)) + - (diluted_pool_offset), - diluted_pool_column); + ((mul_mod__p2_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset), + mem_pool__value_column); mask.emplace_back( - (((SafeDiv(keccak__row_ratio, 4)) + (SafeDiv(keccak__row_ratio, 4096))) + - ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((mul_mod__row_ratio) + ((mul_mod__p3_suboffset) * (memory_units_row_ratio))) + + (mem_pool__value_offset), + mem_pool__value_column); mask.emplace_back( - ((SafeDiv(keccak__row_ratio, 4)) + - ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((mul_mod__p3_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset), + mem_pool__value_column); mask.emplace_back( - ((SafeDiv((33) * (keccak__row_ratio), 128)) + - ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((mul_mod__row_ratio) + ((mul_mod__values_ptr_suboffset) * (memory_units_row_ratio))) + + (mem_pool__value_offset), + mem_pool__value_column); mask.emplace_back( - (((SafeDiv(keccak__row_ratio, 4)) + (SafeDiv(keccak__row_ratio, 64))) + - ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((mul_mod__values_ptr_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset), + mem_pool__value_column); mask.emplace_back( - ((SafeDiv(keccak__row_ratio, 4)) + - ((keccak__keccak__diluted_column1_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((mul_mod__row_ratio) + ((mul_mod__offsets_ptr_suboffset) * (memory_units_row_ratio))) + + (mem_pool__value_offset), + mem_pool__value_column); mask.emplace_back( - ((SafeDiv(keccak__row_ratio, 4)) + - ((keccak__keccak__diluted_column2_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((mul_mod__offsets_ptr_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset), + mem_pool__value_column); mask.emplace_back( - (((SafeDiv((3) * (keccak__row_ratio), 4)) + (SafeDiv(keccak__row_ratio, 4096))) + - ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((mul_mod__row_ratio) + ((mul_mod__n_suboffset) * (memory_units_row_ratio))) + + (mem_pool__value_offset), + mem_pool__value_column); mask.emplace_back( - ((SafeDiv((3) * (keccak__row_ratio), 4)) + - ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((mul_mod__a_offset_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset), + mem_pool__addr_column); mask.emplace_back( - ((SafeDiv((97) * (keccak__row_ratio), 128)) + - ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((mul_mod__b_offset_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset), + mem_pool__addr_column); mask.emplace_back( - (((SafeDiv((3) * (keccak__row_ratio), 4)) + (SafeDiv(keccak__row_ratio, 64))) + - ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((mul_mod__c_offset_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset), + mem_pool__addr_column); mask.emplace_back( - ((SafeDiv((3) * (keccak__row_ratio), 4)) + - ((keccak__keccak__diluted_column1_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((mul_mod__a0_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset), + mem_pool__addr_column); mask.emplace_back( - ((SafeDiv((3) * (keccak__row_ratio), 4)) + - ((keccak__keccak__diluted_column2_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((mul_mod__a_offset_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset), + mem_pool__value_column); mask.emplace_back( - (((SafeDiv((7) * (keccak__row_ratio), 4)) + (SafeDiv(keccak__row_ratio, 4096))) + - ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((mul_mod__a1_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset), + mem_pool__addr_column); mask.emplace_back( - ((SafeDiv((7) * (keccak__row_ratio), 4)) + - ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((mul_mod__a2_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset), + mem_pool__addr_column); mask.emplace_back( - ((SafeDiv((225) * (keccak__row_ratio), 128)) + - ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((mul_mod__a3_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset), + mem_pool__addr_column); mask.emplace_back( - (((SafeDiv((7) * (keccak__row_ratio), 4)) + (SafeDiv(keccak__row_ratio, 64))) + - ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((mul_mod__b0_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset), + mem_pool__addr_column); mask.emplace_back( - ((SafeDiv((7) * (keccak__row_ratio), 4)) + - ((keccak__keccak__diluted_column1_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((mul_mod__b_offset_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset), + mem_pool__value_column); mask.emplace_back( - ((SafeDiv((7) * (keccak__row_ratio), 4)) + - ((keccak__keccak__diluted_column2_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((mul_mod__b1_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset), + mem_pool__addr_column); mask.emplace_back( - (((SafeDiv((15) * (keccak__row_ratio), 4)) + (SafeDiv(keccak__row_ratio, 4096))) + - ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((mul_mod__b2_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset), + mem_pool__addr_column); mask.emplace_back( - ((SafeDiv((15) * (keccak__row_ratio), 4)) + - ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((mul_mod__b3_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset), + mem_pool__addr_column); mask.emplace_back( - ((SafeDiv((481) * (keccak__row_ratio), 128)) + - ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((mul_mod__c0_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset), + mem_pool__addr_column); mask.emplace_back( - (((SafeDiv((15) * (keccak__row_ratio), 4)) + (SafeDiv(keccak__row_ratio, 64))) + - ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((mul_mod__c_offset_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset), + mem_pool__value_column); mask.emplace_back( - ((SafeDiv((15) * (keccak__row_ratio), 4)) + - ((keccak__keccak__diluted_column1_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((mul_mod__c1_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset), + mem_pool__addr_column); mask.emplace_back( - ((SafeDiv((15) * (keccak__row_ratio), 4)) + - ((keccak__keccak__diluted_column2_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((mul_mod__c2_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset), + mem_pool__addr_column); mask.emplace_back( - (((SafeDiv((31) * (keccak__row_ratio), 4)) + (SafeDiv(keccak__row_ratio, 4096))) + - ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((mul_mod__c3_suboffset) * (memory_units_row_ratio)) + (mem_pool__addr_offset), + mem_pool__addr_column); mask.emplace_back( - ((SafeDiv((31) * (keccak__row_ratio), 4)) + - ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((mul_mod__a1_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset), + mem_pool__value_column); mask.emplace_back( - ((SafeDiv((993) * (keccak__row_ratio), 128)) + - ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((mul_mod__a2_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset), + mem_pool__value_column); mask.emplace_back( - (((SafeDiv((31) * (keccak__row_ratio), 4)) + (SafeDiv(keccak__row_ratio, 64))) + - ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((mul_mod__a3_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset), + mem_pool__value_column); mask.emplace_back( - ((SafeDiv((31) * (keccak__row_ratio), 4)) + - ((keccak__keccak__diluted_column1_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((mul_mod__a0_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset), + mem_pool__value_column); mask.emplace_back( - ((SafeDiv((31) * (keccak__row_ratio), 4)) + - ((keccak__keccak__diluted_column2_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((mul_mod__b1_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset), + mem_pool__value_column); mask.emplace_back( - (((SafeDiv((63) * (keccak__row_ratio), 4)) + (SafeDiv(keccak__row_ratio, 4096))) + - ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((mul_mod__b2_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset), + mem_pool__value_column); mask.emplace_back( - ((SafeDiv((63) * (keccak__row_ratio), 4)) + - ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((mul_mod__b3_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset), + mem_pool__value_column); mask.emplace_back( - ((SafeDiv((2017) * (keccak__row_ratio), 128)) + - ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((mul_mod__b0_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset), + mem_pool__value_column); mask.emplace_back( - (((SafeDiv((63) * (keccak__row_ratio), 4)) + (SafeDiv(keccak__row_ratio, 64))) + - ((keccak__keccak__diluted_column3_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((mul_mod__c1_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset), + mem_pool__value_column); mask.emplace_back( - ((SafeDiv((63) * (keccak__row_ratio), 4)) + - ((keccak__keccak__diluted_column1_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((mul_mod__c2_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset), + mem_pool__value_column); mask.emplace_back( - ((SafeDiv((63) * (keccak__row_ratio), 4)) + - ((keccak__keccak__diluted_column2_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((mul_mod__c3_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset), + mem_pool__value_column); mask.emplace_back( - (((SafeDiv(keccak__row_ratio, 32)) + (SafeDiv(keccak__row_ratio, 4096))) + - ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((mul_mod__c0_suboffset) * (memory_units_row_ratio)) + (mem_pool__value_offset), + mem_pool__value_column); mask.emplace_back( - ((SafeDiv(keccak__row_ratio, 32)) + - ((keccak__keccak__diluted_column1_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((mul_mod__p_multiplier1__part0_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset), + range_check16_pool_column); mask.emplace_back( - ((SafeDiv(keccak__row_ratio, 32)) + - ((keccak__keccak__diluted_column2_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((mul_mod__p_multiplier1__part1_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset), + range_check16_pool_column); mask.emplace_back( - (((SafeDiv((3) * (keccak__row_ratio), 128)) + (SafeDiv(keccak__row_ratio, 4096))) + - ((keccak__keccak__diluted_column0_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((mul_mod__p_multiplier1__part2_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset), + range_check16_pool_column); mask.emplace_back( - ((SafeDiv((3) * (keccak__row_ratio), 128)) + - ((keccak__keccak__diluted_column1_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((mul_mod__p_multiplier1__part3_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset), + range_check16_pool_column); mask.emplace_back( - ((SafeDiv((3) * (keccak__row_ratio), 128)) + - ((keccak__keccak__diluted_column2_suboffset) * (diluted_units_row_ratio))) + - (diluted_pool_offset), - diluted_pool_column); + ((mul_mod__p_multiplier1__part4_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset), + range_check16_pool_column); mask.emplace_back( - ((poseidon__param_0__input_output_suboffset) * (memory_units_row_ratio)) + - (mem_pool__addr_offset), - mem_pool__addr_column); + ((mul_mod__p_multiplier1__part5_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset), + range_check16_pool_column); mask.emplace_back( - ((SafeDiv(poseidon__row_ratio, 2)) + - ((poseidon__param_0__input_output_suboffset) * (memory_units_row_ratio))) + - (mem_pool__addr_offset), - mem_pool__addr_column); + ((mul_mod__p_multiplier2__part0_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset), + range_check16_pool_column); mask.emplace_back( - ((poseidon__param_1__input_output_suboffset) * (memory_units_row_ratio)) + - (mem_pool__addr_offset), - mem_pool__addr_column); + ((mul_mod__p_multiplier2__part1_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset), + range_check16_pool_column); + mask.emplace_back( + ((mul_mod__p_multiplier2__part2_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset), + range_check16_pool_column); + mask.emplace_back( + ((mul_mod__p_multiplier2__part3_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset), + range_check16_pool_column); mask.emplace_back( - ((SafeDiv(poseidon__row_ratio, 2)) + - ((poseidon__param_1__input_output_suboffset) * (memory_units_row_ratio))) + - (mem_pool__addr_offset), - mem_pool__addr_column); + ((mul_mod__p_multiplier2__part4_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset), + range_check16_pool_column); mask.emplace_back( - ((poseidon__param_2__input_output_suboffset) * (memory_units_row_ratio)) + - (mem_pool__addr_offset), - mem_pool__addr_column); + ((mul_mod__p_multiplier2__part5_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset), + range_check16_pool_column); mask.emplace_back( - ((SafeDiv(poseidon__row_ratio, 2)) + - ((poseidon__param_2__input_output_suboffset) * (memory_units_row_ratio))) + - (mem_pool__addr_offset), - mem_pool__addr_column); + ((mul_mod__p_multiplier3__part0_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset), + range_check16_pool_column); mask.emplace_back( - poseidon__poseidon__full_rounds_state0_squared_offset, - poseidon__poseidon__full_rounds_state0_squared_column); + ((mul_mod__p_multiplier3__part1_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset), + range_check16_pool_column); mask.emplace_back( - poseidon__poseidon__full_rounds_state0_offset, poseidon__poseidon__full_rounds_state0_column); + ((mul_mod__p_multiplier3__part2_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset), + range_check16_pool_column); mask.emplace_back( - poseidon__poseidon__full_rounds_state1_squared_offset, - poseidon__poseidon__full_rounds_state1_squared_column); + ((mul_mod__p_multiplier3__part3_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset), + range_check16_pool_column); mask.emplace_back( - poseidon__poseidon__full_rounds_state1_offset, poseidon__poseidon__full_rounds_state1_column); + ((mul_mod__p_multiplier3__part4_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset), + range_check16_pool_column); mask.emplace_back( - poseidon__poseidon__full_rounds_state2_squared_offset, - poseidon__poseidon__full_rounds_state2_squared_column); + ((mul_mod__p_multiplier3__part5_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset), + range_check16_pool_column); mask.emplace_back( - poseidon__poseidon__full_rounds_state2_offset, poseidon__poseidon__full_rounds_state2_column); + ((mul_mod__p_multiplier0__part0_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset), + range_check16_pool_column); mask.emplace_back( - poseidon__poseidon__partial_rounds_state0_squared_offset, - poseidon__poseidon__partial_rounds_state0_squared_column); + ((mul_mod__p_multiplier0__part1_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset), + range_check16_pool_column); mask.emplace_back( - poseidon__poseidon__partial_rounds_state0_offset, - poseidon__poseidon__partial_rounds_state0_column); + ((mul_mod__p_multiplier0__part2_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset), + range_check16_pool_column); mask.emplace_back( - poseidon__poseidon__partial_rounds_state1_squared_offset, - poseidon__poseidon__partial_rounds_state1_squared_column); + ((mul_mod__p_multiplier0__part3_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset), + range_check16_pool_column); mask.emplace_back( - poseidon__poseidon__partial_rounds_state1_offset, - poseidon__poseidon__partial_rounds_state1_column); + ((mul_mod__p_multiplier0__part4_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset), + range_check16_pool_column); mask.emplace_back( - ((poseidon__param_0__input_output_suboffset) * (memory_units_row_ratio)) + - (mem_pool__value_offset), - mem_pool__value_column); + ((mul_mod__p_multiplier0__part5_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset), + range_check16_pool_column); mask.emplace_back( - ((poseidon__param_1__input_output_suboffset) * (memory_units_row_ratio)) + - (mem_pool__value_offset), - mem_pool__value_column); + ((mul_mod__carry1__part0_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset), + range_check16_pool_column); mask.emplace_back( - ((poseidon__param_2__input_output_suboffset) * (memory_units_row_ratio)) + - (mem_pool__value_offset), - mem_pool__value_column); + ((mul_mod__carry1__part1_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset), + range_check16_pool_column); mask.emplace_back( - (SafeDiv(poseidon__row_ratio, 8)) + (poseidon__poseidon__full_rounds_state0_offset), - poseidon__poseidon__full_rounds_state0_column); + ((mul_mod__carry1__part2_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset), + range_check16_pool_column); mask.emplace_back( - (SafeDiv(poseidon__row_ratio, 8)) + (poseidon__poseidon__full_rounds_state1_offset), - poseidon__poseidon__full_rounds_state1_column); + ((mul_mod__carry1__part3_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset), + range_check16_pool_column); mask.emplace_back( - (SafeDiv(poseidon__row_ratio, 8)) + (poseidon__poseidon__full_rounds_state2_offset), - poseidon__poseidon__full_rounds_state2_column); + ((mul_mod__carry1__part4_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset), + range_check16_pool_column); mask.emplace_back( - ((SafeDiv(poseidon__row_ratio, 2)) + - ((poseidon__param_0__input_output_suboffset) * (memory_units_row_ratio))) + - (mem_pool__value_offset), - mem_pool__value_column); + ((mul_mod__carry1__part5_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset), + range_check16_pool_column); mask.emplace_back( - (SafeDiv((7) * (poseidon__row_ratio), 8)) + (poseidon__poseidon__full_rounds_state0_offset), - poseidon__poseidon__full_rounds_state0_column); + ((mul_mod__carry1__part6_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset), + range_check16_pool_column); mask.emplace_back( - (SafeDiv((7) * (poseidon__row_ratio), 8)) + - (poseidon__poseidon__full_rounds_state0_squared_offset), - poseidon__poseidon__full_rounds_state0_squared_column); + ((mul_mod__carry2__part0_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset), + range_check16_pool_column); mask.emplace_back( - (SafeDiv((7) * (poseidon__row_ratio), 8)) + (poseidon__poseidon__full_rounds_state1_offset), - poseidon__poseidon__full_rounds_state1_column); + ((mul_mod__carry2__part1_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset), + range_check16_pool_column); mask.emplace_back( - (SafeDiv((7) * (poseidon__row_ratio), 8)) + - (poseidon__poseidon__full_rounds_state1_squared_offset), - poseidon__poseidon__full_rounds_state1_squared_column); + ((mul_mod__carry2__part2_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset), + range_check16_pool_column); mask.emplace_back( - (SafeDiv((7) * (poseidon__row_ratio), 8)) + (poseidon__poseidon__full_rounds_state2_offset), - poseidon__poseidon__full_rounds_state2_column); + ((mul_mod__carry2__part3_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset), + range_check16_pool_column); mask.emplace_back( - (SafeDiv((7) * (poseidon__row_ratio), 8)) + - (poseidon__poseidon__full_rounds_state2_squared_offset), - poseidon__poseidon__full_rounds_state2_squared_column); + ((mul_mod__carry2__part4_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset), + range_check16_pool_column); mask.emplace_back( - ((SafeDiv(poseidon__row_ratio, 2)) + - ((poseidon__param_1__input_output_suboffset) * (memory_units_row_ratio))) + - (mem_pool__value_offset), - mem_pool__value_column); + ((mul_mod__carry2__part5_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset), + range_check16_pool_column); mask.emplace_back( - ((SafeDiv(poseidon__row_ratio, 2)) + - ((poseidon__param_2__input_output_suboffset) * (memory_units_row_ratio))) + - (mem_pool__value_offset), - mem_pool__value_column); + ((mul_mod__carry2__part6_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset), + range_check16_pool_column); mask.emplace_back( - (SafeDiv((61) * (poseidon__row_ratio), 64)) + - (poseidon__poseidon__partial_rounds_state0_offset), - poseidon__poseidon__partial_rounds_state0_column); + ((mul_mod__carry3__part0_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset), + range_check16_pool_column); mask.emplace_back( - (SafeDiv(poseidon__row_ratio, 32)) + (poseidon__poseidon__partial_rounds_state1_offset), - poseidon__poseidon__partial_rounds_state1_column); + ((mul_mod__carry3__part1_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset), + range_check16_pool_column); mask.emplace_back( - (SafeDiv((31) * (poseidon__row_ratio), 32)) + - (poseidon__poseidon__partial_rounds_state0_offset), - poseidon__poseidon__partial_rounds_state0_column); + ((mul_mod__carry3__part2_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset), + range_check16_pool_column); mask.emplace_back( - (SafeDiv(poseidon__row_ratio, 16)) + (poseidon__poseidon__partial_rounds_state1_offset), - poseidon__poseidon__partial_rounds_state1_column); + ((mul_mod__carry3__part3_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset), + range_check16_pool_column); mask.emplace_back( - (SafeDiv((63) * (poseidon__row_ratio), 64)) + - (poseidon__poseidon__partial_rounds_state0_offset), - poseidon__poseidon__partial_rounds_state0_column); + ((mul_mod__carry3__part4_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset), + range_check16_pool_column); mask.emplace_back( - (SafeDiv((3) * (poseidon__row_ratio), 8)) + (poseidon__poseidon__full_rounds_state0_offset), - poseidon__poseidon__full_rounds_state0_column); + ((mul_mod__carry3__part5_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset), + range_check16_pool_column); mask.emplace_back( - (SafeDiv((3) * (poseidon__row_ratio), 8)) + - (poseidon__poseidon__full_rounds_state0_squared_offset), - poseidon__poseidon__full_rounds_state0_squared_column); + ((mul_mod__carry3__part6_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset), + range_check16_pool_column); mask.emplace_back( - (SafeDiv((3) * (poseidon__row_ratio), 8)) + (poseidon__poseidon__full_rounds_state1_offset), - poseidon__poseidon__full_rounds_state1_column); + ((mul_mod__carry4__part0_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset), + range_check16_pool_column); mask.emplace_back( - (SafeDiv((3) * (poseidon__row_ratio), 8)) + - (poseidon__poseidon__full_rounds_state1_squared_offset), - poseidon__poseidon__full_rounds_state1_squared_column); + ((mul_mod__carry4__part1_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset), + range_check16_pool_column); mask.emplace_back( - (SafeDiv((3) * (poseidon__row_ratio), 8)) + (poseidon__poseidon__full_rounds_state2_offset), - poseidon__poseidon__full_rounds_state2_column); + ((mul_mod__carry4__part2_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset), + range_check16_pool_column); mask.emplace_back( - (SafeDiv((3) * (poseidon__row_ratio), 8)) + - (poseidon__poseidon__full_rounds_state2_squared_offset), - poseidon__poseidon__full_rounds_state2_squared_column); + ((mul_mod__carry4__part3_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset), + range_check16_pool_column); mask.emplace_back( - (SafeDiv(poseidon__row_ratio, 64)) + (poseidon__poseidon__partial_rounds_state0_offset), - poseidon__poseidon__partial_rounds_state0_column); + ((mul_mod__carry4__part4_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset), + range_check16_pool_column); mask.emplace_back( - (SafeDiv(poseidon__row_ratio, 32)) + (poseidon__poseidon__partial_rounds_state0_offset), - poseidon__poseidon__partial_rounds_state0_column); + ((mul_mod__carry4__part5_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset), + range_check16_pool_column); mask.emplace_back( - (SafeDiv(poseidon__row_ratio, 64)) + - (poseidon__poseidon__partial_rounds_state0_squared_offset), - poseidon__poseidon__partial_rounds_state0_squared_column); + ((mul_mod__carry4__part6_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset), + range_check16_pool_column); mask.emplace_back( - (SafeDiv((3) * (poseidon__row_ratio), 64)) + - (poseidon__poseidon__partial_rounds_state0_offset), - poseidon__poseidon__partial_rounds_state0_column); + ((mul_mod__carry5__part0_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset), + range_check16_pool_column); mask.emplace_back( - (SafeDiv(poseidon__row_ratio, 32)) + - (poseidon__poseidon__partial_rounds_state0_squared_offset), - poseidon__poseidon__partial_rounds_state0_squared_column); + ((mul_mod__carry5__part1_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset), + range_check16_pool_column); mask.emplace_back( - (SafeDiv((3) * (poseidon__row_ratio), 32)) + - (poseidon__poseidon__partial_rounds_state1_offset), - poseidon__poseidon__partial_rounds_state1_column); + ((mul_mod__carry5__part2_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset), + range_check16_pool_column); mask.emplace_back( - (SafeDiv(poseidon__row_ratio, 32)) + - (poseidon__poseidon__partial_rounds_state1_squared_offset), - poseidon__poseidon__partial_rounds_state1_squared_column); + ((mul_mod__carry5__part3_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset), + range_check16_pool_column); mask.emplace_back( - (SafeDiv(poseidon__row_ratio, 16)) + - (poseidon__poseidon__partial_rounds_state1_squared_offset), - poseidon__poseidon__partial_rounds_state1_squared_column); + ((mul_mod__carry5__part4_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset), + range_check16_pool_column); mask.emplace_back( - (SafeDiv(poseidon__row_ratio, 2)) + (poseidon__poseidon__full_rounds_state0_offset), - poseidon__poseidon__full_rounds_state0_column); + ((mul_mod__carry5__part5_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset), + range_check16_pool_column); mask.emplace_back( - (SafeDiv((19) * (poseidon__row_ratio), 32)) + - (poseidon__poseidon__partial_rounds_state1_offset), - poseidon__poseidon__partial_rounds_state1_column); + ((mul_mod__carry5__part6_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset), + range_check16_pool_column); mask.emplace_back( - (SafeDiv((19) * (poseidon__row_ratio), 32)) + - (poseidon__poseidon__partial_rounds_state1_squared_offset), - poseidon__poseidon__partial_rounds_state1_squared_column); + ((mul_mod__carry0__part0_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset), + range_check16_pool_column); mask.emplace_back( - (SafeDiv((5) * (poseidon__row_ratio), 8)) + - (poseidon__poseidon__partial_rounds_state1_offset), - poseidon__poseidon__partial_rounds_state1_column); + ((mul_mod__carry0__part1_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset), + range_check16_pool_column); mask.emplace_back( - (SafeDiv((5) * (poseidon__row_ratio), 8)) + - (poseidon__poseidon__partial_rounds_state1_squared_offset), - poseidon__poseidon__partial_rounds_state1_squared_column); + ((mul_mod__carry0__part2_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset), + range_check16_pool_column); mask.emplace_back( - (SafeDiv((21) * (poseidon__row_ratio), 32)) + - (poseidon__poseidon__partial_rounds_state1_offset), - poseidon__poseidon__partial_rounds_state1_column); + ((mul_mod__carry0__part3_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset), + range_check16_pool_column); mask.emplace_back( - (SafeDiv((21) * (poseidon__row_ratio), 32)) + - (poseidon__poseidon__partial_rounds_state1_squared_offset), - poseidon__poseidon__partial_rounds_state1_squared_column); + ((mul_mod__carry0__part4_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset), + range_check16_pool_column); mask.emplace_back( - (SafeDiv(poseidon__row_ratio, 2)) + (poseidon__poseidon__full_rounds_state1_offset), - poseidon__poseidon__full_rounds_state1_column); + ((mul_mod__carry0__part5_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset), + range_check16_pool_column); mask.emplace_back( - (SafeDiv(poseidon__row_ratio, 2)) + (poseidon__poseidon__full_rounds_state2_offset), - poseidon__poseidon__full_rounds_state2_column); + ((mul_mod__carry0__part6_suboffset) * (range_check_units_row_ratio)) + + (range_check16_pool_offset), + range_check16_pool_column); mask.emplace_back( memory__multi_column_perm__perm__cum_prod0_offset, memory__multi_column_perm__perm__cum_prod0_column); diff --git a/src/starkware/air/cpu/board/cpu_air_definition12.h b/src/starkware/air/cpu/board/cpu_air_definition12.h index 0fd4293..a7c281f 100755 --- a/src/starkware/air/cpu/board/cpu_air_definition12.h +++ b/src/starkware/air/cpu/board/cpu_air_definition12.h @@ -764,6 +764,7 @@ class CpuAirDefinition : public Air { static constexpr bool kHasPoseidonBuiltin = true; static constexpr bool kHasRangeCheck96Builtin = false; static constexpr bool kHasAddModBuiltin = false; + static constexpr bool kHasMulModBuiltin = false; static constexpr char kLayoutName[] = "recursive_with_poseidon"; static constexpr BigInt<4> kLayoutCode = 0x7265637572736976655f776974685f706f736569646f6e_Z; static constexpr uint64_t kConstraintDegree = 2; @@ -1397,6 +1398,10 @@ class CpuAirDefinition : public Air { kHasKeccakBuiltin ? GetSegment(mem_segment_addresses, "keccak").begin_addr : 0), poseidon_begin_addr_( kHasPoseidonBuiltin ? GetSegment(mem_segment_addresses, "poseidon").begin_addr : 0), + add_mod_begin_addr_( + kHasAddModBuiltin ? GetSegment(mem_segment_addresses, "add_mod").begin_addr : 0), + mul_mod_begin_addr_( + kHasMulModBuiltin ? GetSegment(mem_segment_addresses, "mul_mod").begin_addr : 0), dynamic_params_(ParseDynamicParams(dynamic_params)), range_check_min_(rc_min), @@ -1448,6 +1453,14 @@ class CpuAirDefinition : public Air { const CompileTimeOptional initial_poseidon_addr_ = FieldElementT::FromUint(ExtractHiddenMemberValue(poseidon_begin_addr_)); + const CompileTimeOptional add_mod_begin_addr_; + const CompileTimeOptional add_mod__initial_mod_addr_ = + FieldElementT::FromUint(ExtractHiddenMemberValue(add_mod_begin_addr_)); + + const CompileTimeOptional mul_mod_begin_addr_; + const CompileTimeOptional mul_mod__initial_mod_addr_ = + FieldElementT::FromUint(ExtractHiddenMemberValue(mul_mod_begin_addr_)); + // Flat vector of dynamic_params, used for efficient computation of the composition polynomial. // See ParseDynamicParams. CompileTimeOptional, kIsDynamicAir> dynamic_params_; @@ -1468,6 +1481,10 @@ class CpuAirDefinition : public Air { FieldElementT::Uninitialized(); CompileTimeOptional diluted_check__interaction_alpha_ = FieldElementT::Uninitialized(); + CompileTimeOptional add_mod__interaction_elm_ = + FieldElementT::Uninitialized(); + CompileTimeOptional mul_mod__interaction_elm_ = + FieldElementT::Uninitialized(); FieldElementT memory__multi_column_perm__perm__public_memory_prod_ = FieldElementT::Uninitialized(); diff --git a/src/starkware/air/cpu/board/cpu_air_definition2.h b/src/starkware/air/cpu/board/cpu_air_definition2.h index 86eec5c..e4af4fd 100755 --- a/src/starkware/air/cpu/board/cpu_air_definition2.h +++ b/src/starkware/air/cpu/board/cpu_air_definition2.h @@ -108,6 +108,7 @@ class CpuAirDefinition : public Air { static constexpr bool kHasPoseidonBuiltin = false; static constexpr bool kHasRangeCheck96Builtin = false; static constexpr bool kHasAddModBuiltin = false; + static constexpr bool kHasMulModBuiltin = false; static constexpr char kLayoutName[] = "perpetual"; static constexpr BigInt<4> kLayoutCode = 0x70657270657475616c_Z; static constexpr uint64_t kConstraintDegree = 2; @@ -438,6 +439,10 @@ class CpuAirDefinition : public Air { kHasKeccakBuiltin ? GetSegment(mem_segment_addresses, "keccak").begin_addr : 0), poseidon_begin_addr_( kHasPoseidonBuiltin ? GetSegment(mem_segment_addresses, "poseidon").begin_addr : 0), + add_mod_begin_addr_( + kHasAddModBuiltin ? GetSegment(mem_segment_addresses, "add_mod").begin_addr : 0), + mul_mod_begin_addr_( + kHasMulModBuiltin ? GetSegment(mem_segment_addresses, "mul_mod").begin_addr : 0), dynamic_params_(ParseDynamicParams(dynamic_params)), range_check_min_(rc_min), @@ -489,6 +494,14 @@ class CpuAirDefinition : public Air { const CompileTimeOptional initial_poseidon_addr_ = FieldElementT::FromUint(ExtractHiddenMemberValue(poseidon_begin_addr_)); + const CompileTimeOptional add_mod_begin_addr_; + const CompileTimeOptional add_mod__initial_mod_addr_ = + FieldElementT::FromUint(ExtractHiddenMemberValue(add_mod_begin_addr_)); + + const CompileTimeOptional mul_mod_begin_addr_; + const CompileTimeOptional mul_mod__initial_mod_addr_ = + FieldElementT::FromUint(ExtractHiddenMemberValue(mul_mod_begin_addr_)); + // Flat vector of dynamic_params, used for efficient computation of the composition polynomial. // See ParseDynamicParams. CompileTimeOptional, kIsDynamicAir> dynamic_params_; @@ -509,6 +522,10 @@ class CpuAirDefinition : public Air { FieldElementT::Uninitialized(); CompileTimeOptional diluted_check__interaction_alpha_ = FieldElementT::Uninitialized(); + CompileTimeOptional add_mod__interaction_elm_ = + FieldElementT::Uninitialized(); + CompileTimeOptional mul_mod__interaction_elm_ = + FieldElementT::Uninitialized(); FieldElementT memory__multi_column_perm__perm__public_memory_prod_ = FieldElementT::Uninitialized(); diff --git a/src/starkware/air/cpu/board/cpu_air_definition3.h b/src/starkware/air/cpu/board/cpu_air_definition3.h index 6139ede..6a74934 100755 --- a/src/starkware/air/cpu/board/cpu_air_definition3.h +++ b/src/starkware/air/cpu/board/cpu_air_definition3.h @@ -117,6 +117,7 @@ class CpuAirDefinition : public Air { static constexpr bool kHasPoseidonBuiltin = false; static constexpr bool kHasRangeCheck96Builtin = false; static constexpr bool kHasAddModBuiltin = false; + static constexpr bool kHasMulModBuiltin = false; static constexpr char kLayoutName[] = "all_solidity"; static constexpr BigInt<4> kLayoutCode = 0x616c6c5f736f6c6964697479_Z; static constexpr uint64_t kConstraintDegree = 2; @@ -736,6 +737,10 @@ class CpuAirDefinition : public Air { kHasKeccakBuiltin ? GetSegment(mem_segment_addresses, "keccak").begin_addr : 0), poseidon_begin_addr_( kHasPoseidonBuiltin ? GetSegment(mem_segment_addresses, "poseidon").begin_addr : 0), + add_mod_begin_addr_( + kHasAddModBuiltin ? GetSegment(mem_segment_addresses, "add_mod").begin_addr : 0), + mul_mod_begin_addr_( + kHasMulModBuiltin ? GetSegment(mem_segment_addresses, "mul_mod").begin_addr : 0), dynamic_params_(ParseDynamicParams(dynamic_params)), range_check_min_(rc_min), @@ -787,6 +792,14 @@ class CpuAirDefinition : public Air { const CompileTimeOptional initial_poseidon_addr_ = FieldElementT::FromUint(ExtractHiddenMemberValue(poseidon_begin_addr_)); + const CompileTimeOptional add_mod_begin_addr_; + const CompileTimeOptional add_mod__initial_mod_addr_ = + FieldElementT::FromUint(ExtractHiddenMemberValue(add_mod_begin_addr_)); + + const CompileTimeOptional mul_mod_begin_addr_; + const CompileTimeOptional mul_mod__initial_mod_addr_ = + FieldElementT::FromUint(ExtractHiddenMemberValue(mul_mod_begin_addr_)); + // Flat vector of dynamic_params, used for efficient computation of the composition polynomial. // See ParseDynamicParams. CompileTimeOptional, kIsDynamicAir> dynamic_params_; @@ -807,6 +820,10 @@ class CpuAirDefinition : public Air { FieldElementT::Uninitialized(); CompileTimeOptional diluted_check__interaction_alpha_ = FieldElementT::Uninitialized(); + CompileTimeOptional add_mod__interaction_elm_ = + FieldElementT::Uninitialized(); + CompileTimeOptional mul_mod__interaction_elm_ = + FieldElementT::Uninitialized(); FieldElementT memory__multi_column_perm__perm__public_memory_prod_ = FieldElementT::Uninitialized(); diff --git a/src/starkware/air/cpu/board/cpu_air_definition4.h b/src/starkware/air/cpu/board/cpu_air_definition4.h index aea47b1..a2dfaa7 100755 --- a/src/starkware/air/cpu/board/cpu_air_definition4.h +++ b/src/starkware/air/cpu/board/cpu_air_definition4.h @@ -108,6 +108,7 @@ class CpuAirDefinition : public Air { static constexpr bool kHasPoseidonBuiltin = false; static constexpr bool kHasRangeCheck96Builtin = false; static constexpr bool kHasAddModBuiltin = false; + static constexpr bool kHasMulModBuiltin = false; static constexpr char kLayoutName[] = "recursive"; static constexpr BigInt<4> kLayoutCode = 0x726563757273697665_Z; static constexpr uint64_t kConstraintDegree = 2; @@ -418,6 +419,10 @@ class CpuAirDefinition : public Air { kHasKeccakBuiltin ? GetSegment(mem_segment_addresses, "keccak").begin_addr : 0), poseidon_begin_addr_( kHasPoseidonBuiltin ? GetSegment(mem_segment_addresses, "poseidon").begin_addr : 0), + add_mod_begin_addr_( + kHasAddModBuiltin ? GetSegment(mem_segment_addresses, "add_mod").begin_addr : 0), + mul_mod_begin_addr_( + kHasMulModBuiltin ? GetSegment(mem_segment_addresses, "mul_mod").begin_addr : 0), dynamic_params_(ParseDynamicParams(dynamic_params)), range_check_min_(rc_min), @@ -469,6 +474,14 @@ class CpuAirDefinition : public Air { const CompileTimeOptional initial_poseidon_addr_ = FieldElementT::FromUint(ExtractHiddenMemberValue(poseidon_begin_addr_)); + const CompileTimeOptional add_mod_begin_addr_; + const CompileTimeOptional add_mod__initial_mod_addr_ = + FieldElementT::FromUint(ExtractHiddenMemberValue(add_mod_begin_addr_)); + + const CompileTimeOptional mul_mod_begin_addr_; + const CompileTimeOptional mul_mod__initial_mod_addr_ = + FieldElementT::FromUint(ExtractHiddenMemberValue(mul_mod_begin_addr_)); + // Flat vector of dynamic_params, used for efficient computation of the composition polynomial. // See ParseDynamicParams. CompileTimeOptional, kIsDynamicAir> dynamic_params_; @@ -489,6 +502,10 @@ class CpuAirDefinition : public Air { FieldElementT::Uninitialized(); CompileTimeOptional diluted_check__interaction_alpha_ = FieldElementT::Uninitialized(); + CompileTimeOptional add_mod__interaction_elm_ = + FieldElementT::Uninitialized(); + CompileTimeOptional mul_mod__interaction_elm_ = + FieldElementT::Uninitialized(); FieldElementT memory__multi_column_perm__perm__public_memory_prod_ = FieldElementT::Uninitialized(); diff --git a/src/starkware/air/cpu/board/cpu_air_definition5.h b/src/starkware/air/cpu/board/cpu_air_definition5.h index da54eb6..152565c 100755 --- a/src/starkware/air/cpu/board/cpu_air_definition5.h +++ b/src/starkware/air/cpu/board/cpu_air_definition5.h @@ -113,6 +113,7 @@ class CpuAirDefinition : public Air { static constexpr bool kHasPoseidonBuiltin = false; static constexpr bool kHasRangeCheck96Builtin = false; static constexpr bool kHasAddModBuiltin = false; + static constexpr bool kHasMulModBuiltin = false; static constexpr char kLayoutName[] = "dex_with_bitwise"; static constexpr BigInt<4> kLayoutCode = 0x6465785f776974685f62697477697365_Z; static constexpr uint64_t kConstraintDegree = 2; @@ -654,6 +655,10 @@ class CpuAirDefinition : public Air { kHasKeccakBuiltin ? GetSegment(mem_segment_addresses, "keccak").begin_addr : 0), poseidon_begin_addr_( kHasPoseidonBuiltin ? GetSegment(mem_segment_addresses, "poseidon").begin_addr : 0), + add_mod_begin_addr_( + kHasAddModBuiltin ? GetSegment(mem_segment_addresses, "add_mod").begin_addr : 0), + mul_mod_begin_addr_( + kHasMulModBuiltin ? GetSegment(mem_segment_addresses, "mul_mod").begin_addr : 0), dynamic_params_(ParseDynamicParams(dynamic_params)), range_check_min_(rc_min), @@ -705,6 +710,14 @@ class CpuAirDefinition : public Air { const CompileTimeOptional initial_poseidon_addr_ = FieldElementT::FromUint(ExtractHiddenMemberValue(poseidon_begin_addr_)); + const CompileTimeOptional add_mod_begin_addr_; + const CompileTimeOptional add_mod__initial_mod_addr_ = + FieldElementT::FromUint(ExtractHiddenMemberValue(add_mod_begin_addr_)); + + const CompileTimeOptional mul_mod_begin_addr_; + const CompileTimeOptional mul_mod__initial_mod_addr_ = + FieldElementT::FromUint(ExtractHiddenMemberValue(mul_mod_begin_addr_)); + // Flat vector of dynamic_params, used for efficient computation of the composition polynomial. // See ParseDynamicParams. CompileTimeOptional, kIsDynamicAir> dynamic_params_; @@ -725,6 +738,10 @@ class CpuAirDefinition : public Air { FieldElementT::Uninitialized(); CompileTimeOptional diluted_check__interaction_alpha_ = FieldElementT::Uninitialized(); + CompileTimeOptional add_mod__interaction_elm_ = + FieldElementT::Uninitialized(); + CompileTimeOptional mul_mod__interaction_elm_ = + FieldElementT::Uninitialized(); FieldElementT memory__multi_column_perm__perm__public_memory_prod_ = FieldElementT::Uninitialized(); diff --git a/src/starkware/air/cpu/board/cpu_air_definition6.h b/src/starkware/air/cpu/board/cpu_air_definition6.h index 44a1ced..c3819bb 100755 --- a/src/starkware/air/cpu/board/cpu_air_definition6.h +++ b/src/starkware/air/cpu/board/cpu_air_definition6.h @@ -773,6 +773,7 @@ class CpuAirDefinition : public Air { static constexpr bool kHasPoseidonBuiltin = true; static constexpr bool kHasRangeCheck96Builtin = false; static constexpr bool kHasAddModBuiltin = false; + static constexpr bool kHasMulModBuiltin = false; static constexpr char kLayoutName[] = "starknet"; static constexpr BigInt<4> kLayoutCode = 0x737461726b6e6574_Z; static constexpr uint64_t kConstraintDegree = 2; @@ -1564,6 +1565,10 @@ class CpuAirDefinition : public Air { kHasKeccakBuiltin ? GetSegment(mem_segment_addresses, "keccak").begin_addr : 0), poseidon_begin_addr_( kHasPoseidonBuiltin ? GetSegment(mem_segment_addresses, "poseidon").begin_addr : 0), + add_mod_begin_addr_( + kHasAddModBuiltin ? GetSegment(mem_segment_addresses, "add_mod").begin_addr : 0), + mul_mod_begin_addr_( + kHasMulModBuiltin ? GetSegment(mem_segment_addresses, "mul_mod").begin_addr : 0), dynamic_params_(ParseDynamicParams(dynamic_params)), range_check_min_(rc_min), @@ -1615,6 +1620,14 @@ class CpuAirDefinition : public Air { const CompileTimeOptional initial_poseidon_addr_ = FieldElementT::FromUint(ExtractHiddenMemberValue(poseidon_begin_addr_)); + const CompileTimeOptional add_mod_begin_addr_; + const CompileTimeOptional add_mod__initial_mod_addr_ = + FieldElementT::FromUint(ExtractHiddenMemberValue(add_mod_begin_addr_)); + + const CompileTimeOptional mul_mod_begin_addr_; + const CompileTimeOptional mul_mod__initial_mod_addr_ = + FieldElementT::FromUint(ExtractHiddenMemberValue(mul_mod_begin_addr_)); + // Flat vector of dynamic_params, used for efficient computation of the composition polynomial. // See ParseDynamicParams. CompileTimeOptional, kIsDynamicAir> dynamic_params_; @@ -1635,6 +1648,10 @@ class CpuAirDefinition : public Air { FieldElementT::Uninitialized(); CompileTimeOptional diluted_check__interaction_alpha_ = FieldElementT::Uninitialized(); + CompileTimeOptional add_mod__interaction_elm_ = + FieldElementT::Uninitialized(); + CompileTimeOptional mul_mod__interaction_elm_ = + FieldElementT::Uninitialized(); FieldElementT memory__multi_column_perm__perm__public_memory_prod_ = FieldElementT::Uninitialized(); diff --git a/src/starkware/air/cpu/board/cpu_air_definition7.h b/src/starkware/air/cpu/board/cpu_air_definition7.h index 89ceec2..bdf81b3 100755 --- a/src/starkware/air/cpu/board/cpu_air_definition7.h +++ b/src/starkware/air/cpu/board/cpu_air_definition7.h @@ -764,6 +764,7 @@ class CpuAirDefinition : public Air { static constexpr bool kHasPoseidonBuiltin = true; static constexpr bool kHasRangeCheck96Builtin = false; static constexpr bool kHasAddModBuiltin = false; + static constexpr bool kHasMulModBuiltin = false; static constexpr char kLayoutName[] = "recursive_large_output"; static constexpr BigInt<4> kLayoutCode = 0x7265637572736976655f6c617267655f6f7574707574_Z; static constexpr uint64_t kConstraintDegree = 2; @@ -1401,6 +1402,10 @@ class CpuAirDefinition : public Air { kHasKeccakBuiltin ? GetSegment(mem_segment_addresses, "keccak").begin_addr : 0), poseidon_begin_addr_( kHasPoseidonBuiltin ? GetSegment(mem_segment_addresses, "poseidon").begin_addr : 0), + add_mod_begin_addr_( + kHasAddModBuiltin ? GetSegment(mem_segment_addresses, "add_mod").begin_addr : 0), + mul_mod_begin_addr_( + kHasMulModBuiltin ? GetSegment(mem_segment_addresses, "mul_mod").begin_addr : 0), dynamic_params_(ParseDynamicParams(dynamic_params)), range_check_min_(rc_min), @@ -1452,6 +1457,14 @@ class CpuAirDefinition : public Air { const CompileTimeOptional initial_poseidon_addr_ = FieldElementT::FromUint(ExtractHiddenMemberValue(poseidon_begin_addr_)); + const CompileTimeOptional add_mod_begin_addr_; + const CompileTimeOptional add_mod__initial_mod_addr_ = + FieldElementT::FromUint(ExtractHiddenMemberValue(add_mod_begin_addr_)); + + const CompileTimeOptional mul_mod_begin_addr_; + const CompileTimeOptional mul_mod__initial_mod_addr_ = + FieldElementT::FromUint(ExtractHiddenMemberValue(mul_mod_begin_addr_)); + // Flat vector of dynamic_params, used for efficient computation of the composition polynomial. // See ParseDynamicParams. CompileTimeOptional, kIsDynamicAir> dynamic_params_; @@ -1472,6 +1485,10 @@ class CpuAirDefinition : public Air { FieldElementT::Uninitialized(); CompileTimeOptional diluted_check__interaction_alpha_ = FieldElementT::Uninitialized(); + CompileTimeOptional add_mod__interaction_elm_ = + FieldElementT::Uninitialized(); + CompileTimeOptional mul_mod__interaction_elm_ = + FieldElementT::Uninitialized(); FieldElementT memory__multi_column_perm__perm__public_memory_prod_ = FieldElementT::Uninitialized(); diff --git a/src/starkware/air/cpu/board/cpu_air_definition8.h b/src/starkware/air/cpu/board/cpu_air_definition8.h index ba53a12..5037f18 100755 --- a/src/starkware/air/cpu/board/cpu_air_definition8.h +++ b/src/starkware/air/cpu/board/cpu_air_definition8.h @@ -775,6 +775,7 @@ class CpuAirDefinition : public Air { static constexpr bool kHasPoseidonBuiltin = true; static constexpr bool kHasRangeCheck96Builtin = false; static constexpr bool kHasAddModBuiltin = false; + static constexpr bool kHasMulModBuiltin = false; static constexpr char kLayoutName[] = "starknet_with_keccak"; static constexpr BigInt<4> kLayoutCode = 0x737461726b6e65745f776974685f6b656363616b_Z; static constexpr uint64_t kConstraintDegree = 2; @@ -2428,6 +2429,10 @@ class CpuAirDefinition : public Air { kHasKeccakBuiltin ? GetSegment(mem_segment_addresses, "keccak").begin_addr : 0), poseidon_begin_addr_( kHasPoseidonBuiltin ? GetSegment(mem_segment_addresses, "poseidon").begin_addr : 0), + add_mod_begin_addr_( + kHasAddModBuiltin ? GetSegment(mem_segment_addresses, "add_mod").begin_addr : 0), + mul_mod_begin_addr_( + kHasMulModBuiltin ? GetSegment(mem_segment_addresses, "mul_mod").begin_addr : 0), dynamic_params_(ParseDynamicParams(dynamic_params)), range_check_min_(rc_min), @@ -2479,6 +2484,14 @@ class CpuAirDefinition : public Air { const CompileTimeOptional initial_poseidon_addr_ = FieldElementT::FromUint(ExtractHiddenMemberValue(poseidon_begin_addr_)); + const CompileTimeOptional add_mod_begin_addr_; + const CompileTimeOptional add_mod__initial_mod_addr_ = + FieldElementT::FromUint(ExtractHiddenMemberValue(add_mod_begin_addr_)); + + const CompileTimeOptional mul_mod_begin_addr_; + const CompileTimeOptional mul_mod__initial_mod_addr_ = + FieldElementT::FromUint(ExtractHiddenMemberValue(mul_mod_begin_addr_)); + // Flat vector of dynamic_params, used for efficient computation of the composition polynomial. // See ParseDynamicParams. CompileTimeOptional, kIsDynamicAir> dynamic_params_; @@ -2499,6 +2512,10 @@ class CpuAirDefinition : public Air { FieldElementT::Uninitialized(); CompileTimeOptional diluted_check__interaction_alpha_ = FieldElementT::Uninitialized(); + CompileTimeOptional add_mod__interaction_elm_ = + FieldElementT::Uninitialized(); + CompileTimeOptional mul_mod__interaction_elm_ = + FieldElementT::Uninitialized(); FieldElementT memory__multi_column_perm__perm__public_memory_prod_ = FieldElementT::Uninitialized(); diff --git a/src/starkware/air/cpu/board/cpu_air_definition9.h b/src/starkware/air/cpu/board/cpu_air_definition9.h index 29c1375..1dd1237 100755 --- a/src/starkware/air/cpu/board/cpu_air_definition9.h +++ b/src/starkware/air/cpu/board/cpu_air_definition9.h @@ -81,7 +81,7 @@ class CpuAirDefinition : public Air { uint64_t NumColumns() const override { return kNumColumns; } std::optional GetInteractionParams() const override { - InteractionParams interaction_params{kNumColumnsFirst, kNumColumnsSecond, 6}; + InteractionParams interaction_params{kNumColumnsFirst, kNumColumnsSecond, 8}; return interaction_params; } @@ -768,6 +768,14 @@ class CpuAirDefinition : public Air { static constexpr uint64_t kRangeCheck96BuiltinRatio = 8; static constexpr uint64_t kRangeCheck96BuiltinRowRatio = 128; static constexpr uint64_t kRangeCheck96NParts = 6; + static constexpr uint64_t kAddModRowRatio = 2048; + static constexpr uint64_t kAddModWordBitLen = 96; + static constexpr uint64_t kAddModNWords = 4; + static constexpr uint64_t kAddModBatchSize = 1; + static constexpr uint64_t kMulModRowRatio = 4096; + static constexpr uint64_t kMulModWordBitLen = 96; + static constexpr uint64_t kMulModNWords = 4; + static constexpr uint64_t kMulModBatchSize = 1; static constexpr bool kHasOutputBuiltin = true; static constexpr bool kHasPedersenBuiltin = true; static constexpr bool kHasRangeCheckBuiltin = true; @@ -777,14 +785,15 @@ class CpuAirDefinition : public Air { static constexpr bool kHasKeccakBuiltin = true; static constexpr bool kHasPoseidonBuiltin = true; static constexpr bool kHasRangeCheck96Builtin = true; - static constexpr bool kHasAddModBuiltin = false; + static constexpr bool kHasAddModBuiltin = true; + static constexpr bool kHasMulModBuiltin = true; static constexpr char kLayoutName[] = "all_cairo"; static constexpr BigInt<4> kLayoutCode = 0x616c6c5f636169726f_Z; static constexpr uint64_t kConstraintDegree = 2; static constexpr uint64_t kLogCpuComponentHeight = 4; - static constexpr std::array kSegmentNames = { - "program", "execution", "output", "pedersen", "range_check", "ecdsa", - "bitwise", "ec_op", "keccak", "poseidon", "range_check96"}; + static constexpr std::array kSegmentNames = { + "program", "execution", "output", "pedersen", "range_check", "ecdsa", "bitwise", + "ec_op", "keccak", "poseidon", "range_check96", "add_mod", "mul_mod"}; static constexpr uint64_t kNumColumnsFirst = 9; static constexpr uint64_t kNumColumnsSecond = 3; static constexpr bool kIsDynamicAir = false; @@ -1262,48 +1271,152 @@ class CpuAirDefinition : public Air { kColumn4Row27Neighbor, kColumn4Row42Neighbor, kColumn4Row43Neighbor, + kColumn4Row58Neighbor, + kColumn4Row59Neighbor, kColumn4Row74Neighbor, kColumn4Row75Neighbor, + kColumn4Row90Neighbor, + kColumn4Row91Neighbor, kColumn4Row106Neighbor, kColumn4Row138Neighbor, kColumn4Row139Neighbor, kColumn4Row154Neighbor, kColumn4Row171Neighbor, + kColumn4Row186Neighbor, + kColumn4Row187Neighbor, kColumn4Row202Neighbor, + kColumn4Row218Neighbor, + kColumn4Row219Neighbor, kColumn4Row234Neighbor, kColumn4Row235Neighbor, kColumn4Row266Neighbor, kColumn4Row267Neighbor, kColumn4Row298Neighbor, + kColumn4Row314Neighbor, + kColumn4Row315Neighbor, + kColumn4Row346Neighbor, + kColumn4Row347Neighbor, + kColumn4Row442Neighbor, + kColumn4Row443Neighbor, + kColumn4Row474Neighbor, + kColumn4Row475Neighbor, kColumn4Row522Neighbor, kColumn4Row523Neighbor, + kColumn4Row570Neighbor, + kColumn4Row571Neighbor, + kColumn4Row602Neighbor, + kColumn4Row603Neighbor, + kColumn4Row698Neighbor, + kColumn4Row699Neighbor, + kColumn4Row730Neighbor, + kColumn4Row731Neighbor, kColumn4Row778Neighbor, kColumn4Row779Neighbor, + kColumn4Row826Neighbor, + kColumn4Row827Neighbor, + kColumn4Row858Neighbor, + kColumn4Row859Neighbor, + kColumn4Row954Neighbor, + kColumn4Row955Neighbor, + kColumn4Row986Neighbor, + kColumn4Row987Neighbor, kColumn4Row1034Neighbor, kColumn4Row1035Neighbor, + kColumn4Row1082Neighbor, + kColumn4Row1083Neighbor, + kColumn4Row1114Neighbor, + kColumn4Row1115Neighbor, + kColumn4Row1210Neighbor, + kColumn4Row1211Neighbor, + kColumn4Row1242Neighbor, + kColumn4Row1243Neighbor, kColumn4Row1290Neighbor, kColumn4Row1291Neighbor, + kColumn4Row1338Neighbor, + kColumn4Row1339Neighbor, + kColumn4Row1370Neighbor, + kColumn4Row1371Neighbor, + kColumn4Row1466Neighbor, + kColumn4Row1467Neighbor, + kColumn4Row1498Neighbor, + kColumn4Row1499Neighbor, kColumn4Row1546Neighbor, kColumn4Row1547Neighbor, + kColumn4Row1594Neighbor, + kColumn4Row1595Neighbor, + kColumn4Row1626Neighbor, + kColumn4Row1627Neighbor, + kColumn4Row1722Neighbor, + kColumn4Row1723Neighbor, + kColumn4Row1754Neighbor, + kColumn4Row1755Neighbor, + kColumn4Row1802Neighbor, + kColumn4Row1803Neighbor, + kColumn4Row1850Neighbor, + kColumn4Row1851Neighbor, + kColumn4Row1882Neighbor, + kColumn4Row1883Neighbor, + kColumn4Row1978Neighbor, + kColumn4Row1979Neighbor, + kColumn4Row2010Neighbor, + kColumn4Row2011Neighbor, kColumn4Row2058Neighbor, kColumn4Row2059Neighbor, + kColumn4Row2139Neighbor, + kColumn4Row2234Neighbor, + kColumn4Row2235Neighbor, kColumn4Row2314Neighbor, kColumn4Row2315Neighbor, + kColumn4Row2395Neighbor, + kColumn4Row2490Neighbor, + kColumn4Row2491Neighbor, + kColumn4Row2570Neighbor, + kColumn4Row2571Neighbor, + kColumn4Row2651Neighbor, + kColumn4Row2746Neighbor, + kColumn4Row2747Neighbor, kColumn4Row2826Neighbor, kColumn4Row2827Neighbor, + kColumn4Row2874Neighbor, + kColumn4Row2875Neighbor, + kColumn4Row3002Neighbor, + kColumn4Row3003Neighbor, kColumn4Row3082Neighbor, kColumn4Row3083Neighbor, + kColumn4Row3163Neighbor, + kColumn4Row3258Neighbor, + kColumn4Row3259Neighbor, kColumn4Row3338Neighbor, kColumn4Row3339Neighbor, + kColumn4Row3386Neighbor, + kColumn4Row3387Neighbor, + kColumn4Row3419Neighbor, + kColumn4Row3514Neighbor, + kColumn4Row3515Neighbor, kColumn4Row3594Neighbor, kColumn4Row3595Neighbor, + kColumn4Row3675Neighbor, + kColumn4Row3770Neighbor, + kColumn4Row3771Neighbor, + kColumn4Row3850Neighbor, + kColumn4Row3851Neighbor, + kColumn4Row3898Neighbor, + kColumn4Row3899Neighbor, kColumn4Row4106Neighbor, kColumn4Row4618Neighbor, kColumn4Row4619Neighbor, + kColumn4Row4923Neighbor, + kColumn4Row5435Neighbor, kColumn4Row5643Neighbor, + kColumn4Row5947Neighbor, + kColumn4Row6666Neighbor, + kColumn4Row6667Neighbor, + kColumn4Row6971Neighbor, kColumn4Row7178Neighbor, kColumn4Row7179Neighbor, + kColumn4Row7483Neighbor, kColumn4Row7691Neighbor, + kColumn4Row7995Neighbor, kColumn4Row8714Neighbor, kColumn4Row8715Neighbor, kColumn4Row9739Neighbor, @@ -1334,11 +1447,13 @@ class CpuAirDefinition : public Air { kColumn5Row3Neighbor, kColumn5Row4Neighbor, kColumn5Row8Neighbor, + kColumn5Row10Neighbor, kColumn5Row12Neighbor, kColumn5Row18Neighbor, kColumn5Row28Neighbor, kColumn5Row34Neighbor, kColumn5Row44Neighbor, + kColumn5Row50Neighbor, kColumn5Row60Neighbor, kColumn5Row66Neighbor, kColumn5Row76Neighbor, @@ -1346,7 +1461,71 @@ class CpuAirDefinition : public Air { kColumn5Row92Neighbor, kColumn5Row98Neighbor, kColumn5Row108Neighbor, + kColumn5Row114Neighbor, kColumn5Row124Neighbor, + kColumn5Row178Neighbor, + kColumn5Row242Neighbor, + kColumn5Row306Neighbor, + kColumn5Row370Neighbor, + kColumn5Row434Neighbor, + kColumn5Row498Neighbor, + kColumn5Row562Neighbor, + kColumn5Row626Neighbor, + kColumn5Row690Neighbor, + kColumn5Row754Neighbor, + kColumn5Row818Neighbor, + kColumn5Row882Neighbor, + kColumn5Row946Neighbor, + kColumn5Row1010Neighbor, + kColumn5Row1074Neighbor, + kColumn5Row1138Neighbor, + kColumn5Row1202Neighbor, + kColumn5Row1266Neighbor, + kColumn5Row1330Neighbor, + kColumn5Row1394Neighbor, + kColumn5Row1458Neighbor, + kColumn5Row1522Neighbor, + kColumn5Row1586Neighbor, + kColumn5Row1650Neighbor, + kColumn5Row1714Neighbor, + kColumn5Row1778Neighbor, + kColumn5Row1842Neighbor, + kColumn5Row1906Neighbor, + kColumn5Row1970Neighbor, + kColumn5Row2034Neighbor, + kColumn5Row2058Neighbor, + kColumn5Row2098Neighbor, + kColumn5Row2162Neighbor, + kColumn5Row2226Neighbor, + kColumn5Row2290Neighbor, + kColumn5Row2354Neighbor, + kColumn5Row2418Neighbor, + kColumn5Row2482Neighbor, + kColumn5Row2546Neighbor, + kColumn5Row2610Neighbor, + kColumn5Row2674Neighbor, + kColumn5Row2738Neighbor, + kColumn5Row2802Neighbor, + kColumn5Row2866Neighbor, + kColumn5Row2930Neighbor, + kColumn5Row2994Neighbor, + kColumn5Row3058Neighbor, + kColumn5Row3122Neighbor, + kColumn5Row3186Neighbor, + kColumn5Row3250Neighbor, + kColumn5Row3314Neighbor, + kColumn5Row3378Neighbor, + kColumn5Row3442Neighbor, + kColumn5Row3506Neighbor, + kColumn5Row3570Neighbor, + kColumn5Row3634Neighbor, + kColumn5Row3698Neighbor, + kColumn5Row3762Neighbor, + kColumn5Row3826Neighbor, + kColumn5Row3890Neighbor, + kColumn5Row3954Neighbor, + kColumn5Row4018Neighbor, + kColumn5Row4082Neighbor, kColumn6Row0Neighbor, kColumn6Row1Neighbor, kColumn6Row2Neighbor, @@ -1514,16 +1693,23 @@ class CpuAirDefinition : public Air { kColumn8Row302Neighbor, kColumn8Row334Neighbor, kColumn8Row366Neighbor, + kColumn8Row414Neighbor, kColumn8Row462Neighbor, kColumn8Row494Neighbor, kColumn8Row622Neighbor, + kColumn8Row670Neighbor, kColumn8Row750Neighbor, kColumn8Row878Neighbor, + kColumn8Row926Neighbor, + kColumn8Row1182Neighbor, + kColumn8Row1438Neighbor, kColumn8Row1566Neighbor, kColumn8Row1646Neighbor, + kColumn8Row1694Neighbor, kColumn8Row1774Neighbor, kColumn8Row1822Neighbor, kColumn8Row1902Neighbor, + kColumn8Row1950Neighbor, kColumn8Row2030Neighbor, kColumn8Row2158Neighbor, kColumn8Row2286Neighbor, @@ -2402,6 +2588,75 @@ class CpuAirDefinition : public Air { kRangeCheck96BuiltinValueCond, // Constraint 347. kRangeCheck96BuiltinAddrStepCond, // Constraint 348. kRangeCheck96BuiltinInitAddrCond, // Constraint 349. + kAddModInitP0AddressCond, // Constraint 350. + kAddModStepP1AddrCond, // Constraint 351. + kAddModStepP2AddrCond, // Constraint 352. + kAddModStepP3AddrCond, // Constraint 353. + kAddModStepValuesPtrAddrCond, // Constraint 354. + kAddModStepOffsetsPtrAddrCond, // Constraint 355. + kAddModStepNAddrCond, // Constraint 356. + kAddModStepP0AddrCond, // Constraint 357. + kAddModStepP0ValueCond, // Constraint 358. + kAddModStepP1ValueCond, // Constraint 359. + kAddModStepP2ValueCond, // Constraint 360. + kAddModStepP3ValueCond, // Constraint 361. + kAddModStepValuesPtrValueCond, // Constraint 362. + kAddModStepOffsetsPtrValueCond, // Constraint 363. + kAddModStepNValueCond, // Constraint 364. + kAddModAOffset0Cond, // Constraint 365. + kAddModBOffsetCond, // Constraint 366. + kAddModCOffsetCond, // Constraint 367. + kAddModA0ValueInd0Cond, // Constraint 368. + kAddModA1ValueCond, // Constraint 369. + kAddModA2ValueCond, // Constraint 370. + kAddModA3ValueCond, // Constraint 371. + kAddModB0ValueInd0Cond, // Constraint 372. + kAddModB1ValueCond, // Constraint 373. + kAddModB2ValueCond, // Constraint 374. + kAddModB3ValueCond, // Constraint 375. + kAddModC0ValueInd0Cond, // Constraint 376. + kAddModC1ValueCond, // Constraint 377. + kAddModC2ValueCond, // Constraint 378. + kAddModC3ValueCond, // Constraint 379. + kAddModSubPBitCond, // Constraint 380. + kAddModCarry1BitCond, // Constraint 381. + kAddModCarry1SignCond, // Constraint 382. + kAddModCarry2BitCond, // Constraint 383. + kAddModCarry2SignCond, // Constraint 384. + kAddModCarry3BitCond, // Constraint 385. + kAddModCarry3SignCond, // Constraint 386. + kAddModAdditionConstraint_0Cond, // Constraint 387. + kMulModInitP0AddressCond, // Constraint 388. + kMulModStepP1AddrCond, // Constraint 389. + kMulModStepP2AddrCond, // Constraint 390. + kMulModStepP3AddrCond, // Constraint 391. + kMulModStepValuesPtrAddrCond, // Constraint 392. + kMulModStepOffsetsPtrAddrCond, // Constraint 393. + kMulModStepNAddrCond, // Constraint 394. + kMulModStepP0AddrCond, // Constraint 395. + kMulModStepP0ValueCond, // Constraint 396. + kMulModStepP1ValueCond, // Constraint 397. + kMulModStepP2ValueCond, // Constraint 398. + kMulModStepP3ValueCond, // Constraint 399. + kMulModStepValuesPtrValueCond, // Constraint 400. + kMulModStepOffsetsPtrValueCond, // Constraint 401. + kMulModStepNValueCond, // Constraint 402. + kMulModAOffset0Cond, // Constraint 403. + kMulModBOffsetCond, // Constraint 404. + kMulModCOffsetCond, // Constraint 405. + kMulModA0ValueInd0Cond, // Constraint 406. + kMulModA1ValueCond, // Constraint 407. + kMulModA2ValueCond, // Constraint 408. + kMulModA3ValueCond, // Constraint 409. + kMulModB0ValueInd0Cond, // Constraint 410. + kMulModB1ValueCond, // Constraint 411. + kMulModB2ValueCond, // Constraint 412. + kMulModB3ValueCond, // Constraint 413. + kMulModC0ValueInd0Cond, // Constraint 414. + kMulModC1ValueCond, // Constraint 415. + kMulModC2ValueCond, // Constraint 416. + kMulModC3ValueCond, // Constraint 417. + kMulModMultiplicationConstraint_0Cond, // Constraint 418. kNumConstraints, // Number of constraints. }; @@ -2440,6 +2695,10 @@ class CpuAirDefinition : public Air { kHasKeccakBuiltin ? GetSegment(mem_segment_addresses, "keccak").begin_addr : 0), poseidon_begin_addr_( kHasPoseidonBuiltin ? GetSegment(mem_segment_addresses, "poseidon").begin_addr : 0), + add_mod_begin_addr_( + kHasAddModBuiltin ? GetSegment(mem_segment_addresses, "add_mod").begin_addr : 0), + mul_mod_begin_addr_( + kHasMulModBuiltin ? GetSegment(mem_segment_addresses, "mul_mod").begin_addr : 0), dynamic_params_(ParseDynamicParams(dynamic_params)), range_check_min_(rc_min), @@ -2491,6 +2750,14 @@ class CpuAirDefinition : public Air { const CompileTimeOptional initial_poseidon_addr_ = FieldElementT::FromUint(ExtractHiddenMemberValue(poseidon_begin_addr_)); + const CompileTimeOptional add_mod_begin_addr_; + const CompileTimeOptional add_mod__initial_mod_addr_ = + FieldElementT::FromUint(ExtractHiddenMemberValue(add_mod_begin_addr_)); + + const CompileTimeOptional mul_mod_begin_addr_; + const CompileTimeOptional mul_mod__initial_mod_addr_ = + FieldElementT::FromUint(ExtractHiddenMemberValue(mul_mod_begin_addr_)); + // Flat vector of dynamic_params, used for efficient computation of the composition polynomial. // See ParseDynamicParams. CompileTimeOptional, kIsDynamicAir> dynamic_params_; @@ -2511,6 +2778,10 @@ class CpuAirDefinition : public Air { FieldElementT::Uninitialized(); CompileTimeOptional diluted_check__interaction_alpha_ = FieldElementT::Uninitialized(); + CompileTimeOptional add_mod__interaction_elm_ = + FieldElementT::Uninitialized(); + CompileTimeOptional mul_mod__interaction_elm_ = + FieldElementT::Uninitialized(); FieldElementT memory__multi_column_perm__perm__public_memory_prod_ = FieldElementT::Uninitialized(); diff --git a/src/starkware/air/cpu/board/cpu_air_test.cc b/src/starkware/air/cpu/board/cpu_air_test.cc index f911d42..6ea62b5 100644 --- a/src/starkware/air/cpu/board/cpu_air_test.cc +++ b/src/starkware/air/cpu/board/cpu_air_test.cc @@ -78,8 +78,8 @@ class CpuAirTest : public ::testing::Test { Generates the trace of the AIR. */ Trace GenerateTrace(bool disable_assert_in_memory_write_trace = false) { - statement = std::make_unique( - GetParams()["statement"], public_input.Build(), GetPrivateInput()); + statement = + std::make_unique(GetParams(), public_input.Build(), GetPrivateInput()); statement->GetAir(); if (disable_assert_in_memory_write_trace) { statement->DisableAssertsForTest(); diff --git a/src/starkware/air/cpu/board/cpu_air_test_instructions_memory.bin.h b/src/starkware/air/cpu/board/cpu_air_test_instructions_memory.bin.h index 6a8c412..12a614c 100755 --- a/src/starkware/air/cpu/board/cpu_air_test_instructions_memory.bin.h +++ b/src/starkware/air/cpu/board/cpu_air_test_instructions_memory.bin.h @@ -13,8 +13,8 @@ // and limitations under the License. -#ifndef BVNQNLEBPVMGUIZSZVTU_H_ -#define BVNQNLEBPVMGUIZSZVTU_H_ +#ifndef SJYOMIJCQPDGTDQQBRRT_H_ +#define SJYOMIJCQPDGTDQQBRRT_H_ #include @@ -41,5 +41,5 @@ inline std::string GetCpuAirTestInstructionsMemoryString() { } // namespace starkware -#endif // BVNQNLEBPVMGUIZSZVTU_H_ +#endif // SJYOMIJCQPDGTDQQBRRT_H_ diff --git a/src/starkware/air/cpu/board/cpu_air_test_instructions_public_input.json.h b/src/starkware/air/cpu/board/cpu_air_test_instructions_public_input.json.h index 798e877..479ddde 100755 --- a/src/starkware/air/cpu/board/cpu_air_test_instructions_public_input.json.h +++ b/src/starkware/air/cpu/board/cpu_air_test_instructions_public_input.json.h @@ -13,8 +13,8 @@ // and limitations under the License. -#ifndef CWBBKWBXFVCUHIPFBAIY_H_ -#define CWBBKWBXFVCUHIPFBAIY_H_ +#ifndef PVJNCVPAPZLSFWLKHAPI_H_ +#define PVJNCVPAPZLSFWLKHAPI_H_ #include @@ -41,5 +41,5 @@ inline std::string GetCpuAirTestInstructionsPublicInputString() { } // namespace starkware -#endif // CWBBKWBXFVCUHIPFBAIY_H_ +#endif // PVJNCVPAPZLSFWLKHAPI_H_ diff --git a/src/starkware/air/cpu/board/load_targets.bzl b/src/starkware/air/cpu/board/load_targets.bzl index 4f0d128..6f88d83 100644 --- a/src/starkware/air/cpu/board/load_targets.bzl +++ b/src/starkware/air/cpu/board/load_targets.bzl @@ -44,6 +44,7 @@ def load_targets( "//src/starkware/air/cpu/builtin/ec", "//src/starkware/air/cpu/builtin/hash", "//src/starkware/air/cpu/builtin/keccak", + "//src/starkware/air/cpu/builtin/modulo", "//src/starkware/air/cpu/builtin/poseidon", "//src/starkware/air/cpu/builtin/range_check", "//src/starkware/air/cpu/builtin/signature", diff --git a/src/starkware/air/cpu/builtin/modulo/BUILD b/src/starkware/air/cpu/builtin/modulo/BUILD new file mode 100644 index 0000000..b5f31cd --- /dev/null +++ b/src/starkware/air/cpu/builtin/modulo/BUILD @@ -0,0 +1,78 @@ +package(default_visibility = ["//visibility:public"]) + +exports_files([ + "mod_builtin_prover_context.h", + "mod_builtin_prover_context.inl", + "add_mod_builtin_prover_context.h", + "add_mod_builtin_prover_context.inl", + "mul_mod_builtin_prover_context.h", + "mul_mod_builtin_prover_context.inl", +]) + +cc_library( + name = "mod_common", + srcs = [ + ], + hdrs = [ + "mod_builtin_prover_context.h", + "mod_builtin_prover_context.inl", + ], + visibility = ["//visibility:public"], + deps = [ + "//src/starkware/air:air_lib", + "//src/starkware/air/components:trace_generation_context", + "//src/starkware/air/components/memory", + "//src/starkware/air/components/perm_table_check", + "//src/starkware/air/components/permutation", + "//src/starkware/algebra:algebra_additional_headers", + "//src/starkware/crypt_tools:crypto_utils", + "//src/starkware/error_handling", + "//src/starkware/math", + "//src/starkware/randomness:prng", + "//src/starkware/stl_utils", + "//src/starkware/utils:task_manager", + "//src/starkware/utils:to_from_string", + "//src/third_party/gsl", + ], +) + +cc_library( + name = "add_mod", + srcs = [ + ], + hdrs = [ + "add_mod_builtin_prover_context.h", + "add_mod_builtin_prover_context.inl", + ], + visibility = ["//visibility:public"], + deps = [ + ":mod_common", + ], +) + +cc_library( + name = "mul_mod", + srcs = [ + ], + hdrs = [ + "mul_mod_builtin_prover_context.h", + "mul_mod_builtin_prover_context.inl", + ], + visibility = ["//visibility:public"], + deps = [ + ":mod_common", + "//src/starkware/air/components/perm_range_check", + ], +) + +cc_library( + name = "modulo", + srcs = [ + ], + hdrs = [], + visibility = ["//visibility:public"], + deps = [ + "add_mod", + "mul_mod", + ], +) diff --git a/src/starkware/air/cpu/builtin/modulo/add_mod_builtin_prover_context.h b/src/starkware/air/cpu/builtin/modulo/add_mod_builtin_prover_context.h new file mode 100644 index 0000000..f93a394 --- /dev/null +++ b/src/starkware/air/cpu/builtin/modulo/add_mod_builtin_prover_context.h @@ -0,0 +1,79 @@ +// Copyright 2023 StarkWare Industries Ltd. +// +// Licensed under the Apache License, Version 2.0 (the "License"). +// You may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.starkware.co/open-source-license/ +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions +// and limitations under the License. + +#ifndef STARKWARE_AIR_CPU_BUILTIN_MODULO_ADD_MOD_BUILTIN_PROVER_CONTEXT_H_ +#define STARKWARE_AIR_CPU_BUILTIN_MODULO_ADD_MOD_BUILTIN_PROVER_CONTEXT_H_ + +#include +#include +#include +#include +#include +#include + +#include "starkware/air/components/memory/memory.h" +#include "starkware/air/cpu/builtin/modulo/mod_builtin_prover_context.h" + +namespace starkware { +namespace cpu { + +template +class AddModBuiltinProverContext : public ModBuiltinProverContext { + public: + using ValueType = typename FieldElementT::ValueType; + using BigInteger = typename ModBuiltinProverContext::BigInteger; + using Input = typename ModBuiltinProverContext::Input; + using BatchSlice = typename ModBuiltinProverContext::BatchSlice; + + AddModBuiltinProverContext( + const std::string& name, const TraceGenerationContext& ctx, + MemoryCell* memory_pool, const uint64_t begin_addr, size_t n_instances, + size_t batch_size, size_t word_bit_len, std::map inputs) + : ModBuiltinProverContext( + name, ctx, memory_pool, begin_addr, n_instances, batch_size, word_bit_len, + std::move(inputs)), + sub_p_bit_(ctx.GetVirtualColumn(name + "/sub_p_bit")), + carry_bit_(this->InitVirtualColumns(name + "/carry", "_bit", ctx, 1, NWords)), + carry_sign_(this->InitVirtualColumns(name + "/carry", "_sign", ctx, 1, NWords)) {} + + /* + Writes the trace cells for the builtin. + */ + void WriteTrace(gsl::span> trace) const; + + private: + /* + Used in WriteTrace to write the trace cell for one carry bit and sign. + The output is the product of the carry bit and the sign, for calculation + of next iteration's carry. + */ + ValueType WriteCarry( + gsl::span> trace, const ValueType& carry, + const size_t instance, const size_t index_1d, + const std::function& args_str_gen) const; + + /* + Virtual columns. + */ + const VirtualColumn sub_p_bit_; + const std::vector carry_bit_; + const std::vector carry_sign_; +}; + +} // namespace cpu +} // namespace starkware + +#include "starkware/air/cpu/builtin/modulo/add_mod_builtin_prover_context.inl" + +#endif // STARKWARE_AIR_CPU_BUILTIN_MODULO_ADD_MOD_BUILTIN_PROVER_CONTEXT_H_ diff --git a/src/starkware/air/cpu/builtin/modulo/add_mod_builtin_prover_context.inl b/src/starkware/air/cpu/builtin/modulo/add_mod_builtin_prover_context.inl new file mode 100644 index 0000000..a9f3148 --- /dev/null +++ b/src/starkware/air/cpu/builtin/modulo/add_mod_builtin_prover_context.inl @@ -0,0 +1,100 @@ +// Copyright 2023 StarkWare Industries Ltd. +// +// Licensed under the Apache License, Version 2.0 (the "License"). +// You may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.starkware.co/open-source-license/ +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions +// and limitations under the License. + +#include "starkware/math/math.h" +#include "starkware/utils/task_manager.h" + +namespace starkware { +namespace cpu { + +template +void AddModBuiltinProverContext::WriteTrace( + gsl::span> trace) const { + for (size_t inst = 0; inst < this->n_instances_; ++inst) { + const Input& input = this->WriteInput(trace, inst); + BigInteger p = BigInteger::Zero(); + // Convert p from vector(NWords) to one BigInteger. + for (size_t word = 0; word < NWords; ++word) { + p = p | (BigInteger(input.p[word]) << (word * this->word_bit_len_)); + } + for (size_t ind = 0; ind < this->batch_size_; ++ind) { + const size_t index_1d = inst * this->batch_size_ + ind; + BigInteger a = BigInteger::Zero(); + BigInteger b = BigInteger::Zero(); + BigInteger c = BigInteger::Zero(); + // Convert a, b, c from vector(NWords) to BigIntegers. + for (size_t word = 0; word < NWords; ++word) { + a = a | (BigInteger(input.batch[ind].a[word]) << (word * this->word_bit_len_)); + b = b | (BigInteger(input.batch[ind].b[word]) << (word * this->word_bit_len_)); + c = c | (BigInteger(input.batch[ind].c[word]) << (word * this->word_bit_len_)); + } + const auto args_str_gen = [&]() { + return "p = " + p.ToString() + ", a = " + a.ToString() + ", b = " + b.ToString() + + ", c = " + c.ToString(); + }; + auto a_plus_b = BigInteger::Add(a, b); + auto sub_p_bit = 0; + if (a_plus_b == std::make_pair(c, false)) { + // Computation does not exceed BigInteger, a + b = c (sub_p_bit is zero). + sub_p_bit_.SetCell(trace, index_1d, FieldElementT::Zero()); + } else { + // a + b = c + p (sub_p_bit is one). + ASSERT_RELEASE( + a_plus_b == BigInteger::Add(c, p), + "Invalid input: a + b != c (mod p). " + args_str_gen()); + sub_p_bit_.SetCell(trace, index_1d, FieldElementT::One()); + sub_p_bit = 1; + } + ValueType signed_carry_bit = ValueType::Zero(); + for (size_t word = 0; word < NWords - 1; ++word) { + ValueType carry = input.batch[ind].a[word] + input.batch[ind].b[word] - + input.batch[ind].c[word] + signed_carry_bit; + if (sub_p_bit == 1) { + carry = carry - input.p[word]; + } + signed_carry_bit = WriteCarry(trace, carry, index_1d, word, args_str_gen); + } + ASSERT_RELEASE( + input.batch[ind].a[NWords - 1] + input.batch[ind].b[NWords - 1] - + input.batch[ind].c[NWords - 1] - + (sub_p_bit ? input.p[NWords - 1] : ValueType::Zero()) + signed_carry_bit == + ValueType::Zero(), + "Error: a + b != c (mod p). " + args_str_gen()); + } + } +} + +template +typename FieldElementT::ValueType AddModBuiltinProverContext::WriteCarry( + gsl::span> trace, const ValueType& carry, const size_t index_1d, + const size_t word, const std::function& args_str_gen) const { + const ValueType shift = ValueType::One() << this->word_bit_len_; + if (carry == ValueType::Zero()) { + carry_bit_[word].SetCell(trace, index_1d, FieldElementT::Zero()); + carry_sign_[word].SetCell(trace, index_1d, FieldElementT::One()); + return ValueType::Zero(); + } else if (carry == shift) { + carry_bit_[word].SetCell(trace, index_1d, FieldElementT::One()); + carry_sign_[word].SetCell(trace, index_1d, FieldElementT::One()); + return ValueType::One(); + } else { + ASSERT_RELEASE(carry == -shift, "Invalid input: carry is not -1, 0 or 1. " + args_str_gen()); + carry_bit_[word].SetCell(trace, index_1d, FieldElementT::One()); + carry_sign_[word].SetCell(trace, index_1d, -FieldElementT::One()); + return -ValueType::One(); + } +} + +} // namespace cpu +} // namespace starkware diff --git a/src/starkware/air/cpu/builtin/modulo/mod_builtin_prover_context.h b/src/starkware/air/cpu/builtin/modulo/mod_builtin_prover_context.h new file mode 100644 index 0000000..0da71c7 --- /dev/null +++ b/src/starkware/air/cpu/builtin/modulo/mod_builtin_prover_context.h @@ -0,0 +1,211 @@ +// Copyright 2023 StarkWare Industries Ltd. +// +// Licensed under the Apache License, Version 2.0 (the "License"). +// You may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.starkware.co/open-source-license/ +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions +// and limitations under the License. + +#ifndef STARKWARE_AIR_CPU_BUILTIN_MODULO_MOD_BUILTIN_PROVER_CONTEXT_H_ +#define STARKWARE_AIR_CPU_BUILTIN_MODULO_MOD_BUILTIN_PROVER_CONTEXT_H_ + +#include +#include +#include +#include +#include +#include + +#include "starkware/air/components/memory/memory.h" + +namespace starkware { +namespace cpu { + +template +class ModBuiltinProverContext { + public: + using ValueType = typename FieldElementT::ValueType; + // The maximum number of bits in a big integer is 384. Increase the type below if more is needed. + using BigInteger = class BigInt::digits)>; + using BigIntegerMult = class BigInt<2 * SafeDiv(384, std::numeric_limits::digits)>; + + struct BatchSlice { + uint64_t a_offset; + uint64_t b_offset; + uint64_t c_offset; + std::vector a; + std::vector b; + std::vector c; + }; + struct Input { + std::vector p; + uint64_t values_ptr; + uint64_t offsets_ptr; + uint64_t n; + std::vector batch; + + Input( + std::vector p, uint64_t values_ptr, uint64_t offsets_ptr, uint64_t n, + std::vector batch) + : p(p), values_ptr(values_ptr), offsets_ptr(offsets_ptr), n(n), batch(batch) {} + }; + + ModBuiltinProverContext( + const std::string& name, const TraceGenerationContext& ctx, + MemoryCell* memory_pool, const uint64_t begin_addr, const size_t n_instances, + const size_t batch_size, const size_t word_bit_len, const std::map& inputs) + : begin_addr_(begin_addr), + n_instances_(n_instances), + batch_size_(batch_size), + word_bit_len_(word_bit_len), + inputs_(std::move(inputs)), + mem_p_(InitValue(memory_pool, name + "/p", ctx)), + mem_values_ptr_(memory_pool, name + "/values_ptr", ctx), + mem_offsets_ptr_(memory_pool, name + "/offsets_ptr", ctx), + mem_n_(memory_pool, name + "/n", ctx), + mem_a_offset_(memory_pool, name + "/a_offset", ctx), + mem_b_offset_(memory_pool, name + "/b_offset", ctx), + mem_c_offset_(memory_pool, name + "/c_offset", ctx), + mem_a_(InitValue(memory_pool, name + "/a", ctx)), + mem_b_(InitValue(memory_pool, name + "/b", ctx)), + mem_c_(InitValue(memory_pool, name + "/c", ctx)) { + ASSERT_RELEASE( + NWords * word_bit_len_ <= BigInteger::kDigits, "Number of bits larger than " + + std::to_string(BigInteger::kDigits) + + " is not implemented."); + } + + /* + Parses the private input for the add_mod builtin. private_input should be of the form + { + "instances": [ + { + "index": , + "p0": , + ..., + "values_ptr": , + "offsets_ptr": , + "n": , + "batch": [ + { + "a_offset": , + "b_offset": , + "c_offset": , + "a0": , + ..., + "b0": , + ..., + "c0": , + ..., + }, + {...}, + ... + ] + }, + {...}, + ... + ], + "zero_value_address": address + } + + Returns an Input object for each instance and an additional zero input at the end. + */ + static std::map ParsePrivateInput( + const JsonValue& private_input, const size_t batch_size); + + protected: + /* + Initializes a vector of memory cells. + */ + static const std::vector> InitValue( + MemoryCell* memory_pool, const std::string& name, + const TraceGenerationContext& ctx) { + std::vector> res; + res.reserve(NWords); + for (size_t i = 0; i < NWords; ++i) { + res.emplace_back(memory_pool, name + std::to_string(i), ctx); + } + return res; + } + + /* + Initializes a vector of virtual columns. + */ + static const std::vector InitVirtualColumns( + const std::string& name, const std::string& suffix, const TraceGenerationContext& ctx, + const size_t start, const size_t end) { + std::vector res; + res.reserve(end - start); + for (size_t i = start; i < end; ++i) { + res.push_back(ctx.GetVirtualColumn(name + std::to_string(i) + suffix)); + } + return res; + } + + /* + Parses a big integer from the input, represented as words. + */ + static std::vector ParseBigInts(const JsonValue& input, const std::string& name) { + std::vector res; + res.reserve(NWords); + for (size_t i = 0; i < NWords; ++i) { + res.push_back(ValueType::FromString(input[name + std::to_string(i)].AsString())); + } + return res; + } + + /* + Used in WriteTrace to write the trace cells for the input of one instance. + The output is the written input. + */ + const Input& WriteInput( + gsl::span> trace, const size_t instance) const; + + inline static const BatchSlice zero_batch_slice_{ + /*a_offset=*/0, + /*b_offset=*/0, + /*c_offset=*/0, + /*a=*/std::vector(NWords, ValueType::Zero()), + /*b=*/std::vector(NWords, ValueType::Zero()), + /*c=*/std::vector(NWords, ValueType::Zero())}; + const uint64_t begin_addr_; + const size_t n_instances_; + const size_t batch_size_; + const size_t word_bit_len_; + const std::map inputs_; + + /* + Builtin segment memory cells. + */ + const std::vector> mem_p_; + const MemoryCellView mem_values_ptr_; + const MemoryCellView mem_offsets_ptr_; + const MemoryCellView mem_n_; + + /* + Offset memory cells. + */ + const MemoryCellView mem_a_offset_; + const MemoryCellView mem_b_offset_; + const MemoryCellView mem_c_offset_; + + /* + Value memory cells. + */ + const std::vector> mem_a_; + const std::vector> mem_b_; + const std::vector> mem_c_; +}; + +} // namespace cpu +} // namespace starkware + +#include "starkware/air/cpu/builtin/modulo/mod_builtin_prover_context.inl" + +#endif // STARKWARE_AIR_CPU_BUILTIN_MODULO_MOD_BUILTIN_PROVER_CONTEXT_H_ diff --git a/src/starkware/air/cpu/builtin/modulo/mod_builtin_prover_context.inl b/src/starkware/air/cpu/builtin/modulo/mod_builtin_prover_context.inl new file mode 100644 index 0000000..c178b2e --- /dev/null +++ b/src/starkware/air/cpu/builtin/modulo/mod_builtin_prover_context.inl @@ -0,0 +1,112 @@ +// Copyright 2023 StarkWare Industries Ltd. +// +// Licensed under the Apache License, Version 2.0 (the "License"). +// You may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.starkware.co/open-source-license/ +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions +// and limitations under the License. + +#include "starkware/math/math.h" +#include "starkware/utils/task_manager.h" + +namespace starkware { +namespace cpu { + +template +auto ModBuiltinProverContext::ParsePrivateInput( + const JsonValue& private_input, const uint64_t batch_size) -> std::map { + std::map res; + auto instances = private_input["instances"]; + auto private_input_len = instances.ArrayLength(); + for (size_t inst = 0; inst < private_input_len; ++inst) { + const auto& input = instances[inst]; + const auto& input_batch = input["batch"]; + std::vector curr_batch; + ASSERT_RELEASE( + input_batch.ArrayLength() == batch_size, + "Invalid input: batch sizes should all be " + std::to_string(batch_size) + "."); + curr_batch.reserve(batch_size); + for (size_t ind = 0; ind < batch_size; ++ind) { + curr_batch.push_back(BatchSlice{ + input_batch[ind]["a_offset"].AsUint64(), + input_batch[ind]["b_offset"].AsUint64(), + input_batch[ind]["c_offset"].AsUint64(), + ParseBigInts(input_batch[ind], "a"), + ParseBigInts(input_batch[ind], "b"), + ParseBigInts(input_batch[ind], "c"), + }); + } + + res.emplace( + input["index"].AsUint64(), Input{ + /*p=*/ParseBigInts(input, "p"), + /*values_ptr=*/input["values_ptr"].AsUint64(), + /*offsets_ptr=*/input["offsets_ptr"].AsUint64(), + /*n=*/input["n"].AsUint64(), + /*batch=*/curr_batch}); + } + uint64_t zero_value_begin_addr = private_input["zero_value_address"].AsUint64(); + const Input zero_input = Input( + /*p=*/std::vector(NWords, ValueType::Zero()), + /*values_ptr=*/zero_value_begin_addr, + /*offsets_ptr=*/zero_value_begin_addr, + /*n=*/batch_size, + /*batch=*/ + std::vector( + batch_size, ModBuiltinProverContext::zero_batch_slice_)); + res.emplace(private_input_len, zero_input); + return res; +} + +template +const typename ModBuiltinProverContext::Input& +ModBuiltinProverContext::WriteInput( + gsl::span> trace, const size_t instance) const { + const auto& input_itr = inputs_.find(instance); + const auto& zero_input = inputs_.rbegin()->second; + const Input& input = input_itr == inputs_.end() ? zero_input : input_itr->second; + const uint64_t mem_addr = begin_addr_ + (NWords + 3) * instance; + + for (size_t word = 0; word < NWords; ++word) { + mem_p_[word].WriteTrace( + instance, mem_addr + word, FieldElementT::FromBigInt(input.p[word]), trace); + } + mem_values_ptr_.WriteTrace( + instance, mem_addr + NWords, FieldElementT::FromUint(input.values_ptr), trace); + mem_offsets_ptr_.WriteTrace( + instance, mem_addr + NWords + 1, FieldElementT::FromUint(input.offsets_ptr), trace); + mem_n_.WriteTrace(instance, mem_addr + NWords + 2, FieldElementT::FromUint(input.n), trace); + for (size_t ind = 0; ind < batch_size_; ++ind) { + const size_t index_1d = instance * batch_size_ + ind; + mem_a_offset_.WriteTrace( + index_1d, input.offsets_ptr + 3 * ind, FieldElementT::FromUint(input.batch[ind].a_offset), + trace); + mem_b_offset_.WriteTrace( + index_1d, input.offsets_ptr + 3 * ind + 1, + FieldElementT::FromUint(input.batch[ind].b_offset), trace); + mem_c_offset_.WriteTrace( + index_1d, input.offsets_ptr + 3 * ind + 2, + FieldElementT::FromUint(input.batch[ind].c_offset), trace); + for (size_t word = 0; word < NWords; ++word) { + mem_a_[word].WriteTrace( + index_1d, input.values_ptr + input.batch[ind].a_offset + word, + FieldElementT::FromBigInt(input.batch[ind].a[word]), trace); + mem_b_[word].WriteTrace( + index_1d, input.values_ptr + input.batch[ind].b_offset + word, + FieldElementT::FromBigInt(input.batch[ind].b[word]), trace); + mem_c_[word].WriteTrace( + index_1d, input.values_ptr + input.batch[ind].c_offset + word, + FieldElementT::FromBigInt(input.batch[ind].c[word]), trace); + } + } + return input; +} + +} // namespace cpu +} // namespace starkware diff --git a/src/starkware/air/cpu/builtin/modulo/mul_mod_builtin_prover_context.h b/src/starkware/air/cpu/builtin/modulo/mul_mod_builtin_prover_context.h new file mode 100644 index 0000000..caf6ae1 --- /dev/null +++ b/src/starkware/air/cpu/builtin/modulo/mul_mod_builtin_prover_context.h @@ -0,0 +1,114 @@ +// Copyright 2023 StarkWare Industries Ltd. +// +// Licensed under the Apache License, Version 2.0 (the "License"). +// You may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.starkware.co/open-source-license/ +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions +// and limitations under the License. + +#ifndef STARKWARE_AIR_CPU_BUILTIN_MODULO_MUL_MOD_BUILTIN_PROVER_CONTEXT_H_ +#define STARKWARE_AIR_CPU_BUILTIN_MODULO_MUL_MOD_BUILTIN_PROVER_CONTEXT_H_ + +#include +#include +#include +#include +#include +#include + +#include "starkware/air/components/memory/memory.h" +#include "starkware/air/components/perm_range_check/range_check_cell.h" +#include "starkware/air/cpu/builtin/modulo/mod_builtin_prover_context.h" +#include "starkware/math/math.h" + +namespace starkware { +namespace cpu { + +template +class MulModBuiltinProverContext : public ModBuiltinProverContext { + public: + using ValueType = typename FieldElementT::ValueType; + using BigInteger = typename ModBuiltinProverContext::BigInteger; + using BigIntegerMult = typename ModBuiltinProverContext::BigIntegerMult; + using Input = typename ModBuiltinProverContext::Input; + using BatchSlice = typename ModBuiltinProverContext::BatchSlice; + using RCColumns = typename std::vector>>; + + MulModBuiltinProverContext( + const std::string& name, const TraceGenerationContext& ctx, + MemoryCell* memory_pool, RangeCheckCell* rc_pool, + const uint64_t begin_addr, const size_t n_instances, const size_t batch_size, + const size_t word_bit_len, const size_t bits_per_part, + const std::map& inputs) + : ModBuiltinProverContext( + name, ctx, memory_pool, begin_addr, n_instances, batch_size, word_bit_len, + std::move(inputs)), + n_carry_words_(2 * (NWords - 1)), + bits_per_part_(bits_per_part), + p_multiplier_(InitRCColumns( + rc_pool, name + "/p_multiplier", ctx, NWords, SafeDiv(word_bit_len, bits_per_part))), + carry_(InitRCColumns( + rc_pool, name + "/carry", ctx, n_carry_words_, + DivCeil(word_bit_len + Log2Ceil(NWords) + 1, bits_per_part))) {} + + /* + Writes the trace cells for the builtin. + */ + void WriteTrace(gsl::span> trace) const; + + private: + /* + Initializes a 2d-vector of shape (n_words, n_parts) of rc_pool views. + */ + static const RCColumns InitRCColumns( + RangeCheckCell* rc_pool, const std::string& name, + const TraceGenerationContext& ctx, const size_t n_words, const size_t n_parts) { + RCColumns res; + res.reserve(n_words); + for (size_t i = 0; i < n_words; ++i) { + res.push_back({}); + res.back().reserve(n_parts); + for (size_t j = 0; j < n_parts; ++j) { + res.back().emplace_back(TableCheckCellView( + rc_pool, name + std::to_string(i) + "/part" + std::to_string(j), ctx)); + } + } + return res; + } + /* + Performs an arithmetic right shift by bits to convert the sum + of one column of partial products to the carry for the next column. + */ + ValueType UnshiftCarry(const ValueType& carry) const; + /* + Used in WriteTrace to write the trace cell for one carry word. + */ + void WriteCarry( + gsl::span> trace, const ValueType& shifted_carry, + const size_t index_1d, const size_t word) const; + + void WriteRC( + const std::vector>& rc_view, ValueType input, + gsl::span> trace, const size_t index_1d) const; + + const size_t n_carry_words_; + const size_t bits_per_part_; + /* + RC_pool columns. + */ + const RCColumns p_multiplier_; + const RCColumns carry_; +}; + +} // namespace cpu +} // namespace starkware + +#include "starkware/air/cpu/builtin/modulo/mul_mod_builtin_prover_context.inl" + +#endif // STARKWARE_AIR_CPU_BUILTIN_MODULO_MUL_MOD_BUILTIN_PROVER_CONTEXT_H_ diff --git a/src/starkware/air/cpu/builtin/modulo/mul_mod_builtin_prover_context.inl b/src/starkware/air/cpu/builtin/modulo/mul_mod_builtin_prover_context.inl new file mode 100644 index 0000000..59c45f2 --- /dev/null +++ b/src/starkware/air/cpu/builtin/modulo/mul_mod_builtin_prover_context.inl @@ -0,0 +1,141 @@ +// Copyright 2023 StarkWare Industries Ltd. +// +// Licensed under the Apache License, Version 2.0 (the "License"). +// You may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.starkware.co/open-source-license/ +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions +// and limitations under the License. + +#include "starkware/utils/task_manager.h" + +namespace starkware { +namespace cpu { + +template +void MulModBuiltinProverContext::WriteTrace( + gsl::span> trace) const { + const BigInteger MASK = (BigInteger::One() << this->word_bit_len_) - BigInteger::One(); + for (size_t inst = 0; inst < this->n_instances_; ++inst) { + const Input& input = this->WriteInput(trace, inst); + BigInteger p = BigInteger::Zero(); + // Convert p from vector(NWords) to one BigInteger. + for (size_t word = 0; word < NWords; ++word) { + p = p | (BigInteger(input.p[word]) << (word * this->word_bit_len_)); + } + BigIntegerMult big_p(p); + for (size_t ind = 0; ind < this->batch_size_; ++ind) { + const size_t index_1d = inst * this->batch_size_ + ind; + BigInteger a = BigInteger::Zero(); + BigInteger b = BigInteger::Zero(); + BigInteger c = BigInteger::Zero(); + // Convert a, b, c from vector(NWords) to BigIntegers. + for (size_t word = 0; word < NWords; ++word) { + a = a | (BigInteger(input.batch[ind].a[word]) << (word * this->word_bit_len_)); + b = b | (BigInteger(input.batch[ind].b[word]) << (word * this->word_bit_len_)); + c = c | (BigInteger(input.batch[ind].c[word]) << (word * this->word_bit_len_)); + } + const auto args_str_gen = [&]() { + return "p = " + p.ToString() + ", a = " + a.ToString() + ", b = " + b.ToString() + + ", c = " + c.ToString(); + }; + auto a_times_b_sub_c = a * b - BigIntegerMult(c); + auto [p_multiplier, rem] = // NOLINT (auto [...]). + p == BigInteger::Zero() ? std::make_pair(BigIntegerMult::Zero(), BigIntegerMult::Zero()) + : a_times_b_sub_c.Div(big_p); + ASSERT_RELEASE( + rem == BigIntegerMult::Zero(), "Invalid input: a * b != c (mod p). " + args_str_gen()); + BigInteger p_multiplier_reduced = BigInteger::FromBigInt(p_multiplier); + std::vector p_multiplier_vec(NWords); + for (size_t word = 0; word < NWords; ++word) { + p_multiplier_vec[word] = + ValueType::FromBigInt((p_multiplier_reduced >> (word * this->word_bit_len_)) & MASK); + WriteRC(p_multiplier_[word], p_multiplier_vec[word], trace, index_1d); + } + + ValueType carry = ValueType::Zero(); + // We compute the carries of the computation a * b - p_multiplier * p - c, which should + // equal 0, word by word. + for (size_t word = 0; word < n_carry_words_; ++word) { + // The products contributing to term `word` are from index pairs (i, j) of (a, b) and + // (p_multipler, p) such that i + j = word and 0 <= i,j < NWords. Equivalently, these are + // pairs (i, word - i) such that 0 <= i < NWords and (word - NWords) < i <= word. The + // intersection of these two interval conditions is simplified below as + // lower := max(word - NWords + 1, 0) <= i < min(word + 1, NWords) =: upper. + size_t lower = std::max(word + 1, NWords) - NWords, upper = std::min(word + 1, NWords); + for (size_t i = lower; i < upper; ++i) { + carry += ValueType::FromBigInt(input.batch[ind].a[i] * input.batch[ind].b[word - i]); + carry -= ValueType::FromBigInt(p_multiplier_vec[i] * input.p[word - i]); + } + // The result c only contributes to the the first NWords terms, as it is generally shorter + // than the full product. + if (word < NWords) { + carry -= input.batch[ind].c[word]; + } + + carry = UnshiftCarry(carry); + WriteCarry(trace, carry, index_1d, word); + } + + // We expect the result of a*b - p_multiplier*p - c to be zero, so the most significant + // partial product (the one involving the most significant words of a, b, p and p_multiplier) + // shouldn't have any carry coming out of it. + ASSERT_RELEASE( + (NWords == 1 ? input.batch[ind].c[NWords - 1] : ValueType::Zero()) == + ValueType::FromBigInt( + input.batch[ind].a[NWords - 1] * input.batch[ind].b[NWords - 1]) - + ValueType::FromBigInt(input.p[NWords - 1] * p_multiplier_vec[NWords - 1]) + carry, + "Error: a * b != c (mod p). " + args_str_gen()); + } + } +} + +template +typename MulModBuiltinProverContext::ValueType +MulModBuiltinProverContext::UnshiftCarry(const ValueType& carry) const { + const ValueType mask = (ValueType::One() << this->word_bit_len_) - ValueType::One(); + ASSERT_RELEASE( + (carry & mask) == ValueType::Zero(), "Invalid input: carry is not divisible by shift. "); + + // The following performs arithmetic (that is, sign-extending) right shift. We split + // to negative-carry and positive-carry cases because our ValueType (BigInt) only + // supports logical right shifts. + if (carry.IsMsbSet()) { + return -((-carry) >> this->word_bit_len_); + } else { + return carry >> this->word_bit_len_; + } +} + +template +void MulModBuiltinProverContext::WriteCarry( + gsl::span> trace, const ValueType& carry, const size_t index_1d, + const size_t word) const { + const ValueType carry_offset = ValueType(NWords) << this->word_bit_len_; + const ValueType carry_to_write = carry + carry_offset; + ASSERT_RELEASE( + !carry_to_write.IsMsbSet(), "After adding the offset, the carry should be positive"); + WriteRC(carry_[word], carry_to_write, trace, index_1d); +} + +template +void MulModBuiltinProverContext::WriteRC( + const std::vector>& rc_view, ValueType input, + gsl::span> trace, const size_t index_1d) const { + const uint64_t mask = (uint64_t(1) << bits_per_part_) - 1; + for (size_t part = 0; part < rc_view.size(); ++part) { + rc_view[part].WriteTrace(index_1d, input[0] & mask, trace); + input >>= bits_per_part_; + } + ASSERT_RELEASE( + input == ValueType::Zero(), + "Error: Intermediate value in computation exceeds rc_pool allocation."); +} + +} // namespace cpu +} // namespace starkware diff --git a/src/starkware/algebra/big_int.h b/src/starkware/algebra/big_int.h index 1c27e9d..3d52e38 100644 --- a/src/starkware/algebra/big_int.h +++ b/src/starkware/algebra/big_int.h @@ -77,6 +77,7 @@ class BigInt { constexpr BigInt operator+(const BigInt& other) const { return Add(*this, other).first; } constexpr BigInt& operator+=(const BigInt& other) { return *this = *this + other; } constexpr BigInt operator-(const BigInt& other) const { return Sub(*this, other).first; } + constexpr BigInt& operator-=(const BigInt& other) { return *this = *this - other; } constexpr BigInt operator-() const { return Zero() - *this; } /* diff --git a/src/starkware/commitment_scheme/commitment_scheme_test.cc b/src/starkware/commitment_scheme/commitment_scheme_test.cc index 1e8f9fd..7be247c 100644 --- a/src/starkware/commitment_scheme/commitment_scheme_test.cc +++ b/src/starkware/commitment_scheme/commitment_scheme_test.cc @@ -183,9 +183,9 @@ using TestTypesTwoHashes = ::testing::Types< PackagingCommitmentSchemePairTwoHashesT< MaskedHash, MaskedHash>, PackagingCommitmentSchemePairTwoHashesT< - MaskedHash, MaskedHash>, - PackagingCommitmentSchemePairTwoHashesT>, - PackagingCommitmentSchemePairTwoHashesT>>; + MaskedHash, MaskedHash>, + PackagingCommitmentSchemePairTwoHashesT>, + PackagingCommitmentSchemePairTwoHashesT>>; /* Returns number of segments to use, N, such that: diff --git a/src/starkware/crypt_tools/blake2s.h b/src/starkware/crypt_tools/blake2s.h index 6e63201..e4c405e 100644 --- a/src/starkware/crypt_tools/blake2s.h +++ b/src/starkware/crypt_tools/blake2s.h @@ -69,7 +69,7 @@ class Blake2s { std::array buffer_; // NOLINT }; -using Blake2s160 = Blake2s<160>; +using Blake2s248 = Blake2s<248>; using Blake2s256 = Blake2s<256>; } // namespace starkware diff --git a/src/starkware/crypt_tools/blake2s.inl b/src/starkware/crypt_tools/blake2s.inl index 4236f00..46c7649 100644 --- a/src/starkware/crypt_tools/blake2s.inl +++ b/src/starkware/crypt_tools/blake2s.inl @@ -119,7 +119,7 @@ std::string Blake2s::ToString() const { return BytesToHexString(buffer_); } -inline std::ostream& operator<<(std::ostream& out, const Blake2s160& hash) { +inline std::ostream& operator<<(std::ostream& out, const Blake2s248& hash) { return out << hash.ToString(); } diff --git a/src/starkware/crypt_tools/invoke.h b/src/starkware/crypt_tools/invoke.h index 399ddfe..2c9d039 100644 --- a/src/starkware/crypt_tools/invoke.h +++ b/src/starkware/crypt_tools/invoke.h @@ -31,7 +31,7 @@ namespace starkware { using HashTypes = InvokedTypes< Blake2s256, Keccak256, Pedersen, Poseidon3, MaskedHash, - MaskedHash, MaskedHash, + MaskedHash, MaskedHash, MaskedHash>; template diff --git a/src/starkware/crypt_tools/masked_hash_test.cc b/src/starkware/crypt_tools/masked_hash_test.cc index 75e44b5..2b3593e 100644 --- a/src/starkware/crypt_tools/masked_hash_test.cc +++ b/src/starkware/crypt_tools/masked_hash_test.cc @@ -146,6 +146,13 @@ TEST(MaskedHashTest, MaskedMsbAndMaskedLsb) { const HashLsb hash_lsb = HashLsb::HashBytesWithLength(str_as_bytes); EXPECT_EQ( hash_lsb.ToString(), "0x00000000000000000000000000008941cc2b19c1bd836b3a53506489395aa54d"); + + // Big Masked Blake LSB. + using HashBigLsb = MaskedHash; + const HashBigLsb hash_big_lsb = HashBigLsb::HashBytesWithLength(str_as_bytes); + EXPECT_EQ( + hash_big_lsb.ToString(), + "0x00ba38e4aea16a5f87e8b76039958941cc2b19c1bd836b3a53506489395aa54d"); } } // namespace diff --git a/src/starkware/crypt_tools/template_instantiation.h b/src/starkware/crypt_tools/template_instantiation.h index 0e1eb1b..b70e168 100644 --- a/src/starkware/crypt_tools/template_instantiation.h +++ b/src/starkware/crypt_tools/template_instantiation.h @@ -34,7 +34,7 @@ /* NOLINTNEXTLINE */ \ template class ClassName>; \ /* NOLINTNEXTLINE */ \ - template class ClassName>; \ + template class ClassName>; \ /* NOLINTNEXTLINE */ \ template class ClassName>; \ /* NOLINTNEXTLINE */ \ diff --git a/src/starkware/main/cpu/cpu_air_prover_main.cc b/src/starkware/main/cpu/cpu_air_prover_main.cc index 2542ef8..123e286 100644 --- a/src/starkware/main/cpu/cpu_air_prover_main.cc +++ b/src/starkware/main/cpu/cpu_air_prover_main.cc @@ -33,7 +33,7 @@ int main(int argc, char** argv) { gflags::ParseCommandLineFlags(&argc, &argv, true); google::InitGoogleLogging(argv[0]); // NOLINT - CpuAirStatement statement(GetParametersInput()["statement"], GetPublicInput(), GetPrivateInput()); + CpuAirStatement statement(GetParametersInput(), GetPublicInput(), GetPrivateInput()); ProfilingBlock profiling_block("Prover", 0); ProverMainHelper(&statement, GetProverVersion()); WriteStats(); diff --git a/src/starkware/main/cpu/cpu_air_verifier_main.cc b/src/starkware/main/cpu/cpu_air_verifier_main.cc index 8db0e44..7bf12e3 100644 --- a/src/starkware/main/cpu/cpu_air_verifier_main.cc +++ b/src/starkware/main/cpu/cpu_air_verifier_main.cc @@ -30,8 +30,7 @@ int main(int argc, char** argv) { google::InitGoogleLogging(argv[0]); // NOLINT auto factory = [](const JsonValue& public_input, const JsonValue& parameters) { - return std::unique_ptr( - new CpuAirStatement(parameters["statement"], public_input, std::nullopt)); + return std::unique_ptr(new CpuAirStatement(parameters, public_input, std::nullopt)); }; bool result = starkware::VerifierMainHelper(factory); diff --git a/src/starkware/statement/cpu/cpu_air_statement.cc b/src/starkware/statement/cpu/cpu_air_statement.cc index f973442..e583c30 100644 --- a/src/starkware/statement/cpu/cpu_air_statement.cc +++ b/src/starkware/statement/cpu/cpu_air_statement.cc @@ -83,14 +83,18 @@ auto InvokeByLayout(const std::string& layout_name, Air* air_ptr, const Func& fu } // namespace CpuAirStatement::CpuAirStatement( - const JsonValue& statement_parameters, const JsonValue& public_input, + const JsonValue& parameters, const JsonValue& public_input, std::optional private_input) : Statement(std::move(private_input)), page_hash_( - statement_parameters.HasValue() && statement_parameters["page_hash"].HasValue() - ? statement_parameters["page_hash"].AsString() + parameters["statement"].HasValue() && parameters["statement"]["page_hash"].HasValue() + ? parameters["statement"]["page_hash"].AsString() : "keccak256"), layout_name_(public_input["layout"].AsString()), + n_verifier_friendly_commitment_layers_( + parameters["n_verifier_friendly_commitment_layers"].HasValue() + ? parameters["n_verifier_friendly_commitment_layers"].AsUint64() + : 0), n_steps_(public_input["n_steps"].AsUint64()), dynamic_params_(ReadDynamicParams(public_input["dynamic_params"])), rc_min_(public_input["rc_min"].AsUint64()), @@ -136,7 +140,8 @@ const std::vector CpuAirStatement::GetInitialHashChainSeed() const { }); PublicInputSerializer serializer( - (/*n_steps, rc_min, rc_max, layout_name*/ 4) * sizeof(BigInt<4>) + + (/*n_verifier_friendly_commitment_layers_, n_steps, rc_min, rc_max, layout_name*/ 5) * + sizeof(BigInt<4>) + (/*dynamic_params*/ dynamic_params_.size()) * sizeof(BigInt<4>) + segment_names.size() * (/*begin_addr, stop_ptr*/ 2) * sizeof(BigInt<4>) + (/*padding_address*/ sizeof(BigInt<4>) + /*padding_value*/ sizeof(FieldElementT)) + @@ -146,6 +151,7 @@ const std::vector CpuAirStatement::GetInitialHashChainSeed() const { (page_sizes.size() - 1) * ((/*start_addr, size*/ 2) * sizeof(BigInt<4>) + /*hash*/ 1 * digest_num_bytes)); + serializer.Append(BigInt<4>(n_verifier_friendly_commitment_layers_)); serializer.Append(BigInt<4>(SafeLog2(n_steps_))); serializer.Append(BigInt<4>(rc_min_)); serializer.Append(BigInt<4>(rc_max_)); diff --git a/src/starkware/statement/cpu/cpu_air_statement.h b/src/starkware/statement/cpu/cpu_air_statement.h index 11f0304..ca1be5b 100644 --- a/src/starkware/statement/cpu/cpu_air_statement.h +++ b/src/starkware/statement/cpu/cpu_air_statement.h @@ -38,7 +38,7 @@ class CpuAirStatement : public Statement { using FieldElementT = PrimeFieldElement<252, 0>; explicit CpuAirStatement( - const JsonValue& statement_parameters, const JsonValue& public_input, + const JsonValue& parameters, const JsonValue& public_input, std::optional private_input); const Air& GetAir() override; @@ -106,6 +106,7 @@ class CpuAirStatement : public Statement { */ const std::string page_hash_; const std::string layout_name_; + const uint64_t n_verifier_friendly_commitment_layers_; const uint64_t n_steps_; const std::map dynamic_params_; const uint64_t rc_min_;