如何在circom电路语言中通过引用传递函数参数?
我正在尝试以下操作:
pragma circom 2.0.0;
function increment(foo) {
foo++;
}
template MyTemplate() {
signal input a;
signal output b;
var foo;
foo = 0;
increment(foo);
log(foo);
// ...
}
component main = MyTemplate();
我希望log(pos)
输出1,但我得到的是0。是否有某种方法需要将pos
传递到increment
中,以便它可以通过引用修改变量?
我决定使用C预处理器来生成circom代码,所以现在我有了:
main.circom:
cpp -P maintpl.circom > main.circom
在我的Makefile 中
和
#define increment(foo) foo++
在我的circom代码中。