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

     1  package circuits
     2  
     3  import (
     4  	"github.com/consensys/gnark/frontend"
     5  )
     6  
     7  type negCircuit struct {
     8  	X frontend.Variable
     9  	Z frontend.Variable `gnark:",public"`
    10  }
    11  
    12  func (circuit *negCircuit) Define(api frontend.API) error {
    13  	a := api.Mul(circuit.X, circuit.X)
    14  	b := api.Neg(circuit.X)
    15  	c := api.Add(a, b)
    16  	api.AssertIsEqual(c, circuit.Z)
    17  	return nil
    18  }
    19  
    20  func init() {
    21  
    22  	var circuit, good, bad negCircuit
    23  
    24  	good.X = (6)
    25  	good.Z = (30)
    26  
    27  	bad.X = (7)
    28  	bad.Z = (30)
    29  
    30  	addEntry("neg", &circuit, &good, &bad, nil)
    31  }