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

     1  package circuits
     2  
     3  import (
     4  	"github.com/consensys/gnark/frontend"
     5  )
     6  
     7  type cmpCircuit struct {
     8  	A frontend.Variable
     9  	B frontend.Variable `gnark:",public"`
    10  	R frontend.Variable
    11  }
    12  
    13  func (circuit *cmpCircuit) Define(api frontend.API) error {
    14  	r := api.Cmp(circuit.A, circuit.B)
    15  	api.AssertIsEqual(r, circuit.R)
    16  	return nil
    17  }
    18  
    19  func init() {
    20  
    21  	good := []frontend.Circuit{
    22  		&cmpCircuit{
    23  			A: 12346,
    24  			B: 12345,
    25  			R: 1,
    26  		},
    27  		&cmpCircuit{
    28  			A: 12345,
    29  			B: 12346,
    30  			R: -1,
    31  		},
    32  		&cmpCircuit{
    33  			A: 12345,
    34  			B: 12345,
    35  			R: 0,
    36  		},
    37  	}
    38  
    39  	bad := []frontend.Circuit{
    40  		&cmpCircuit{
    41  			A: 12345,
    42  			B: 12346,
    43  			R: 1,
    44  		},
    45  		&cmpCircuit{
    46  			A: 12346,
    47  			B: 12345,
    48  			R: -1,
    49  		},
    50  		&cmpCircuit{
    51  			A: 12345,
    52  			B: 12345,
    53  			R: 1,
    54  		},
    55  	}
    56  
    57  	addNewEntry("cmp", &cmpCircuit{}, good, bad, nil)
    58  }