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