Description:
Smart contract deployed on Ethereum with Factory features.
Blockchain: Ethereum
Source Code: View Code On The Blockchain
Solidity Source Code:
{{
"language": "Solidity",
"sources": {
"starkware/solidity/verifier/cpu/layout2/CpuOods.sol": {
"content": "/*
Copyright 2019-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.
*/
// ---------- The following code was auto-generated. PLEASE DO NOT EDIT. ----------
// SPDX-License-Identifier: Apache-2.0.
pragma solidity ^0.6.12;
import "./MemoryMap.sol";
import "./StarkParameters.sol";
contract CpuOods is MemoryMap, StarkParameters {
// For each query point we want to invert (2 + N_ROWS_IN_MASK) items:
// The query point itself (x).
// The denominator for the constraint polynomial (x-z^constraintDegree)
// [(x-(g^rowNumber)z) for rowNumber in mask].
uint256 constant internal BATCH_INVERSE_CHUNK = (2 + N_ROWS_IN_MASK);
/*
Builds and sums boundary constraints that check that the prover provided the proper evaluations
out of domain evaluations for the trace and composition columns.
The inputs to this function are:
The verifier context.
The boundary constraints for the trace enforce claims of the form f(g^k*z) = c by
requiring the quotient (f(x) - c)/(x-g^k*z) to be a low degree polynomial.
The boundary constraints for the composition enforce claims of the form h(z^d) = c by
requiring the quotient (h(x) - c)/(x-z^d) to be a low degree polynomial.
Where:
f is a trace column.
h is a composition column.
z is the out of domain sampling point.
g is the trace generator
k is the offset in the mask.
d is the degree of the composition polynomial.
c is the evaluation sent by the prover.
*/
fallback() external {
// This funciton assumes that the calldata contains the context as defined in MemoryMap.sol.
// Note that ctx is a variable size array so the first uint256 cell contrains it's length.
uint256[] memory ctx;
assembly {
let ctxSize := mul(add(calldataload(0), 1), 0x20)
ctx := mload(0x40)
mstore(0x40, add(ctx, ctxSize))
calldatacopy(ctx, 0, ctxSize)
}
uint256 n_queries = ctx[MM_N_UNIQUE_QUERIES];
uint256[] memory batchInverseArray = new uint256[](2 * n_queries * BATCH_INVERSE_CHUNK);
oodsPrepareInverses(ctx, batchInverseArray);
uint256 kMontgomeryRInv = PrimeFieldElement0.K_MONTGOMERY_R_INV;
assembly {
let PRIME := 0x800000000000011000000000000000000000000000000000000000000000001
let context := ctx
let friQueue := /*friQueue*/ add(context, 0xdc0)
let friQueueEnd := add(friQueue, mul(n_queries, 0x60))
let traceQueryResponses := /*traceQueryQesponses*/ add(context, 0x4240)
let compositionQueryResponses := /*composition_query_responses*/ add(context, 0x7e40)
// Set denominatorsPtr to point to the batchInverseOut array.
// The content of batchInverseOut is described in oodsPrepareInverses.
let denominatorsPtr := add(batchInverseArray, 0x20)
for {} lt(friQueue, friQueueEnd) {friQueue := add(friQueue, 0x60)} {
// res accumulates numbers modulo PRIME. Since 31*PRIME < 2**256, we may add up to
// 31 numbers without fear of overflow, and use addmod modulo PRIME only every
// 31 iterations, and once more at the very end.
let res := 0
// Trace constraints.
let oods_alpha_pow := 1
let oods_alpha := /*oods_alpha*/ mload(add(context, 0x4220))
// Mask items for column #0.
{
// Read the next element.
let columnValue := mulmod(mload(traceQueryResponses), kMontgomeryRInv, PRIME)
// res += c_0*(f_0(x) - f_0(z)) / (x - z).
res := add(
res,
mulmod(mulmod(/*(x - z)^(-1)*/ mload(denominatorsPtr),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[0]*/ mload(add(context, 0x2be0)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
// res += c_1*(f_0(x) - f_0(g * z)) / (x - g * z).
res := add(
res,
mulmod(mulmod(/*(x - g * z)^(-1)*/ mload(add(denominatorsPtr, 0x20)),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[1]*/ mload(add(context, 0x2c00)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
// res += c_2*(f_0(x) - f_0(g^2 * z)) / (x - g^2 * z).
res := add(
res,
mulmod(mulmod(/*(x - g^2 * z)^(-1)*/ mload(add(denominatorsPtr, 0x40)),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[2]*/ mload(add(context, 0x2c20)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
// res += c_3*(f_0(x) - f_0(g^3 * z)) / (x - g^3 * z).
res := add(
res,
mulmod(mulmod(/*(x - g^3 * z)^(-1)*/ mload(add(denominatorsPtr, 0x60)),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[3]*/ mload(add(context, 0x2c40)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
// res += c_4*(f_0(x) - f_0(g^4 * z)) / (x - g^4 * z).
res := add(
res,
mulmod(mulmod(/*(x - g^4 * z)^(-1)*/ mload(add(denominatorsPtr, 0x80)),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[4]*/ mload(add(context, 0x2c60)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
// res += c_5*(f_0(x) - f_0(g^5 * z)) / (x - g^5 * z).
res := add(
res,
mulmod(mulmod(/*(x - g^5 * z)^(-1)*/ mload(add(denominatorsPtr, 0xa0)),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[5]*/ mload(add(context, 0x2c80)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
// res += c_6*(f_0(x) - f_0(g^6 * z)) / (x - g^6 * z).
res := add(
res,
mulmod(mulmod(/*(x - g^6 * z)^(-1)*/ mload(add(denominatorsPtr, 0xc0)),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[6]*/ mload(add(context, 0x2ca0)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
// res += c_7*(f_0(x) - f_0(g^7 * z)) / (x - g^7 * z).
res := add(
res,
mulmod(mulmod(/*(x - g^7 * z)^(-1)*/ mload(add(denominatorsPtr, 0xe0)),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[7]*/ mload(add(context, 0x2cc0)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
// res += c_8*(f_0(x) - f_0(g^8 * z)) / (x - g^8 * z).
res := add(
res,
mulmod(mulmod(/*(x - g^8 * z)^(-1)*/ mload(add(denominatorsPtr, 0x100)),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[8]*/ mload(add(context, 0x2ce0)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
// res += c_9*(f_0(x) - f_0(g^9 * z)) / (x - g^9 * z).
res := add(
res,
mulmod(mulmod(/*(x - g^9 * z)^(-1)*/ mload(add(denominatorsPtr, 0x120)),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[9]*/ mload(add(context, 0x2d00)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
// res += c_10*(f_0(x) - f_0(g^10 * z)) / (x - g^10 * z).
res := add(
res,
mulmod(mulmod(/*(x - g^10 * z)^(-1)*/ mload(add(denominatorsPtr, 0x140)),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[10]*/ mload(add(context, 0x2d20)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
// res += c_11*(f_0(x) - f_0(g^11 * z)) / (x - g^11 * z).
res := add(
res,
mulmod(mulmod(/*(x - g^11 * z)^(-1)*/ mload(add(denominatorsPtr, 0x160)),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[11]*/ mload(add(context, 0x2d40)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
// res += c_12*(f_0(x) - f_0(g^12 * z)) / (x - g^12 * z).
res := add(
res,
mulmod(mulmod(/*(x - g^12 * z)^(-1)*/ mload(add(denominatorsPtr, 0x180)),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[12]*/ mload(add(context, 0x2d60)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
// res += c_13*(f_0(x) - f_0(g^13 * z)) / (x - g^13 * z).
res := add(
res,
mulmod(mulmod(/*(x - g^13 * z)^(-1)*/ mload(add(denominatorsPtr, 0x1a0)),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[13]*/ mload(add(context, 0x2d80)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
// res += c_14*(f_0(x) - f_0(g^14 * z)) / (x - g^14 * z).
res := add(
res,
mulmod(mulmod(/*(x - g^14 * z)^(-1)*/ mload(add(denominatorsPtr, 0x1c0)),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[14]*/ mload(add(context, 0x2da0)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
// res += c_15*(f_0(x) - f_0(g^15 * z)) / (x - g^15 * z).
res := add(
res,
mulmod(mulmod(/*(x - g^15 * z)^(-1)*/ mload(add(denominatorsPtr, 0x1e0)),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[15]*/ mload(add(context, 0x2dc0)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
}
// Mask items for column #1.
{
// Read the next element.
let columnValue := mulmod(mload(add(traceQueryResponses, 0x20)), kMontgomeryRInv, PRIME)
// res += c_16*(f_1(x) - f_1(z)) / (x - z).
res := add(
res,
mulmod(mulmod(/*(x - z)^(-1)*/ mload(denominatorsPtr),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[16]*/ mload(add(context, 0x2de0)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
// res += c_17*(f_1(x) - f_1(g * z)) / (x - g * z).
res := add(
res,
mulmod(mulmod(/*(x - g * z)^(-1)*/ mload(add(denominatorsPtr, 0x20)),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[17]*/ mload(add(context, 0x2e00)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
// res += c_18*(f_1(x) - f_1(g^255 * z)) / (x - g^255 * z).
res := add(
res,
mulmod(mulmod(/*(x - g^255 * z)^(-1)*/ mload(add(denominatorsPtr, 0x680)),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[18]*/ mload(add(context, 0x2e20)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
// res += c_19*(f_1(x) - f_1(g^256 * z)) / (x - g^256 * z).
res := add(
res,
mulmod(mulmod(/*(x - g^256 * z)^(-1)*/ mload(add(denominatorsPtr, 0x6a0)),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[19]*/ mload(add(context, 0x2e40)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
// res += c_20*(f_1(x) - f_1(g^511 * z)) / (x - g^511 * z).
res := add(
res,
mulmod(mulmod(/*(x - g^511 * z)^(-1)*/ mload(add(denominatorsPtr, 0x760)),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[20]*/ mload(add(context, 0x2e60)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
}
// Mask items for column #2.
{
// Read the next element.
let columnValue := mulmod(mload(add(traceQueryResponses, 0x40)), kMontgomeryRInv, PRIME)
// res += c_21*(f_2(x) - f_2(z)) / (x - z).
res := add(
res,
mulmod(mulmod(/*(x - z)^(-1)*/ mload(denominatorsPtr),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[21]*/ mload(add(context, 0x2e80)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
// res += c_22*(f_2(x) - f_2(g * z)) / (x - g * z).
res := add(
res,
mulmod(mulmod(/*(x - g * z)^(-1)*/ mload(add(denominatorsPtr, 0x20)),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[22]*/ mload(add(context, 0x2ea0)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
// res += c_23*(f_2(x) - f_2(g^255 * z)) / (x - g^255 * z).
res := add(
res,
mulmod(mulmod(/*(x - g^255 * z)^(-1)*/ mload(add(denominatorsPtr, 0x680)),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[23]*/ mload(add(context, 0x2ec0)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
// res += c_24*(f_2(x) - f_2(g^256 * z)) / (x - g^256 * z).
res := add(
res,
mulmod(mulmod(/*(x - g^256 * z)^(-1)*/ mload(add(denominatorsPtr, 0x6a0)),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[24]*/ mload(add(context, 0x2ee0)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
}
// Mask items for column #3.
{
// Read the next element.
let columnValue := mulmod(mload(add(traceQueryResponses, 0x60)), kMontgomeryRInv, PRIME)
// res += c_25*(f_3(x) - f_3(z)) / (x - z).
res := add(
res,
mulmod(mulmod(/*(x - z)^(-1)*/ mload(denominatorsPtr),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[25]*/ mload(add(context, 0x2f00)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
// res += c_26*(f_3(x) - f_3(g * z)) / (x - g * z).
res := add(
res,
mulmod(mulmod(/*(x - g * z)^(-1)*/ mload(add(denominatorsPtr, 0x20)),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[26]*/ mload(add(context, 0x2f20)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
// res += c_27*(f_3(x) - f_3(g^192 * z)) / (x - g^192 * z).
res := add(
res,
mulmod(mulmod(/*(x - g^192 * z)^(-1)*/ mload(add(denominatorsPtr, 0x580)),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[27]*/ mload(add(context, 0x2f40)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
// res += c_28*(f_3(x) - f_3(g^193 * z)) / (x - g^193 * z).
res := add(
res,
mulmod(mulmod(/*(x - g^193 * z)^(-1)*/ mload(add(denominatorsPtr, 0x5a0)),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[28]*/ mload(add(context, 0x2f60)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
// res += c_29*(f_3(x) - f_3(g^196 * z)) / (x - g^196 * z).
res := add(
res,
mulmod(mulmod(/*(x - g^196 * z)^(-1)*/ mload(add(denominatorsPtr, 0x5c0)),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[29]*/ mload(add(context, 0x2f80)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
// res += c_30*(f_3(x) - f_3(g^197 * z)) / (x - g^197 * z).
res := addmod(
res,
mulmod(mulmod(/*(x - g^197 * z)^(-1)*/ mload(add(denominatorsPtr, 0x5e0)),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[30]*/ mload(add(context, 0x2fa0)))),
PRIME),
PRIME)
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
// res += c_31*(f_3(x) - f_3(g^251 * z)) / (x - g^251 * z).
res := add(
res,
mulmod(mulmod(/*(x - g^251 * z)^(-1)*/ mload(add(denominatorsPtr, 0x640)),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[31]*/ mload(add(context, 0x2fc0)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
// res += c_32*(f_3(x) - f_3(g^252 * z)) / (x - g^252 * z).
res := add(
res,
mulmod(mulmod(/*(x - g^252 * z)^(-1)*/ mload(add(denominatorsPtr, 0x660)),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[32]*/ mload(add(context, 0x2fe0)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
// res += c_33*(f_3(x) - f_3(g^256 * z)) / (x - g^256 * z).
res := add(
res,
mulmod(mulmod(/*(x - g^256 * z)^(-1)*/ mload(add(denominatorsPtr, 0x6a0)),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[33]*/ mload(add(context, 0x3000)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
}
// Mask items for column #4.
{
// Read the next element.
let columnValue := mulmod(mload(add(traceQueryResponses, 0x80)), kMontgomeryRInv, PRIME)
// res += c_34*(f_4(x) - f_4(z)) / (x - z).
res := add(
res,
mulmod(mulmod(/*(x - z)^(-1)*/ mload(denominatorsPtr),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[34]*/ mload(add(context, 0x3020)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
// res += c_35*(f_4(x) - f_4(g^255 * z)) / (x - g^255 * z).
res := add(
res,
mulmod(mulmod(/*(x - g^255 * z)^(-1)*/ mload(add(denominatorsPtr, 0x680)),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[35]*/ mload(add(context, 0x3040)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
}
// Mask items for column #5.
{
// Read the next element.
let columnValue := mulmod(mload(add(traceQueryResponses, 0xa0)), kMontgomeryRInv, PRIME)
// res += c_36*(f_5(x) - f_5(z)) / (x - z).
res := add(
res,
mulmod(mulmod(/*(x - z)^(-1)*/ mload(denominatorsPtr),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[36]*/ mload(add(context, 0x3060)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
// res += c_37*(f_5(x) - f_5(g * z)) / (x - g * z).
res := add(
res,
mulmod(mulmod(/*(x - g * z)^(-1)*/ mload(add(denominatorsPtr, 0x20)),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[37]*/ mload(add(context, 0x3080)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
// res += c_38*(f_5(x) - f_5(g^2 * z)) / (x - g^2 * z).
res := add(
res,
mulmod(mulmod(/*(x - g^2 * z)^(-1)*/ mload(add(denominatorsPtr, 0x40)),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[38]*/ mload(add(context, 0x30a0)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
// res += c_39*(f_5(x) - f_5(g^3 * z)) / (x - g^3 * z).
res := add(
res,
mulmod(mulmod(/*(x - g^3 * z)^(-1)*/ mload(add(denominatorsPtr, 0x60)),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[39]*/ mload(add(context, 0x30c0)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
// res += c_40*(f_5(x) - f_5(g^4 * z)) / (x - g^4 * z).
res := add(
res,
mulmod(mulmod(/*(x - g^4 * z)^(-1)*/ mload(add(denominatorsPtr, 0x80)),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[40]*/ mload(add(context, 0x30e0)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
// res += c_41*(f_5(x) - f_5(g^5 * z)) / (x - g^5 * z).
res := add(
res,
mulmod(mulmod(/*(x - g^5 * z)^(-1)*/ mload(add(denominatorsPtr, 0xa0)),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[41]*/ mload(add(context, 0x3100)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
// res += c_42*(f_5(x) - f_5(g^6 * z)) / (x - g^6 * z).
res := add(
res,
mulmod(mulmod(/*(x - g^6 * z)^(-1)*/ mload(add(denominatorsPtr, 0xc0)),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[42]*/ mload(add(context, 0x3120)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
// res += c_43*(f_5(x) - f_5(g^7 * z)) / (x - g^7 * z).
res := add(
res,
mulmod(mulmod(/*(x - g^7 * z)^(-1)*/ mload(add(denominatorsPtr, 0xe0)),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[43]*/ mload(add(context, 0x3140)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
// res += c_44*(f_5(x) - f_5(g^8 * z)) / (x - g^8 * z).
res := add(
res,
mulmod(mulmod(/*(x - g^8 * z)^(-1)*/ mload(add(denominatorsPtr, 0x100)),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[44]*/ mload(add(context, 0x3160)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
// res += c_45*(f_5(x) - f_5(g^9 * z)) / (x - g^9 * z).
res := add(
res,
mulmod(mulmod(/*(x - g^9 * z)^(-1)*/ mload(add(denominatorsPtr, 0x120)),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[45]*/ mload(add(context, 0x3180)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
// res += c_46*(f_5(x) - f_5(g^12 * z)) / (x - g^12 * z).
res := add(
res,
mulmod(mulmod(/*(x - g^12 * z)^(-1)*/ mload(add(denominatorsPtr, 0x180)),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[46]*/ mload(add(context, 0x31a0)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
// res += c_47*(f_5(x) - f_5(g^13 * z)) / (x - g^13 * z).
res := add(
res,
mulmod(mulmod(/*(x - g^13 * z)^(-1)*/ mload(add(denominatorsPtr, 0x1a0)),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[47]*/ mload(add(context, 0x31c0)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
// res += c_48*(f_5(x) - f_5(g^16 * z)) / (x - g^16 * z).
res := add(
res,
mulmod(mulmod(/*(x - g^16 * z)^(-1)*/ mload(add(denominatorsPtr, 0x200)),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[48]*/ mload(add(context, 0x31e0)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
// res += c_49*(f_5(x) - f_5(g^70 * z)) / (x - g^70 * z).
res := add(
res,
mulmod(mulmod(/*(x - g^70 * z)^(-1)*/ mload(add(denominatorsPtr, 0x380)),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[49]*/ mload(add(context, 0x3200)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
// res += c_50*(f_5(x) - f_5(g^71 * z)) / (x - g^71 * z).
res := add(
res,
mulmod(mulmod(/*(x - g^71 * z)^(-1)*/ mload(add(denominatorsPtr, 0x3a0)),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[50]*/ mload(add(context, 0x3220)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
// res += c_51*(f_5(x) - f_5(g^134 * z)) / (x - g^134 * z).
res := add(
res,
mulmod(mulmod(/*(x - g^134 * z)^(-1)*/ mload(add(denominatorsPtr, 0x4e0)),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[51]*/ mload(add(context, 0x3240)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
// res += c_52*(f_5(x) - f_5(g^135 * z)) / (x - g^135 * z).
res := add(
res,
mulmod(mulmod(/*(x - g^135 * z)^(-1)*/ mload(add(denominatorsPtr, 0x500)),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[52]*/ mload(add(context, 0x3260)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
// res += c_53*(f_5(x) - f_5(g^262 * z)) / (x - g^262 * z).
res := add(
res,
mulmod(mulmod(/*(x - g^262 * z)^(-1)*/ mload(add(denominatorsPtr, 0x6c0)),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[53]*/ mload(add(context, 0x3280)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
// res += c_54*(f_5(x) - f_5(g^263 * z)) / (x - g^263 * z).
res := add(
res,
mulmod(mulmod(/*(x - g^263 * z)^(-1)*/ mload(add(denominatorsPtr, 0x6e0)),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[54]*/ mload(add(context, 0x32a0)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
// res += c_55*(f_5(x) - f_5(g^326 * z)) / (x - g^326 * z).
res := add(
res,
mulmod(mulmod(/*(x - g^326 * z)^(-1)*/ mload(add(denominatorsPtr, 0x700)),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[55]*/ mload(add(context, 0x32c0)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
// res += c_56*(f_5(x) - f_5(g^390 * z)) / (x - g^390 * z).
res := add(
res,
mulmod(mulmod(/*(x - g^390 * z)^(-1)*/ mload(add(denominatorsPtr, 0x720)),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[56]*/ mload(add(context, 0x32e0)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
// res += c_57*(f_5(x) - f_5(g^391 * z)) / (x - g^391 * z).
res := add(
res,
mulmod(mulmod(/*(x - g^391 * z)^(-1)*/ mload(add(denominatorsPtr, 0x740)),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[57]*/ mload(add(context, 0x3300)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
// res += c_58*(f_5(x) - f_5(g^518 * z)) / (x - g^518 * z).
res := add(
res,
mulmod(mulmod(/*(x - g^518 * z)^(-1)*/ mload(add(denominatorsPtr, 0x780)),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[58]*/ mload(add(context, 0x3320)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
// res += c_59*(f_5(x) - f_5(g^16774 * z)) / (x - g^16774 * z).
res := add(
res,
mulmod(mulmod(/*(x - g^16774 * z)^(-1)*/ mload(add(denominatorsPtr, 0x880)),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[59]*/ mload(add(context, 0x3340)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
// res += c_60*(f_5(x) - f_5(g^16775 * z)) / (x - g^16775 * z).
res := add(
res,
mulmod(mulmod(/*(x - g^16775 * z)^(-1)*/ mload(add(denominatorsPtr, 0x8a0)),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[60]*/ mload(add(context, 0x3360)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
// res += c_61*(f_5(x) - f_5(g^33158 * z)) / (x - g^33158 * z).
res := addmod(
res,
mulmod(mulmod(/*(x - g^33158 * z)^(-1)*/ mload(add(denominatorsPtr, 0x9c0)),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[61]*/ mload(add(context, 0x3380)))),
PRIME),
PRIME)
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
}
// Mask items for column #6.
{
// Read the next element.
let columnValue := mulmod(mload(add(traceQueryResponses, 0xc0)), kMontgomeryRInv, PRIME)
// res += c_62*(f_6(x) - f_6(z)) / (x - z).
res := add(
res,
mulmod(mulmod(/*(x - z)^(-1)*/ mload(denominatorsPtr),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[62]*/ mload(add(context, 0x33a0)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
// res += c_63*(f_6(x) - f_6(g * z)) / (x - g * z).
res := add(
res,
mulmod(mulmod(/*(x - g * z)^(-1)*/ mload(add(denominatorsPtr, 0x20)),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[63]*/ mload(add(context, 0x33c0)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
// res += c_64*(f_6(x) - f_6(g^2 * z)) / (x - g^2 * z).
res := add(
res,
mulmod(mulmod(/*(x - g^2 * z)^(-1)*/ mload(add(denominatorsPtr, 0x40)),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[64]*/ mload(add(context, 0x33e0)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
// res += c_65*(f_6(x) - f_6(g^3 * z)) / (x - g^3 * z).
res := add(
res,
mulmod(mulmod(/*(x - g^3 * z)^(-1)*/ mload(add(denominatorsPtr, 0x60)),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[65]*/ mload(add(context, 0x3400)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
}
// Mask items for column #7.
{
// Read the next element.
let columnValue := mulmod(mload(add(traceQueryResponses, 0xe0)), kMontgomeryRInv, PRIME)
// res += c_66*(f_7(x) - f_7(z)) / (x - z).
res := add(
res,
mulmod(mulmod(/*(x - z)^(-1)*/ mload(denominatorsPtr),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[66]*/ mload(add(context, 0x3420)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
// res += c_67*(f_7(x) - f_7(g * z)) / (x - g * z).
res := add(
res,
mulmod(mulmod(/*(x - g * z)^(-1)*/ mload(add(denominatorsPtr, 0x20)),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[67]*/ mload(add(context, 0x3440)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
// res += c_68*(f_7(x) - f_7(g^2 * z)) / (x - g^2 * z).
res := add(
res,
mulmod(mulmod(/*(x - g^2 * z)^(-1)*/ mload(add(denominatorsPtr, 0x40)),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[68]*/ mload(add(context, 0x3460)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
// res += c_69*(f_7(x) - f_7(g^3 * z)) / (x - g^3 * z).
res := add(
res,
mulmod(mulmod(/*(x - g^3 * z)^(-1)*/ mload(add(denominatorsPtr, 0x60)),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[69]*/ mload(add(context, 0x3480)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
// res += c_70*(f_7(x) - f_7(g^4 * z)) / (x - g^4 * z).
res := add(
res,
mulmod(mulmod(/*(x - g^4 * z)^(-1)*/ mload(add(denominatorsPtr, 0x80)),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[70]*/ mload(add(context, 0x34a0)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
// res += c_71*(f_7(x) - f_7(g^5 * z)) / (x - g^5 * z).
res := add(
res,
mulmod(mulmod(/*(x - g^5 * z)^(-1)*/ mload(add(denominatorsPtr, 0xa0)),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[71]*/ mload(add(context, 0x34c0)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
// res += c_72*(f_7(x) - f_7(g^6 * z)) / (x - g^6 * z).
res := add(
res,
mulmod(mulmod(/*(x - g^6 * z)^(-1)*/ mload(add(denominatorsPtr, 0xc0)),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[72]*/ mload(add(context, 0x34e0)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
// res += c_73*(f_7(x) - f_7(g^7 * z)) / (x - g^7 * z).
res := add(
res,
mulmod(mulmod(/*(x - g^7 * z)^(-1)*/ mload(add(denominatorsPtr, 0xe0)),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[73]*/ mload(add(context, 0x3500)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
// res += c_74*(f_7(x) - f_7(g^8 * z)) / (x - g^8 * z).
res := add(
res,
mulmod(mulmod(/*(x - g^8 * z)^(-1)*/ mload(add(denominatorsPtr, 0x100)),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[74]*/ mload(add(context, 0x3520)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
// res += c_75*(f_7(x) - f_7(g^9 * z)) / (x - g^9 * z).
res := add(
res,
mulmod(mulmod(/*(x - g^9 * z)^(-1)*/ mload(add(denominatorsPtr, 0x120)),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[75]*/ mload(add(context, 0x3540)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
// res += c_76*(f_7(x) - f_7(g^11 * z)) / (x - g^11 * z).
res := add(
res,
mulmod(mulmod(/*(x - g^11 * z)^(-1)*/ mload(add(denominatorsPtr, 0x160)),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[76]*/ mload(add(context, 0x3560)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
// res += c_77*(f_7(x) - f_7(g^12 * z)) / (x - g^12 * z).
res := add(
res,
mulmod(mulmod(/*(x - g^12 * z)^(-1)*/ mload(add(denominatorsPtr, 0x180)),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[77]*/ mload(add(context, 0x3580)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
// res += c_78*(f_7(x) - f_7(g^13 * z)) / (x - g^13 * z).
res := add(
res,
mulmod(mulmod(/*(x - g^13 * z)^(-1)*/ mload(add(denominatorsPtr, 0x1a0)),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[78]*/ mload(add(context, 0x35a0)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
// res += c_79*(f_7(x) - f_7(g^15 * z)) / (x - g^15 * z).
res := add(
res,
mulmod(mulmod(/*(x - g^15 * z)^(-1)*/ mload(add(denominatorsPtr, 0x1e0)),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[79]*/ mload(add(context, 0x35c0)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
// res += c_80*(f_7(x) - f_7(g^17 * z)) / (x - g^17 * z).
res := add(
res,
mulmod(mulmod(/*(x - g^17 * z)^(-1)*/ mload(add(denominatorsPtr, 0x220)),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[80]*/ mload(add(context, 0x35e0)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
// res += c_81*(f_7(x) - f_7(g^23 * z)) / (x - g^23 * z).
res := add(
res,
mulmod(mulmod(/*(x - g^23 * z)^(-1)*/ mload(add(denominatorsPtr, 0x240)),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[81]*/ mload(add(context, 0x3600)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
// res += c_82*(f_7(x) - f_7(g^25 * z)) / (x - g^25 * z).
res := add(
res,
mulmod(mulmod(/*(x - g^25 * z)^(-1)*/ mload(add(denominatorsPtr, 0x260)),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[82]*/ mload(add(context, 0x3620)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
// res += c_83*(f_7(x) - f_7(g^31 * z)) / (x - g^31 * z).
res := add(
res,
mulmod(mulmod(/*(x - g^31 * z)^(-1)*/ mload(add(denominatorsPtr, 0x280)),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[83]*/ mload(add(context, 0x3640)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
// res += c_84*(f_7(x) - f_7(g^39 * z)) / (x - g^39 * z).
res := add(
res,
mulmod(mulmod(/*(x - g^39 * z)^(-1)*/ mload(add(denominatorsPtr, 0x2c0)),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[84]*/ mload(add(context, 0x3660)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
// res += c_85*(f_7(x) - f_7(g^44 * z)) / (x - g^44 * z).
res := add(
res,
mulmod(mulmod(/*(x - g^44 * z)^(-1)*/ mload(add(denominatorsPtr, 0x2e0)),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[85]*/ mload(add(context, 0x3680)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
// res += c_86*(f_7(x) - f_7(g^47 * z)) / (x - g^47 * z).
res := add(
res,
mulmod(mulmod(/*(x - g^47 * z)^(-1)*/ mload(add(denominatorsPtr, 0x300)),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[86]*/ mload(add(context, 0x36a0)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
// res += c_87*(f_7(x) - f_7(g^55 * z)) / (x - g^55 * z).
res := add(
res,
mulmod(mulmod(/*(x - g^55 * z)^(-1)*/ mload(add(denominatorsPtr, 0x320)),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[87]*/ mload(add(context, 0x36c0)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
// res += c_88*(f_7(x) - f_7(g^63 * z)) / (x - g^63 * z).
res := add(
res,
mulmod(mulmod(/*(x - g^63 * z)^(-1)*/ mload(add(denominatorsPtr, 0x340)),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[88]*/ mload(add(context, 0x36e0)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
// res += c_89*(f_7(x) - f_7(g^71 * z)) / (x - g^71 * z).
res := add(
res,
mulmod(mulmod(/*(x - g^71 * z)^(-1)*/ mload(add(denominatorsPtr, 0x3a0)),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[89]*/ mload(add(context, 0x3700)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
// res += c_90*(f_7(x) - f_7(g^76 * z)) / (x - g^76 * z).
res := add(
res,
mulmod(mulmod(/*(x - g^76 * z)^(-1)*/ mload(add(denominatorsPtr, 0x3c0)),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[90]*/ mload(add(context, 0x3720)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
// res += c_91*(f_7(x) - f_7(g^79 * z)) / (x - g^79 * z).
res := add(
res,
mulmod(mulmod(/*(x - g^79 * z)^(-1)*/ mload(add(denominatorsPtr, 0x3e0)),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[91]*/ mload(add(context, 0x3740)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
// res += c_92*(f_7(x) - f_7(g^87 * z)) / (x - g^87 * z).
res := addmod(
res,
mulmod(mulmod(/*(x - g^87 * z)^(-1)*/ mload(add(denominatorsPtr, 0x420)),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[92]*/ mload(add(context, 0x3760)))),
PRIME),
PRIME)
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
// res += c_93*(f_7(x) - f_7(g^103 * z)) / (x - g^103 * z).
res := add(
res,
mulmod(mulmod(/*(x - g^103 * z)^(-1)*/ mload(add(denominatorsPtr, 0x460)),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[93]*/ mload(add(context, 0x3780)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
// res += c_94*(f_7(x) - f_7(g^108 * z)) / (x - g^108 * z).
res := add(
res,
mulmod(mulmod(/*(x - g^108 * z)^(-1)*/ mload(add(denominatorsPtr, 0x480)),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[94]*/ mload(add(context, 0x37a0)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
// res += c_95*(f_7(x) - f_7(g^119 * z)) / (x - g^119 * z).
res := add(
res,
mulmod(mulmod(/*(x - g^119 * z)^(-1)*/ mload(add(denominatorsPtr, 0x4a0)),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[95]*/ mload(add(context, 0x37c0)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
// res += c_96*(f_7(x) - f_7(g^140 * z)) / (x - g^140 * z).
res := add(
res,
mulmod(mulmod(/*(x - g^140 * z)^(-1)*/ mload(add(denominatorsPtr, 0x520)),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[96]*/ mload(add(context, 0x37e0)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
// res += c_97*(f_7(x) - f_7(g^172 * z)) / (x - g^172 * z).
res := add(
res,
mulmod(mulmod(/*(x - g^172 * z)^(-1)*/ mload(add(denominatorsPtr, 0x560)),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[97]*/ mload(add(context, 0x3800)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
// res += c_98*(f_7(x) - f_7(g^204 * z)) / (x - g^204 * z).
res := add(
res,
mulmod(mulmod(/*(x - g^204 * z)^(-1)*/ mload(add(denominatorsPtr, 0x600)),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[98]*/ mload(add(context, 0x3820)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
// res += c_99*(f_7(x) - f_7(g^236 * z)) / (x - g^236 * z).
res := add(
res,
mulmod(mulmod(/*(x - g^236 * z)^(-1)*/ mload(add(denominatorsPtr, 0x620)),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[99]*/ mload(add(context, 0x3840)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
// res += c_100*(f_7(x) - f_7(g^16343 * z)) / (x - g^16343 * z).
res := add(
res,
mulmod(mulmod(/*(x - g^16343 * z)^(-1)*/ mload(add(denominatorsPtr, 0x7a0)),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[100]*/ mload(add(context, 0x3860)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
// res += c_101*(f_7(x) - f_7(g^16351 * z)) / (x - g^16351 * z).
res := add(
res,
mulmod(mulmod(/*(x - g^16351 * z)^(-1)*/ mload(add(denominatorsPtr, 0x7c0)),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[101]*/ mload(add(context, 0x3880)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
// res += c_102*(f_7(x) - f_7(g^16367 * z)) / (x - g^16367 * z).
res := add(
res,
mulmod(mulmod(/*(x - g^16367 * z)^(-1)*/ mload(add(denominatorsPtr, 0x7e0)),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[102]*/ mload(add(context, 0x38a0)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
// res += c_103*(f_7(x) - f_7(g^16375 * z)) / (x - g^16375 * z).
res := add(
res,
mulmod(mulmod(/*(x - g^16375 * z)^(-1)*/ mload(add(denominatorsPtr, 0x800)),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[103]*/ mload(add(context, 0x38c0)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
// res += c_104*(f_7(x) - f_7(g^16383 * z)) / (x - g^16383 * z).
res := add(
res,
mulmod(mulmod(/*(x - g^16383 * z)^(-1)*/ mload(add(denominatorsPtr, 0x820)),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[104]*/ mload(add(context, 0x38e0)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
// res += c_105*(f_7(x) - f_7(g^16391 * z)) / (x - g^16391 * z).
res := add(
res,
mulmod(mulmod(/*(x - g^16391 * z)^(-1)*/ mload(add(denominatorsPtr, 0x840)),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[105]*/ mload(add(context, 0x3900)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
// res += c_106*(f_7(x) - f_7(g^16423 * z)) / (x - g^16423 * z).
res := add(
res,
mulmod(mulmod(/*(x - g^16423 * z)^(-1)*/ mload(add(denominatorsPtr, 0x860)),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[106]*/ mload(add(context, 0x3920)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
// res += c_107*(f_7(x) - f_7(g^32727 * z)) / (x - g^32727 * z).
res := add(
res,
mulmod(mulmod(/*(x - g^32727 * z)^(-1)*/ mload(add(denominatorsPtr, 0x920)),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[107]*/ mload(add(context, 0x3940)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
// res += c_108*(f_7(x) - f_7(g^32735 * z)) / (x - g^32735 * z).
res := add(
res,
mulmod(mulmod(/*(x - g^32735 * z)^(-1)*/ mload(add(denominatorsPtr, 0x940)),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[108]*/ mload(add(context, 0x3960)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
// res += c_109*(f_7(x) - f_7(g^32759 * z)) / (x - g^32759 * z).
res := add(
res,
mulmod(mulmod(/*(x - g^32759 * z)^(-1)*/ mload(add(denominatorsPtr, 0x980)),
oods_alpha_pow,
PRIME),
add(columnValue, sub(PRIME, /*oods_values[109]*/ mload(add(context, 0x3980)))),
PRIME))
oods_alpha_pow := mulmod(oods_alpha_pow, oods_alpha, PRIME)
// res += c_110*(f_7(x) - f_7(g^32
Submitted on: 2025-10-08 10:52:24
Comments
Log in to comment.
No comments yet.