check if first output is zero
(rc *layered.RootCircuit, witness *irwg.Witness)
| 11 | |
| 12 | // check if first output is zero |
| 13 | func CheckCircuit(rc *layered.RootCircuit, witness *irwg.Witness) bool { |
| 14 | if witness.NumWitnesses != 1 { |
| 15 | panic("expected 1 witness, if you need to check multiple witnesses, use CheckCircuitMultiWitness") |
| 16 | } |
| 17 | out := evalCircuit(rc, witness.Values[:witness.NumInputsPerWitness], witness.Values[witness.NumInputsPerWitness:]) |
| 18 | for i := 0; i < rc.ExpectedNumOutputZeroes; i++ { |
| 19 | if out[i].Cmp(big.NewInt(0)) != 0 { |
| 20 | return false |
| 21 | } |
| 22 | } |
| 23 | return true |
| 24 | } |
| 25 | |
| 26 | func CheckCircuitMultiWitness(rc *layered.RootCircuit, witness *irwg.Witness) []bool { |
| 27 | if witness.NumWitnesses == 0 { |