You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

42 lines
1.1 KiB

package gates
import (
gl "github.com/succinctlabs/gnark-plonky2-verifier/goldilocks"
"github.com/succinctlabs/gnark-plonky2-verifier/poseidon"
)
type EvaluationVars struct {
localConstants []gl.QuadraticExtensionVariable
localWires []gl.QuadraticExtensionVariable
publicInputsHash poseidon.GoldilocksHashOut
}
func NewEvaluationVars(
localConstants []gl.QuadraticExtensionVariable,
localWires []gl.QuadraticExtensionVariable,
publicInputsHash poseidon.GoldilocksHashOut,
) *EvaluationVars {
return &EvaluationVars{
localConstants: localConstants,
localWires: localWires,
publicInputsHash: publicInputsHash,
}
}
func (e *EvaluationVars) RemovePrefix(numSelectors uint64) {
e.localConstants = e.localConstants[numSelectors:]
}
func (e *EvaluationVars) GetLocalExtAlgebra(wireRange Range) gl.QuadraticExtensionAlgebraVariable {
// For now, only support degree 2
if wireRange.end-wireRange.start != gl.D {
panic("Range must be of size D")
}
var ret gl.QuadraticExtensionAlgebraVariable
for i := wireRange.start; i < wireRange.end; i++ {
ret[i-wireRange.start] = e.localWires[i]
}
return ret
}