github.com/consensys/gnark@v0.11.0/internal/backend/circuits/add.go (about)

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