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

     1  package circuits
     2  
     3  import (
     4  	"github.com/consensys/gnark/frontend"
     5  )
     6  
     7  type isZero struct {
     8  	X, Y frontend.Variable
     9  }
    10  
    11  func (circuit *isZero) Define(api frontend.API) error {
    12  
    13  	a := api.IsZero(circuit.X)
    14  	b := api.IsZero(circuit.Y)
    15  	c := api.IsZero(1)
    16  	d := api.IsZero(0)
    17  	api.AssertIsEqual(a, 1)
    18  	api.AssertIsEqual(b, 0)
    19  	api.AssertIsEqual(c, 0)
    20  	api.AssertIsEqual(d, 1)
    21  
    22  	return nil
    23  }
    24  
    25  func init() {
    26  
    27  	var circuit, good, bad isZero
    28  
    29  	good.X = (0)
    30  	good.Y = (203028)
    31  
    32  	bad.X = (23)
    33  	bad.Y = (0)
    34  
    35  	addEntry("isZero", &circuit, &good, &bad, nil)
    36  }