%% The Jazz compiler version 0.3.0
%% Compilation: 5.23 s (5.48 s real)
%% Link: 0.60 s (0.61 s real)
bdd(x, y, z) = n0 {
 n0 = x ? n1 : n3;
 n1 = y ? n2 : false;
 n2 = z ? false : true;
 n3 = y ? n2 : z;
}

fbool'(false, false, false) = false
fbool'(false, false, true) = true
fbool'(false, true, false) = true
fbool'(false, true, true) = false
fbool'(true, false, false) = false
fbool'(true, false, true) = false
fbool'(true, true, false) = true
fbool'(true, true, true) = false

fper(4/21, 11/41, 21/19) = -660152958598105402911010427767552/108172438572795813800960373904725
fper(1/17, 1/35, 16/17) = 20619/4097
fper(20/19, 13/61, 4) = 13/61
fper(18/19, 9/43, 6/11) = -23665570233638863433098716346351821250368550731728442894557592783234177481096004225201185440420647685697227187222770108811055284853/13702125311685774512857654691089957517149983544775927951696870535595688226870428796764459013513496459191624095296566508959363090419
fper(13/3, 3/5, 19/65) = -148/455

(bdd == bdd')

%% Device "Test". nets: 10, mux: 4, per: 2, op: 6, net/op: 1.66
device:
 name:  "Test"
 params:  ""
 format:  2.1
 main:  0
 nets:  10
 blocks:  6
 pragmas:  8
end:

nets:
 0:  0 this.in1; %0%
 1:  0 this.in2; %0%
 2:  0 this.in3; %0%
 3:  0 this.out = 4; %7%
 4:  4 element = mux(0, 5, 9); %4%
 5:  3 element = mux(1, 6, 7); %4%
 6:  2 element = mux(2, 7, 8); %4%
 7:  0 zero = #(0):0; %2%
 8:  0 one = #(1):0; %3%
 9:  5 element = mux(1, 6, 2); %4%
end:

blocks:
 0:  main 1 "Test" "" 3 1 in1:0 in2:1 in3:2 out:3; %0%
 1:  root;
 2:  logic 3 "get"; %6%
 3:  logic 4 "get"; %6%
 4:  logic 0 "get"; %6%
 5:  logic 4 "get"; %6%
end:

pragmas:
 0: %loc:  1:105.1-105.13 %
 1: %file:  "." "bdd.jzz" %
 2: %loc:  1:99.7-99.10 %
 3: %loc:  1:100.7-100.9 %
 4: %loc:  5:156.42-158.71 %
 5: %file:  "/udir/bourdonc/jazz/packages/jazz/circuit/bdd" "Bdd.jzz" %
 6: %loc:  5:156.27-158.72 %
 7: %loc:  1:102.3-102.5 %
end:
%% Execution: 1.25 s (1.25 s real)