Replies: 1 comment 2 replies
-
The For this, we have type circuit struct {
X, Y frontend.Variable
Input frontend.Variable
Ret frontend.Variable
}
func (c *circuit) Define(api frontend.API) error {
isEqual := api.IsZero(c.X, c.Y)
cmpRes := api.Cmp(c.X, c.Y)
isLess := api.IsZero(api.Add(cmpRes, 1))
isGreater := api.IsZero(api.Sub(cmpRes, 1))
// here now only one of isEqual, isLess or IsGreater is 1
res := api.Select(isEqual, 111, c.Input)
res := api.Select(isLess, 222, res)
res := api.Select(isGreater, 333, res)
api.AssertIsEqual(res, 1)
} |
Beta Was this translation helpful? Give feedback.
2 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Hi, I'm new to gnark, and I have a question on
api.Cmp()
According to comments of
api.Cmp()
, its return value is aVariable
(which is not a literal integer, e.g, 0, 1, -1). But how can we check the return value inif-else
statement. Below is my sample code, where I would like to check if Variabled
is 0 in if-else, but it doesn't work. It's also infeasible to convertVariable
to integers (see #1050)In a nutshell, how to compare
Variable
with integers? Thanks!Comments of
api.Cmp()
Beta Was this translation helpful? Give feedback.
All reactions