diff --git a/circuits/average/circuit.circom b/circuits/average/circuit.circom index dfd1769..db8a8e0 100644 --- a/circuits/average/circuit.circom +++ b/circuits/average/circuit.circom @@ -21,10 +21,7 @@ template Average(n) { } denominator_inv <-- invert(n); - - component eq = IsEqual(); - eq.in[0] <== 1; - eq.in[1] <== denominator_inv * n; + denominator_inv * n === 1; out <== sum * denominator_inv; diff --git a/circuits/none-zero/circuit.circom b/circuits/none-zero/circuit.circom index e4fb414..3643ae8 100644 --- a/circuits/none-zero/circuit.circom +++ b/circuits/none-zero/circuit.circom @@ -4,10 +4,13 @@ pragma circom 2.0.3; template IsNoneZero() { signal input in; signal output out; + signal inv; - inv <-- (in != 0) ? 1/in : 0; + inv <-- in!=0 ? 1/in : 0; + out <== in*inv; + in*(-out+1) === 0; } component main = IsNoneZero(); \ No newline at end of file diff --git a/circuits/none-zero/circuit1.circom b/circuits/none-zero/circuit1.circom index c5811a4..5ba17d5 100644 --- a/circuits/none-zero/circuit1.circom +++ b/circuits/none-zero/circuit1.circom @@ -5,13 +5,13 @@ include "../../node_modules/circomlib/circuits/comparators.circom"; template IsNoneZero() { signal input in; signal output out; - signal inv; - component iszero = IsZero(); - iszero.in <== in; - inv <-- (iszero.out != 0) ? 0 : 1; + component iszero_1 = IsZero(); + iszero_1.in <== in; + component iszero_2 = IsZero(); + iszero_2.in <== iszero_1.out; - out <== inv; + out <== iszero_2.out; } component main = IsNoneZero(); \ No newline at end of file