github.com/consensys/gnark@v0.11.0/internal/backend/circuits/sub.go (about) 1 package circuits 2 3 import ( 4 "github.com/consensys/gnark/frontend" 5 ) 6 7 type subCircuit struct { 8 A, B, C, D, E frontend.Variable 9 Res frontend.Variable `gnark:",public"` 10 } 11 12 func (circuit *subCircuit) Define(api frontend.API) error { 13 14 a := api.Sub(23820938283, circuit.A, circuit.B, 232, circuit.C, "2039", circuit.D) 15 api.AssertIsEqual(a, circuit.Res) 16 17 b := api.Sub(circuit.E, circuit.A, circuit.B, 232, circuit.C, "2039", circuit.D) 18 api.AssertIsEqual(b, circuit.Res) 19 20 return nil 21 } 22 23 func init() { 24 25 var circuit, good, bad subCircuit 26 27 good.A = 6 28 good.B = 2 29 good.C = 123 30 good.D = 76 31 good.E = 23820938283 32 good.Res = 23820935805 33 34 bad.A = 6 35 bad.B = 2 36 bad.C = 123 37 bad.D = 76 38 bad.E = 23820938283 39 bad.Res = 1 40 41 addEntry("sub", &circuit, &good, &bad, nil) 42 }