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  }