github.com/consensys/gnark@v0.11.0/internal/backend/circuits/frombinary.go (about) 1 package circuits 2 3 import ( 4 "github.com/consensys/gnark/frontend" 5 ) 6 7 type fromBinaryCircuit struct { 8 B0, B1, B2, B3 frontend.Variable 9 Y frontend.Variable `gnark:",public"` 10 } 11 12 func (circuit *fromBinaryCircuit) Define(api frontend.API) error { 13 api.AssertIsBoolean(circuit.B0) 14 api.AssertIsBoolean(circuit.B1) 15 api.AssertIsBoolean(circuit.B2) 16 api.AssertIsBoolean(circuit.B3) 17 18 r := api.FromBinary(circuit.B0, circuit.B1, circuit.B2, circuit.B3) 19 20 api.AssertIsEqual(circuit.Y, r) 21 return nil 22 } 23 24 func init() { 25 var circuit, good, bad fromBinaryCircuit 26 27 good.B0 = (1) 28 good.B1 = (0) 29 good.B2 = (1) 30 good.B3 = (1) 31 good.Y = (13) 32 33 bad.B0 = (1) 34 bad.B1 = (0) 35 bad.B2 = (0) 36 bad.B3 = (1) 37 bad.Y = (13) 38 39 addEntry("frombinary", &circuit, &good, &bad, nil) 40 }