// SPDX-License-Identifier: Apache-2.0. //---------------------------------------------------------------------------// // Copyright (c) 2022 Mikhail Komarov // Copyright (c) 2022 Ilias Khairullin // Copyright (c) 2022 Aleksei Moskvin // // 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 // // http://www.apache.org/licenses/LICENSE-2.0 // // 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. //---------------------------------------------------------------------------// pragma solidity >=0.8.4; import "@nilfoundation/evm-placeholder-verification/contracts/types.sol"; import "./gate_argument.sol"; library mina_base_gate13 { uint256 constant MODULUS_OFFSET = 0x0; uint256 constant THETA_OFFSET = 0x20; uint256 constant CONSTRAINT_EVAL_OFFSET = 0x00; uint256 constant GATE_EVAL_OFFSET = 0x20; uint256 constant GATES_EVALUATIONS_OFFSET = 0x40; uint256 constant THETA_ACC_OFFSET = 0x60; uint256 constant WITNESS_EVALUATIONS_OFFSET = 0x80; uint256 constant CONSTANT_EVALUATIONS_OFFSET = 0xa0; uint256 constant SELECTOR_EVALUATIONS_OFFSET =0xc0; // TODO: columns_rotations could be hard-coded function evaluate_gate_be( types.gate_argument_params memory gate_params, mina_base_split_gen.local_vars_type memory local_vars ) external pure returns (uint256 gates_evaluation, uint256 theta_acc) { gates_evaluation = local_vars.gates_evaluation; theta_acc = local_vars.theta_acc; assembly { let modulus := mload(gate_params) let theta:= mload(add(gate_params, THETA_OFFSET)) mstore(add(local_vars, GATE_EVAL_OFFSET), 0) function get_eval_i_by_rotation_idx(idx, rot_idx, ptr) -> result { result := mload( add( add(mload(add(add(ptr, 0x20), mul(0x20, idx))), 0x20), mul(0x20, rot_idx) ) ) } function get_selector_i(idx, ptr) -> result { result := mload(add(add(ptr, 0x20), mul(0x20, idx))) } // TODO: insert generated code for gate argument evaluation here mstore(add(local_vars, GATE_EVAL_OFFSET), 0) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecfffffffb,get_eval_i_by_rotation_idx(1,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x2,mulmod(get_eval_i_by_rotation_idx(1,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),get_eval_i_by_rotation_idx(1,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))), modulus),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x3,mulmod(get_eval_i_by_rotation_idx(1,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),get_eval_i_by_rotation_idx(1,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))), modulus),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,mulmod(get_eval_i_by_rotation_idx(1,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),mulmod(get_eval_i_by_rotation_idx(1,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),get_eval_i_by_rotation_idx(1,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))), modulus), modulus),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x6,mulmod(get_eval_i_by_rotation_idx(1,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),get_eval_i_by_rotation_idx(1,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))), modulus),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,mulmod(get_eval_i_by_rotation_idx(1,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),mulmod(get_eval_i_by_rotation_idx(1,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),get_eval_i_by_rotation_idx(1,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))), modulus), modulus),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecfffffffe,mulmod(get_eval_i_by_rotation_idx(1,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),mulmod(get_eval_i_by_rotation_idx(1,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),get_eval_i_by_rotation_idx(1,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))), modulus), modulus),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x1,mulmod(get_eval_i_by_rotation_idx(1,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),mulmod(get_eval_i_by_rotation_idx(1,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),mulmod(get_eval_i_by_rotation_idx(1,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),get_eval_i_by_rotation_idx(1,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))), modulus), modulus), modulus),modulus),modulus)) mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) theta_acc := mulmod(theta_acc,theta,modulus) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecfffffffb,get_eval_i_by_rotation_idx(2,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x2,mulmod(get_eval_i_by_rotation_idx(2,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),get_eval_i_by_rotation_idx(2,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))), modulus),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x3,mulmod(get_eval_i_by_rotation_idx(2,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),get_eval_i_by_rotation_idx(2,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))), modulus),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,mulmod(get_eval_i_by_rotation_idx(2,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),mulmod(get_eval_i_by_rotation_idx(2,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),get_eval_i_by_rotation_idx(2,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))), modulus), modulus),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x6,mulmod(get_eval_i_by_rotation_idx(2,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),get_eval_i_by_rotation_idx(2,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))), modulus),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,mulmod(get_eval_i_by_rotation_idx(2,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),mulmod(get_eval_i_by_rotation_idx(2,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),get_eval_i_by_rotation_idx(2,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))), modulus), modulus),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecfffffffe,mulmod(get_eval_i_by_rotation_idx(2,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),mulmod(get_eval_i_by_rotation_idx(2,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),get_eval_i_by_rotation_idx(2,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))), modulus), modulus),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x1,mulmod(get_eval_i_by_rotation_idx(2,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),mulmod(get_eval_i_by_rotation_idx(2,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),mulmod(get_eval_i_by_rotation_idx(2,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),get_eval_i_by_rotation_idx(2,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))), modulus), modulus), modulus),modulus),modulus)) mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) theta_acc := mulmod(theta_acc,theta,modulus) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecfffffffb,get_eval_i_by_rotation_idx(3,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x2,mulmod(get_eval_i_by_rotation_idx(3,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),get_eval_i_by_rotation_idx(3,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))), modulus),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x3,mulmod(get_eval_i_by_rotation_idx(3,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),get_eval_i_by_rotation_idx(3,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))), modulus),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,mulmod(get_eval_i_by_rotation_idx(3,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),mulmod(get_eval_i_by_rotation_idx(3,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),get_eval_i_by_rotation_idx(3,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))), modulus), modulus),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x6,mulmod(get_eval_i_by_rotation_idx(3,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),get_eval_i_by_rotation_idx(3,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))), modulus),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,mulmod(get_eval_i_by_rotation_idx(3,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),mulmod(get_eval_i_by_rotation_idx(3,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),get_eval_i_by_rotation_idx(3,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))), modulus), modulus),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecfffffffe,mulmod(get_eval_i_by_rotation_idx(3,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),mulmod(get_eval_i_by_rotation_idx(3,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),get_eval_i_by_rotation_idx(3,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))), modulus), modulus),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x1,mulmod(get_eval_i_by_rotation_idx(3,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),mulmod(get_eval_i_by_rotation_idx(3,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),mulmod(get_eval_i_by_rotation_idx(3,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),get_eval_i_by_rotation_idx(3,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))), modulus), modulus), modulus),modulus),modulus)) mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) theta_acc := mulmod(theta_acc,theta,modulus) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecfffffffb,get_eval_i_by_rotation_idx(4,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x2,mulmod(get_eval_i_by_rotation_idx(4,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),get_eval_i_by_rotation_idx(4,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))), modulus),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x3,mulmod(get_eval_i_by_rotation_idx(4,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),get_eval_i_by_rotation_idx(4,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))), modulus),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,mulmod(get_eval_i_by_rotation_idx(4,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),mulmod(get_eval_i_by_rotation_idx(4,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),get_eval_i_by_rotation_idx(4,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))), modulus), modulus),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x6,mulmod(get_eval_i_by_rotation_idx(4,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),get_eval_i_by_rotation_idx(4,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))), modulus),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,mulmod(get_eval_i_by_rotation_idx(4,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),mulmod(get_eval_i_by_rotation_idx(4,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),get_eval_i_by_rotation_idx(4,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))), modulus), modulus),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecfffffffe,mulmod(get_eval_i_by_rotation_idx(4,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),mulmod(get_eval_i_by_rotation_idx(4,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),get_eval_i_by_rotation_idx(4,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))), modulus), modulus),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x1,mulmod(get_eval_i_by_rotation_idx(4,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),mulmod(get_eval_i_by_rotation_idx(4,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),mulmod(get_eval_i_by_rotation_idx(4,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),get_eval_i_by_rotation_idx(4,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))), modulus), modulus), modulus),modulus),modulus)) mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) theta_acc := mulmod(theta_acc,theta,modulus) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecfffffffb,get_eval_i_by_rotation_idx(5,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x2,mulmod(get_eval_i_by_rotation_idx(5,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),get_eval_i_by_rotation_idx(5,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))), modulus),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x3,mulmod(get_eval_i_by_rotation_idx(5,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),get_eval_i_by_rotation_idx(5,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))), modulus),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,mulmod(get_eval_i_by_rotation_idx(5,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),mulmod(get_eval_i_by_rotation_idx(5,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),get_eval_i_by_rotation_idx(5,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))), modulus), modulus),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x6,mulmod(get_eval_i_by_rotation_idx(5,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),get_eval_i_by_rotation_idx(5,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))), modulus),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,mulmod(get_eval_i_by_rotation_idx(5,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),mulmod(get_eval_i_by_rotation_idx(5,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),get_eval_i_by_rotation_idx(5,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))), modulus), modulus),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecfffffffe,mulmod(get_eval_i_by_rotation_idx(5,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),mulmod(get_eval_i_by_rotation_idx(5,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),get_eval_i_by_rotation_idx(5,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))), modulus), modulus),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x1,mulmod(get_eval_i_by_rotation_idx(5,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),mulmod(get_eval_i_by_rotation_idx(5,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),mulmod(get_eval_i_by_rotation_idx(5,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),get_eval_i_by_rotation_idx(5,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))), modulus), modulus), modulus),modulus),modulus)) mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) theta_acc := mulmod(theta_acc,theta,modulus) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecfffffffb,get_eval_i_by_rotation_idx(6,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x2,mulmod(get_eval_i_by_rotation_idx(6,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),get_eval_i_by_rotation_idx(6,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))), modulus),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x3,mulmod(get_eval_i_by_rotation_idx(6,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),get_eval_i_by_rotation_idx(6,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))), modulus),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,mulmod(get_eval_i_by_rotation_idx(6,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),mulmod(get_eval_i_by_rotation_idx(6,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),get_eval_i_by_rotation_idx(6,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))), modulus), modulus),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x6,mulmod(get_eval_i_by_rotation_idx(6,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),get_eval_i_by_rotation_idx(6,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))), modulus),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,mulmod(get_eval_i_by_rotation_idx(6,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),mulmod(get_eval_i_by_rotation_idx(6,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),get_eval_i_by_rotation_idx(6,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))), modulus), modulus),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecfffffffe,mulmod(get_eval_i_by_rotation_idx(6,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),mulmod(get_eval_i_by_rotation_idx(6,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),get_eval_i_by_rotation_idx(6,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))), modulus), modulus),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x1,mulmod(get_eval_i_by_rotation_idx(6,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),mulmod(get_eval_i_by_rotation_idx(6,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),mulmod(get_eval_i_by_rotation_idx(6,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),get_eval_i_by_rotation_idx(6,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))), modulus), modulus), modulus),modulus),modulus)) mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) theta_acc := mulmod(theta_acc,theta,modulus) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecfffffffb,get_eval_i_by_rotation_idx(7,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x2,mulmod(get_eval_i_by_rotation_idx(7,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),get_eval_i_by_rotation_idx(7,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))), modulus),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x3,mulmod(get_eval_i_by_rotation_idx(7,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),get_eval_i_by_rotation_idx(7,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))), modulus),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,mulmod(get_eval_i_by_rotation_idx(7,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),mulmod(get_eval_i_by_rotation_idx(7,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),get_eval_i_by_rotation_idx(7,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))), modulus), modulus),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x6,mulmod(get_eval_i_by_rotation_idx(7,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),get_eval_i_by_rotation_idx(7,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))), modulus),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,mulmod(get_eval_i_by_rotation_idx(7,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),mulmod(get_eval_i_by_rotation_idx(7,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),get_eval_i_by_rotation_idx(7,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))), modulus), modulus),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecfffffffe,mulmod(get_eval_i_by_rotation_idx(7,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),mulmod(get_eval_i_by_rotation_idx(7,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),get_eval_i_by_rotation_idx(7,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))), modulus), modulus),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x1,mulmod(get_eval_i_by_rotation_idx(7,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),mulmod(get_eval_i_by_rotation_idx(7,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),mulmod(get_eval_i_by_rotation_idx(7,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),get_eval_i_by_rotation_idx(7,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))), modulus), modulus), modulus),modulus),modulus)) mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) theta_acc := mulmod(theta_acc,theta,modulus) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecfffffffb,get_eval_i_by_rotation_idx(8,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x2,mulmod(get_eval_i_by_rotation_idx(8,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),get_eval_i_by_rotation_idx(8,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))), modulus),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x3,mulmod(get_eval_i_by_rotation_idx(8,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),get_eval_i_by_rotation_idx(8,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))), modulus),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,mulmod(get_eval_i_by_rotation_idx(8,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),mulmod(get_eval_i_by_rotation_idx(8,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),get_eval_i_by_rotation_idx(8,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))), modulus), modulus),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x6,mulmod(get_eval_i_by_rotation_idx(8,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),get_eval_i_by_rotation_idx(8,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))), modulus),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,mulmod(get_eval_i_by_rotation_idx(8,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),mulmod(get_eval_i_by_rotation_idx(8,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),get_eval_i_by_rotation_idx(8,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))), modulus), modulus),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecfffffffe,mulmod(get_eval_i_by_rotation_idx(8,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),mulmod(get_eval_i_by_rotation_idx(8,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),get_eval_i_by_rotation_idx(8,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))), modulus), modulus),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x1,mulmod(get_eval_i_by_rotation_idx(8,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),mulmod(get_eval_i_by_rotation_idx(8,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),mulmod(get_eval_i_by_rotation_idx(8,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),get_eval_i_by_rotation_idx(8,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))), modulus), modulus), modulus),modulus),modulus)) mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) theta_acc := mulmod(theta_acc,theta,modulus) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecfffffffb,get_eval_i_by_rotation_idx(9,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x2,mulmod(get_eval_i_by_rotation_idx(9,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),get_eval_i_by_rotation_idx(9,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))), modulus),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x3,mulmod(get_eval_i_by_rotation_idx(9,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),get_eval_i_by_rotation_idx(9,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))), modulus),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,mulmod(get_eval_i_by_rotation_idx(9,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),mulmod(get_eval_i_by_rotation_idx(9,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),get_eval_i_by_rotation_idx(9,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))), modulus), modulus),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x6,mulmod(get_eval_i_by_rotation_idx(9,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),get_eval_i_by_rotation_idx(9,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))), modulus),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,mulmod(get_eval_i_by_rotation_idx(9,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),mulmod(get_eval_i_by_rotation_idx(9,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),get_eval_i_by_rotation_idx(9,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))), modulus), modulus),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecfffffffe,mulmod(get_eval_i_by_rotation_idx(9,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),mulmod(get_eval_i_by_rotation_idx(9,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),get_eval_i_by_rotation_idx(9,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))), modulus), modulus),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x1,mulmod(get_eval_i_by_rotation_idx(9,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),mulmod(get_eval_i_by_rotation_idx(9,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),mulmod(get_eval_i_by_rotation_idx(9,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),get_eval_i_by_rotation_idx(9,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))), modulus), modulus), modulus),modulus),modulus)) mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) theta_acc := mulmod(theta_acc,theta,modulus) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecfffffffb,get_eval_i_by_rotation_idx(10,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x2,mulmod(get_eval_i_by_rotation_idx(10,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),get_eval_i_by_rotation_idx(10,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))), modulus),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x3,mulmod(get_eval_i_by_rotation_idx(10,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),get_eval_i_by_rotation_idx(10,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))), modulus),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,mulmod(get_eval_i_by_rotation_idx(10,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),mulmod(get_eval_i_by_rotation_idx(10,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),get_eval_i_by_rotation_idx(10,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))), modulus), modulus),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x6,mulmod(get_eval_i_by_rotation_idx(10,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),get_eval_i_by_rotation_idx(10,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))), modulus),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,mulmod(get_eval_i_by_rotation_idx(10,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),mulmod(get_eval_i_by_rotation_idx(10,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),get_eval_i_by_rotation_idx(10,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))), modulus), modulus),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecfffffffe,mulmod(get_eval_i_by_rotation_idx(10,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),mulmod(get_eval_i_by_rotation_idx(10,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),get_eval_i_by_rotation_idx(10,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))), modulus), modulus),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x1,mulmod(get_eval_i_by_rotation_idx(10,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),mulmod(get_eval_i_by_rotation_idx(10,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),mulmod(get_eval_i_by_rotation_idx(10,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),get_eval_i_by_rotation_idx(10,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))), modulus), modulus), modulus),modulus),modulus)) mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) theta_acc := mulmod(theta_acc,theta,modulus) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecfffffffb,get_eval_i_by_rotation_idx(11,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x2,mulmod(get_eval_i_by_rotation_idx(11,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),get_eval_i_by_rotation_idx(11,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))), modulus),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x3,mulmod(get_eval_i_by_rotation_idx(11,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),get_eval_i_by_rotation_idx(11,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))), modulus),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,mulmod(get_eval_i_by_rotation_idx(11,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),mulmod(get_eval_i_by_rotation_idx(11,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),get_eval_i_by_rotation_idx(11,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))), modulus), modulus),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x6,mulmod(get_eval_i_by_rotation_idx(11,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),get_eval_i_by_rotation_idx(11,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))), modulus),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,mulmod(get_eval_i_by_rotation_idx(11,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),mulmod(get_eval_i_by_rotation_idx(11,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),get_eval_i_by_rotation_idx(11,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))), modulus), modulus),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecfffffffe,mulmod(get_eval_i_by_rotation_idx(11,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),mulmod(get_eval_i_by_rotation_idx(11,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),get_eval_i_by_rotation_idx(11,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))), modulus), modulus),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x1,mulmod(get_eval_i_by_rotation_idx(11,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),mulmod(get_eval_i_by_rotation_idx(11,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),mulmod(get_eval_i_by_rotation_idx(11,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),get_eval_i_by_rotation_idx(11,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))), modulus), modulus), modulus),modulus),modulus)) mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) theta_acc := mulmod(theta_acc,theta,modulus) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecfffffffb,get_eval_i_by_rotation_idx(12,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x2,mulmod(get_eval_i_by_rotation_idx(12,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),get_eval_i_by_rotation_idx(12,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))), modulus),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x3,mulmod(get_eval_i_by_rotation_idx(12,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),get_eval_i_by_rotation_idx(12,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))), modulus),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,mulmod(get_eval_i_by_rotation_idx(12,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),mulmod(get_eval_i_by_rotation_idx(12,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),get_eval_i_by_rotation_idx(12,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))), modulus), modulus),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x6,mulmod(get_eval_i_by_rotation_idx(12,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),get_eval_i_by_rotation_idx(12,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))), modulus),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,mulmod(get_eval_i_by_rotation_idx(12,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),mulmod(get_eval_i_by_rotation_idx(12,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),get_eval_i_by_rotation_idx(12,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))), modulus), modulus),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecfffffffe,mulmod(get_eval_i_by_rotation_idx(12,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),mulmod(get_eval_i_by_rotation_idx(12,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),get_eval_i_by_rotation_idx(12,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))), modulus), modulus),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x1,mulmod(get_eval_i_by_rotation_idx(12,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),mulmod(get_eval_i_by_rotation_idx(12,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),mulmod(get_eval_i_by_rotation_idx(12,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),get_eval_i_by_rotation_idx(12,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))), modulus), modulus), modulus),modulus),modulus)) mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) theta_acc := mulmod(theta_acc,theta,modulus) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecfffffffb,get_eval_i_by_rotation_idx(13,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x2,mulmod(get_eval_i_by_rotation_idx(13,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),get_eval_i_by_rotation_idx(13,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))), modulus),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x3,mulmod(get_eval_i_by_rotation_idx(13,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),get_eval_i_by_rotation_idx(13,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))), modulus),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,mulmod(get_eval_i_by_rotation_idx(13,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),mulmod(get_eval_i_by_rotation_idx(13,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),get_eval_i_by_rotation_idx(13,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))), modulus), modulus),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x6,mulmod(get_eval_i_by_rotation_idx(13,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),get_eval_i_by_rotation_idx(13,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))), modulus),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,mulmod(get_eval_i_by_rotation_idx(13,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),mulmod(get_eval_i_by_rotation_idx(13,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),get_eval_i_by_rotation_idx(13,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))), modulus), modulus),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecfffffffe,mulmod(get_eval_i_by_rotation_idx(13,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),mulmod(get_eval_i_by_rotation_idx(13,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),get_eval_i_by_rotation_idx(13,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))), modulus), modulus),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x1,mulmod(get_eval_i_by_rotation_idx(13,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),mulmod(get_eval_i_by_rotation_idx(13,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),mulmod(get_eval_i_by_rotation_idx(13,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),get_eval_i_by_rotation_idx(13,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))), modulus), modulus), modulus),modulus),modulus)) mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) theta_acc := mulmod(theta_acc,theta,modulus) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecfffffffb,get_eval_i_by_rotation_idx(14,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x2,mulmod(get_eval_i_by_rotation_idx(14,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),get_eval_i_by_rotation_idx(14,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))), modulus),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x3,mulmod(get_eval_i_by_rotation_idx(14,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),get_eval_i_by_rotation_idx(14,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))), modulus),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,mulmod(get_eval_i_by_rotation_idx(14,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),mulmod(get_eval_i_by_rotation_idx(14,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),get_eval_i_by_rotation_idx(14,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))), modulus), modulus),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x6,mulmod(get_eval_i_by_rotation_idx(14,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),get_eval_i_by_rotation_idx(14,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))), modulus),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,mulmod(get_eval_i_by_rotation_idx(14,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),mulmod(get_eval_i_by_rotation_idx(14,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),get_eval_i_by_rotation_idx(14,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))), modulus), modulus),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecfffffffe,mulmod(get_eval_i_by_rotation_idx(14,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),mulmod(get_eval_i_by_rotation_idx(14,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),get_eval_i_by_rotation_idx(14,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))), modulus), modulus),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x1,mulmod(get_eval_i_by_rotation_idx(14,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),mulmod(get_eval_i_by_rotation_idx(14,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),mulmod(get_eval_i_by_rotation_idx(14,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),get_eval_i_by_rotation_idx(14,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))), modulus), modulus), modulus),modulus),modulus)) mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) theta_acc := mulmod(theta_acc,theta,modulus) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x4000000,get_eval_i_by_rotation_idx(1,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x1000000,get_eval_i_by_rotation_idx(2,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x400000,get_eval_i_by_rotation_idx(3,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x100000,get_eval_i_by_rotation_idx(4,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x40000,get_eval_i_by_rotation_idx(5,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x10000,get_eval_i_by_rotation_idx(6,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x4000,get_eval_i_by_rotation_idx(7,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x1000,get_eval_i_by_rotation_idx(8,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x400,get_eval_i_by_rotation_idx(9,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x100,get_eval_i_by_rotation_idx(10,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x40,get_eval_i_by_rotation_idx(11,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x10,get_eval_i_by_rotation_idx(12,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x4,get_eval_i_by_rotation_idx(13,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x1,get_eval_i_by_rotation_idx(14,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x10000000,get_eval_i_by_rotation_idx(0,2, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_eval_i_by_rotation_idx(0,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),modulus),modulus)) mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) theta_acc := mulmod(theta_acc,theta,modulus) mstore(add(local_vars, GATE_EVAL_OFFSET),mulmod(mload(add(local_vars, GATE_EVAL_OFFSET)),get_selector_i(13,mload(add(local_vars, SELECTOR_EVALUATIONS_OFFSET))),modulus)) gates_evaluation := addmod(gates_evaluation,mload(add(local_vars, GATE_EVAL_OFFSET)),modulus) // TODO: insert generated code for gate argument evaluation here mstore(add(local_vars, GATE_EVAL_OFFSET), 0) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x10000000000000000,get_eval_i_by_rotation_idx(1,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x1,get_eval_i_by_rotation_idx(0,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),modulus),modulus)) mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_eval_i_by_rotation_idx(2,0, mload(add(local_vars, WITNESS_EVALUATIONS_OFFSET))),modulus),modulus)) mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) theta_acc := mulmod(theta_acc,theta,modulus) mstore(add(local_vars, GATE_EVAL_OFFSET),mulmod(mload(add(local_vars, GATE_EVAL_OFFSET)),get_selector_i(14,mload(add(local_vars, SELECTOR_EVALUATIONS_OFFSET))),modulus)) gates_evaluation := addmod(gates_evaluation,mload(add(local_vars, GATE_EVAL_OFFSET)),modulus) } } }