arnaucube
arnaucube/grapevine-sonobePublic Self-hosted repository
grapevine-sonobe/circom/node_modules/circomlib/test/circuits/binsub_test.circom
circom/node_modules/circomlib/test/circuits/binsub_test.circomRaw
 1pragma circom 2.0.0;
 2
 3include "../../circuits/bitify.circom";
 4include "../../circuits/binsub.circom";
 5
 6template A() {
 7    signal input a; //private
 8    signal input b;
 9    signal output out;
10
11    var i;
12
13    component n2ba = Num2Bits(16);
14    component n2bb = Num2Bits(16);
15    component sub = BinSub(16);
16    component b2n = Bits2Num(16);
17
18    n2ba.in <== a;
19    n2bb.in <== b;
20
21    for (i=0; i<16; i++) {
22        sub.in[0][i] <== n2ba.out[i];
23        sub.in[1][i] <== n2bb.out[i];
24    }
25
26    for (i=0; i<16; i++) {
27        b2n.in[i] <== sub.out[i];
28    }
29
30    out <== b2n.out;
31}
32
33component main = A();