【session 2】 Exercise Integer Division - why does the if-else statement throw "signal already assigned" error? #54
Answered
by
abbylow
abbylow
asked this question in
Q&A(提问题在隔壁~)
|
S2的最后一题IntegerDivide,我稍微修改了Example Solution里的答案,以下是我的代码 代码疑问为何else statement会报错呢?报错原因是指 这几行if-else statement是从example solution模版里抄出来的,为何我跑不了呢? 我的workaround我的猜测(未经验证)会不会是 注:上述solution在zkrepl里依旧跑不了negative input,要放p-1才能表示-1,以此类推。 |
Answered by
abbylow
Mar 11, 2023
Replies: 2 comments
|
反正都是瞎猜。。。我也来猜。 考虑下写电路编译器的难度,这种写法: 你的条件语句和结果是在一个地方集中给编译器的,所以他容易判断和生成电路。 所以逻辑上确实支持?就应该支持if else,但是实现上可能不一样。 |
0 replies
|
还是没找到答案,用circom(之前用的是zkrepl)跑了也是一样的报错 这里补充2点:
但这个点好像没什么帮助,因为remainder必须是output signal 😂
但若if condition之后不是生成constraint而是单纯地assign是ok的 这个点好像也没什么帮助,因为我们代码里用的就是 默默在这里等哪位大大解惑 |
0 replies
Answer selected by
Demian101
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
还是没找到答案,用circom(之前用的是zkrepl)跑了也是一样的报错
这里补充2点:
这个例子里用的是var不是signal,所以我们知道用的是var的话不会throw signal already assigned
但这个点好像没什么帮助,因为remainder必须是output signal 😂
但若if condition之后不是生成constraint而是单纯地assign是ok的