You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

43 lines
638 B

  1. template AND() {
  2. signal input a;
  3. signal input b;
  4. signal output c;
  5. c <== a*b;
  6. }
  7. template AND3() {
  8. signal input in1;
  9. signal input in2;
  10. signal input in3;
  11. signal output out;
  12. component and1 = AND();
  13. component and2 = AND();
  14. in1 ==> and1.a;
  15. in2 ==> and1.b;
  16. in3 ==> and2.a;
  17. and1.c ==> and2.b;
  18. and2.c ==> out;
  19. }
  20. template ToBin() {
  21. signal input in;
  22. signal output out[32];
  23. var lc = 0;
  24. for (var i=0; i<32; i++) {
  25. out[i] <-- (in >> i) & 1;
  26. lc = lc + out[i] * 2**i;
  27. out[i]*(out[i]-1) === 0;
  28. }
  29. lc === in;
  30. }
  31. component main = ToBin();