summaryrefslogtreecommitdiff
path: root/tests/nadder.mj
diff options
context:
space:
mode:
authorAlex AUVOLAT <alex.auvolat@ens.fr>2013-11-05 10:18:00 +0100
committerAlex AUVOLAT <alex.auvolat@ens.fr>2013-11-05 10:18:00 +0100
commit94e88e887cf2ee4c6b445924d26e134a90bcbd50 (patch)
tree14090e40b781d9469c794cb3ed4239115f89edac /tests/nadder.mj
parent7950298bf80fd1d1f311e7bd4f75b442df7c679c (diff)
downloadSystDigit-Projet-94e88e887cf2ee4c6b445924d26e134a90bcbd50.tar.gz
SystDigit-Projet-94e88e887cf2ee4c6b445924d26e134a90bcbd50.zip
Reorganized folders.
Diffstat (limited to 'tests/nadder.mj')
-rw-r--r--tests/nadder.mj19
1 files changed, 19 insertions, 0 deletions
diff --git a/tests/nadder.mj b/tests/nadder.mj
new file mode 100644
index 0000000..0c95386
--- /dev/null
+++ b/tests/nadder.mj
@@ -0,0 +1,19 @@
+fulladder(a,b,c) = (s, r) where
+ s = (a ^ b) ^ c;
+ r = (a & b) + ((a ^ b) & c);
+end where
+
+adder<n>(a:[n], b:[n], c_in) = (o:[n], c_out) where
+ if n = 0 then
+ o = [];
+ c_out = 0
+ else
+ (s_n1, c_n1) = adder<n-1>(a[1..], b[1..], c_in);
+ (s_n, c_out) = fulladder(a[0], b[0], c_n1);
+ o = s_n . s_n1
+ end if
+end where
+
+main(a, b) = (o, c) where
+ (o, c) = adder<1>(a,b,0)
+end where \ No newline at end of file