github.com/consensys/gnark@v0.11.0/internal/backend/circuits/cmp.go (about) 1 package circuits 2 3 import ( 4 "github.com/consensys/gnark/frontend" 5 ) 6 7 type cmpCircuit struct { 8 A frontend.Variable 9 B frontend.Variable `gnark:",public"` 10 R frontend.Variable 11 } 12 13 func (circuit *cmpCircuit) Define(api frontend.API) error { 14 r := api.Cmp(circuit.A, circuit.B) 15 api.AssertIsEqual(r, circuit.R) 16 return nil 17 } 18 19 func init() { 20 21 good := []frontend.Circuit{ 22 &cmpCircuit{ 23 A: 12346, 24 B: 12345, 25 R: 1, 26 }, 27 &cmpCircuit{ 28 A: 12345, 29 B: 12346, 30 R: -1, 31 }, 32 &cmpCircuit{ 33 A: 12345, 34 B: 12345, 35 R: 0, 36 }, 37 } 38 39 bad := []frontend.Circuit{ 40 &cmpCircuit{ 41 A: 12345, 42 B: 12346, 43 R: 1, 44 }, 45 &cmpCircuit{ 46 A: 12346, 47 B: 12345, 48 R: -1, 49 }, 50 &cmpCircuit{ 51 A: 12345, 52 B: 12345, 53 R: 1, 54 }, 55 } 56 57 addNewEntry("cmp", &cmpCircuit{}, good, bad, nil) 58 }