| 44 | } |
| 45 | |
| 46 | func EvalCircuit(rc *layered.RootCircuit, witness *irwg.Witness) []*big.Int { |
| 47 | if witness.NumWitnesses != 1 { |
| 48 | panic("expected 1 witness, if you need to check multiple witnesses, use CheckCircuitMultiWitness") |
| 49 | } |
| 50 | out := evalCircuit(rc, witness.Values[:witness.NumInputsPerWitness], witness.Values[witness.NumInputsPerWitness:]) |
| 51 | return out |
| 52 | } |
| 53 | |
| 54 | func evalCircuit(rc *layered.RootCircuit, input []*big.Int, publicInput []*big.Int) []*big.Int { |
| 55 | if len(input) != int(rc.Circuits[rc.Layers[0]].InputLen) { |