aboutsummaryrefslogtreecommitdiff
path: root/xor.in
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--xor.in (renamed from nn.in)69
1 files changed, 34 insertions, 35 deletions
diff --git a/nn.in b/xor.in
index 3cc9e09..b7e3b6d 100644
--- a/nn.in
+++ b/xor.in
@@ -64,44 +64,43 @@ Concrete(int k) >< ReLU(out)
| _ => out ~ Concrete(0);
Linear(x, int q, int r) >< Materialize(out)
- | (q == 0) && (r == 0) => out ~ Concrete(r), x ~ Eraser
+ | (q == 0) => out ~ Concrete(r), x ~ Eraser
| (q == 1) && (r == 0) => out ~ x
| (q == 1) && (r != 0) => out ~ TermAdd(x, Concrete(r))
| (q != 0) && (r == 0) => out ~ TermMul(Concrete(q), x)
| _ => out ~ TermAdd(TermMul(Concrete(q), x), Concrete(r));
-// Net testing
-Linear(Symbolic(X), 1, 0) ~ Add(a, b);
-Concrete(0) ~ Mul(b, Linear(Symbolic(Y), 1, 0));
-a ~ Materialize(out);
-out; // Symbolic(X)
-free out a b;
-
-Linear(Symbolic(X), 1, 0) ~ Mul(a, Concrete(0));
-a ~ Materialize(out);
-out; // Concrete(0)
-free out a;
-
-Linear(Symbolic(X), 1, 0) ~ Mul(a, b);
-Linear(Symbolic(Y), 1, 0) ~ Add(b, Concrete(1));
-a ~ Materialize(out);
-out; // Mul(Symbolic(X),Add(Symbolic(Y),Concrete(1)))
-free out a b;
-
-Concrete(1) ~ Add(out, b);
-Concrete(2) ~ Add(b, c);
-Concrete(3) ~ Mul(c, Concrete(2));
-out; // Concrete(9)
-free out a b c;
-
-Linear(Symbolic(X), 1, 0) ~ Mul(a, Linear(Symbolic(W1), 1, 0));
-Linear(Symbolic(Y), 1, 0) ~ Mul(b, Linear(Symbolic(W2), 1, 0));
-b ~ Add(c, Linear(Symbolic(B), 1, 0));
-a ~ Add(d, c);
-d ~ ReLU(Materialize(out));
-out; // ReLU(Add(Mul(Symbolic(X),Symbolic(W1)),Add(Mul(Symbolic(Y),Symbolic(W2)),Symbolic(B))))
-free out a b c d;
-
-Linear(Symbolic(X), 2, 10) ~ Materialize(out);
-out;
+// Wiring
+Dup(v0, Dup(v1, Dup(v2, v3))) ~ Linear(Symbolic(0), 1, 0);
+Mul(v4, Concrete(-693)) ~ v0;
+Add(v5, v4) ~ Concrete(-692);
+Mul(v6, Concrete(-78)) ~ v1;
+Add(v7, v6) ~ Concrete(916);
+Mul(v8, Concrete(235)) ~ v2;
+Add(v9, v8) ~ Concrete(-424);
+Mul(v10, Concrete(181)) ~ v3;
+Add(v11, v10) ~ Concrete(202);
+Dup(v12, Dup(v13, Dup(v14, v15))) ~ Linear(Symbolic(1), 1, 0);
+Mul(v16, Concrete(-674)) ~ v12;
+Add(v17, v16) ~ v5;
+Mul(v18, Concrete(-97)) ~ v13;
+Add(v19, v18) ~ v7;
+Mul(v20, Concrete(-572)) ~ v14;
+Add(v21, v20) ~ v9;
+Mul(v22, Concrete(224)) ~ v15;
+Add(v23, v22) ~ v11;
+ReLU(v24) ~ v17;
+ReLU(v25) ~ v19;
+ReLU(v26) ~ v21;
+ReLU(v27) ~ v23;
+Mul(v28, Concrete(-318)) ~ v24;
+Add(v29, v28) ~ Concrete(-89);
+Mul(v30, Concrete(587)) ~ v25;
+Add(v31, v30) ~ v29;
+Mul(v32, Concrete(-250)) ~ v26;
+Add(v33, v32) ~ v31;
+Mul(v34, Concrete(254)) ~ v27;
+Add(v35, v34) ~ v33;
+Materialize(result0) ~ v35;
+result0; \ No newline at end of file