aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorIOhannes m zmölnig <zmoelnig@users.sourceforge.net>2005-10-18 09:16:08 +0000
committerIOhannes m zmölnig <zmoelnig@users.sourceforge.net>2005-10-18 09:16:08 +0000
commit294843ad8b2efa314b2d6e719b87fecd036c73f4 (patch)
tree7ad234a409565a07259d619888fbb8c4106bf662 /tests
parentfa57635cfe1bc5b213bd50f2b7ded227f79b28a9 (diff)
test for generic binops
svn path=/trunk/externals/iem/iemmatrix/; revision=3728
Diffstat (limited to 'tests')
-rw-r--r--tests/mtx_add/01_function.pd56
-rw-r--r--tests/mtx_add/01_function1.pd32
-rw-r--r--tests/mtx_add/02_function.pd80
-rw-r--r--tests/mtx_add/03_function.pd49
-rw-r--r--tests/mtx_add/04_function.pd60
-rw-r--r--tests/mtx_add/05_function.pd17
-rw-r--r--tests/mtx_add/06_function.pd60
-rw-r--r--tests/mtx_add/07_function.pd23
-rw-r--r--tests/mtx_add/08_function.pd60
-rw-r--r--tests/mtx_add/09_function.pd62
-rw-r--r--tests/mtx_add/10_function.pd62
-rw-r--r--tests/mtx_and/01_function.pd62
-rw-r--r--tests/mtx_and/02_function.pd92
-rw-r--r--tests/mtx_and/03_function.pd81
-rw-r--r--tests/mtx_and/04_function.pd60
-rw-r--r--tests/mtx_and/05_function.pd17
-rw-r--r--tests/mtx_and/06_function.pd60
-rw-r--r--tests/mtx_and/07_function.pd23
-rw-r--r--tests/mtx_and/08_function.pd60
-rw-r--r--tests/mtx_and/09_function.pd62
-rw-r--r--tests/mtx_and/10_function.pd62
-rw-r--r--tests/mtx_bitand/01_function.pd74
-rw-r--r--tests/mtx_bitand/02_function.pd92
-rw-r--r--tests/mtx_bitand/03_function.pd81
-rw-r--r--tests/mtx_bitand/04_function.pd60
-rw-r--r--tests/mtx_bitand/05_function.pd17
-rw-r--r--tests/mtx_bitand/06_function.pd60
-rw-r--r--tests/mtx_bitand/07_function.pd23
-rw-r--r--tests/mtx_bitand/08_function.pd60
-rw-r--r--tests/mtx_bitand/09_function.pd62
-rw-r--r--tests/mtx_bitand/10_function.pd62
-rw-r--r--tests/mtx_bitleft/01_function.pd49
-rw-r--r--tests/mtx_bitleft/02_function.pd62
-rw-r--r--tests/mtx_bitleft/03_function.pd49
-rw-r--r--tests/mtx_bitleft/04_function.pd60
-rw-r--r--tests/mtx_bitleft/05_function.pd17
-rw-r--r--tests/mtx_bitleft/06_function.pd60
-rw-r--r--tests/mtx_bitleft/07_function.pd23
-rw-r--r--tests/mtx_bitleft/08_function.pd60
-rw-r--r--tests/mtx_bitleft/09_function.pd62
-rw-r--r--tests/mtx_bitleft/10_function.pd62
-rw-r--r--tests/mtx_bitor/01_function.pd66
-rw-r--r--tests/mtx_bitor/02_function.pd94
-rw-r--r--tests/mtx_bitor/03_function.pd79
-rw-r--r--tests/mtx_bitor/04_function.pd60
-rw-r--r--tests/mtx_bitor/05_function.pd17
-rw-r--r--tests/mtx_bitor/06_function.pd60
-rw-r--r--tests/mtx_bitor/07_function.pd23
-rw-r--r--tests/mtx_bitor/08_function.pd60
-rw-r--r--tests/mtx_bitor/09_function.pd62
-rw-r--r--tests/mtx_bitor/10_function.pd62
-rw-r--r--tests/mtx_bitright/01_function.pd49
-rw-r--r--tests/mtx_bitright/02_function.pd62
-rw-r--r--tests/mtx_bitright/03_function.pd49
-rw-r--r--tests/mtx_bitright/04_function.pd60
-rw-r--r--tests/mtx_bitright/05_function.pd17
-rw-r--r--tests/mtx_bitright/06_function.pd60
-rw-r--r--tests/mtx_bitright/07_function.pd23
-rw-r--r--tests/mtx_bitright/08_function.pd60
-rw-r--r--tests/mtx_bitright/09_function.pd62
-rw-r--r--tests/mtx_bitright/10_function.pd62
-rw-r--r--tests/mtx_eq/01_function.pd49
-rw-r--r--tests/mtx_eq/02_function.pd62
-rw-r--r--tests/mtx_eq/03_function.pd49
-rw-r--r--tests/mtx_eq/04_function.pd60
-rw-r--r--tests/mtx_eq/05_function.pd17
-rw-r--r--tests/mtx_eq/06_function.pd60
-rw-r--r--tests/mtx_eq/07_function.pd23
-rw-r--r--tests/mtx_eq/08_function.pd60
-rw-r--r--tests/mtx_eq/09_function.pd62
-rw-r--r--tests/mtx_eq/10_function.pd62
-rw-r--r--tests/mtx_ge/01_function.pd49
-rw-r--r--tests/mtx_ge/02_function.pd62
-rw-r--r--tests/mtx_ge/03_function.pd49
-rw-r--r--tests/mtx_ge/04_function.pd60
-rw-r--r--tests/mtx_ge/05_function.pd17
-rw-r--r--tests/mtx_ge/06_function.pd60
-rw-r--r--tests/mtx_ge/07_function.pd23
-rw-r--r--tests/mtx_ge/08_function.pd60
-rw-r--r--tests/mtx_ge/09_function.pd62
-rw-r--r--tests/mtx_ge/10_function.pd62
-rw-r--r--tests/mtx_gt/01_function.pd49
-rw-r--r--tests/mtx_gt/02_function.pd62
-rw-r--r--tests/mtx_gt/03_function.pd49
-rw-r--r--tests/mtx_gt/04_function.pd60
-rw-r--r--tests/mtx_gt/05_function.pd17
-rw-r--r--tests/mtx_gt/06_function.pd60
-rw-r--r--tests/mtx_gt/07_function.pd23
-rw-r--r--tests/mtx_gt/08_function.pd60
-rw-r--r--tests/mtx_gt/09_function.pd62
-rw-r--r--tests/mtx_gt/10_function.pd62
-rw-r--r--tests/mtx_le/01_function.pd49
-rw-r--r--tests/mtx_le/02_function.pd62
-rw-r--r--tests/mtx_le/03_function.pd49
-rw-r--r--tests/mtx_le/04_function.pd60
-rw-r--r--tests/mtx_le/05_function.pd17
-rw-r--r--tests/mtx_le/06_function.pd60
-rw-r--r--tests/mtx_le/07_function.pd23
-rw-r--r--tests/mtx_le/08_function.pd60
-rw-r--r--tests/mtx_le/09_function.pd62
-rw-r--r--tests/mtx_le/10_function.pd62
-rw-r--r--tests/mtx_lt/01_function.pd49
-rw-r--r--tests/mtx_lt/02_function.pd62
-rw-r--r--tests/mtx_lt/03_function.pd49
-rw-r--r--tests/mtx_lt/04_function.pd60
-rw-r--r--tests/mtx_lt/05_function.pd17
-rw-r--r--tests/mtx_lt/06_function.pd60
-rw-r--r--tests/mtx_lt/07_function.pd23
-rw-r--r--tests/mtx_lt/08_function.pd60
-rw-r--r--tests/mtx_lt/09_function.pd62
-rw-r--r--tests/mtx_lt/10_function.pd62
-rw-r--r--tests/mtx_neq/01_function.pd49
-rw-r--r--tests/mtx_neq/02_function.pd62
-rw-r--r--tests/mtx_neq/03_function.pd49
-rw-r--r--tests/mtx_neq/04_function.pd60
-rw-r--r--tests/mtx_neq/05_function.pd17
-rw-r--r--tests/mtx_neq/06_function.pd60
-rw-r--r--tests/mtx_neq/07_function.pd23
-rw-r--r--tests/mtx_neq/08_function.pd60
-rw-r--r--tests/mtx_neq/09_function.pd62
-rw-r--r--tests/mtx_neq/10_function.pd62
-rw-r--r--tests/mtx_or/01_function.pd49
-rw-r--r--tests/mtx_or/02_function.pd62
-rw-r--r--tests/mtx_or/03_function.pd49
-rw-r--r--tests/mtx_or/04_function.pd60
-rw-r--r--tests/mtx_or/05_function.pd17
-rw-r--r--tests/mtx_or/06_function.pd60
-rw-r--r--tests/mtx_or/07_function.pd23
-rw-r--r--tests/mtx_or/08_function.pd60
-rw-r--r--tests/mtx_or/09_function.pd62
-rw-r--r--tests/mtx_or/10_function.pd62
-rw-r--r--tests/mtx_sub/01_function.pd49
-rw-r--r--tests/mtx_sub/02_function.pd62
-rw-r--r--tests/mtx_sub/03_function.pd49
-rw-r--r--tests/mtx_sub/04_function.pd60
-rw-r--r--tests/mtx_sub/05_function.pd17
-rw-r--r--tests/mtx_sub/06_function.pd60
-rw-r--r--tests/mtx_sub/07_function.pd23
-rw-r--r--tests/mtx_sub/08_function.pd60
-rw-r--r--tests/mtx_sub/09_function.pd62
-rw-r--r--tests/mtx_sub/10_function.pd62
-rw-r--r--tests/runtests.txt130
142 files changed, 7153 insertions, 331 deletions
diff --git a/tests/mtx_add/01_function.pd b/tests/mtx_add/01_function.pd
index 67c4987..4668fab 100644
--- a/tests/mtx_add/01_function.pd
+++ b/tests/mtx_add/01_function.pd
@@ -1,15 +1,49 @@
-#N canvas 385 142 508 466 10;
+#N canvas 117 373 440 427 10;
#X obj 122 68 inlet bang;
#X obj 122 385 outlet 1==OK;
-#X text 67 37 test for existance of [mtx_add];
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 236 200 unpack 0 0 0 0;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 122 179 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 122 156 t l l;
#X obj 122 98 t b;
-#X msg 122 172 matrix 1 1 1;
-#X obj 122 221 mtx_add 3;
-#X obj 122 286 == 4;
-#X msg 122 252 \$3;
-#X connect 0 0 3 0;
-#X connect 3 0 4 0;
-#X connect 4 0 5 0;
-#X connect 5 0 7 0;
+#X msg 122 132 1 2 -3 0;
+#X obj 122 221 mtx_add 1.5;
+#X obj 236 221 + 1.5;
+#X obj 277 221 + 1.5;
+#X obj 318 220 + 1.5;
+#X obj 359 220 + 1.5;
+#X connect 0 0 14 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 3 2 10 0;
+#X connect 3 3 11 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
#X connect 6 0 1 0;
-#X connect 7 0 6 0;
+#X connect 7 0 17 0;
+#X connect 7 1 18 0;
+#X connect 7 2 19 0;
+#X connect 7 3 20 0;
+#X connect 8 0 5 0;
+#X connect 9 0 5 1;
+#X connect 10 0 4 0;
+#X connect 11 0 4 1;
+#X connect 12 0 16 0;
+#X connect 13 0 12 0;
+#X connect 13 1 7 0;
+#X connect 14 0 15 0;
+#X connect 15 0 13 0;
+#X connect 16 0 2 0;
+#X connect 17 0 8 1;
+#X connect 18 0 9 1;
+#X connect 19 0 10 1;
+#X connect 20 0 11 1;
diff --git a/tests/mtx_add/01_function1.pd b/tests/mtx_add/01_function1.pd
deleted file mode 100644
index b068fc5..0000000
--- a/tests/mtx_add/01_function1.pd
+++ /dev/null
@@ -1,32 +0,0 @@
-#N canvas 385 142 508 466 10;
-#X obj 122 68 inlet bang;
-#X obj 122 385 outlet 1==OK;
-#X text 67 37 test for existance of [mtx_add];
-#X obj 122 98 t b;
-#X msg 122 172 matrix 2 2 0 1 2 3;
-#X obj 122 221 mtx_+ 3;
-#X msg 122 243 \$3 \$4 \$5 \$6;
-#X obj 122 268 unpack 0 0 0 0;
-#X obj 122 307 == 3;
-#X obj 153 307 == 4;
-#X obj 184 307 == 5;
-#X obj 215 307 == 6;
-#X obj 184 330 *;
-#X obj 122 330 *;
-#X obj 122 356 *;
-#X connect 0 0 3 0;
-#X connect 3 0 4 0;
-#X connect 4 0 5 0;
-#X connect 5 0 6 0;
-#X connect 6 0 7 0;
-#X connect 7 0 8 0;
-#X connect 7 1 9 0;
-#X connect 7 2 10 0;
-#X connect 7 3 11 0;
-#X connect 8 0 13 0;
-#X connect 9 0 13 1;
-#X connect 10 0 12 0;
-#X connect 11 0 12 1;
-#X connect 12 0 14 1;
-#X connect 13 0 14 0;
-#X connect 14 0 1 0;
diff --git a/tests/mtx_add/02_function.pd b/tests/mtx_add/02_function.pd
index c294196..c8dcd7d 100644
--- a/tests/mtx_add/02_function.pd
+++ b/tests/mtx_add/02_function.pd
@@ -1,34 +1,62 @@
-#N canvas 385 142 508 466 10;
+#N canvas 189 383 508 466 10;
#X obj 122 68 inlet bang;
#X obj 122 385 outlet 1==OK;
-#X msg 122 142 matrix 2 2 0 1 2 3;
#X msg 122 243 \$3 \$4 \$5 \$6;
#X obj 122 268 unpack 0 0 0 0;
#X obj 184 330 *;
#X obj 122 330 *;
#X obj 122 356 *;
+#X obj 236 248 unpack 0 0 0 0;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 166 200 matrix 2 2 \$1 \$2 \$3 \$4;
+#X msg 122 179 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 252 228 unpack 0 0 0 0;
#X obj 122 98 t b b;
-#X obj 122 221 mtx_+;
-#X msg 152 162 matrix 2 2 -2 -1 -2 0.3;
-#X obj 122 307 == -2;
-#X obj 153 307 == 0;
-#X obj 184 307 == 0;
-#X obj 215 307 == 3.3;
-#X connect 0 0 8 0;
-#X connect 2 0 9 0;
-#X connect 3 0 4 0;
-#X connect 4 0 11 0;
-#X connect 4 1 12 0;
-#X connect 4 2 13 0;
-#X connect 4 3 14 0;
-#X connect 5 0 7 1;
-#X connect 6 0 7 0;
-#X connect 7 0 1 0;
-#X connect 8 0 2 0;
-#X connect 8 1 10 0;
-#X connect 9 0 3 0;
-#X connect 10 0 9 1;
-#X connect 11 0 6 0;
-#X connect 12 0 6 1;
-#X connect 13 0 5 0;
-#X connect 14 0 5 1;
+#X obj 185 156 t l l;
+#X obj 122 156 t l l;
+#X obj 122 221 mtx_add;
+#X obj 236 269 +;
+#X obj 267 269 +;
+#X obj 298 268 +;
+#X obj 329 268 +;
+#X msg 122 132 1 2 3 4;
+#X msg 185 133 -4 -6 175 3;
+#X connect 0 0 15 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 3 2 10 0;
+#X connect 3 3 11 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 19 0;
+#X connect 7 1 20 0;
+#X connect 7 2 21 0;
+#X connect 7 3 22 0;
+#X connect 8 0 5 0;
+#X connect 9 0 5 1;
+#X connect 10 0 4 0;
+#X connect 11 0 4 1;
+#X connect 12 0 18 1;
+#X connect 13 0 18 0;
+#X connect 14 0 19 1;
+#X connect 14 1 20 1;
+#X connect 14 2 21 1;
+#X connect 14 3 22 1;
+#X connect 15 0 23 0;
+#X connect 15 1 24 0;
+#X connect 16 0 12 0;
+#X connect 16 1 14 0;
+#X connect 17 0 13 0;
+#X connect 17 1 7 0;
+#X connect 18 0 2 0;
+#X connect 19 0 8 1;
+#X connect 20 0 9 1;
+#X connect 21 0 10 1;
+#X connect 22 0 11 1;
+#X connect 23 0 17 0;
+#X connect 24 0 16 0;
diff --git a/tests/mtx_add/03_function.pd b/tests/mtx_add/03_function.pd
new file mode 100644
index 0000000..f90dd0d
--- /dev/null
+++ b/tests/mtx_add/03_function.pd
@@ -0,0 +1,49 @@
+#N canvas 144 215 431 450 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 256 200 unpack 0 0 0 0;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 122 179 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 122 156 t l l;
+#X obj 122 98 t b;
+#X msg 122 132 3 2 9.2 -8;
+#X obj 122 221 mtx_add -2.7;
+#X obj 256 221 + -2.7;
+#X obj 297 221 + -2.7;
+#X obj 338 220 + -2.7;
+#X obj 379 220 + -2.7;
+#X connect 0 0 14 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 3 2 10 0;
+#X connect 3 3 11 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 17 0;
+#X connect 7 1 18 0;
+#X connect 7 2 19 0;
+#X connect 7 3 20 0;
+#X connect 8 0 5 0;
+#X connect 9 0 5 1;
+#X connect 10 0 4 0;
+#X connect 11 0 4 1;
+#X connect 12 0 16 0;
+#X connect 13 0 12 0;
+#X connect 13 1 7 0;
+#X connect 14 0 15 0;
+#X connect 15 0 13 0;
+#X connect 16 0 2 0;
+#X connect 17 0 8 1;
+#X connect 18 0 9 1;
+#X connect 19 0 10 1;
+#X connect 20 0 11 1;
diff --git a/tests/mtx_add/04_function.pd b/tests/mtx_add/04_function.pd
new file mode 100644
index 0000000..7bdd73f
--- /dev/null
+++ b/tests/mtx_add/04_function.pd
@@ -0,0 +1,60 @@
+#N canvas 208 405 412 429 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 185 190 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 252 228 unpack 0 0 0 0;
+#X obj 122 98 t b b;
+#X obj 185 156 t l l;
+#X obj 122 221 mtx_add;
+#X obj 236 269 +;
+#X obj 267 269 +;
+#X obj 298 268 +;
+#X obj 329 268 +;
+#X obj 122 156 t f f;
+#X obj 236 248 t f f f f;
+#X msg 122 132 7.1;
+#X msg 185 133 -10 3 -5 1001.9;
+#X connect 0 0 13 0;
+#X connect 2 0 3 0;
+#X connect 3 0 7 0;
+#X connect 3 1 8 0;
+#X connect 3 2 9 0;
+#X connect 3 3 10 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 5 0;
+#X connect 8 0 5 1;
+#X connect 9 0 4 0;
+#X connect 10 0 4 1;
+#X connect 11 0 15 1;
+#X connect 12 0 16 1;
+#X connect 12 1 17 1;
+#X connect 12 2 18 1;
+#X connect 12 3 19 1;
+#X connect 13 0 22 0;
+#X connect 13 1 23 0;
+#X connect 14 0 11 0;
+#X connect 14 1 12 0;
+#X connect 15 0 2 0;
+#X connect 16 0 7 1;
+#X connect 17 0 8 1;
+#X connect 18 0 9 1;
+#X connect 19 0 10 1;
+#X connect 20 0 15 0;
+#X connect 20 1 21 0;
+#X connect 21 0 16 0;
+#X connect 21 1 17 0;
+#X connect 21 2 18 0;
+#X connect 21 3 19 0;
+#X connect 22 0 20 0;
+#X connect 23 0 14 0;
diff --git a/tests/mtx_add/05_function.pd b/tests/mtx_add/05_function.pd
new file mode 100644
index 0000000..de542d8
--- /dev/null
+++ b/tests/mtx_add/05_function.pd
@@ -0,0 +1,17 @@
+#N canvas 55 354 508 466 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X obj 122 307 ==;
+#X obj 122 98 t b;
+#X obj 122 174 t f f;
+#X msg 122 132 6.7;
+#X obj 122 221 mtx_add 1.2;
+#X obj 207 221 + 1.2;
+#X connect 0 0 3 0;
+#X connect 2 0 1 0;
+#X connect 3 0 5 0;
+#X connect 4 0 6 0;
+#X connect 4 1 7 0;
+#X connect 5 0 4 0;
+#X connect 6 0 2 0;
+#X connect 7 0 2 1;
diff --git a/tests/mtx_add/06_function.pd b/tests/mtx_add/06_function.pd
new file mode 100644
index 0000000..4a7e4c8
--- /dev/null
+++ b/tests/mtx_add/06_function.pd
@@ -0,0 +1,60 @@
+#N canvas 248 346 386 465 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 236 248 unpack 0 0 0 0;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 122 179 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 122 98 t b b;
+#X obj 122 156 t l l;
+#X obj 236 269 +;
+#X obj 267 269 +;
+#X obj 298 268 +;
+#X obj 329 268 +;
+#X obj 252 228 t f f f f;
+#X obj 185 156 t f f;
+#X obj 122 221 mtx_add 0;
+#X msg 122 132 10 -10 2 -6;
+#X msg 235 133 800;
+#X connect 0 0 13 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 3 2 10 0;
+#X connect 3 3 11 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 15 0;
+#X connect 7 1 16 0;
+#X connect 7 2 17 0;
+#X connect 7 3 18 0;
+#X connect 8 0 5 0;
+#X connect 9 0 5 1;
+#X connect 10 0 4 0;
+#X connect 11 0 4 1;
+#X connect 12 0 21 0;
+#X connect 13 0 22 0;
+#X connect 13 1 23 0;
+#X connect 14 0 12 0;
+#X connect 14 1 7 0;
+#X connect 15 0 8 1;
+#X connect 16 0 9 1;
+#X connect 17 0 10 1;
+#X connect 18 0 11 1;
+#X connect 19 0 15 1;
+#X connect 19 1 16 1;
+#X connect 19 2 17 1;
+#X connect 19 3 18 1;
+#X connect 20 0 21 1;
+#X connect 20 1 19 0;
+#X connect 21 0 2 0;
+#X connect 22 0 14 0;
+#X connect 23 0 20 0;
diff --git a/tests/mtx_add/07_function.pd b/tests/mtx_add/07_function.pd
new file mode 100644
index 0000000..2a20202
--- /dev/null
+++ b/tests/mtx_add/07_function.pd
@@ -0,0 +1,23 @@
+#N canvas 270 180 508 466 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 213 71 bang;
+#X obj 122 98 t b b;
+#X obj 122 175 t f f;
+#X obj 122 307 ==;
+#X obj 122 251 mtx_add 0;
+#X obj 239 251 +;
+#X msg 122 132 3;
+#X msg 152 131 -2;
+#X connect 0 0 3 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 4 0 6 0;
+#X connect 4 1 7 0;
+#X connect 5 0 1 0;
+#X connect 6 0 5 0;
+#X connect 7 0 5 1;
+#X connect 8 0 4 0;
+#X connect 9 0 6 1;
+#X connect 9 0 7 1;
diff --git a/tests/mtx_add/08_function.pd b/tests/mtx_add/08_function.pd
new file mode 100644
index 0000000..004ee45
--- /dev/null
+++ b/tests/mtx_add/08_function.pd
@@ -0,0 +1,60 @@
+#N canvas 277 252 796 483 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 236 248 unpack 0 0 0 0;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 122 179 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 122 98 t b b;
+#X obj 122 156 t l l;
+#X obj 236 269 +;
+#X obj 267 269 +;
+#X obj 298 268 +;
+#X obj 329 268 +;
+#X obj 252 228 t f f f f;
+#X obj 185 156 t f f;
+#X obj 122 221 mtx_add 0;
+#X msg 122 132 9 6 1 -2;
+#X msg 185 133 -1;
+#X connect 0 0 13 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 3 2 10 0;
+#X connect 3 3 11 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 15 0;
+#X connect 7 1 16 0;
+#X connect 7 2 17 0;
+#X connect 7 3 18 0;
+#X connect 8 0 5 0;
+#X connect 9 0 5 1;
+#X connect 10 0 4 0;
+#X connect 11 0 4 1;
+#X connect 12 0 21 0;
+#X connect 13 0 22 0;
+#X connect 13 1 23 0;
+#X connect 14 0 12 0;
+#X connect 14 1 7 0;
+#X connect 15 0 8 1;
+#X connect 16 0 9 1;
+#X connect 17 0 10 1;
+#X connect 18 0 11 1;
+#X connect 19 0 15 1;
+#X connect 19 1 16 1;
+#X connect 19 2 17 1;
+#X connect 19 3 18 1;
+#X connect 20 0 21 1;
+#X connect 20 1 19 0;
+#X connect 21 0 2 0;
+#X connect 22 0 14 0;
+#X connect 23 0 20 0;
diff --git a/tests/mtx_add/09_function.pd b/tests/mtx_add/09_function.pd
new file mode 100644
index 0000000..d7e7f77
--- /dev/null
+++ b/tests/mtx_add/09_function.pd
@@ -0,0 +1,62 @@
+#N canvas 311 295 379 440 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 236 248 unpack 0 0 0 0;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 122 179 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 122 98 t b b;
+#X obj 185 156 t l l;
+#X obj 122 156 t l l;
+#X obj 122 221 mtx_add;
+#X obj 236 269 +;
+#X obj 267 269 +;
+#X obj 298 268 +;
+#X obj 329 268 +;
+#X msg 186 200 matrix 1 2 \$1 \$2;
+#X obj 252 228 unpack 0 0;
+#X msg 122 132 4 -1 0.12 9;
+#X msg 215 133 45 1;
+#X connect 0 0 13 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 3 2 10 0;
+#X connect 3 3 11 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 17 0;
+#X connect 7 1 18 0;
+#X connect 7 2 19 0;
+#X connect 7 3 20 0;
+#X connect 8 0 5 0;
+#X connect 9 0 5 1;
+#X connect 10 0 4 0;
+#X connect 11 0 4 1;
+#X connect 12 0 16 0;
+#X connect 13 0 23 0;
+#X connect 13 1 24 0;
+#X connect 14 0 21 0;
+#X connect 14 1 22 0;
+#X connect 15 0 12 0;
+#X connect 15 1 7 0;
+#X connect 16 0 2 0;
+#X connect 17 0 8 1;
+#X connect 18 0 9 1;
+#X connect 19 0 10 1;
+#X connect 20 0 11 1;
+#X connect 21 0 16 1;
+#X connect 22 0 17 1;
+#X connect 22 0 19 1;
+#X connect 22 1 18 1;
+#X connect 22 1 20 1;
+#X connect 23 0 15 0;
+#X connect 24 0 14 0;
diff --git a/tests/mtx_add/10_function.pd b/tests/mtx_add/10_function.pd
new file mode 100644
index 0000000..f2afdcf
--- /dev/null
+++ b/tests/mtx_add/10_function.pd
@@ -0,0 +1,62 @@
+#N canvas 182 266 409 472 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 236 248 unpack 0 0 0 0;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 122 179 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 122 98 t b b;
+#X obj 185 156 t l l;
+#X obj 122 156 t l l;
+#X obj 122 221 mtx_add;
+#X obj 236 269 +;
+#X obj 267 269 +;
+#X obj 298 268 +;
+#X obj 329 268 +;
+#X msg 166 200 matrix 2 1 \$1 \$2;
+#X obj 252 226 unpack 0 0;
+#X msg 122 132 1 2 -12 5;
+#X msg 185 133 10 -55;
+#X connect 0 0 13 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 3 2 10 0;
+#X connect 3 3 11 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 17 0;
+#X connect 7 1 18 0;
+#X connect 7 2 19 0;
+#X connect 7 3 20 0;
+#X connect 8 0 5 0;
+#X connect 9 0 5 1;
+#X connect 10 0 4 0;
+#X connect 11 0 4 1;
+#X connect 12 0 16 0;
+#X connect 13 0 23 0;
+#X connect 13 1 24 0;
+#X connect 14 0 21 0;
+#X connect 14 1 22 0;
+#X connect 15 0 12 0;
+#X connect 15 1 7 0;
+#X connect 16 0 2 0;
+#X connect 17 0 8 1;
+#X connect 18 0 9 1;
+#X connect 19 0 10 1;
+#X connect 20 0 11 1;
+#X connect 21 0 16 1;
+#X connect 22 0 17 1;
+#X connect 22 0 18 1;
+#X connect 22 1 19 1;
+#X connect 22 1 20 1;
+#X connect 23 0 15 0;
+#X connect 24 0 14 0;
diff --git a/tests/mtx_and/01_function.pd b/tests/mtx_and/01_function.pd
index 5ecd191..ce85665 100644
--- a/tests/mtx_and/01_function.pd
+++ b/tests/mtx_and/01_function.pd
@@ -1,19 +1,49 @@
-#N canvas 385 142 508 466 10;
+#N canvas 117 373 440 427 10;
#X obj 122 68 inlet bang;
#X obj 122 385 outlet 1==OK;
-#X obj 122 161 mtx_and 0;
-#X msg 122 140 matrix 1 2 0 1;
-#X msg 122 183 \$3 \$4;
-#X obj 122 203 unpack;
-#X obj 122 296 *;
-#X obj 122 255 == 0;
-#X obj 159 255 == 0;
-#X connect 0 0 3 0;
-#X connect 2 0 4 0;
-#X connect 3 0 2 0;
-#X connect 4 0 5 0;
-#X connect 5 0 7 0;
-#X connect 5 1 8 0;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 236 200 unpack 0 0 0 0;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 122 179 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 122 156 t l l;
+#X obj 122 98 t b;
+#X msg 122 132 0 1 0 2;
+#X obj 122 221 mtx_and 4;
+#X obj 236 221 && 4;
+#X obj 277 221 && 4;
+#X obj 318 220 && 4;
+#X obj 359 220 && 4;
+#X connect 0 0 14 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 3 2 10 0;
+#X connect 3 3 11 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
#X connect 6 0 1 0;
-#X connect 7 0 6 0;
-#X connect 8 0 6 1;
+#X connect 7 0 17 0;
+#X connect 7 1 18 0;
+#X connect 7 2 19 0;
+#X connect 7 3 20 0;
+#X connect 8 0 5 0;
+#X connect 9 0 5 1;
+#X connect 10 0 4 0;
+#X connect 11 0 4 1;
+#X connect 12 0 16 0;
+#X connect 13 0 12 0;
+#X connect 13 1 7 0;
+#X connect 14 0 15 0;
+#X connect 15 0 13 0;
+#X connect 16 0 2 0;
+#X connect 17 0 8 1;
+#X connect 18 0 9 1;
+#X connect 19 0 10 1;
+#X connect 20 0 11 1;
diff --git a/tests/mtx_and/02_function.pd b/tests/mtx_and/02_function.pd
index 545811a..4c5c531 100644
--- a/tests/mtx_and/02_function.pd
+++ b/tests/mtx_and/02_function.pd
@@ -1,34 +1,62 @@
-#N canvas 413 323 508 466 10;
-#X obj 122 37 inlet bang;
+#N canvas 721 420 508 466 10;
+#X obj 122 68 inlet bang;
#X obj 122 385 outlet 1==OK;
-#X obj 122 296 *;
-#X obj 122 255 == 0;
-#X msg 166 134 matrix 2 2 0 0 1 1;
-#X msg 122 183 \$3 \$4 \$5 \$6;
-#X obj 122 203 unpack 0 0 0 0;
-#X obj 184 255 == 0;
-#X obj 215 255 == 1;
-#X obj 184 296 *;
-#X obj 122 327 *;
-#X obj 153 255 == 0;
-#X obj 122 65 t b b;
-#X obj 122 161 mtx_and;
-#X msg 122 110 matrix 2 2 0 1 0 1;
-#X connect 0 0 12 0;
-#X connect 2 0 10 0;
-#X connect 3 0 2 0;
-#X connect 4 0 13 1;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 236 248 unpack 0 0 0 0;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 166 200 matrix 2 2 \$1 \$2 \$3 \$4;
+#X msg 122 179 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 252 228 unpack 0 0 0 0;
+#X obj 122 98 t b b;
+#X obj 185 156 t l l;
+#X obj 122 156 t l l;
+#X obj 122 221 mtx_and;
+#X obj 236 269 &&;
+#X obj 267 269 &&;
+#X obj 298 268 &&;
+#X obj 329 268 &&;
+#X msg 122 132 0 1 0 1;
+#X msg 185 133 1 1 0 0;
+#X connect 0 0 15 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 3 2 10 0;
+#X connect 3 3 11 0;
+#X connect 4 0 6 1;
#X connect 5 0 6 0;
-#X connect 6 0 3 0;
-#X connect 6 1 11 0;
-#X connect 6 2 7 0;
-#X connect 6 3 8 0;
-#X connect 7 0 9 0;
-#X connect 8 0 9 1;
-#X connect 9 0 10 1;
-#X connect 10 0 1 0;
-#X connect 11 0 2 1;
-#X connect 12 0 14 0;
-#X connect 12 1 4 0;
-#X connect 13 0 5 0;
-#X connect 14 0 13 0;
+#X connect 6 0 1 0;
+#X connect 7 0 19 0;
+#X connect 7 1 20 0;
+#X connect 7 2 21 0;
+#X connect 7 3 22 0;
+#X connect 8 0 5 0;
+#X connect 9 0 5 1;
+#X connect 10 0 4 0;
+#X connect 11 0 4 1;
+#X connect 12 0 18 1;
+#X connect 13 0 18 0;
+#X connect 14 0 19 1;
+#X connect 14 1 20 1;
+#X connect 14 2 21 1;
+#X connect 14 3 22 1;
+#X connect 15 0 23 0;
+#X connect 15 1 24 0;
+#X connect 16 0 12 0;
+#X connect 16 1 14 0;
+#X connect 17 0 13 0;
+#X connect 17 1 7 0;
+#X connect 18 0 2 0;
+#X connect 19 0 8 1;
+#X connect 20 0 9 1;
+#X connect 21 0 10 1;
+#X connect 22 0 11 1;
+#X connect 23 0 17 0;
+#X connect 24 0 16 0;
diff --git a/tests/mtx_and/03_function.pd b/tests/mtx_and/03_function.pd
index 908ab94..c2ff89c 100644
--- a/tests/mtx_and/03_function.pd
+++ b/tests/mtx_and/03_function.pd
@@ -1,34 +1,49 @@
-#N canvas 124 348 508 466 10;
-#X obj 122 37 inlet bang;
+#N canvas 144 215 431 450 10;
+#X obj 122 68 inlet bang;
#X obj 122 385 outlet 1==OK;
-#X obj 122 296 *;
-#X obj 122 255 == 0;
-#X msg 122 183 \$3 \$4 \$5 \$6;
-#X obj 122 203 unpack 0 0 0 0;
-#X obj 184 255 == 0;
-#X obj 215 255 == 1;
-#X obj 184 296 *;
-#X obj 122 327 *;
-#X obj 122 65 t b b;
-#X obj 122 161 mtx_&&;
-#X msg 122 110 matrix 2 2 0 1 2 3;
-#X obj 153 255 == 1;
-#X msg 166 134 matrix 2 2 17 4 0 -7;
-#X connect 0 0 10 0;
-#X connect 2 0 9 0;
-#X connect 3 0 2 0;
-#X connect 4 0 5 0;
-#X connect 5 0 3 0;
-#X connect 5 1 13 0;
-#X connect 5 2 6 0;
-#X connect 5 3 7 0;
-#X connect 6 0 8 0;
-#X connect 7 0 8 1;
-#X connect 8 0 9 1;
-#X connect 9 0 1 0;
-#X connect 10 0 12 0;
-#X connect 10 1 14 0;
-#X connect 11 0 4 0;
-#X connect 12 0 11 0;
-#X connect 13 0 2 1;
-#X connect 14 0 11 1;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 256 200 unpack 0 0 0 0;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 122 179 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 122 156 t l l;
+#X obj 122 98 t b;
+#X msg 122 132 0 1 2 3;
+#X obj 122 221 mtx_and 2;
+#X obj 256 221 && 2;
+#X obj 297 221 && 2;
+#X obj 338 220 && 2;
+#X obj 379 220 && 2;
+#X connect 0 0 14 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 3 2 10 0;
+#X connect 3 3 11 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 17 0;
+#X connect 7 1 18 0;
+#X connect 7 2 19 0;
+#X connect 7 3 20 0;
+#X connect 8 0 5 0;
+#X connect 9 0 5 1;
+#X connect 10 0 4 0;
+#X connect 11 0 4 1;
+#X connect 12 0 16 0;
+#X connect 13 0 12 0;
+#X connect 13 1 7 0;
+#X connect 14 0 15 0;
+#X connect 15 0 13 0;
+#X connect 16 0 2 0;
+#X connect 17 0 8 1;
+#X connect 18 0 9 1;
+#X connect 19 0 10 1;
+#X connect 20 0 11 1;
diff --git a/tests/mtx_and/04_function.pd b/tests/mtx_and/04_function.pd
new file mode 100644
index 0000000..ccbbfea
--- /dev/null
+++ b/tests/mtx_and/04_function.pd
@@ -0,0 +1,60 @@
+#N canvas 385 142 412 429 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 185 190 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 252 228 unpack 0 0 0 0;
+#X obj 122 98 t b b;
+#X obj 185 156 t l l;
+#X obj 122 221 mtx_and;
+#X obj 122 156 t f f;
+#X obj 236 248 t f f f f;
+#X msg 122 132 2;
+#X obj 236 269 &&;
+#X obj 267 269 &&;
+#X obj 298 268 &&;
+#X obj 329 268 &&;
+#X msg 185 133 1 0 3 2;
+#X connect 0 0 13 0;
+#X connect 2 0 3 0;
+#X connect 3 0 7 0;
+#X connect 3 1 8 0;
+#X connect 3 2 9 0;
+#X connect 3 3 10 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 5 0;
+#X connect 8 0 5 1;
+#X connect 9 0 4 0;
+#X connect 10 0 4 1;
+#X connect 11 0 15 1;
+#X connect 12 0 19 1;
+#X connect 12 1 20 1;
+#X connect 12 2 21 1;
+#X connect 12 3 22 1;
+#X connect 13 0 18 0;
+#X connect 13 1 23 0;
+#X connect 14 0 11 0;
+#X connect 14 1 12 0;
+#X connect 15 0 2 0;
+#X connect 16 0 15 0;
+#X connect 16 1 17 0;
+#X connect 17 0 19 0;
+#X connect 17 1 20 0;
+#X connect 17 2 21 0;
+#X connect 17 3 22 0;
+#X connect 18 0 16 0;
+#X connect 19 0 7 1;
+#X connect 20 0 8 1;
+#X connect 21 0 9 1;
+#X connect 22 0 10 1;
+#X connect 23 0 14 0;
diff --git a/tests/mtx_and/05_function.pd b/tests/mtx_and/05_function.pd
new file mode 100644
index 0000000..86f21af
--- /dev/null
+++ b/tests/mtx_and/05_function.pd
@@ -0,0 +1,17 @@
+#N canvas 55 354 508 466 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X obj 122 307 ==;
+#X obj 122 98 t b;
+#X obj 122 174 t f f;
+#X msg 122 132 6.2;
+#X obj 122 221 mtx_and 1.1;
+#X obj 207 222 && 1.1;
+#X connect 0 0 3 0;
+#X connect 2 0 1 0;
+#X connect 3 0 5 0;
+#X connect 4 0 6 0;
+#X connect 4 1 7 0;
+#X connect 5 0 4 0;
+#X connect 6 0 2 0;
+#X connect 7 0 2 1;
diff --git a/tests/mtx_and/06_function.pd b/tests/mtx_and/06_function.pd
new file mode 100644
index 0000000..cf0f4f6
--- /dev/null
+++ b/tests/mtx_and/06_function.pd
@@ -0,0 +1,60 @@
+#N canvas 385 142 386 465 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 236 248 unpack 0 0 0 0;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 122 179 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 122 98 t b b;
+#X obj 122 156 t l l;
+#X obj 236 269 &&;
+#X obj 267 269 &&;
+#X obj 298 268 &&;
+#X obj 329 268 &&;
+#X obj 252 228 t f f f f;
+#X obj 185 156 t f f;
+#X obj 122 221 mtx_and 0;
+#X msg 82 132 -1 0 2.2 0.1;
+#X msg 185 133 3.1;
+#X connect 0 0 13 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 3 2 10 0;
+#X connect 3 3 11 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 15 0;
+#X connect 7 1 16 0;
+#X connect 7 2 17 0;
+#X connect 7 3 18 0;
+#X connect 8 0 5 0;
+#X connect 9 0 5 1;
+#X connect 10 0 4 0;
+#X connect 11 0 4 1;
+#X connect 12 0 21 0;
+#X connect 13 0 22 0;
+#X connect 13 1 23 0;
+#X connect 14 0 12 0;
+#X connect 14 1 7 0;
+#X connect 15 0 8 1;
+#X connect 16 0 9 1;
+#X connect 17 0 10 1;
+#X connect 18 0 11 1;
+#X connect 19 0 15 1;
+#X connect 19 1 16 1;
+#X connect 19 2 17 1;
+#X connect 19 3 18 1;
+#X connect 20 0 21 1;
+#X connect 20 1 19 0;
+#X connect 21 0 2 0;
+#X connect 22 0 14 0;
+#X connect 23 0 20 0;
diff --git a/tests/mtx_and/07_function.pd b/tests/mtx_and/07_function.pd
new file mode 100644
index 0000000..917543d
--- /dev/null
+++ b/tests/mtx_and/07_function.pd
@@ -0,0 +1,23 @@
+#N canvas 270 180 508 466 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 213 71 bang;
+#X obj 122 98 t b b;
+#X obj 122 175 t f f;
+#X obj 122 307 ==;
+#X obj 122 251 mtx_and 0;
+#X obj 239 251 &&;
+#X msg 122 132 2;
+#X msg 152 131 0;
+#X connect 0 0 3 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 4 0 6 0;
+#X connect 4 1 7 0;
+#X connect 5 0 1 0;
+#X connect 6 0 5 0;
+#X connect 7 0 5 1;
+#X connect 8 0 4 0;
+#X connect 9 0 6 1;
+#X connect 9 0 7 1;
diff --git a/tests/mtx_and/08_function.pd b/tests/mtx_and/08_function.pd
new file mode 100644
index 0000000..eb902a6
--- /dev/null
+++ b/tests/mtx_and/08_function.pd
@@ -0,0 +1,60 @@
+#N canvas 277 252 796 483 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 236 248 unpack 0 0 0 0;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 122 179 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 122 98 t b b;
+#X obj 122 156 t l l;
+#X obj 236 269 &&;
+#X obj 267 269 &&;
+#X obj 298 268 &&;
+#X obj 329 268 &&;
+#X obj 252 228 t f f f f;
+#X obj 185 156 t f f;
+#X obj 122 221 mtx_and 0;
+#X msg 122 132 0 1 0 1;
+#X msg 185 133 2;
+#X connect 0 0 13 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 3 2 10 0;
+#X connect 3 3 11 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 15 0;
+#X connect 7 1 16 0;
+#X connect 7 2 17 0;
+#X connect 7 3 18 0;
+#X connect 8 0 5 0;
+#X connect 9 0 5 1;
+#X connect 10 0 4 0;
+#X connect 11 0 4 1;
+#X connect 12 0 21 0;
+#X connect 13 0 22 0;
+#X connect 13 1 23 0;
+#X connect 14 0 12 0;
+#X connect 14 1 7 0;
+#X connect 15 0 8 1;
+#X connect 16 0 9 1;
+#X connect 17 0 10 1;
+#X connect 18 0 11 1;
+#X connect 19 0 15 1;
+#X connect 19 1 16 1;
+#X connect 19 2 17 1;
+#X connect 19 3 18 1;
+#X connect 20 0 21 1;
+#X connect 20 1 19 0;
+#X connect 21 0 2 0;
+#X connect 22 0 14 0;
+#X connect 23 0 20 0;
diff --git a/tests/mtx_and/09_function.pd b/tests/mtx_and/09_function.pd
new file mode 100644
index 0000000..f54bcbf
--- /dev/null
+++ b/tests/mtx_and/09_function.pd
@@ -0,0 +1,62 @@
+#N canvas 311 295 379 440 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 236 248 unpack 0 0 0 0;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 122 179 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 122 98 t b b;
+#X obj 185 156 t l l;
+#X obj 122 156 t l l;
+#X obj 122 221 mtx_and;
+#X obj 236 269 &&;
+#X obj 267 269 &&;
+#X obj 298 268 &&;
+#X obj 329 268 &&;
+#X msg 186 200 matrix 1 2 \$1 \$2;
+#X obj 252 228 unpack 0 0;
+#X msg 122 132 0 1 0 1;
+#X msg 185 133 1 0;
+#X connect 0 0 13 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 3 2 10 0;
+#X connect 3 3 11 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 17 0;
+#X connect 7 1 18 0;
+#X connect 7 2 19 0;
+#X connect 7 3 20 0;
+#X connect 8 0 5 0;
+#X connect 9 0 5 1;
+#X connect 10 0 4 0;
+#X connect 11 0 4 1;
+#X connect 12 0 16 0;
+#X connect 13 0 23 0;
+#X connect 13 1 24 0;
+#X connect 14 0 21 0;
+#X connect 14 1 22 0;
+#X connect 15 0 12 0;
+#X connect 15 1 7 0;
+#X connect 16 0 2 0;
+#X connect 17 0 8 1;
+#X connect 18 0 9 1;
+#X connect 19 0 10 1;
+#X connect 20 0 11 1;
+#X connect 21 0 16 1;
+#X connect 22 0 17 1;
+#X connect 22 0 19 1;
+#X connect 22 1 18 1;
+#X connect 22 1 20 1;
+#X connect 23 0 15 0;
+#X connect 24 0 14 0;
diff --git a/tests/mtx_and/10_function.pd b/tests/mtx_and/10_function.pd
new file mode 100644
index 0000000..a36f064
--- /dev/null
+++ b/tests/mtx_and/10_function.pd
@@ -0,0 +1,62 @@
+#N canvas 182 266 409 472 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 236 248 unpack 0 0 0 0;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 122 179 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 122 98 t b b;
+#X obj 185 156 t l l;
+#X obj 122 156 t l l;
+#X obj 122 221 mtx_and;
+#X obj 236 269 &&;
+#X obj 267 269 &&;
+#X obj 298 268 &&;
+#X obj 329 268 &&;
+#X msg 166 200 matrix 2 1 \$1 \$2;
+#X obj 252 226 unpack 0 0;
+#X msg 122 132 1 0 -1 2;
+#X msg 185 133 0 1;
+#X connect 0 0 13 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 3 2 10 0;
+#X connect 3 3 11 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 17 0;
+#X connect 7 1 18 0;
+#X connect 7 2 19 0;
+#X connect 7 3 20 0;
+#X connect 8 0 5 0;
+#X connect 9 0 5 1;
+#X connect 10 0 4 0;
+#X connect 11 0 4 1;
+#X connect 12 0 16 0;
+#X connect 13 0 23 0;
+#X connect 13 1 24 0;
+#X connect 14 0 21 0;
+#X connect 14 1 22 0;
+#X connect 15 0 12 0;
+#X connect 15 1 7 0;
+#X connect 16 0 2 0;
+#X connect 17 0 8 1;
+#X connect 18 0 9 1;
+#X connect 19 0 10 1;
+#X connect 20 0 11 1;
+#X connect 21 0 16 1;
+#X connect 22 0 17 1;
+#X connect 22 0 18 1;
+#X connect 22 1 19 1;
+#X connect 22 1 20 1;
+#X connect 23 0 15 0;
+#X connect 24 0 14 0;
diff --git a/tests/mtx_bitand/01_function.pd b/tests/mtx_bitand/01_function.pd
index 0f5a9ac..4a5090e 100644
--- a/tests/mtx_bitand/01_function.pd
+++ b/tests/mtx_bitand/01_function.pd
@@ -1,29 +1,49 @@
-#N canvas 385 142 508 466 10;
+#N canvas 117 373 440 427 10;
#X obj 122 68 inlet bang;
#X obj 122 385 outlet 1==OK;
-#X obj 122 296 *;
-#X obj 122 255 == 0;
-#X obj 122 161 mtx_bitand 3;
-#X msg 122 140 matrix 2 2 0 1 2 3;
-#X obj 122 203 unpack 0 0 0 0;
-#X msg 122 183 \$3 \$4 \$5 \$6;
-#X obj 184 296 *;
-#X obj 122 350 *;
-#X obj 153 255 == 1;
-#X obj 184 255 == 2;
-#X obj 215 255 == 3;
-#X connect 0 0 5 0;
-#X connect 2 0 9 0;
-#X connect 3 0 2 0;
-#X connect 4 0 7 0;
-#X connect 5 0 4 0;
-#X connect 6 0 3 0;
-#X connect 6 1 10 0;
-#X connect 6 2 11 0;
-#X connect 6 3 12 0;
-#X connect 7 0 6 0;
-#X connect 8 0 9 1;
-#X connect 9 0 1 0;
-#X connect 10 0 2 1;
-#X connect 11 0 8 0;
-#X connect 12 0 8 1;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 236 200 unpack 0 0 0 0;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 122 179 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 122 156 t l l;
+#X obj 122 98 t b;
+#X obj 122 221 mtx_bitand 2;
+#X obj 236 221 & 2;
+#X obj 277 221 & 2;
+#X obj 318 220 & 2;
+#X obj 359 220 & 2;
+#X msg 122 132 2 5 -1.1 4;
+#X connect 0 0 14 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 3 2 10 0;
+#X connect 3 3 11 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 16 0;
+#X connect 7 1 17 0;
+#X connect 7 2 18 0;
+#X connect 7 3 19 0;
+#X connect 8 0 5 0;
+#X connect 9 0 5 1;
+#X connect 10 0 4 0;
+#X connect 11 0 4 1;
+#X connect 12 0 15 0;
+#X connect 13 0 12 0;
+#X connect 13 1 7 0;
+#X connect 14 0 20 0;
+#X connect 15 0 2 0;
+#X connect 16 0 8 1;
+#X connect 17 0 9 1;
+#X connect 18 0 10 1;
+#X connect 19 0 11 1;
+#X connect 20 0 13 0;
diff --git a/tests/mtx_bitand/02_function.pd b/tests/mtx_bitand/02_function.pd
index d6975e0..1015121 100644
--- a/tests/mtx_bitand/02_function.pd
+++ b/tests/mtx_bitand/02_function.pd
@@ -1,34 +1,62 @@
-#N canvas 413 323 508 466 10;
-#X obj 122 37 inlet bang;
+#N canvas 176 399 508 466 10;
+#X obj 122 68 inlet bang;
#X obj 122 385 outlet 1==OK;
-#X obj 122 296 *;
-#X obj 122 255 == 0;
-#X msg 122 183 \$3 \$4 \$5 \$6;
-#X obj 122 203 unpack 0 0 0 0;
-#X obj 184 255 == 0;
-#X obj 184 296 *;
-#X obj 122 327 *;
-#X obj 122 65 t b b;
-#X obj 122 161 mtx_bitand;
-#X msg 122 110 matrix 2 2 0 1 0 2;
-#X obj 215 255 == 2;
-#X msg 166 134 matrix 2 2 0 3 1 2;
-#X obj 153 255 == 1;
-#X connect 0 0 9 0;
-#X connect 2 0 8 0;
-#X connect 3 0 2 0;
-#X connect 4 0 5 0;
-#X connect 5 0 3 0;
-#X connect 5 1 14 0;
-#X connect 5 2 6 0;
-#X connect 5 3 12 0;
-#X connect 6 0 7 0;
-#X connect 7 0 8 1;
-#X connect 8 0 1 0;
-#X connect 9 0 11 0;
-#X connect 9 1 13 0;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 236 248 unpack 0 0 0 0;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 166 200 matrix 2 2 \$1 \$2 \$3 \$4;
+#X msg 122 179 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 252 228 unpack 0 0 0 0;
+#X obj 122 98 t b b;
+#X obj 185 156 t l l;
+#X obj 122 156 t l l;
+#X obj 122 221 mtx_bitand;
+#X obj 236 269 &;
+#X obj 267 269 &;
+#X obj 298 268 &;
+#X obj 329 268 &;
+#X msg 122 132 1 2 3 4;
+#X msg 185 133 9 8 7 6;
+#X connect 0 0 15 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 3 2 10 0;
+#X connect 3 3 11 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 19 0;
+#X connect 7 1 20 0;
+#X connect 7 2 21 0;
+#X connect 7 3 22 0;
+#X connect 8 0 5 0;
+#X connect 9 0 5 1;
#X connect 10 0 4 0;
-#X connect 11 0 10 0;
-#X connect 12 0 7 1;
-#X connect 13 0 10 1;
-#X connect 14 0 2 1;
+#X connect 11 0 4 1;
+#X connect 12 0 18 1;
+#X connect 13 0 18 0;
+#X connect 14 0 19 1;
+#X connect 14 1 20 1;
+#X connect 14 2 21 1;
+#X connect 14 3 22 1;
+#X connect 15 0 23 0;
+#X connect 15 1 24 0;
+#X connect 16 0 12 0;
+#X connect 16 1 14 0;
+#X connect 17 0 13 0;
+#X connect 17 1 7 0;
+#X connect 18 0 2 0;
+#X connect 19 0 8 1;
+#X connect 20 0 9 1;
+#X connect 21 0 10 1;
+#X connect 22 0 11 1;
+#X connect 23 0 17 0;
+#X connect 24 0 16 0;
diff --git a/tests/mtx_bitand/03_function.pd b/tests/mtx_bitand/03_function.pd
index f5d8d6d..8c86908 100644
--- a/tests/mtx_bitand/03_function.pd
+++ b/tests/mtx_bitand/03_function.pd
@@ -1,34 +1,49 @@
-#N canvas 124 348 508 466 10;
-#X obj 122 37 inlet bang;
+#N canvas 144 215 431 450 10;
+#X obj 122 68 inlet bang;
#X obj 122 385 outlet 1==OK;
-#X obj 122 296 *;
-#X msg 122 183 \$3 \$4 \$5 \$6;
-#X obj 122 203 unpack 0 0 0 0;
-#X obj 184 255 == 0;
-#X obj 215 255 == 1;
-#X obj 184 296 *;
-#X obj 122 327 *;
-#X obj 122 65 t b b;
-#X obj 122 161 mtx_&;
-#X obj 153 255 == 0;
-#X msg 166 134 matrix 2 2 19 4 0 -7;
-#X msg 122 110 matrix 2 2 3 1 2 3;
-#X obj 122 255 == 3;
-#X connect 0 0 9 0;
-#X connect 2 0 8 0;
-#X connect 3 0 4 0;
-#X connect 4 0 14 0;
-#X connect 4 1 11 0;
-#X connect 4 2 5 0;
-#X connect 4 3 6 0;
-#X connect 5 0 7 0;
-#X connect 6 0 7 1;
-#X connect 7 0 8 1;
-#X connect 8 0 1 0;
-#X connect 9 0 13 0;
-#X connect 9 1 12 0;
-#X connect 10 0 3 0;
-#X connect 11 0 2 1;
-#X connect 12 0 10 1;
-#X connect 13 0 10 0;
-#X connect 14 0 2 0;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 256 200 unpack 0 0 0 0;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 122 179 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 122 156 t l l;
+#X obj 122 98 t b;
+#X msg 122 132 3 2 1 0;
+#X obj 122 221 mtx_bitand 1;
+#X obj 256 221 & 1;
+#X obj 297 221 & 1;
+#X obj 338 220 & 1;
+#X obj 379 220 & 1;
+#X connect 0 0 14 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 3 2 10 0;
+#X connect 3 3 11 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 17 0;
+#X connect 7 1 18 0;
+#X connect 7 2 19 0;
+#X connect 7 3 20 0;
+#X connect 8 0 5 0;
+#X connect 9 0 5 1;
+#X connect 10 0 4 0;
+#X connect 11 0 4 1;
+#X connect 12 0 16 0;
+#X connect 13 0 12 0;
+#X connect 13 1 7 0;
+#X connect 14 0 15 0;
+#X connect 15 0 13 0;
+#X connect 16 0 2 0;
+#X connect 17 0 8 1;
+#X connect 18 0 9 1;
+#X connect 19 0 10 1;
+#X connect 20 0 11 1;
diff --git a/tests/mtx_bitand/04_function.pd b/tests/mtx_bitand/04_function.pd
new file mode 100644
index 0000000..bac253a
--- /dev/null
+++ b/tests/mtx_bitand/04_function.pd
@@ -0,0 +1,60 @@
+#N canvas 190 400 412 429 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 185 190 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 252 228 unpack 0 0 0 0;
+#X obj 122 98 t b b;
+#X obj 185 156 t l l;
+#X obj 122 221 mtx_bitand;
+#X obj 236 269 &;
+#X obj 267 269 &;
+#X obj 298 268 &;
+#X obj 329 268 &;
+#X obj 122 156 t f f;
+#X obj 236 248 t f f f f;
+#X msg 122 132 5;
+#X msg 185 133 1 2 4 8;
+#X connect 0 0 13 0;
+#X connect 2 0 3 0;
+#X connect 3 0 7 0;
+#X connect 3 1 8 0;
+#X connect 3 2 9 0;
+#X connect 3 3 10 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 5 0;
+#X connect 8 0 5 1;
+#X connect 9 0 4 0;
+#X connect 10 0 4 1;
+#X connect 11 0 15 1;
+#X connect 12 0 16 1;
+#X connect 12 1 17 1;
+#X connect 12 2 18 1;
+#X connect 12 3 19 1;
+#X connect 13 0 22 0;
+#X connect 13 1 23 0;
+#X connect 14 0 11 0;
+#X connect 14 1 12 0;
+#X connect 15 0 2 0;
+#X connect 16 0 7 1;
+#X connect 17 0 8 1;
+#X connect 18 0 9 1;
+#X connect 19 0 10 1;
+#X connect 20 0 15 0;
+#X connect 20 1 21 0;
+#X connect 21 0 16 0;
+#X connect 21 1 17 0;
+#X connect 21 2 18 0;
+#X connect 21 3 19 0;
+#X connect 22 0 20 0;
+#X connect 23 0 14 0;
diff --git a/tests/mtx_bitand/05_function.pd b/tests/mtx_bitand/05_function.pd
new file mode 100644
index 0000000..83a4872
--- /dev/null
+++ b/tests/mtx_bitand/05_function.pd
@@ -0,0 +1,17 @@
+#N canvas 55 354 508 466 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X obj 122 307 ==;
+#X obj 122 98 t b;
+#X obj 122 174 t f f;
+#X msg 122 132 11;
+#X obj 122 221 mtx_bitand 7;
+#X obj 207 221 & 7;
+#X connect 0 0 3 0;
+#X connect 2 0 1 0;
+#X connect 3 0 5 0;
+#X connect 4 0 6 0;
+#X connect 4 1 7 0;
+#X connect 5 0 4 0;
+#X connect 6 0 2 0;
+#X connect 7 0 2 1;
diff --git a/tests/mtx_bitand/06_function.pd b/tests/mtx_bitand/06_function.pd
new file mode 100644
index 0000000..0e1b8b1
--- /dev/null
+++ b/tests/mtx_bitand/06_function.pd
@@ -0,0 +1,60 @@
+#N canvas 282 295 386 465 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 236 248 unpack 0 0 0 0;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 122 179 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 122 98 t b b;
+#X obj 122 156 t l l;
+#X obj 236 269 &;
+#X obj 267 269 &;
+#X obj 298 268 &;
+#X obj 329 268 &;
+#X obj 252 228 t f f f f;
+#X obj 185 156 t f f;
+#X obj 122 221 mtx_bitand 0;
+#X msg 122 132 0 2 3 5;
+#X msg 185 133 17;
+#X connect 0 0 13 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 3 2 10 0;
+#X connect 3 3 11 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 15 0;
+#X connect 7 1 16 0;
+#X connect 7 2 17 0;
+#X connect 7 3 18 0;
+#X connect 8 0 5 0;
+#X connect 9 0 5 1;
+#X connect 10 0 4 0;
+#X connect 11 0 4 1;
+#X connect 12 0 21 0;
+#X connect 13 0 22 0;
+#X connect 13 1 23 0;
+#X connect 14 0 12 0;
+#X connect 14 1 7 0;
+#X connect 15 0 8 1;
+#X connect 16 0 9 1;
+#X connect 17 0 10 1;
+#X connect 18 0 11 1;
+#X connect 19 0 15 1;
+#X connect 19 1 16 1;
+#X connect 19 2 17 1;
+#X connect 19 3 18 1;
+#X connect 20 0 21 1;
+#X connect 20 1 19 0;
+#X connect 21 0 2 0;
+#X connect 22 0 14 0;
+#X connect 23 0 20 0;
diff --git a/tests/mtx_bitand/07_function.pd b/tests/mtx_bitand/07_function.pd
new file mode 100644
index 0000000..750f551
--- /dev/null
+++ b/tests/mtx_bitand/07_function.pd
@@ -0,0 +1,23 @@
+#N canvas 270 180 508 466 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 213 71 bang;
+#X obj 122 98 t b b;
+#X obj 122 175 t f f;
+#X obj 122 307 ==;
+#X obj 122 251 mtx_bitand 0;
+#X obj 239 251 &;
+#X msg 122 132 6;
+#X msg 152 131 9;
+#X connect 0 0 3 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 4 0 6 0;
+#X connect 4 1 7 0;
+#X connect 5 0 1 0;
+#X connect 6 0 5 0;
+#X connect 7 0 5 1;
+#X connect 8 0 4 0;
+#X connect 9 0 6 1;
+#X connect 9 0 7 1;
diff --git a/tests/mtx_bitand/08_function.pd b/tests/mtx_bitand/08_function.pd
new file mode 100644
index 0000000..b806505
--- /dev/null
+++ b/tests/mtx_bitand/08_function.pd
@@ -0,0 +1,60 @@
+#N canvas 277 252 796 483 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 236 248 unpack 0 0 0 0;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 122 179 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 122 98 t b b;
+#X obj 122 156 t l l;
+#X obj 236 269 &;
+#X obj 267 269 &;
+#X obj 298 268 &;
+#X obj 329 268 &;
+#X obj 252 228 t f f f f;
+#X obj 185 156 t f f;
+#X obj 122 221 mtx_bitand 0;
+#X msg 122 132 4 3 7 6;
+#X msg 185 133 123;
+#X connect 0 0 13 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 3 2 10 0;
+#X connect 3 3 11 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 15 0;
+#X connect 7 1 16 0;
+#X connect 7 2 17 0;
+#X connect 7 3 18 0;
+#X connect 8 0 5 0;
+#X connect 9 0 5 1;
+#X connect 10 0 4 0;
+#X connect 11 0 4 1;
+#X connect 12 0 21 0;
+#X connect 13 0 22 0;
+#X connect 13 1 23 0;
+#X connect 14 0 12 0;
+#X connect 14 1 7 0;
+#X connect 15 0 8 1;
+#X connect 16 0 9 1;
+#X connect 17 0 10 1;
+#X connect 18 0 11 1;
+#X connect 19 0 15 1;
+#X connect 19 1 16 1;
+#X connect 19 2 17 1;
+#X connect 19 3 18 1;
+#X connect 20 0 21 1;
+#X connect 20 1 19 0;
+#X connect 21 0 2 0;
+#X connect 22 0 14 0;
+#X connect 23 0 20 0;
diff --git a/tests/mtx_bitand/09_function.pd b/tests/mtx_bitand/09_function.pd
new file mode 100644
index 0000000..2e1bb13
--- /dev/null
+++ b/tests/mtx_bitand/09_function.pd
@@ -0,0 +1,62 @@
+#N canvas 311 295 379 440 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 236 248 unpack 0 0 0 0;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 122 179 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 122 98 t b b;
+#X obj 185 156 t l l;
+#X obj 122 156 t l l;
+#X obj 122 221 mtx_bitand;
+#X obj 236 269 &;
+#X obj 267 269 &;
+#X obj 298 268 &;
+#X obj 329 268 &;
+#X msg 186 200 matrix 1 2 \$1 \$2;
+#X obj 252 228 unpack 0 0;
+#X msg 122 132 10 9 -1 3;
+#X msg 185 133 7 34;
+#X connect 0 0 13 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 3 2 10 0;
+#X connect 3 3 11 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 17 0;
+#X connect 7 1 18 0;
+#X connect 7 2 19 0;
+#X connect 7 3 20 0;
+#X connect 8 0 5 0;
+#X connect 9 0 5 1;
+#X connect 10 0 4 0;
+#X connect 11 0 4 1;
+#X connect 12 0 16 0;
+#X connect 13 0 23 0;
+#X connect 13 1 24 0;
+#X connect 14 0 21 0;
+#X connect 14 1 22 0;
+#X connect 15 0 12 0;
+#X connect 15 1 7 0;
+#X connect 16 0 2 0;
+#X connect 17 0 8 1;
+#X connect 18 0 9 1;
+#X connect 19 0 10 1;
+#X connect 20 0 11 1;
+#X connect 21 0 16 1;
+#X connect 22 0 17 1;
+#X connect 22 0 19 1;
+#X connect 22 1 18 1;
+#X connect 22 1 20 1;
+#X connect 23 0 15 0;
+#X connect 24 0 14 0;
diff --git a/tests/mtx_bitand/10_function.pd b/tests/mtx_bitand/10_function.pd
new file mode 100644
index 0000000..6cada9b
--- /dev/null
+++ b/tests/mtx_bitand/10_function.pd
@@ -0,0 +1,62 @@
+#N canvas 182 266 409 472 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 236 248 unpack 0 0 0 0;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 122 179 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 122 98 t b b;
+#X obj 185 156 t l l;
+#X obj 122 156 t l l;
+#X obj 122 221 mtx_bitand;
+#X obj 236 269 &;
+#X obj 267 269 &;
+#X obj 298 268 &;
+#X obj 329 268 &;
+#X msg 166 200 matrix 2 1 \$1 \$2;
+#X obj 252 226 unpack 0 0;
+#X msg 185 133 5 3;
+#X msg 122 132 4 2 9 8;
+#X connect 0 0 13 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 3 2 10 0;
+#X connect 3 3 11 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 17 0;
+#X connect 7 1 18 0;
+#X connect 7 2 19 0;
+#X connect 7 3 20 0;
+#X connect 8 0 5 0;
+#X connect 9 0 5 1;
+#X connect 10 0 4 0;
+#X connect 11 0 4 1;
+#X connect 12 0 16 0;
+#X connect 13 0 24 0;
+#X connect 13 1 23 0;
+#X connect 14 0 21 0;
+#X connect 14 1 22 0;
+#X connect 15 0 12 0;
+#X connect 15 1 7 0;
+#X connect 16 0 2 0;
+#X connect 17 0 8 1;
+#X connect 18 0 9 1;
+#X connect 19 0 10 1;
+#X connect 20 0 11 1;
+#X connect 21 0 16 1;
+#X connect 22 0 17 1;
+#X connect 22 0 18 1;
+#X connect 22 1 19 1;
+#X connect 22 1 20 1;
+#X connect 23 0 14 0;
+#X connect 24 0 15 0;
diff --git a/tests/mtx_bitleft/01_function.pd b/tests/mtx_bitleft/01_function.pd
new file mode 100644
index 0000000..4f2f12c
--- /dev/null
+++ b/tests/mtx_bitleft/01_function.pd
@@ -0,0 +1,49 @@
+#N canvas 117 373 440 427 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 236 200 unpack 0 0 0 0;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 122 179 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 122 156 t l l;
+#X obj 122 98 t b;
+#X obj 122 221 mtx_bitleft 2;
+#X obj 236 221 << 2;
+#X obj 277 221 << 2;
+#X obj 318 220 << 2;
+#X obj 359 220 << 2;
+#X msg 122 132 2 5 -1.1 4;
+#X connect 0 0 14 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 3 2 10 0;
+#X connect 3 3 11 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 16 0;
+#X connect 7 1 17 0;
+#X connect 7 2 18 0;
+#X connect 7 3 19 0;
+#X connect 8 0 5 0;
+#X connect 9 0 5 1;
+#X connect 10 0 4 0;
+#X connect 11 0 4 1;
+#X connect 12 0 15 0;
+#X connect 13 0 12 0;
+#X connect 13 1 7 0;
+#X connect 14 0 20 0;
+#X connect 15 0 2 0;
+#X connect 16 0 8 1;
+#X connect 17 0 9 1;
+#X connect 18 0 10 1;
+#X connect 19 0 11 1;
+#X connect 20 0 13 0;
diff --git a/tests/mtx_bitleft/02_function.pd b/tests/mtx_bitleft/02_function.pd
new file mode 100644
index 0000000..89e284c
--- /dev/null
+++ b/tests/mtx_bitleft/02_function.pd
@@ -0,0 +1,62 @@
+#N canvas 176 399 508 466 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 236 248 unpack 0 0 0 0;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 166 200 matrix 2 2 \$1 \$2 \$3 \$4;
+#X msg 122 179 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 252 228 unpack 0 0 0 0;
+#X obj 122 98 t b b;
+#X obj 185 156 t l l;
+#X obj 122 156 t l l;
+#X obj 122 221 mtx_bitleft;
+#X obj 236 269 <<;
+#X obj 267 269 <<;
+#X obj 298 268 <<;
+#X obj 329 268 <<;
+#X msg 122 132 1 2 3 4;
+#X msg 185 133 9 8 7 6;
+#X connect 0 0 15 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 3 2 10 0;
+#X connect 3 3 11 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 19 0;
+#X connect 7 1 20 0;
+#X connect 7 2 21 0;
+#X connect 7 3 22 0;
+#X connect 8 0 5 0;
+#X connect 9 0 5 1;
+#X connect 10 0 4 0;
+#X connect 11 0 4 1;
+#X connect 12 0 18 1;
+#X connect 13 0 18 0;
+#X connect 14 0 19 1;
+#X connect 14 1 20 1;
+#X connect 14 2 21 1;
+#X connect 14 3 22 1;
+#X connect 15 0 23 0;
+#X connect 15 1 24 0;
+#X connect 16 0 12 0;
+#X connect 16 1 14 0;
+#X connect 17 0 13 0;
+#X connect 17 1 7 0;
+#X connect 18 0 2 0;
+#X connect 19 0 8 1;
+#X connect 20 0 9 1;
+#X connect 21 0 10 1;
+#X connect 22 0 11 1;
+#X connect 23 0 17 0;
+#X connect 24 0 16 0;
diff --git a/tests/mtx_bitleft/03_function.pd b/tests/mtx_bitleft/03_function.pd
new file mode 100644
index 0000000..cd90b52
--- /dev/null
+++ b/tests/mtx_bitleft/03_function.pd
@@ -0,0 +1,49 @@
+#N canvas 144 215 431 450 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 256 200 unpack 0 0 0 0;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 122 179 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 122 156 t l l;
+#X obj 122 98 t b;
+#X msg 122 132 3 2 1 0;
+#X obj 122 221 mtx_bitleft 1;
+#X obj 256 221 << 1;
+#X obj 297 221 << 1;
+#X obj 338 220 << 1;
+#X obj 379 220 << 1;
+#X connect 0 0 14 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 3 2 10 0;
+#X connect 3 3 11 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 17 0;
+#X connect 7 1 18 0;
+#X connect 7 2 19 0;
+#X connect 7 3 20 0;
+#X connect 8 0 5 0;
+#X connect 9 0 5 1;
+#X connect 10 0 4 0;
+#X connect 11 0 4 1;
+#X connect 12 0 16 0;
+#X connect 13 0 12 0;
+#X connect 13 1 7 0;
+#X connect 14 0 15 0;
+#X connect 15 0 13 0;
+#X connect 16 0 2 0;
+#X connect 17 0 8 1;
+#X connect 18 0 9 1;
+#X connect 19 0 10 1;
+#X connect 20 0 11 1;
diff --git a/tests/mtx_bitleft/04_function.pd b/tests/mtx_bitleft/04_function.pd
new file mode 100644
index 0000000..af9e2b1
--- /dev/null
+++ b/tests/mtx_bitleft/04_function.pd
@@ -0,0 +1,60 @@
+#N canvas 190 400 412 429 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 185 190 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 252 228 unpack 0 0 0 0;
+#X obj 122 98 t b b;
+#X obj 185 156 t l l;
+#X obj 122 221 mtx_bitleft;
+#X obj 236 269 <<;
+#X obj 267 269 <<;
+#X obj 298 268 <<;
+#X obj 329 268 <<;
+#X obj 122 156 t f f;
+#X obj 236 248 t f f f f;
+#X msg 122 132 5;
+#X msg 185 133 1 2 4 8;
+#X connect 0 0 13 0;
+#X connect 2 0 3 0;
+#X connect 3 0 7 0;
+#X connect 3 1 8 0;
+#X connect 3 2 9 0;
+#X connect 3 3 10 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 5 0;
+#X connect 8 0 5 1;
+#X connect 9 0 4 0;
+#X connect 10 0 4 1;
+#X connect 11 0 15 1;
+#X connect 12 0 16 1;
+#X connect 12 1 17 1;
+#X connect 12 2 18 1;
+#X connect 12 3 19 1;
+#X connect 13 0 22 0;
+#X connect 13 1 23 0;
+#X connect 14 0 11 0;
+#X connect 14 1 12 0;
+#X connect 15 0 2 0;
+#X connect 16 0 7 1;
+#X connect 17 0 8 1;
+#X connect 18 0 9 1;
+#X connect 19 0 10 1;
+#X connect 20 0 15 0;
+#X connect 20 1 21 0;
+#X connect 21 0 16 0;
+#X connect 21 1 17 0;
+#X connect 21 2 18 0;
+#X connect 21 3 19 0;
+#X connect 22 0 20 0;
+#X connect 23 0 14 0;
diff --git a/tests/mtx_bitleft/05_function.pd b/tests/mtx_bitleft/05_function.pd
new file mode 100644
index 0000000..7f907ae
--- /dev/null
+++ b/tests/mtx_bitleft/05_function.pd
@@ -0,0 +1,17 @@
+#N canvas 55 354 508 466 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X obj 122 307 ==;
+#X obj 122 98 t b;
+#X obj 122 174 t f f;
+#X msg 122 132 11;
+#X obj 122 221 mtx_bitleft 7;
+#X obj 207 221 << 7;
+#X connect 0 0 3 0;
+#X connect 2 0 1 0;
+#X connect 3 0 5 0;
+#X connect 4 0 6 0;
+#X connect 4 1 7 0;
+#X connect 5 0 4 0;
+#X connect 6 0 2 0;
+#X connect 7 0 2 1;
diff --git a/tests/mtx_bitleft/06_function.pd b/tests/mtx_bitleft/06_function.pd
new file mode 100644
index 0000000..a28d55f
--- /dev/null
+++ b/tests/mtx_bitleft/06_function.pd
@@ -0,0 +1,60 @@
+#N canvas 282 295 386 465 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 236 248 unpack 0 0 0 0;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 122 179 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 122 98 t b b;
+#X obj 122 156 t l l;
+#X obj 236 269 <<;
+#X obj 267 269 <<;
+#X obj 298 268 <<;
+#X obj 329 268 <<;
+#X obj 252 228 t f f f f;
+#X obj 185 156 t f f;
+#X obj 122 221 mtx_bitleft 0;
+#X msg 122 132 0 2 3 5;
+#X msg 185 133 17;
+#X connect 0 0 13 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 3 2 10 0;
+#X connect 3 3 11 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 15 0;
+#X connect 7 1 16 0;
+#X connect 7 2 17 0;
+#X connect 7 3 18 0;
+#X connect 8 0 5 0;
+#X connect 9 0 5 1;
+#X connect 10 0 4 0;
+#X connect 11 0 4 1;
+#X connect 12 0 21 0;
+#X connect 13 0 22 0;
+#X connect 13 1 23 0;
+#X connect 14 0 12 0;
+#X connect 14 1 7 0;
+#X connect 15 0 8 1;
+#X connect 16 0 9 1;
+#X connect 17 0 10 1;
+#X connect 18 0 11 1;
+#X connect 19 0 15 1;
+#X connect 19 1 16 1;
+#X connect 19 2 17 1;
+#X connect 19 3 18 1;
+#X connect 20 0 21 1;
+#X connect 20 1 19 0;
+#X connect 21 0 2 0;
+#X connect 22 0 14 0;
+#X connect 23 0 20 0;
diff --git a/tests/mtx_bitleft/07_function.pd b/tests/mtx_bitleft/07_function.pd
new file mode 100644
index 0000000..bab52da
--- /dev/null
+++ b/tests/mtx_bitleft/07_function.pd
@@ -0,0 +1,23 @@
+#N canvas 270 180 508 466 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 213 71 bang;
+#X obj 122 98 t b b;
+#X obj 122 175 t f f;
+#X obj 122 307 ==;
+#X obj 122 251 mtx_bitleft 0;
+#X obj 239 251 <<;
+#X msg 122 132 6;
+#X msg 152 131 9;
+#X connect 0 0 3 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 4 0 6 0;
+#X connect 4 1 7 0;
+#X connect 5 0 1 0;
+#X connect 6 0 5 0;
+#X connect 7 0 5 1;
+#X connect 8 0 4 0;
+#X connect 9 0 6 1;
+#X connect 9 0 7 1;
diff --git a/tests/mtx_bitleft/08_function.pd b/tests/mtx_bitleft/08_function.pd
new file mode 100644
index 0000000..a8f5316
--- /dev/null
+++ b/tests/mtx_bitleft/08_function.pd
@@ -0,0 +1,60 @@
+#N canvas 277 252 796 483 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 236 248 unpack 0 0 0 0;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 122 179 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 122 98 t b b;
+#X obj 122 156 t l l;
+#X obj 236 269 <<;
+#X obj 267 269 <<;
+#X obj 298 268 <<;
+#X obj 329 268 <<;
+#X obj 252 228 t f f f f;
+#X obj 185 156 t f f;
+#X obj 122 221 mtx_bitleft 0;
+#X msg 122 132 4 3 7 6;
+#X msg 185 133 123;
+#X connect 0 0 13 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 3 2 10 0;
+#X connect 3 3 11 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 15 0;
+#X connect 7 1 16 0;
+#X connect 7 2 17 0;
+#X connect 7 3 18 0;
+#X connect 8 0 5 0;
+#X connect 9 0 5 1;
+#X connect 10 0 4 0;
+#X connect 11 0 4 1;
+#X connect 12 0 21 0;
+#X connect 13 0 22 0;
+#X connect 13 1 23 0;
+#X connect 14 0 12 0;
+#X connect 14 1 7 0;
+#X connect 15 0 8 1;
+#X connect 16 0 9 1;
+#X connect 17 0 10 1;
+#X connect 18 0 11 1;
+#X connect 19 0 15 1;
+#X connect 19 1 16 1;
+#X connect 19 2 17 1;
+#X connect 19 3 18 1;
+#X connect 20 0 21 1;
+#X connect 20 1 19 0;
+#X connect 21 0 2 0;
+#X connect 22 0 14 0;
+#X connect 23 0 20 0;
diff --git a/tests/mtx_bitleft/09_function.pd b/tests/mtx_bitleft/09_function.pd
new file mode 100644
index 0000000..d211fb1
--- /dev/null
+++ b/tests/mtx_bitleft/09_function.pd
@@ -0,0 +1,62 @@
+#N canvas 311 295 379 440 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 236 248 unpack 0 0 0 0;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 122 179 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 122 98 t b b;
+#X obj 185 156 t l l;
+#X obj 122 156 t l l;
+#X obj 122 221 mtx_bitleft;
+#X obj 236 269 <<;
+#X obj 267 269 <<;
+#X obj 298 268 <<;
+#X obj 329 268 <<;
+#X msg 186 200 matrix 1 2 \$1 \$2;
+#X obj 252 228 unpack 0 0;
+#X msg 122 132 10 9 -1 3;
+#X msg 185 133 7 34;
+#X connect 0 0 13 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 3 2 10 0;
+#X connect 3 3 11 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 17 0;
+#X connect 7 1 18 0;
+#X connect 7 2 19 0;
+#X connect 7 3 20 0;
+#X connect 8 0 5 0;
+#X connect 9 0 5 1;
+#X connect 10 0 4 0;
+#X connect 11 0 4 1;
+#X connect 12 0 16 0;
+#X connect 13 0 23 0;
+#X connect 13 1 24 0;
+#X connect 14 0 21 0;
+#X connect 14 1 22 0;
+#X connect 15 0 12 0;
+#X connect 15 1 7 0;
+#X connect 16 0 2 0;
+#X connect 17 0 8 1;
+#X connect 18 0 9 1;
+#X connect 19 0 10 1;
+#X connect 20 0 11 1;
+#X connect 21 0 16 1;
+#X connect 22 0 17 1;
+#X connect 22 0 19 1;
+#X connect 22 1 18 1;
+#X connect 22 1 20 1;
+#X connect 23 0 15 0;
+#X connect 24 0 14 0;
diff --git a/tests/mtx_bitleft/10_function.pd b/tests/mtx_bitleft/10_function.pd
new file mode 100644
index 0000000..ab5a980
--- /dev/null
+++ b/tests/mtx_bitleft/10_function.pd
@@ -0,0 +1,62 @@
+#N canvas 182 266 409 472 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 236 248 unpack 0 0 0 0;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 122 179 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 122 98 t b b;
+#X obj 185 156 t l l;
+#X obj 122 156 t l l;
+#X obj 122 221 mtx_bitleft;
+#X obj 236 269 <<;
+#X obj 267 269 <<;
+#X obj 298 268 <<;
+#X obj 329 268 <<;
+#X msg 166 200 matrix 2 1 \$1 \$2;
+#X obj 252 226 unpack 0 0;
+#X msg 185 133 5 3;
+#X msg 122 132 4 2 9 8;
+#X connect 0 0 13 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 3 2 10 0;
+#X connect 3 3 11 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 17 0;
+#X connect 7 1 18 0;
+#X connect 7 2 19 0;
+#X connect 7 3 20 0;
+#X connect 8 0 5 0;
+#X connect 9 0 5 1;
+#X connect 10 0 4 0;
+#X connect 11 0 4 1;
+#X connect 12 0 16 0;
+#X connect 13 0 24 0;
+#X connect 13 1 23 0;
+#X connect 14 0 21 0;
+#X connect 14 1 22 0;
+#X connect 15 0 12 0;
+#X connect 15 1 7 0;
+#X connect 16 0 2 0;
+#X connect 17 0 8 1;
+#X connect 18 0 9 1;
+#X connect 19 0 10 1;
+#X connect 20 0 11 1;
+#X connect 21 0 16 1;
+#X connect 22 0 17 1;
+#X connect 22 0 18 1;
+#X connect 22 1 19 1;
+#X connect 22 1 20 1;
+#X connect 23 0 14 0;
+#X connect 24 0 15 0;
diff --git a/tests/mtx_bitor/01_function.pd b/tests/mtx_bitor/01_function.pd
index 97edbfb..21cf35a 100644
--- a/tests/mtx_bitor/01_function.pd
+++ b/tests/mtx_bitor/01_function.pd
@@ -1,29 +1,49 @@
-#N canvas 430 -36 508 466 10;
+#N canvas 117 373 440 427 10;
#X obj 122 68 inlet bang;
#X obj 122 385 outlet 1==OK;
-#X obj 122 296 *;
-#X obj 122 203 unpack 0 0 0 0;
-#X msg 122 183 \$3 \$4 \$5 \$6;
-#X obj 184 296 *;
-#X obj 122 350 *;
-#X obj 122 161 mtx_bitor 3;
-#X obj 122 255 == 3;
-#X obj 153 255 == 3;
-#X obj 184 255 == 3;
-#X msg 122 140 matrix 2 2 0 1 2 6;
-#X obj 215 255 == 7;
-#X connect 0 0 11 0;
-#X connect 2 0 6 0;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 236 200 unpack 0 0 0 0;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 122 179 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 122 156 t l l;
+#X obj 122 98 t b;
+#X obj 122 221 mtx_bitor 2;
+#X obj 236 221 | 2;
+#X obj 277 221 | 2;
+#X obj 318 220 | 2;
+#X obj 359 220 | 2;
+#X msg 122 132 2 5 -1.1 4;
+#X connect 0 0 14 0;
+#X connect 2 0 3 0;
#X connect 3 0 8 0;
#X connect 3 1 9 0;
#X connect 3 2 10 0;
-#X connect 3 3 12 0;
-#X connect 4 0 3 0;
-#X connect 5 0 6 1;
+#X connect 3 3 11 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
#X connect 6 0 1 0;
-#X connect 7 0 4 0;
-#X connect 8 0 2 0;
-#X connect 9 0 2 1;
-#X connect 10 0 5 0;
-#X connect 11 0 7 0;
-#X connect 12 0 5 1;
+#X connect 7 0 16 0;
+#X connect 7 1 17 0;
+#X connect 7 2 18 0;
+#X connect 7 3 19 0;
+#X connect 8 0 5 0;
+#X connect 9 0 5 1;
+#X connect 10 0 4 0;
+#X connect 11 0 4 1;
+#X connect 12 0 15 0;
+#X connect 13 0 12 0;
+#X connect 13 1 7 0;
+#X connect 14 0 20 0;
+#X connect 15 0 2 0;
+#X connect 16 0 8 1;
+#X connect 17 0 9 1;
+#X connect 18 0 10 1;
+#X connect 19 0 11 1;
+#X connect 20 0 13 0;
diff --git a/tests/mtx_bitor/02_function.pd b/tests/mtx_bitor/02_function.pd
index 3420224..ed6fc99 100644
--- a/tests/mtx_bitor/02_function.pd
+++ b/tests/mtx_bitor/02_function.pd
@@ -1,34 +1,62 @@
-#N canvas 597 228 508 466 10;
-#X obj 122 37 inlet bang;
+#N canvas 176 399 508 466 10;
+#X obj 122 68 inlet bang;
#X obj 122 385 outlet 1==OK;
-#X obj 122 296 *;
-#X obj 122 255 == 0;
-#X msg 122 183 \$3 \$4 \$5 \$6;
-#X obj 122 203 unpack 0 0 0 0;
-#X obj 184 296 *;
-#X obj 122 327 *;
-#X obj 122 65 t b b;
-#X msg 122 110 matrix 2 2 0 1 0 2;
-#X obj 215 255 == 2;
-#X obj 122 161 mtx_bitor;
-#X obj 153 255 == 3;
-#X obj 184 255 == 1;
-#X msg 166 134 matrix 2 2 0 3 1 2;
-#X connect 0 0 8 0;
-#X connect 2 0 7 0;
-#X connect 3 0 2 0;
-#X connect 4 0 5 0;
-#X connect 5 0 3 0;
-#X connect 5 1 12 0;
-#X connect 5 2 13 0;
-#X connect 5 3 10 0;
-#X connect 6 0 7 1;
-#X connect 7 0 1 0;
-#X connect 8 0 9 0;
-#X connect 8 1 14 0;
-#X connect 9 0 11 0;
-#X connect 10 0 6 1;
-#X connect 11 0 4 0;
-#X connect 12 0 2 1;
-#X connect 13 0 6 0;
-#X connect 14 0 11 1;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 236 248 unpack 0 0 0 0;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 166 200 matrix 2 2 \$1 \$2 \$3 \$4;
+#X msg 122 179 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 252 228 unpack 0 0 0 0;
+#X obj 122 98 t b b;
+#X obj 185 156 t l l;
+#X obj 122 156 t l l;
+#X obj 122 221 mtx_bitor;
+#X obj 236 269 |;
+#X obj 267 269 |;
+#X obj 298 268 |;
+#X obj 329 268 |;
+#X msg 122 132 1 2 3 4;
+#X msg 185 133 9 8 7 6;
+#X connect 0 0 15 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 3 2 10 0;
+#X connect 3 3 11 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 19 0;
+#X connect 7 1 20 0;
+#X connect 7 2 21 0;
+#X connect 7 3 22 0;
+#X connect 8 0 5 0;
+#X connect 9 0 5 1;
+#X connect 10 0 4 0;
+#X connect 11 0 4 1;
+#X connect 12 0 18 1;
+#X connect 13 0 18 0;
+#X connect 14 0 19 1;
+#X connect 14 1 20 1;
+#X connect 14 2 21 1;
+#X connect 14 3 22 1;
+#X connect 15 0 23 0;
+#X connect 15 1 24 0;
+#X connect 16 0 12 0;
+#X connect 16 1 14 0;
+#X connect 17 0 13 0;
+#X connect 17 1 7 0;
+#X connect 18 0 2 0;
+#X connect 19 0 8 1;
+#X connect 20 0 9 1;
+#X connect 21 0 10 1;
+#X connect 22 0 11 1;
+#X connect 23 0 17 0;
+#X connect 24 0 16 0;
diff --git a/tests/mtx_bitor/03_function.pd b/tests/mtx_bitor/03_function.pd
index a4780c2..e838a8e 100644
--- a/tests/mtx_bitor/03_function.pd
+++ b/tests/mtx_bitor/03_function.pd
@@ -1,34 +1,49 @@
-#N canvas -33 350 508 466 10;
-#X obj 122 37 inlet bang;
+#N canvas 144 215 431 450 10;
+#X obj 122 68 inlet bang;
#X obj 122 385 outlet 1==OK;
-#X obj 122 296 *;
-#X msg 122 183 \$3 \$4 \$5 \$6;
-#X obj 122 203 unpack 0 0 0 0;
-#X obj 184 296 *;
-#X obj 122 327 *;
-#X obj 122 65 t b b;
-#X msg 166 134 matrix 2 2 19 4 0 -7;
-#X msg 122 110 matrix 2 2 3 1 2 3;
-#X obj 122 161 mtx_|;
-#X obj 122 255 == 19;
-#X obj 153 255 == 5;
-#X obj 184 255 == 2;
-#X obj 215 255 == -5;
-#X connect 0 0 7 0;
-#X connect 2 0 6 0;
-#X connect 3 0 4 0;
-#X connect 4 0 11 0;
-#X connect 4 1 12 0;
-#X connect 4 2 13 0;
-#X connect 4 3 14 0;
-#X connect 5 0 6 1;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 256 200 unpack 0 0 0 0;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 122 179 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 122 156 t l l;
+#X obj 122 98 t b;
+#X msg 122 132 3 2 1 0;
+#X obj 122 221 mtx_bitor 1;
+#X obj 256 221 | 1;
+#X obj 297 221 | 1;
+#X obj 338 220 | 1;
+#X obj 379 220 | 1;
+#X connect 0 0 14 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 3 2 10 0;
+#X connect 3 3 11 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
#X connect 6 0 1 0;
-#X connect 7 0 9 0;
-#X connect 7 1 8 0;
-#X connect 8 0 10 1;
-#X connect 9 0 10 0;
-#X connect 10 0 3 0;
-#X connect 11 0 2 0;
-#X connect 12 0 2 1;
-#X connect 13 0 5 0;
-#X connect 14 0 5 1;
+#X connect 7 0 17 0;
+#X connect 7 1 18 0;
+#X connect 7 2 19 0;
+#X connect 7 3 20 0;
+#X connect 8 0 5 0;
+#X connect 9 0 5 1;
+#X connect 10 0 4 0;
+#X connect 11 0 4 1;
+#X connect 12 0 16 0;
+#X connect 13 0 12 0;
+#X connect 13 1 7 0;
+#X connect 14 0 15 0;
+#X connect 15 0 13 0;
+#X connect 16 0 2 0;
+#X connect 17 0 8 1;
+#X connect 18 0 9 1;
+#X connect 19 0 10 1;
+#X connect 20 0 11 1;
diff --git a/tests/mtx_bitor/04_function.pd b/tests/mtx_bitor/04_function.pd
new file mode 100644
index 0000000..6edaef4
--- /dev/null
+++ b/tests/mtx_bitor/04_function.pd
@@ -0,0 +1,60 @@
+#N canvas 190 400 412 429 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 185 190 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 252 228 unpack 0 0 0 0;
+#X obj 122 98 t b b;
+#X obj 185 156 t l l;
+#X obj 122 221 mtx_bitor;
+#X obj 236 269 |;
+#X obj 267 269 |;
+#X obj 298 268 |;
+#X obj 329 268 |;
+#X obj 122 156 t f f;
+#X obj 236 248 t f f f f;
+#X msg 122 132 5;
+#X msg 185 133 1 2 4 8;
+#X connect 0 0 13 0;
+#X connect 2 0 3 0;
+#X connect 3 0 7 0;
+#X connect 3 1 8 0;
+#X connect 3 2 9 0;
+#X connect 3 3 10 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 5 0;
+#X connect 8 0 5 1;
+#X connect 9 0 4 0;
+#X connect 10 0 4 1;
+#X connect 11 0 15 1;
+#X connect 12 0 16 1;
+#X connect 12 1 17 1;
+#X connect 12 2 18 1;
+#X connect 12 3 19 1;
+#X connect 13 0 22 0;
+#X connect 13 1 23 0;
+#X connect 14 0 11 0;
+#X connect 14 1 12 0;
+#X connect 15 0 2 0;
+#X connect 16 0 7 1;
+#X connect 17 0 8 1;
+#X connect 18 0 9 1;
+#X connect 19 0 10 1;
+#X connect 20 0 15 0;
+#X connect 20 1 21 0;
+#X connect 21 0 16 0;
+#X connect 21 1 17 0;
+#X connect 21 2 18 0;
+#X connect 21 3 19 0;
+#X connect 22 0 20 0;
+#X connect 23 0 14 0;
diff --git a/tests/mtx_bitor/05_function.pd b/tests/mtx_bitor/05_function.pd
new file mode 100644
index 0000000..4784f60
--- /dev/null
+++ b/tests/mtx_bitor/05_function.pd
@@ -0,0 +1,17 @@
+#N canvas 55 354 508 466 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X obj 122 307 ==;
+#X obj 122 98 t b;
+#X obj 122 174 t f f;
+#X msg 122 132 11;
+#X obj 122 221 mtx_bitor 7;
+#X obj 207 221 | 7;
+#X connect 0 0 3 0;
+#X connect 2 0 1 0;
+#X connect 3 0 5 0;
+#X connect 4 0 6 0;
+#X connect 4 1 7 0;
+#X connect 5 0 4 0;
+#X connect 6 0 2 0;
+#X connect 7 0 2 1;
diff --git a/tests/mtx_bitor/06_function.pd b/tests/mtx_bitor/06_function.pd
new file mode 100644
index 0000000..606d23a
--- /dev/null
+++ b/tests/mtx_bitor/06_function.pd
@@ -0,0 +1,60 @@
+#N canvas 282 295 386 465 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 236 248 unpack 0 0 0 0;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 122 179 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 122 98 t b b;
+#X obj 122 156 t l l;
+#X obj 236 269 |;
+#X obj 267 269 |;
+#X obj 298 268 |;
+#X obj 329 268 |;
+#X obj 252 228 t f f f f;
+#X obj 185 156 t f f;
+#X obj 122 221 mtx_bitor 0;
+#X msg 122 132 0 2 3 5;
+#X msg 185 133 17;
+#X connect 0 0 13 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 3 2 10 0;
+#X connect 3 3 11 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 15 0;
+#X connect 7 1 16 0;
+#X connect 7 2 17 0;
+#X connect 7 3 18 0;
+#X connect 8 0 5 0;
+#X connect 9 0 5 1;
+#X connect 10 0 4 0;
+#X connect 11 0 4 1;
+#X connect 12 0 21 0;
+#X connect 13 0 22 0;
+#X connect 13 1 23 0;
+#X connect 14 0 12 0;
+#X connect 14 1 7 0;
+#X connect 15 0 8 1;
+#X connect 16 0 9 1;
+#X connect 17 0 10 1;
+#X connect 18 0 11 1;
+#X connect 19 0 15 1;
+#X connect 19 1 16 1;
+#X connect 19 2 17 1;
+#X connect 19 3 18 1;
+#X connect 20 0 21 1;
+#X connect 20 1 19 0;
+#X connect 21 0 2 0;
+#X connect 22 0 14 0;
+#X connect 23 0 20 0;
diff --git a/tests/mtx_bitor/07_function.pd b/tests/mtx_bitor/07_function.pd
new file mode 100644
index 0000000..c9da40d
--- /dev/null
+++ b/tests/mtx_bitor/07_function.pd
@@ -0,0 +1,23 @@
+#N canvas 270 180 508 466 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 213 71 bang;
+#X obj 122 98 t b b;
+#X obj 122 175 t f f;
+#X obj 122 307 ==;
+#X obj 122 251 mtx_bitor 0;
+#X obj 239 251 |;
+#X msg 122 132 6;
+#X msg 152 131 9;
+#X connect 0 0 3 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 4 0 6 0;
+#X connect 4 1 7 0;
+#X connect 5 0 1 0;
+#X connect 6 0 5 0;
+#X connect 7 0 5 1;
+#X connect 8 0 4 0;
+#X connect 9 0 6 1;
+#X connect 9 0 7 1;
diff --git a/tests/mtx_bitor/08_function.pd b/tests/mtx_bitor/08_function.pd
new file mode 100644
index 0000000..89431de
--- /dev/null
+++ b/tests/mtx_bitor/08_function.pd
@@ -0,0 +1,60 @@
+#N canvas 277 252 796 483 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 236 248 unpack 0 0 0 0;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 122 179 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 122 98 t b b;
+#X obj 122 156 t l l;
+#X obj 236 269 |;
+#X obj 267 269 |;
+#X obj 298 268 |;
+#X obj 329 268 |;
+#X obj 252 228 t f f f f;
+#X obj 185 156 t f f;
+#X obj 122 221 mtx_bitor 0;
+#X msg 122 132 4 3 7 6;
+#X msg 185 133 123;
+#X connect 0 0 13 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 3 2 10 0;
+#X connect 3 3 11 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 15 0;
+#X connect 7 1 16 0;
+#X connect 7 2 17 0;
+#X connect 7 3 18 0;
+#X connect 8 0 5 0;
+#X connect 9 0 5 1;
+#X connect 10 0 4 0;
+#X connect 11 0 4 1;
+#X connect 12 0 21 0;
+#X connect 13 0 22 0;
+#X connect 13 1 23 0;
+#X connect 14 0 12 0;
+#X connect 14 1 7 0;
+#X connect 15 0 8 1;
+#X connect 16 0 9 1;
+#X connect 17 0 10 1;
+#X connect 18 0 11 1;
+#X connect 19 0 15 1;
+#X connect 19 1 16 1;
+#X connect 19 2 17 1;
+#X connect 19 3 18 1;
+#X connect 20 0 21 1;
+#X connect 20 1 19 0;
+#X connect 21 0 2 0;
+#X connect 22 0 14 0;
+#X connect 23 0 20 0;
diff --git a/tests/mtx_bitor/09_function.pd b/tests/mtx_bitor/09_function.pd
new file mode 100644
index 0000000..5a700ef
--- /dev/null
+++ b/tests/mtx_bitor/09_function.pd
@@ -0,0 +1,62 @@
+#N canvas 311 295 379 440 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 236 248 unpack 0 0 0 0;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 122 179 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 122 98 t b b;
+#X obj 185 156 t l l;
+#X obj 122 156 t l l;
+#X obj 122 221 mtx_bitor;
+#X obj 236 269 |;
+#X obj 267 269 |;
+#X obj 298 268 |;
+#X obj 329 268 |;
+#X msg 186 200 matrix 1 2 \$1 \$2;
+#X obj 252 228 unpack 0 0;
+#X msg 122 132 10 9 -1 3;
+#X msg 185 133 7 34;
+#X connect 0 0 13 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 3 2 10 0;
+#X connect 3 3 11 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 17 0;
+#X connect 7 1 18 0;
+#X connect 7 2 19 0;
+#X connect 7 3 20 0;
+#X connect 8 0 5 0;
+#X connect 9 0 5 1;
+#X connect 10 0 4 0;
+#X connect 11 0 4 1;
+#X connect 12 0 16 0;
+#X connect 13 0 23 0;
+#X connect 13 1 24 0;
+#X connect 14 0 21 0;
+#X connect 14 1 22 0;
+#X connect 15 0 12 0;
+#X connect 15 1 7 0;
+#X connect 16 0 2 0;
+#X connect 17 0 8 1;
+#X connect 18 0 9 1;
+#X connect 19 0 10 1;
+#X connect 20 0 11 1;
+#X connect 21 0 16 1;
+#X connect 22 0 17 1;
+#X connect 22 0 19 1;
+#X connect 22 1 18 1;
+#X connect 22 1 20 1;
+#X connect 23 0 15 0;
+#X connect 24 0 14 0;
diff --git a/tests/mtx_bitor/10_function.pd b/tests/mtx_bitor/10_function.pd
new file mode 100644
index 0000000..9320384
--- /dev/null
+++ b/tests/mtx_bitor/10_function.pd
@@ -0,0 +1,62 @@
+#N canvas 182 266 409 472 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 236 248 unpack 0 0 0 0;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 122 179 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 122 98 t b b;
+#X obj 185 156 t l l;
+#X obj 122 156 t l l;
+#X obj 122 221 mtx_bitor;
+#X obj 236 269 |;
+#X obj 267 269 |;
+#X obj 298 268 |;
+#X obj 329 268 |;
+#X msg 166 200 matrix 2 1 \$1 \$2;
+#X obj 252 226 unpack 0 0;
+#X msg 185 133 5 3;
+#X msg 122 132 4 2 9 8;
+#X connect 0 0 13 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 3 2 10 0;
+#X connect 3 3 11 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 17 0;
+#X connect 7 1 18 0;
+#X connect 7 2 19 0;
+#X connect 7 3 20 0;
+#X connect 8 0 5 0;
+#X connect 9 0 5 1;
+#X connect 10 0 4 0;
+#X connect 11 0 4 1;
+#X connect 12 0 16 0;
+#X connect 13 0 24 0;
+#X connect 13 1 23 0;
+#X connect 14 0 21 0;
+#X connect 14 1 22 0;
+#X connect 15 0 12 0;
+#X connect 15 1 7 0;
+#X connect 16 0 2 0;
+#X connect 17 0 8 1;
+#X connect 18 0 9 1;
+#X connect 19 0 10 1;
+#X connect 20 0 11 1;
+#X connect 21 0 16 1;
+#X connect 22 0 17 1;
+#X connect 22 0 18 1;
+#X connect 22 1 19 1;
+#X connect 22 1 20 1;
+#X connect 23 0 14 0;
+#X connect 24 0 15 0;
diff --git a/tests/mtx_bitright/01_function.pd b/tests/mtx_bitright/01_function.pd
new file mode 100644
index 0000000..fc6d0eb
--- /dev/null
+++ b/tests/mtx_bitright/01_function.pd
@@ -0,0 +1,49 @@
+#N canvas 117 373 440 427 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 236 200 unpack 0 0 0 0;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 122 179 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 122 156 t l l;
+#X obj 122 98 t b;
+#X obj 122 221 mtx_bitright 2;
+#X obj 236 221 >> 2;
+#X obj 277 221 >> 2;
+#X obj 318 220 >> 2;
+#X obj 359 220 >> 2;
+#X msg 122 132 2 5 -1.1 4;
+#X connect 0 0 14 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 3 2 10 0;
+#X connect 3 3 11 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 16 0;
+#X connect 7 1 17 0;
+#X connect 7 2 18 0;
+#X connect 7 3 19 0;
+#X connect 8 0 5 0;
+#X connect 9 0 5 1;
+#X connect 10 0 4 0;
+#X connect 11 0 4 1;
+#X connect 12 0 15 0;
+#X connect 13 0 12 0;
+#X connect 13 1 7 0;
+#X connect 14 0 20 0;
+#X connect 15 0 2 0;
+#X connect 16 0 8 1;
+#X connect 17 0 9 1;
+#X connect 18 0 10 1;
+#X connect 19 0 11 1;
+#X connect 20 0 13 0;
diff --git a/tests/mtx_bitright/02_function.pd b/tests/mtx_bitright/02_function.pd
new file mode 100644
index 0000000..238f148
--- /dev/null
+++ b/tests/mtx_bitright/02_function.pd
@@ -0,0 +1,62 @@
+#N canvas 176 399 508 466 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 236 248 unpack 0 0 0 0;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 166 200 matrix 2 2 \$1 \$2 \$3 \$4;
+#X msg 122 179 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 252 228 unpack 0 0 0 0;
+#X obj 122 98 t b b;
+#X obj 185 156 t l l;
+#X obj 122 156 t l l;
+#X obj 122 221 mtx_bitright;
+#X obj 236 269 >>;
+#X obj 267 269 >>;
+#X obj 298 268 >>;
+#X obj 329 268 >>;
+#X msg 122 132 1 2 3 4;
+#X msg 185 133 9 8 7 6;
+#X connect 0 0 15 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 3 2 10 0;
+#X connect 3 3 11 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 19 0;
+#X connect 7 1 20 0;
+#X connect 7 2 21 0;
+#X connect 7 3 22 0;
+#X connect 8 0 5 0;
+#X connect 9 0 5 1;
+#X connect 10 0 4 0;
+#X connect 11 0 4 1;
+#X connect 12 0 18 1;
+#X connect 13 0 18 0;
+#X connect 14 0 19 1;
+#X connect 14 1 20 1;
+#X connect 14 2 21 1;
+#X connect 14 3 22 1;
+#X connect 15 0 23 0;
+#X connect 15 1 24 0;
+#X connect 16 0 12 0;
+#X connect 16 1 14 0;
+#X connect 17 0 13 0;
+#X connect 17 1 7 0;
+#X connect 18 0 2 0;
+#X connect 19 0 8 1;
+#X connect 20 0 9 1;
+#X connect 21 0 10 1;
+#X connect 22 0 11 1;
+#X connect 23 0 17 0;
+#X connect 24 0 16 0;
diff --git a/tests/mtx_bitright/03_function.pd b/tests/mtx_bitright/03_function.pd
new file mode 100644
index 0000000..8dcc89a
--- /dev/null
+++ b/tests/mtx_bitright/03_function.pd
@@ -0,0 +1,49 @@
+#N canvas 144 215 431 450 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 256 200 unpack 0 0 0 0;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 122 179 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 122 156 t l l;
+#X obj 122 98 t b;
+#X msg 122 132 3 2 1 0;
+#X obj 122 221 mtx_bitright 1;
+#X obj 256 221 >> 1;
+#X obj 297 221 >> 1;
+#X obj 338 220 >> 1;
+#X obj 379 220 >> 1;
+#X connect 0 0 14 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 3 2 10 0;
+#X connect 3 3 11 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 17 0;
+#X connect 7 1 18 0;
+#X connect 7 2 19 0;
+#X connect 7 3 20 0;
+#X connect 8 0 5 0;
+#X connect 9 0 5 1;
+#X connect 10 0 4 0;
+#X connect 11 0 4 1;
+#X connect 12 0 16 0;
+#X connect 13 0 12 0;
+#X connect 13 1 7 0;
+#X connect 14 0 15 0;
+#X connect 15 0 13 0;
+#X connect 16 0 2 0;
+#X connect 17 0 8 1;
+#X connect 18 0 9 1;
+#X connect 19 0 10 1;
+#X connect 20 0 11 1;
diff --git a/tests/mtx_bitright/04_function.pd b/tests/mtx_bitright/04_function.pd
new file mode 100644
index 0000000..a31a2aa
--- /dev/null
+++ b/tests/mtx_bitright/04_function.pd
@@ -0,0 +1,60 @@
+#N canvas 190 400 412 429 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 185 190 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 252 228 unpack 0 0 0 0;
+#X obj 122 98 t b b;
+#X obj 185 156 t l l;
+#X obj 122 221 mtx_bitright;
+#X obj 236 269 >>;
+#X obj 267 269 >>;
+#X obj 298 268 >>;
+#X obj 329 268 >>;
+#X obj 122 156 t f f;
+#X obj 236 248 t f f f f;
+#X msg 122 132 5;
+#X msg 185 133 1 2 4 8;
+#X connect 0 0 13 0;
+#X connect 2 0 3 0;
+#X connect 3 0 7 0;
+#X connect 3 1 8 0;
+#X connect 3 2 9 0;
+#X connect 3 3 10 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 5 0;
+#X connect 8 0 5 1;
+#X connect 9 0 4 0;
+#X connect 10 0 4 1;
+#X connect 11 0 15 1;
+#X connect 12 0 16 1;
+#X connect 12 1 17 1;
+#X connect 12 2 18 1;
+#X connect 12 3 19 1;
+#X connect 13 0 22 0;
+#X connect 13 1 23 0;
+#X connect 14 0 11 0;
+#X connect 14 1 12 0;
+#X connect 15 0 2 0;
+#X connect 16 0 7 1;
+#X connect 17 0 8 1;
+#X connect 18 0 9 1;
+#X connect 19 0 10 1;
+#X connect 20 0 15 0;
+#X connect 20 1 21 0;
+#X connect 21 0 16 0;
+#X connect 21 1 17 0;
+#X connect 21 2 18 0;
+#X connect 21 3 19 0;
+#X connect 22 0 20 0;
+#X connect 23 0 14 0;
diff --git a/tests/mtx_bitright/05_function.pd b/tests/mtx_bitright/05_function.pd
new file mode 100644
index 0000000..84026bf
--- /dev/null
+++ b/tests/mtx_bitright/05_function.pd
@@ -0,0 +1,17 @@
+#N canvas 55 354 508 466 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X obj 122 307 ==;
+#X obj 122 98 t b;
+#X obj 122 174 t f f;
+#X msg 122 132 11;
+#X obj 122 221 mtx_bitright 7;
+#X obj 207 221 >> 7;
+#X connect 0 0 3 0;
+#X connect 2 0 1 0;
+#X connect 3 0 5 0;
+#X connect 4 0 6 0;
+#X connect 4 1 7 0;
+#X connect 5 0 4 0;
+#X connect 6 0 2 0;
+#X connect 7 0 2 1;
diff --git a/tests/mtx_bitright/06_function.pd b/tests/mtx_bitright/06_function.pd
new file mode 100644
index 0000000..fb1e689
--- /dev/null
+++ b/tests/mtx_bitright/06_function.pd
@@ -0,0 +1,60 @@
+#N canvas 282 295 386 465 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 236 248 unpack 0 0 0 0;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 122 179 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 122 98 t b b;
+#X obj 122 156 t l l;
+#X obj 236 269 >>;
+#X obj 267 269 >>;
+#X obj 298 268 >>;
+#X obj 329 268 >>;
+#X obj 252 228 t f f f f;
+#X obj 185 156 t f f;
+#X obj 122 221 mtx_bitright 0;
+#X msg 122 132 0 2 3 5;
+#X msg 185 133 17;
+#X connect 0 0 13 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 3 2 10 0;
+#X connect 3 3 11 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 15 0;
+#X connect 7 1 16 0;
+#X connect 7 2 17 0;
+#X connect 7 3 18 0;
+#X connect 8 0 5 0;
+#X connect 9 0 5 1;
+#X connect 10 0 4 0;
+#X connect 11 0 4 1;
+#X connect 12 0 21 0;
+#X connect 13 0 22 0;
+#X connect 13 1 23 0;
+#X connect 14 0 12 0;
+#X connect 14 1 7 0;
+#X connect 15 0 8 1;
+#X connect 16 0 9 1;
+#X connect 17 0 10 1;
+#X connect 18 0 11 1;
+#X connect 19 0 15 1;
+#X connect 19 1 16 1;
+#X connect 19 2 17 1;
+#X connect 19 3 18 1;
+#X connect 20 0 21 1;
+#X connect 20 1 19 0;
+#X connect 21 0 2 0;
+#X connect 22 0 14 0;
+#X connect 23 0 20 0;
diff --git a/tests/mtx_bitright/07_function.pd b/tests/mtx_bitright/07_function.pd
new file mode 100644
index 0000000..dc04c5c
--- /dev/null
+++ b/tests/mtx_bitright/07_function.pd
@@ -0,0 +1,23 @@
+#N canvas 270 180 508 466 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 213 71 bang;
+#X obj 122 98 t b b;
+#X obj 122 175 t f f;
+#X obj 122 307 ==;
+#X obj 122 251 mtx_bitright 0;
+#X obj 239 251 >>;
+#X msg 122 132 6;
+#X msg 152 131 9;
+#X connect 0 0 3 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 4 0 6 0;
+#X connect 4 1 7 0;
+#X connect 5 0 1 0;
+#X connect 6 0 5 0;
+#X connect 7 0 5 1;
+#X connect 8 0 4 0;
+#X connect 9 0 6 1;
+#X connect 9 0 7 1;
diff --git a/tests/mtx_bitright/08_function.pd b/tests/mtx_bitright/08_function.pd
new file mode 100644
index 0000000..7db1a64
--- /dev/null
+++ b/tests/mtx_bitright/08_function.pd
@@ -0,0 +1,60 @@
+#N canvas 277 252 796 483 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 236 248 unpack 0 0 0 0;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 122 179 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 122 98 t b b;
+#X obj 122 156 t l l;
+#X obj 236 269 >>;
+#X obj 267 269 >>;
+#X obj 298 268 >>;
+#X obj 329 268 >>;
+#X obj 252 228 t f f f f;
+#X obj 185 156 t f f;
+#X obj 122 221 mtx_bitright 0;
+#X msg 122 132 4 3 7 6;
+#X msg 185 133 123;
+#X connect 0 0 13 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 3 2 10 0;
+#X connect 3 3 11 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 15 0;
+#X connect 7 1 16 0;
+#X connect 7 2 17 0;
+#X connect 7 3 18 0;
+#X connect 8 0 5 0;
+#X connect 9 0 5 1;
+#X connect 10 0 4 0;
+#X connect 11 0 4 1;
+#X connect 12 0 21 0;
+#X connect 13 0 22 0;
+#X connect 13 1 23 0;
+#X connect 14 0 12 0;
+#X connect 14 1 7 0;
+#X connect 15 0 8 1;
+#X connect 16 0 9 1;
+#X connect 17 0 10 1;
+#X connect 18 0 11 1;
+#X connect 19 0 15 1;
+#X connect 19 1 16 1;
+#X connect 19 2 17 1;
+#X connect 19 3 18 1;
+#X connect 20 0 21 1;
+#X connect 20 1 19 0;
+#X connect 21 0 2 0;
+#X connect 22 0 14 0;
+#X connect 23 0 20 0;
diff --git a/tests/mtx_bitright/09_function.pd b/tests/mtx_bitright/09_function.pd
new file mode 100644
index 0000000..1c788a9
--- /dev/null
+++ b/tests/mtx_bitright/09_function.pd
@@ -0,0 +1,62 @@
+#N canvas 311 295 379 440 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 236 248 unpack 0 0 0 0;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 122 179 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 122 98 t b b;
+#X obj 185 156 t l l;
+#X obj 122 156 t l l;
+#X obj 122 221 mtx_bitright;
+#X obj 236 269 >>;
+#X obj 267 269 >>;
+#X obj 298 268 >>;
+#X obj 329 268 >>;
+#X msg 186 200 matrix 1 2 \$1 \$2;
+#X obj 252 228 unpack 0 0;
+#X msg 122 132 10 9 -1 3;
+#X msg 185 133 7 34;
+#X connect 0 0 13 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 3 2 10 0;
+#X connect 3 3 11 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 17 0;
+#X connect 7 1 18 0;
+#X connect 7 2 19 0;
+#X connect 7 3 20 0;
+#X connect 8 0 5 0;
+#X connect 9 0 5 1;
+#X connect 10 0 4 0;
+#X connect 11 0 4 1;
+#X connect 12 0 16 0;
+#X connect 13 0 23 0;
+#X connect 13 1 24 0;
+#X connect 14 0 21 0;
+#X connect 14 1 22 0;
+#X connect 15 0 12 0;
+#X connect 15 1 7 0;
+#X connect 16 0 2 0;
+#X connect 17 0 8 1;
+#X connect 18 0 9 1;
+#X connect 19 0 10 1;
+#X connect 20 0 11 1;
+#X connect 21 0 16 1;
+#X connect 22 0 17 1;
+#X connect 22 0 19 1;
+#X connect 22 1 18 1;
+#X connect 22 1 20 1;
+#X connect 23 0 15 0;
+#X connect 24 0 14 0;
diff --git a/tests/mtx_bitright/10_function.pd b/tests/mtx_bitright/10_function.pd
new file mode 100644
index 0000000..d539ee1
--- /dev/null
+++ b/tests/mtx_bitright/10_function.pd
@@ -0,0 +1,62 @@
+#N canvas 182 266 409 472 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 236 248 unpack 0 0 0 0;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 122 179 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 122 98 t b b;
+#X obj 185 156 t l l;
+#X obj 122 156 t l l;
+#X obj 122 221 mtx_bitright;
+#X obj 236 269 >>;
+#X obj 267 269 >>;
+#X obj 298 268 >>;
+#X obj 329 268 >>;
+#X msg 166 200 matrix 2 1 \$1 \$2;
+#X obj 252 226 unpack 0 0;
+#X msg 185 133 5 3;
+#X msg 122 132 4 2 9 8;
+#X connect 0 0 13 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 3 2 10 0;
+#X connect 3 3 11 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 17 0;
+#X connect 7 1 18 0;
+#X connect 7 2 19 0;
+#X connect 7 3 20 0;
+#X connect 8 0 5 0;
+#X connect 9 0 5 1;
+#X connect 10 0 4 0;
+#X connect 11 0 4 1;
+#X connect 12 0 16 0;
+#X connect 13 0 24 0;
+#X connect 13 1 23 0;
+#X connect 14 0 21 0;
+#X connect 14 1 22 0;
+#X connect 15 0 12 0;
+#X connect 15 1 7 0;
+#X connect 16 0 2 0;
+#X connect 17 0 8 1;
+#X connect 18 0 9 1;
+#X connect 19 0 10 1;
+#X connect 20 0 11 1;
+#X connect 21 0 16 1;
+#X connect 22 0 17 1;
+#X connect 22 0 18 1;
+#X connect 22 1 19 1;
+#X connect 22 1 20 1;
+#X connect 23 0 14 0;
+#X connect 24 0 15 0;
diff --git a/tests/mtx_eq/01_function.pd b/tests/mtx_eq/01_function.pd
new file mode 100644
index 0000000..10f8492
--- /dev/null
+++ b/tests/mtx_eq/01_function.pd
@@ -0,0 +1,49 @@
+#N canvas 117 373 440 427 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 236 200 unpack 0 0 0 0;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 122 179 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 122 156 t l l;
+#X obj 122 98 t b;
+#X obj 122 221 mtx_eq 2;
+#X obj 236 221 == 2;
+#X obj 277 221 == 2;
+#X obj 318 220 == 2;
+#X obj 359 220 == 2;
+#X msg 122 132 2 5 -1.1 4;
+#X connect 0 0 14 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 3 2 10 0;
+#X connect 3 3 11 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 16 0;
+#X connect 7 1 17 0;
+#X connect 7 2 18 0;
+#X connect 7 3 19 0;
+#X connect 8 0 5 0;
+#X connect 9 0 5 1;
+#X connect 10 0 4 0;
+#X connect 11 0 4 1;
+#X connect 12 0 15 0;
+#X connect 13 0 12 0;
+#X connect 13 1 7 0;
+#X connect 14 0 20 0;
+#X connect 15 0 2 0;
+#X connect 16 0 8 1;
+#X connect 17 0 9 1;
+#X connect 18 0 10 1;
+#X connect 19 0 11 1;
+#X connect 20 0 13 0;
diff --git a/tests/mtx_eq/02_function.pd b/tests/mtx_eq/02_function.pd
new file mode 100644
index 0000000..cbc9f27
--- /dev/null
+++ b/tests/mtx_eq/02_function.pd
@@ -0,0 +1,62 @@
+#N canvas 176 399 508 466 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 236 248 unpack 0 0 0 0;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 166 200 matrix 2 2 \$1 \$2 \$3 \$4;
+#X msg 122 179 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 252 228 unpack 0 0 0 0;
+#X obj 122 98 t b b;
+#X obj 185 156 t l l;
+#X obj 122 156 t l l;
+#X obj 122 221 mtx_eq;
+#X obj 236 269 ==;
+#X obj 267 269 ==;
+#X obj 298 268 ==;
+#X obj 329 268 ==;
+#X msg 122 132 1 2 3 4;
+#X msg 185 133 9 8 7 6;
+#X connect 0 0 15 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 3 2 10 0;
+#X connect 3 3 11 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 19 0;
+#X connect 7 1 20 0;
+#X connect 7 2 21 0;
+#X connect 7 3 22 0;
+#X connect 8 0 5 0;
+#X connect 9 0 5 1;
+#X connect 10 0 4 0;
+#X connect 11 0 4 1;
+#X connect 12 0 18 1;
+#X connect 13 0 18 0;
+#X connect 14 0 19 1;
+#X connect 14 1 20 1;
+#X connect 14 2 21 1;
+#X connect 14 3 22 1;
+#X connect 15 0 23 0;
+#X connect 15 1 24 0;
+#X connect 16 0 12 0;
+#X connect 16 1 14 0;
+#X connect 17 0 13 0;
+#X connect 17 1 7 0;
+#X connect 18 0 2 0;
+#X connect 19 0 8 1;
+#X connect 20 0 9 1;
+#X connect 21 0 10 1;
+#X connect 22 0 11 1;
+#X connect 23 0 17 0;
+#X connect 24 0 16 0;
diff --git a/tests/mtx_eq/03_function.pd b/tests/mtx_eq/03_function.pd
new file mode 100644
index 0000000..83acba5
--- /dev/null
+++ b/tests/mtx_eq/03_function.pd
@@ -0,0 +1,49 @@
+#N canvas 144 215 431 450 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 256 200 unpack 0 0 0 0;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 122 179 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 122 156 t l l;
+#X obj 122 98 t b;
+#X msg 122 132 3 2 1 0;
+#X obj 122 221 mtx_eq 1;
+#X obj 256 221 == 1;
+#X obj 297 221 == 1;
+#X obj 338 220 == 1;
+#X obj 379 220 == 1;
+#X connect 0 0 14 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 3 2 10 0;
+#X connect 3 3 11 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 17 0;
+#X connect 7 1 18 0;
+#X connect 7 2 19 0;
+#X connect 7 3 20 0;
+#X connect 8 0 5 0;
+#X connect 9 0 5 1;
+#X connect 10 0 4 0;
+#X connect 11 0 4 1;
+#X connect 12 0 16 0;
+#X connect 13 0 12 0;
+#X connect 13 1 7 0;
+#X connect 14 0 15 0;
+#X connect 15 0 13 0;
+#X connect 16 0 2 0;
+#X connect 17 0 8 1;
+#X connect 18 0 9 1;
+#X connect 19 0 10 1;
+#X connect 20 0 11 1;
diff --git a/tests/mtx_eq/04_function.pd b/tests/mtx_eq/04_function.pd
new file mode 100644
index 0000000..226042e
--- /dev/null
+++ b/tests/mtx_eq/04_function.pd
@@ -0,0 +1,60 @@
+#N canvas 190 400 412 429 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 185 190 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 252 228 unpack 0 0 0 0;
+#X obj 122 98 t b b;
+#X obj 185 156 t l l;
+#X obj 122 221 mtx_eq;
+#X obj 236 269 ==;
+#X obj 267 269 ==;
+#X obj 298 268 ==;
+#X obj 329 268 ==;
+#X obj 122 156 t f f;
+#X obj 236 248 t f f f f;
+#X msg 122 132 5;
+#X msg 185 133 1 2 4 8;
+#X connect 0 0 13 0;
+#X connect 2 0 3 0;
+#X connect 3 0 7 0;
+#X connect 3 1 8 0;
+#X connect 3 2 9 0;
+#X connect 3 3 10 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 5 0;
+#X connect 8 0 5 1;
+#X connect 9 0 4 0;
+#X connect 10 0 4 1;
+#X connect 11 0 15 1;
+#X connect 12 0 16 1;
+#X connect 12 1 17 1;
+#X connect 12 2 18 1;
+#X connect 12 3 19 1;
+#X connect 13 0 22 0;
+#X connect 13 1 23 0;
+#X connect 14 0 11 0;
+#X connect 14 1 12 0;
+#X connect 15 0 2 0;
+#X connect 16 0 7 1;
+#X connect 17 0 8 1;
+#X connect 18 0 9 1;
+#X connect 19 0 10 1;
+#X connect 20 0 15 0;
+#X connect 20 1 21 0;
+#X connect 21 0 16 0;
+#X connect 21 1 17 0;
+#X connect 21 2 18 0;
+#X connect 21 3 19 0;
+#X connect 22 0 20 0;
+#X connect 23 0 14 0;
diff --git a/tests/mtx_eq/05_function.pd b/tests/mtx_eq/05_function.pd
new file mode 100644
index 0000000..6c3a223
--- /dev/null
+++ b/tests/mtx_eq/05_function.pd
@@ -0,0 +1,17 @@
+#N canvas 55 354 508 466 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X obj 122 307 ==;
+#X obj 122 98 t b;
+#X obj 122 174 t f f;
+#X msg 122 132 11;
+#X obj 122 221 mtx_eq 7;
+#X obj 207 221 == 7;
+#X connect 0 0 3 0;
+#X connect 2 0 1 0;
+#X connect 3 0 5 0;
+#X connect 4 0 6 0;
+#X connect 4 1 7 0;
+#X connect 5 0 4 0;
+#X connect 6 0 2 0;
+#X connect 7 0 2 1;
diff --git a/tests/mtx_eq/06_function.pd b/tests/mtx_eq/06_function.pd
new file mode 100644
index 0000000..cd0951c
--- /dev/null
+++ b/tests/mtx_eq/06_function.pd
@@ -0,0 +1,60 @@
+#N canvas 282 295 386 465 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 236 248 unpack 0 0 0 0;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 122 179 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 122 98 t b b;
+#X obj 122 156 t l l;
+#X obj 236 269 ==;
+#X obj 267 269 ==;
+#X obj 298 268 ==;
+#X obj 329 268 ==;
+#X obj 252 228 t f f f f;
+#X obj 185 156 t f f;
+#X obj 122 221 mtx_eq 0;
+#X msg 122 132 0 2 3 5;
+#X msg 185 133 17;
+#X connect 0 0 13 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 3 2 10 0;
+#X connect 3 3 11 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 15 0;
+#X connect 7 1 16 0;
+#X connect 7 2 17 0;
+#X connect 7 3 18 0;
+#X connect 8 0 5 0;
+#X connect 9 0 5 1;
+#X connect 10 0 4 0;
+#X connect 11 0 4 1;
+#X connect 12 0 21 0;
+#X connect 13 0 22 0;
+#X connect 13 1 23 0;
+#X connect 14 0 12 0;
+#X connect 14 1 7 0;
+#X connect 15 0 8 1;
+#X connect 16 0 9 1;
+#X connect 17 0 10 1;
+#X connect 18 0 11 1;
+#X connect 19 0 15 1;
+#X connect 19 1 16 1;
+#X connect 19 2 17 1;
+#X connect 19 3 18 1;
+#X connect 20 0 21 1;
+#X connect 20 1 19 0;
+#X connect 21 0 2 0;
+#X connect 22 0 14 0;
+#X connect 23 0 20 0;
diff --git a/tests/mtx_eq/07_function.pd b/tests/mtx_eq/07_function.pd
new file mode 100644
index 0000000..7569878
--- /dev/null
+++ b/tests/mtx_eq/07_function.pd
@@ -0,0 +1,23 @@
+#N canvas 270 180 508 466 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 213 71 bang;
+#X obj 122 98 t b b;
+#X obj 122 175 t f f;
+#X obj 122 307 ==;
+#X obj 122 251 mtx_eq 0;
+#X obj 239 251 ==;
+#X msg 122 132 6;
+#X msg 152 131 9;
+#X connect 0 0 3 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 4 0 6 0;
+#X connect 4 1 7 0;
+#X connect 5 0 1 0;
+#X connect 6 0 5 0;
+#X connect 7 0 5 1;
+#X connect 8 0 4 0;
+#X connect 9 0 6 1;
+#X connect 9 0 7 1;
diff --git a/tests/mtx_eq/08_function.pd b/tests/mtx_eq/08_function.pd
new file mode 100644
index 0000000..28afab8
--- /dev/null
+++ b/tests/mtx_eq/08_function.pd
@@ -0,0 +1,60 @@
+#N canvas 277 252 796 483 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 236 248 unpack 0 0 0 0;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 122 179 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 122 98 t b b;
+#X obj 122 156 t l l;
+#X obj 236 269 ==;
+#X obj 267 269 ==;
+#X obj 298 268 ==;
+#X obj 329 268 ==;
+#X obj 252 228 t f f f f;
+#X obj 185 156 t f f;
+#X obj 122 221 mtx_eq 0;
+#X msg 122 132 4 3 7 6;
+#X msg 185 133 123;
+#X connect 0 0 13 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 3 2 10 0;
+#X connect 3 3 11 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 15 0;
+#X connect 7 1 16 0;
+#X connect 7 2 17 0;
+#X connect 7 3 18 0;
+#X connect 8 0 5 0;
+#X connect 9 0 5 1;
+#X connect 10 0 4 0;
+#X connect 11 0 4 1;
+#X connect 12 0 21 0;
+#X connect 13 0 22 0;
+#X connect 13 1 23 0;
+#X connect 14 0 12 0;
+#X connect 14 1 7 0;
+#X connect 15 0 8 1;
+#X connect 16 0 9 1;
+#X connect 17 0 10 1;
+#X connect 18 0 11 1;
+#X connect 19 0 15 1;
+#X connect 19 1 16 1;
+#X connect 19 2 17 1;
+#X connect 19 3 18 1;
+#X connect 20 0 21 1;
+#X connect 20 1 19 0;
+#X connect 21 0 2 0;
+#X connect 22 0 14 0;
+#X connect 23 0 20 0;
diff --git a/tests/mtx_eq/09_function.pd b/tests/mtx_eq/09_function.pd
new file mode 100644
index 0000000..fb1652d
--- /dev/null
+++ b/tests/mtx_eq/09_function.pd
@@ -0,0 +1,62 @@
+#N canvas 311 295 379 440 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 236 248 unpack 0 0 0 0;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 122 179 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 122 98 t b b;
+#X obj 185 156 t l l;
+#X obj 122 156 t l l;
+#X obj 122 221 mtx_eq;
+#X obj 236 269 ==;
+#X obj 267 269 ==;
+#X obj 298 268 ==;
+#X obj 329 268 ==;
+#X msg 186 200 matrix 1 2 \$1 \$2;
+#X obj 252 228 unpack 0 0;
+#X msg 122 132 10 9 -1 3;
+#X msg 185 133 7 34;
+#X connect 0 0 13 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 3 2 10 0;
+#X connect 3 3 11 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 17 0;
+#X connect 7 1 18 0;
+#X connect 7 2 19 0;
+#X connect 7 3 20 0;
+#X connect 8 0 5 0;
+#X connect 9 0 5 1;
+#X connect 10 0 4 0;
+#X connect 11 0 4 1;
+#X connect 12 0 16 0;
+#X connect 13 0 23 0;
+#X connect 13 1 24 0;
+#X connect 14 0 21 0;
+#X connect 14 1 22 0;
+#X connect 15 0 12 0;
+#X connect 15 1 7 0;
+#X connect 16 0 2 0;
+#X connect 17 0 8 1;
+#X connect 18 0 9 1;
+#X connect 19 0 10 1;
+#X connect 20 0 11 1;
+#X connect 21 0 16 1;
+#X connect 22 0 17 1;
+#X connect 22 0 19 1;
+#X connect 22 1 18 1;
+#X connect 22 1 20 1;
+#X connect 23 0 15 0;
+#X connect 24 0 14 0;
diff --git a/tests/mtx_eq/10_function.pd b/tests/mtx_eq/10_function.pd
new file mode 100644
index 0000000..de177da
--- /dev/null
+++ b/tests/mtx_eq/10_function.pd
@@ -0,0 +1,62 @@
+#N canvas 182 266 409 472 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 236 248 unpack 0 0 0 0;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 122 179 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 122 98 t b b;
+#X obj 185 156 t l l;
+#X obj 122 156 t l l;
+#X obj 122 221 mtx_eq;
+#X obj 236 269 ==;
+#X obj 267 269 ==;
+#X obj 298 268 ==;
+#X obj 329 268 ==;
+#X msg 166 200 matrix 2 1 \$1 \$2;
+#X obj 252 226 unpack 0 0;
+#X msg 185 133 5 3;
+#X msg 122 132 4 2 9 8;
+#X connect 0 0 13 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 3 2 10 0;
+#X connect 3 3 11 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 17 0;
+#X connect 7 1 18 0;
+#X connect 7 2 19 0;
+#X connect 7 3 20 0;
+#X connect 8 0 5 0;
+#X connect 9 0 5 1;
+#X connect 10 0 4 0;
+#X connect 11 0 4 1;
+#X connect 12 0 16 0;
+#X connect 13 0 24 0;
+#X connect 13 1 23 0;
+#X connect 14 0 21 0;
+#X connect 14 1 22 0;
+#X connect 15 0 12 0;
+#X connect 15 1 7 0;
+#X connect 16 0 2 0;
+#X connect 17 0 8 1;
+#X connect 18 0 9 1;
+#X connect 19 0 10 1;
+#X connect 20 0 11 1;
+#X connect 21 0 16 1;
+#X connect 22 0 17 1;
+#X connect 22 0 18 1;
+#X connect 22 1 19 1;
+#X connect 22 1 20 1;
+#X connect 23 0 14 0;
+#X connect 24 0 15 0;
diff --git a/tests/mtx_ge/01_function.pd b/tests/mtx_ge/01_function.pd
new file mode 100644
index 0000000..a7ce926
--- /dev/null
+++ b/tests/mtx_ge/01_function.pd
@@ -0,0 +1,49 @@
+#N canvas 117 373 440 427 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 236 200 unpack 0 0 0 0;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 122 179 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 122 156 t l l;
+#X obj 122 98 t b;
+#X obj 122 221 mtx_ge 2;
+#X obj 236 221 >= 2;
+#X obj 277 221 >= 2;
+#X obj 318 220 >= 2;
+#X obj 359 220 >= 2;
+#X msg 122 132 2 5 -1.1 4;
+#X connect 0 0 14 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 3 2 10 0;
+#X connect 3 3 11 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 16 0;
+#X connect 7 1 17 0;
+#X connect 7 2 18 0;
+#X connect 7 3 19 0;
+#X connect 8 0 5 0;
+#X connect 9 0 5 1;
+#X connect 10 0 4 0;
+#X connect 11 0 4 1;
+#X connect 12 0 15 0;
+#X connect 13 0 12 0;
+#X connect 13 1 7 0;
+#X connect 14 0 20 0;
+#X connect 15 0 2 0;
+#X connect 16 0 8 1;
+#X connect 17 0 9 1;
+#X connect 18 0 10 1;
+#X connect 19 0 11 1;
+#X connect 20 0 13 0;
diff --git a/tests/mtx_ge/02_function.pd b/tests/mtx_ge/02_function.pd
new file mode 100644
index 0000000..4d00c27
--- /dev/null
+++ b/tests/mtx_ge/02_function.pd
@@ -0,0 +1,62 @@
+#N canvas 176 399 508 466 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 236 248 unpack 0 0 0 0;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 166 200 matrix 2 2 \$1 \$2 \$3 \$4;
+#X msg 122 179 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 252 228 unpack 0 0 0 0;
+#X obj 122 98 t b b;
+#X obj 185 156 t l l;
+#X obj 122 156 t l l;
+#X obj 122 221 mtx_ge;
+#X obj 236 269 >=;
+#X obj 267 269 >=;
+#X obj 298 268 >=;
+#X obj 329 268 >=;
+#X msg 122 132 1 2 3 4;
+#X msg 185 133 9 8 7 6;
+#X connect 0 0 15 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 3 2 10 0;
+#X connect 3 3 11 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 19 0;
+#X connect 7 1 20 0;
+#X connect 7 2 21 0;
+#X connect 7 3 22 0;
+#X connect 8 0 5 0;
+#X connect 9 0 5 1;
+#X connect 10 0 4 0;
+#X connect 11 0 4 1;
+#X connect 12 0 18 1;
+#X connect 13 0 18 0;
+#X connect 14 0 19 1;
+#X connect 14 1 20 1;
+#X connect 14 2 21 1;
+#X connect 14 3 22 1;
+#X connect 15 0 23 0;
+#X connect 15 1 24 0;
+#X connect 16 0 12 0;
+#X connect 16 1 14 0;
+#X connect 17 0 13 0;
+#X connect 17 1 7 0;
+#X connect 18 0 2 0;
+#X connect 19 0 8 1;
+#X connect 20 0 9 1;
+#X connect 21 0 10 1;
+#X connect 22 0 11 1;
+#X connect 23 0 17 0;
+#X connect 24 0 16 0;
diff --git a/tests/mtx_ge/03_function.pd b/tests/mtx_ge/03_function.pd
new file mode 100644
index 0000000..2927b9a
--- /dev/null
+++ b/tests/mtx_ge/03_function.pd
@@ -0,0 +1,49 @@
+#N canvas 144 215 431 450 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 256 200 unpack 0 0 0 0;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 122 179 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 122 156 t l l;
+#X obj 122 98 t b;
+#X msg 122 132 3 2 1 0;
+#X obj 122 221 mtx_ge 1;
+#X obj 256 221 >= 1;
+#X obj 297 221 >= 1;
+#X obj 338 220 >= 1;
+#X obj 379 220 >= 1;
+#X connect 0 0 14 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 3 2 10 0;
+#X connect 3 3 11 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 17 0;
+#X connect 7 1 18 0;
+#X connect 7 2 19 0;
+#X connect 7 3 20 0;
+#X connect 8 0 5 0;
+#X connect 9 0 5 1;
+#X connect 10 0 4 0;
+#X connect 11 0 4 1;
+#X connect 12 0 16 0;
+#X connect 13 0 12 0;
+#X connect 13 1 7 0;
+#X connect 14 0 15 0;
+#X connect 15 0 13 0;
+#X connect 16 0 2 0;
+#X connect 17 0 8 1;
+#X connect 18 0 9 1;
+#X connect 19 0 10 1;
+#X connect 20 0 11 1;
diff --git a/tests/mtx_ge/04_function.pd b/tests/mtx_ge/04_function.pd
new file mode 100644
index 0000000..9f48ddc
--- /dev/null
+++ b/tests/mtx_ge/04_function.pd
@@ -0,0 +1,60 @@
+#N canvas 190 400 412 429 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 185 190 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 252 228 unpack 0 0 0 0;
+#X obj 122 98 t b b;
+#X obj 185 156 t l l;
+#X obj 122 221 mtx_ge;
+#X obj 236 269 >=;
+#X obj 267 269 >=;
+#X obj 298 268 >=;
+#X obj 329 268 >=;
+#X obj 122 156 t f f;
+#X obj 236 248 t f f f f;
+#X msg 122 132 5;
+#X msg 185 133 1 2 4 8;
+#X connect 0 0 13 0;
+#X connect 2 0 3 0;
+#X connect 3 0 7 0;
+#X connect 3 1 8 0;
+#X connect 3 2 9 0;
+#X connect 3 3 10 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 5 0;
+#X connect 8 0 5 1;
+#X connect 9 0 4 0;
+#X connect 10 0 4 1;
+#X connect 11 0 15 1;
+#X connect 12 0 16 1;
+#X connect 12 1 17 1;
+#X connect 12 2 18 1;
+#X connect 12 3 19 1;
+#X connect 13 0 22 0;
+#X connect 13 1 23 0;
+#X connect 14 0 11 0;
+#X connect 14 1 12 0;
+#X connect 15 0 2 0;
+#X connect 16 0 7 1;
+#X connect 17 0 8 1;
+#X connect 18 0 9 1;
+#X connect 19 0 10 1;
+#X connect 20 0 15 0;
+#X connect 20 1 21 0;
+#X connect 21 0 16 0;
+#X connect 21 1 17 0;
+#X connect 21 2 18 0;
+#X connect 21 3 19 0;
+#X connect 22 0 20 0;
+#X connect 23 0 14 0;
diff --git a/tests/mtx_ge/05_function.pd b/tests/mtx_ge/05_function.pd
new file mode 100644
index 0000000..57d7fcc
--- /dev/null
+++ b/tests/mtx_ge/05_function.pd
@@ -0,0 +1,17 @@
+#N canvas 55 354 508 466 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X obj 122 307 ==;
+#X obj 122 98 t b;
+#X obj 122 174 t f f;
+#X msg 122 132 11;
+#X obj 122 221 mtx_ge 7;
+#X obj 207 221 >= 7;
+#X connect 0 0 3 0;
+#X connect 2 0 1 0;
+#X connect 3 0 5 0;
+#X connect 4 0 6 0;
+#X connect 4 1 7 0;
+#X connect 5 0 4 0;
+#X connect 6 0 2 0;
+#X connect 7 0 2 1;
diff --git a/tests/mtx_ge/06_function.pd b/tests/mtx_ge/06_function.pd
new file mode 100644
index 0000000..166f672
--- /dev/null
+++ b/tests/mtx_ge/06_function.pd
@@ -0,0 +1,60 @@
+#N canvas 282 295 386 465 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 236 248 unpack 0 0 0 0;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 122 179 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 122 98 t b b;
+#X obj 122 156 t l l;
+#X obj 236 269 >=;
+#X obj 267 269 >=;
+#X obj 298 268 >=;
+#X obj 329 268 >=;
+#X obj 252 228 t f f f f;
+#X obj 185 156 t f f;
+#X obj 122 221 mtx_ge 0;
+#X msg 122 132 0 2 3 5;
+#X msg 185 133 17;
+#X connect 0 0 13 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 3 2 10 0;
+#X connect 3 3 11 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 15 0;
+#X connect 7 1 16 0;
+#X connect 7 2 17 0;
+#X connect 7 3 18 0;
+#X connect 8 0 5 0;
+#X connect 9 0 5 1;
+#X connect 10 0 4 0;
+#X connect 11 0 4 1;
+#X connect 12 0 21 0;
+#X connect 13 0 22 0;
+#X connect 13 1 23 0;
+#X connect 14 0 12 0;
+#X connect 14 1 7 0;
+#X connect 15 0 8 1;
+#X connect 16 0 9 1;
+#X connect 17 0 10 1;
+#X connect 18 0 11 1;
+#X connect 19 0 15 1;
+#X connect 19 1 16 1;
+#X connect 19 2 17 1;
+#X connect 19 3 18 1;
+#X connect 20 0 21 1;
+#X connect 20 1 19 0;
+#X connect 21 0 2 0;
+#X connect 22 0 14 0;
+#X connect 23 0 20 0;
diff --git a/tests/mtx_ge/07_function.pd b/tests/mtx_ge/07_function.pd
new file mode 100644
index 0000000..e0f3090
--- /dev/null
+++ b/tests/mtx_ge/07_function.pd
@@ -0,0 +1,23 @@
+#N canvas 270 180 508 466 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 213 71 bang;
+#X obj 122 98 t b b;
+#X obj 122 175 t f f;
+#X obj 122 307 ==;
+#X obj 122 251 mtx_ge 0;
+#X obj 239 251 >=;
+#X msg 122 132 6;
+#X msg 152 131 9;
+#X connect 0 0 3 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 4 0 6 0;
+#X connect 4 1 7 0;
+#X connect 5 0 1 0;
+#X connect 6 0 5 0;
+#X connect 7 0 5 1;
+#X connect 8 0 4 0;
+#X connect 9 0 6 1;
+#X connect 9 0 7 1;
diff --git a/tests/mtx_ge/08_function.pd b/tests/mtx_ge/08_function.pd
new file mode 100644
index 0000000..65e103c
--- /dev/null
+++ b/tests/mtx_ge/08_function.pd
@@ -0,0 +1,60 @@
+#N canvas 277 252 796 483 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 236 248 unpack 0 0 0 0;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 122 179 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 122 98 t b b;
+#X obj 122 156 t l l;
+#X obj 236 269 >=;
+#X obj 267 269 >=;
+#X obj 298 268 >=;
+#X obj 329 268 >=;
+#X obj 252 228 t f f f f;
+#X obj 185 156 t f f;
+#X obj 122 221 mtx_ge 0;
+#X msg 122 132 4 3 7 6;
+#X msg 185 133 123;
+#X connect 0 0 13 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 3 2 10 0;
+#X connect 3 3 11 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 15 0;
+#X connect 7 1 16 0;
+#X connect 7 2 17 0;
+#X connect 7 3 18 0;
+#X connect 8 0 5 0;
+#X connect 9 0 5 1;
+#X connect 10 0 4 0;
+#X connect 11 0 4 1;
+#X connect 12 0 21 0;
+#X connect 13 0 22 0;
+#X connect 13 1 23 0;
+#X connect 14 0 12 0;
+#X connect 14 1 7 0;
+#X connect 15 0 8 1;
+#X connect 16 0 9 1;
+#X connect 17 0 10 1;
+#X connect 18 0 11 1;
+#X connect 19 0 15 1;
+#X connect 19 1 16 1;
+#X connect 19 2 17 1;
+#X connect 19 3 18 1;
+#X connect 20 0 21 1;
+#X connect 20 1 19 0;
+#X connect 21 0 2 0;
+#X connect 22 0 14 0;
+#X connect 23 0 20 0;
diff --git a/tests/mtx_ge/09_function.pd b/tests/mtx_ge/09_function.pd
new file mode 100644
index 0000000..3a79463
--- /dev/null
+++ b/tests/mtx_ge/09_function.pd
@@ -0,0 +1,62 @@
+#N canvas 311 295 379 440 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 236 248 unpack 0 0 0 0;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 122 179 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 122 98 t b b;
+#X obj 185 156 t l l;
+#X obj 122 156 t l l;
+#X obj 122 221 mtx_ge;
+#X obj 236 269 >=;
+#X obj 267 269 >=;
+#X obj 298 268 >=;
+#X obj 329 268 >=;
+#X msg 186 200 matrix 1 2 \$1 \$2;
+#X obj 252 228 unpack 0 0;
+#X msg 122 132 10 9 -1 3;
+#X msg 185 133 7 34;
+#X connect 0 0 13 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 3 2 10 0;
+#X connect 3 3 11 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 17 0;
+#X connect 7 1 18 0;
+#X connect 7 2 19 0;
+#X connect 7 3 20 0;
+#X connect 8 0 5 0;
+#X connect 9 0 5 1;
+#X connect 10 0 4 0;
+#X connect 11 0 4 1;
+#X connect 12 0 16 0;
+#X connect 13 0 23 0;
+#X connect 13 1 24 0;
+#X connect 14 0 21 0;
+#X connect 14 1 22 0;
+#X connect 15 0 12 0;
+#X connect 15 1 7 0;
+#X connect 16 0 2 0;
+#X connect 17 0 8 1;
+#X connect 18 0 9 1;
+#X connect 19 0 10 1;
+#X connect 20 0 11 1;
+#X connect 21 0 16 1;
+#X connect 22 0 17 1;
+#X connect 22 0 19 1;
+#X connect 22 1 18 1;
+#X connect 22 1 20 1;
+#X connect 23 0 15 0;
+#X connect 24 0 14 0;
diff --git a/tests/mtx_ge/10_function.pd b/tests/mtx_ge/10_function.pd
new file mode 100644
index 0000000..7b8ab0d
--- /dev/null
+++ b/tests/mtx_ge/10_function.pd
@@ -0,0 +1,62 @@
+#N canvas 182 266 409 472 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 236 248 unpack 0 0 0 0;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 122 179 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 122 98 t b b;
+#X obj 185 156 t l l;
+#X obj 122 156 t l l;
+#X obj 122 221 mtx_ge;
+#X obj 236 269 >=;
+#X obj 267 269 >=;
+#X obj 298 268 >=;
+#X obj 329 268 >=;
+#X msg 166 200 matrix 2 1 \$1 \$2;
+#X obj 252 226 unpack 0 0;
+#X msg 185 133 5 3;
+#X msg 122 132 4 2 9 8;
+#X connect 0 0 13 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 3 2 10 0;
+#X connect 3 3 11 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 17 0;
+#X connect 7 1 18 0;
+#X connect 7 2 19 0;
+#X connect 7 3 20 0;
+#X connect 8 0 5 0;
+#X connect 9 0 5 1;
+#X connect 10 0 4 0;
+#X connect 11 0 4 1;
+#X connect 12 0 16 0;
+#X connect 13 0 24 0;
+#X connect 13 1 23 0;
+#X connect 14 0 21 0;
+#X connect 14 1 22 0;
+#X connect 15 0 12 0;
+#X connect 15 1 7 0;
+#X connect 16 0 2 0;
+#X connect 17 0 8 1;
+#X connect 18 0 9 1;
+#X connect 19 0 10 1;
+#X connect 20 0 11 1;
+#X connect 21 0 16 1;
+#X connect 22 0 17 1;
+#X connect 22 0 18 1;
+#X connect 22 1 19 1;
+#X connect 22 1 20 1;
+#X connect 23 0 14 0;
+#X connect 24 0 15 0;
diff --git a/tests/mtx_gt/01_function.pd b/tests/mtx_gt/01_function.pd
new file mode 100644
index 0000000..c29affb
--- /dev/null
+++ b/tests/mtx_gt/01_function.pd
@@ -0,0 +1,49 @@
+#N canvas 117 373 440 427 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 236 200 unpack 0 0 0 0;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 122 179 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 122 156 t l l;
+#X obj 122 98 t b;
+#X obj 122 221 mtx_gt 2;
+#X obj 236 221 > 2;
+#X obj 277 221 > 2;
+#X obj 318 220 > 2;
+#X obj 359 220 > 2;
+#X msg 122 132 2 5 -1.1 4;
+#X connect 0 0 14 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 3 2 10 0;
+#X connect 3 3 11 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 16 0;
+#X connect 7 1 17 0;
+#X connect 7 2 18 0;
+#X connect 7 3 19 0;
+#X connect 8 0 5 0;
+#X connect 9 0 5 1;
+#X connect 10 0 4 0;
+#X connect 11 0 4 1;
+#X connect 12 0 15 0;
+#X connect 13 0 12 0;
+#X connect 13 1 7 0;
+#X connect 14 0 20 0;
+#X connect 15 0 2 0;
+#X connect 16 0 8 1;
+#X connect 17 0 9 1;
+#X connect 18 0 10 1;
+#X connect 19 0 11 1;
+#X connect 20 0 13 0;
diff --git a/tests/mtx_gt/02_function.pd b/tests/mtx_gt/02_function.pd
new file mode 100644
index 0000000..cb2e20f
--- /dev/null
+++ b/tests/mtx_gt/02_function.pd
@@ -0,0 +1,62 @@
+#N canvas 176 399 508 466 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 236 248 unpack 0 0 0 0;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 166 200 matrix 2 2 \$1 \$2 \$3 \$4;
+#X msg 122 179 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 252 228 unpack 0 0 0 0;
+#X obj 122 98 t b b;
+#X obj 185 156 t l l;
+#X obj 122 156 t l l;
+#X obj 122 221 mtx_gt;
+#X obj 236 269 >;
+#X obj 267 269 >;
+#X obj 298 268 >;
+#X obj 329 268 >;
+#X msg 122 132 1 2 3 4;
+#X msg 185 133 9 8 7 6;
+#X connect 0 0 15 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 3 2 10 0;
+#X connect 3 3 11 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 19 0;
+#X connect 7 1 20 0;
+#X connect 7 2 21 0;
+#X connect 7 3 22 0;
+#X connect 8 0 5 0;
+#X connect 9 0 5 1;
+#X connect 10 0 4 0;
+#X connect 11 0 4 1;
+#X connect 12 0 18 1;
+#X connect 13 0 18 0;
+#X connect 14 0 19 1;
+#X connect 14 1 20 1;
+#X connect 14 2 21 1;
+#X connect 14 3 22 1;
+#X connect 15 0 23 0;
+#X connect 15 1 24 0;
+#X connect 16 0 12 0;
+#X connect 16 1 14 0;
+#X connect 17 0 13 0;
+#X connect 17 1 7 0;
+#X connect 18 0 2 0;
+#X connect 19 0 8 1;
+#X connect 20 0 9 1;
+#X connect 21 0 10 1;
+#X connect 22 0 11 1;
+#X connect 23 0 17 0;
+#X connect 24 0 16 0;
diff --git a/tests/mtx_gt/03_function.pd b/tests/mtx_gt/03_function.pd
new file mode 100644
index 0000000..460b065
--- /dev/null
+++ b/tests/mtx_gt/03_function.pd
@@ -0,0 +1,49 @@
+#N canvas 144 215 431 450 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 256 200 unpack 0 0 0 0;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 122 179 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 122 156 t l l;
+#X obj 122 98 t b;
+#X msg 122 132 3 2 1 0;
+#X obj 122 221 mtx_gt 1;
+#X obj 256 221 > 1;
+#X obj 297 221 > 1;
+#X obj 338 220 > 1;
+#X obj 379 220 > 1;
+#X connect 0 0 14 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 3 2 10 0;
+#X connect 3 3 11 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 17 0;
+#X connect 7 1 18 0;
+#X connect 7 2 19 0;
+#X connect 7 3 20 0;
+#X connect 8 0 5 0;
+#X connect 9 0 5 1;
+#X connect 10 0 4 0;
+#X connect 11 0 4 1;
+#X connect 12 0 16 0;
+#X connect 13 0 12 0;
+#X connect 13 1 7 0;
+#X connect 14 0 15 0;
+#X connect 15 0 13 0;
+#X connect 16 0 2 0;
+#X connect 17 0 8 1;
+#X connect 18 0 9 1;
+#X connect 19 0 10 1;
+#X connect 20 0 11 1;
diff --git a/tests/mtx_gt/04_function.pd b/tests/mtx_gt/04_function.pd
new file mode 100644
index 0000000..fce6298
--- /dev/null
+++ b/tests/mtx_gt/04_function.pd
@@ -0,0 +1,60 @@
+#N canvas 190 400 412 429 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 185 190 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 252 228 unpack 0 0 0 0;
+#X obj 122 98 t b b;
+#X obj 185 156 t l l;
+#X obj 122 221 mtx_gt;
+#X obj 236 269 >;
+#X obj 267 269 >;
+#X obj 298 268 >;
+#X obj 329 268 >;
+#X obj 122 156 t f f;
+#X obj 236 248 t f f f f;
+#X msg 122 132 5;
+#X msg 185 133 1 2 4 8;
+#X connect 0 0 13 0;
+#X connect 2 0 3 0;
+#X connect 3 0 7 0;
+#X connect 3 1 8 0;
+#X connect 3 2 9 0;
+#X connect 3 3 10 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 5 0;
+#X connect 8 0 5 1;
+#X connect 9 0 4 0;
+#X connect 10 0 4 1;
+#X connect 11 0 15 1;
+#X connect 12 0 16 1;
+#X connect 12 1 17 1;
+#X connect 12 2 18 1;
+#X connect 12 3 19 1;
+#X connect 13 0 22 0;
+#X connect 13 1 23 0;
+#X connect 14 0 11 0;
+#X connect 14 1 12 0;
+#X connect 15 0 2 0;
+#X connect 16 0 7 1;
+#X connect 17 0 8 1;
+#X connect 18 0 9 1;
+#X connect 19 0 10 1;
+#X connect 20 0 15 0;
+#X connect 20 1 21 0;
+#X connect 21 0 16 0;
+#X connect 21 1 17 0;
+#X connect 21 2 18 0;
+#X connect 21 3 19 0;
+#X connect 22 0 20 0;
+#X connect 23 0 14 0;
diff --git a/tests/mtx_gt/05_function.pd b/tests/mtx_gt/05_function.pd
new file mode 100644
index 0000000..5b73e18
--- /dev/null
+++ b/tests/mtx_gt/05_function.pd
@@ -0,0 +1,17 @@
+#N canvas 55 354 508 466 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X obj 122 307 ==;
+#X obj 122 98 t b;
+#X obj 122 174 t f f;
+#X msg 122 132 11;
+#X obj 122 221 mtx_gt 7;
+#X obj 207 221 > 7;
+#X connect 0 0 3 0;
+#X connect 2 0 1 0;
+#X connect 3 0 5 0;
+#X connect 4 0 6 0;
+#X connect 4 1 7 0;
+#X connect 5 0 4 0;
+#X connect 6 0 2 0;
+#X connect 7 0 2 1;
diff --git a/tests/mtx_gt/06_function.pd b/tests/mtx_gt/06_function.pd
new file mode 100644
index 0000000..73a9da2
--- /dev/null
+++ b/tests/mtx_gt/06_function.pd
@@ -0,0 +1,60 @@
+#N canvas 282 295 386 465 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 236 248 unpack 0 0 0 0;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 122 179 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 122 98 t b b;
+#X obj 122 156 t l l;
+#X obj 236 269 >;
+#X obj 267 269 >;
+#X obj 298 268 >;
+#X obj 329 268 >;
+#X obj 252 228 t f f f f;
+#X obj 185 156 t f f;
+#X obj 122 221 mtx_gt 0;
+#X msg 122 132 0 2 3 5;
+#X msg 185 133 17;
+#X connect 0 0 13 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 3 2 10 0;
+#X connect 3 3 11 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 15 0;
+#X connect 7 1 16 0;
+#X connect 7 2 17 0;
+#X connect 7 3 18 0;
+#X connect 8 0 5 0;
+#X connect 9 0 5 1;
+#X connect 10 0 4 0;
+#X connect 11 0 4 1;
+#X connect 12 0 21 0;
+#X connect 13 0 22 0;
+#X connect 13 1 23 0;
+#X connect 14 0 12 0;
+#X connect 14 1 7 0;
+#X connect 15 0 8 1;
+#X connect 16 0 9 1;
+#X connect 17 0 10 1;
+#X connect 18 0 11 1;
+#X connect 19 0 15 1;
+#X connect 19 1 16 1;
+#X connect 19 2 17 1;
+#X connect 19 3 18 1;
+#X connect 20 0 21 1;
+#X connect 20 1 19 0;
+#X connect 21 0 2 0;
+#X connect 22 0 14 0;
+#X connect 23 0 20 0;
diff --git a/tests/mtx_gt/07_function.pd b/tests/mtx_gt/07_function.pd
new file mode 100644
index 0000000..aac3a88
--- /dev/null
+++ b/tests/mtx_gt/07_function.pd
@@ -0,0 +1,23 @@
+#N canvas 270 180 508 466 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 213 71 bang;
+#X obj 122 98 t b b;
+#X obj 122 175 t f f;
+#X obj 122 307 ==;
+#X obj 122 251 mtx_gt 0;
+#X obj 239 251 >;
+#X msg 122 132 6;
+#X msg 152 131 9;
+#X connect 0 0 3 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 4 0 6 0;
+#X connect 4 1 7 0;
+#X connect 5 0 1 0;
+#X connect 6 0 5 0;
+#X connect 7 0 5 1;
+#X connect 8 0 4 0;
+#X connect 9 0 6 1;
+#X connect 9 0 7 1;
diff --git a/tests/mtx_gt/08_function.pd b/tests/mtx_gt/08_function.pd
new file mode 100644
index 0000000..a931b5c
--- /dev/null
+++ b/tests/mtx_gt/08_function.pd
@@ -0,0 +1,60 @@
+#N canvas 277 252 796 483 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 236 248 unpack 0 0 0 0;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 122 179 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 122 98 t b b;
+#X obj 122 156 t l l;
+#X obj 236 269 >;
+#X obj 267 269 >;
+#X obj 298 268 >;
+#X obj 329 268 >;
+#X obj 252 228 t f f f f;
+#X obj 185 156 t f f;
+#X obj 122 221 mtx_gt 0;
+#X msg 122 132 4 3 7 6;
+#X msg 185 133 123;
+#X connect 0 0 13 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 3 2 10 0;
+#X connect 3 3 11 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 15 0;
+#X connect 7 1 16 0;
+#X connect 7 2 17 0;
+#X connect 7 3 18 0;
+#X connect 8 0 5 0;
+#X connect 9 0 5 1;
+#X connect 10 0 4 0;
+#X connect 11 0 4 1;
+#X connect 12 0 21 0;
+#X connect 13 0 22 0;
+#X connect 13 1 23 0;
+#X connect 14 0 12 0;
+#X connect 14 1 7 0;
+#X connect 15 0 8 1;
+#X connect 16 0 9 1;
+#X connect 17 0 10 1;
+#X connect 18 0 11 1;
+#X connect 19 0 15 1;
+#X connect 19 1 16 1;
+#X connect 19 2 17 1;
+#X connect 19 3 18 1;
+#X connect 20 0 21 1;
+#X connect 20 1 19 0;
+#X connect 21 0 2 0;
+#X connect 22 0 14 0;
+#X connect 23 0 20 0;
diff --git a/tests/mtx_gt/09_function.pd b/tests/mtx_gt/09_function.pd
new file mode 100644
index 0000000..5c98db2
--- /dev/null
+++ b/tests/mtx_gt/09_function.pd
@@ -0,0 +1,62 @@
+#N canvas 311 295 379 440 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 236 248 unpack 0 0 0 0;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 122 179 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 122 98 t b b;
+#X obj 185 156 t l l;
+#X obj 122 156 t l l;
+#X obj 122 221 mtx_gt;
+#X obj 236 269 >;
+#X obj 267 269 >;
+#X obj 298 268 >;
+#X obj 329 268 >;
+#X msg 186 200 matrix 1 2 \$1 \$2;
+#X obj 252 228 unpack 0 0;
+#X msg 122 132 10 9 -1 3;
+#X msg 185 133 7 34;
+#X connect 0 0 13 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 3 2 10 0;
+#X connect 3 3 11 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 17 0;
+#X connect 7 1 18 0;
+#X connect 7 2 19 0;
+#X connect 7 3 20 0;
+#X connect 8 0 5 0;
+#X connect 9 0 5 1;
+#X connect 10 0 4 0;
+#X connect 11 0 4 1;
+#X connect 12 0 16 0;
+#X connect 13 0 23 0;
+#X connect 13 1 24 0;
+#X connect 14 0 21 0;
+#X connect 14 1 22 0;
+#X connect 15 0 12 0;
+#X connect 15 1 7 0;
+#X connect 16 0 2 0;
+#X connect 17 0 8 1;
+#X connect 18 0 9 1;
+#X connect 19 0 10 1;
+#X connect 20 0 11 1;
+#X connect 21 0 16 1;
+#X connect 22 0 17 1;
+#X connect 22 0 19 1;
+#X connect 22 1 18 1;
+#X connect 22 1 20 1;
+#X connect 23 0 15 0;
+#X connect 24 0 14 0;
diff --git a/tests/mtx_gt/10_function.pd b/tests/mtx_gt/10_function.pd
new file mode 100644
index 0000000..8dbb731
--- /dev/null
+++ b/tests/mtx_gt/10_function.pd
@@ -0,0 +1,62 @@
+#N canvas 182 266 409 472 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 236 248 unpack 0 0 0 0;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 122 179 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 122 98 t b b;
+#X obj 185 156 t l l;
+#X obj 122 156 t l l;
+#X obj 122 221 mtx_gt;
+#X obj 236 269 >;
+#X obj 267 269 >;
+#X obj 298 268 >;
+#X obj 329 268 >;
+#X msg 166 200 matrix 2 1 \$1 \$2;
+#X obj 252 226 unpack 0 0;
+#X msg 185 133 5 3;
+#X msg 122 132 4 2 9 8;
+#X connect 0 0 13 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 3 2 10 0;
+#X connect 3 3 11 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 17 0;
+#X connect 7 1 18 0;
+#X connect 7 2 19 0;
+#X connect 7 3 20 0;
+#X connect 8 0 5 0;
+#X connect 9 0 5 1;
+#X connect 10 0 4 0;
+#X connect 11 0 4 1;
+#X connect 12 0 16 0;
+#X connect 13 0 24 0;
+#X connect 13 1 23 0;
+#X connect 14 0 21 0;
+#X connect 14 1 22 0;
+#X connect 15 0 12 0;
+#X connect 15 1 7 0;
+#X connect 16 0 2 0;
+#X connect 17 0 8 1;
+#X connect 18 0 9 1;
+#X connect 19 0 10 1;
+#X connect 20 0 11 1;
+#X connect 21 0 16 1;
+#X connect 22 0 17 1;
+#X connect 22 0 18 1;
+#X connect 22 1 19 1;
+#X connect 22 1 20 1;
+#X connect 23 0 14 0;
+#X connect 24 0 15 0;
diff --git a/tests/mtx_le/01_function.pd b/tests/mtx_le/01_function.pd
new file mode 100644
index 0000000..0c22edf
--- /dev/null
+++ b/tests/mtx_le/01_function.pd
@@ -0,0 +1,49 @@
+#N canvas 117 373 440 427 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 236 200 unpack 0 0 0 0;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 122 179 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 122 156 t l l;
+#X obj 122 98 t b;
+#X obj 122 221 mtx_le 2;
+#X obj 236 221 <= 2;
+#X obj 277 221 <= 2;
+#X obj 318 220 <= 2;
+#X obj 359 220 <= 2;
+#X msg 122 132 2 5 -1.1 4;
+#X connect 0 0 14 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 3 2 10 0;
+#X connect 3 3 11 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 16 0;
+#X connect 7 1 17 0;
+#X connect 7 2 18 0;
+#X connect 7 3 19 0;
+#X connect 8 0 5 0;
+#X connect 9 0 5 1;
+#X connect 10 0 4 0;
+#X connect 11 0 4 1;
+#X connect 12 0 15 0;
+#X connect 13 0 12 0;
+#X connect 13 1 7 0;
+#X connect 14 0 20 0;
+#X connect 15 0 2 0;
+#X connect 16 0 8 1;
+#X connect 17 0 9 1;
+#X connect 18 0 10 1;
+#X connect 19 0 11 1;
+#X connect 20 0 13 0;
diff --git a/tests/mtx_le/02_function.pd b/tests/mtx_le/02_function.pd
new file mode 100644
index 0000000..b97b332
--- /dev/null
+++ b/tests/mtx_le/02_function.pd
@@ -0,0 +1,62 @@
+#N canvas 176 399 508 466 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 236 248 unpack 0 0 0 0;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 166 200 matrix 2 2 \$1 \$2 \$3 \$4;
+#X msg 122 179 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 252 228 unpack 0 0 0 0;
+#X obj 122 98 t b b;
+#X obj 185 156 t l l;
+#X obj 122 156 t l l;
+#X obj 122 221 mtx_le;
+#X obj 236 269 <=;
+#X obj 267 269 <=;
+#X obj 298 268 <=;
+#X obj 329 268 <=;
+#X msg 122 132 1 2 3 4;
+#X msg 185 133 9 8 7 6;
+#X connect 0 0 15 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 3 2 10 0;
+#X connect 3 3 11 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 19 0;
+#X connect 7 1 20 0;
+#X connect 7 2 21 0;
+#X connect 7 3 22 0;
+#X connect 8 0 5 0;
+#X connect 9 0 5 1;
+#X connect 10 0 4 0;
+#X connect 11 0 4 1;
+#X connect 12 0 18 1;
+#X connect 13 0 18 0;
+#X connect 14 0 19 1;
+#X connect 14 1 20 1;
+#X connect 14 2 21 1;
+#X connect 14 3 22 1;
+#X connect 15 0 23 0;
+#X connect 15 1 24 0;
+#X connect 16 0 12 0;
+#X connect 16 1 14 0;
+#X connect 17 0 13 0;
+#X connect 17 1 7 0;
+#X connect 18 0 2 0;
+#X connect 19 0 8 1;
+#X connect 20 0 9 1;
+#X connect 21 0 10 1;
+#X connect 22 0 11 1;
+#X connect 23 0 17 0;
+#X connect 24 0 16 0;
diff --git a/tests/mtx_le/03_function.pd b/tests/mtx_le/03_function.pd
new file mode 100644
index 0000000..0b5ee0d
--- /dev/null
+++ b/tests/mtx_le/03_function.pd
@@ -0,0 +1,49 @@
+#N canvas 144 215 431 450 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 256 200 unpack 0 0 0 0;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 122 179 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 122 156 t l l;
+#X obj 122 98 t b;
+#X msg 122 132 3 2 1 0;
+#X obj 122 221 mtx_le 1;
+#X obj 256 221 <= 1;
+#X obj 297 221 <= 1;
+#X obj 338 220 <= 1;
+#X obj 379 220 <= 1;
+#X connect 0 0 14 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 3 2 10 0;
+#X connect 3 3 11 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 17 0;
+#X connect 7 1 18 0;
+#X connect 7 2 19 0;
+#X connect 7 3 20 0;
+#X connect 8 0 5 0;
+#X connect 9 0 5 1;
+#X connect 10 0 4 0;
+#X connect 11 0 4 1;
+#X connect 12 0 16 0;
+#X connect 13 0 12 0;
+#X connect 13 1 7 0;
+#X connect 14 0 15 0;
+#X connect 15 0 13 0;
+#X connect 16 0 2 0;
+#X connect 17 0 8 1;
+#X connect 18 0 9 1;
+#X connect 19 0 10 1;
+#X connect 20 0 11 1;
diff --git a/tests/mtx_le/04_function.pd b/tests/mtx_le/04_function.pd
new file mode 100644
index 0000000..252b951
--- /dev/null
+++ b/tests/mtx_le/04_function.pd
@@ -0,0 +1,60 @@
+#N canvas 190 400 412 429 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 185 190 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 252 228 unpack 0 0 0 0;
+#X obj 122 98 t b b;
+#X obj 185 156 t l l;
+#X obj 122 221 mtx_le;
+#X obj 236 269 <=;
+#X obj 267 269 <=;
+#X obj 298 268 <=;
+#X obj 329 268 <=;
+#X obj 122 156 t f f;
+#X obj 236 248 t f f f f;
+#X msg 122 132 5;
+#X msg 185 133 1 2 4 8;
+#X connect 0 0 13 0;
+#X connect 2 0 3 0;
+#X connect 3 0 7 0;
+#X connect 3 1 8 0;
+#X connect 3 2 9 0;
+#X connect 3 3 10 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 5 0;
+#X connect 8 0 5 1;
+#X connect 9 0 4 0;
+#X connect 10 0 4 1;
+#X connect 11 0 15 1;
+#X connect 12 0 16 1;
+#X connect 12 1 17 1;
+#X connect 12 2 18 1;
+#X connect 12 3 19 1;
+#X connect 13 0 22 0;
+#X connect 13 1 23 0;
+#X connect 14 0 11 0;
+#X connect 14 1 12 0;
+#X connect 15 0 2 0;
+#X connect 16 0 7 1;
+#X connect 17 0 8 1;
+#X connect 18 0 9 1;
+#X connect 19 0 10 1;
+#X connect 20 0 15 0;
+#X connect 20 1 21 0;
+#X connect 21 0 16 0;
+#X connect 21 1 17 0;
+#X connect 21 2 18 0;
+#X connect 21 3 19 0;
+#X connect 22 0 20 0;
+#X connect 23 0 14 0;
diff --git a/tests/mtx_le/05_function.pd b/tests/mtx_le/05_function.pd
new file mode 100644
index 0000000..7356f1a
--- /dev/null
+++ b/tests/mtx_le/05_function.pd
@@ -0,0 +1,17 @@
+#N canvas 55 354 508 466 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X obj 122 307 ==;
+#X obj 122 98 t b;
+#X obj 122 174 t f f;
+#X msg 122 132 11;
+#X obj 122 221 mtx_le 7;
+#X obj 207 221 <= 7;
+#X connect 0 0 3 0;
+#X connect 2 0 1 0;
+#X connect 3 0 5 0;
+#X connect 4 0 6 0;
+#X connect 4 1 7 0;
+#X connect 5 0 4 0;
+#X connect 6 0 2 0;
+#X connect 7 0 2 1;
diff --git a/tests/mtx_le/06_function.pd b/tests/mtx_le/06_function.pd
new file mode 100644
index 0000000..064e2a4
--- /dev/null
+++ b/tests/mtx_le/06_function.pd
@@ -0,0 +1,60 @@
+#N canvas 282 295 386 465 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 236 248 unpack 0 0 0 0;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 122 179 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 122 98 t b b;
+#X obj 122 156 t l l;
+#X obj 236 269 <=;
+#X obj 267 269 <=;
+#X obj 298 268 <=;
+#X obj 329 268 <=;
+#X obj 252 228 t f f f f;
+#X obj 185 156 t f f;
+#X obj 122 221 mtx_le 0;
+#X msg 122 132 0 2 3 5;
+#X msg 185 133 17;
+#X connect 0 0 13 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 3 2 10 0;
+#X connect 3 3 11 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 15 0;
+#X connect 7 1 16 0;
+#X connect 7 2 17 0;
+#X connect 7 3 18 0;
+#X connect 8 0 5 0;
+#X connect 9 0 5 1;
+#X connect 10 0 4 0;
+#X connect 11 0 4 1;
+#X connect 12 0 21 0;
+#X connect 13 0 22 0;
+#X connect 13 1 23 0;
+#X connect 14 0 12 0;
+#X connect 14 1 7 0;
+#X connect 15 0 8 1;
+#X connect 16 0 9 1;
+#X connect 17 0 10 1;
+#X connect 18 0 11 1;
+#X connect 19 0 15 1;
+#X connect 19 1 16 1;
+#X connect 19 2 17 1;
+#X connect 19 3 18 1;
+#X connect 20 0 21 1;
+#X connect 20 1 19 0;
+#X connect 21 0 2 0;
+#X connect 22 0 14 0;
+#X connect 23 0 20 0;
diff --git a/tests/mtx_le/07_function.pd b/tests/mtx_le/07_function.pd
new file mode 100644
index 0000000..a16b8d3
--- /dev/null
+++ b/tests/mtx_le/07_function.pd
@@ -0,0 +1,23 @@
+#N canvas 270 180 508 466 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 213 71 bang;
+#X obj 122 98 t b b;
+#X obj 122 175 t f f;
+#X obj 122 307 ==;
+#X obj 122 251 mtx_le 0;
+#X obj 239 251 <=;
+#X msg 122 132 6;
+#X msg 152 131 9;
+#X connect 0 0 3 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 4 0 6 0;
+#X connect 4 1 7 0;
+#X connect 5 0 1 0;
+#X connect 6 0 5 0;
+#X connect 7 0 5 1;
+#X connect 8 0 4 0;
+#X connect 9 0 6 1;
+#X connect 9 0 7 1;
diff --git a/tests/mtx_le/08_function.pd b/tests/mtx_le/08_function.pd
new file mode 100644
index 0000000..0e5cbac
--- /dev/null
+++ b/tests/mtx_le/08_function.pd
@@ -0,0 +1,60 @@
+#N canvas 277 252 796 483 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 236 248 unpack 0 0 0 0;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 122 179 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 122 98 t b b;
+#X obj 122 156 t l l;
+#X obj 236 269 <=;
+#X obj 267 269 <=;
+#X obj 298 268 <=;
+#X obj 329 268 <=;
+#X obj 252 228 t f f f f;
+#X obj 185 156 t f f;
+#X obj 122 221 mtx_le 0;
+#X msg 122 132 4 3 7 6;
+#X msg 185 133 123;
+#X connect 0 0 13 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 3 2 10 0;
+#X connect 3 3 11 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 15 0;
+#X connect 7 1 16 0;
+#X connect 7 2 17 0;
+#X connect 7 3 18 0;
+#X connect 8 0 5 0;
+#X connect 9 0 5 1;
+#X connect 10 0 4 0;
+#X connect 11 0 4 1;
+#X connect 12 0 21 0;
+#X connect 13 0 22 0;
+#X connect 13 1 23 0;
+#X connect 14 0 12 0;
+#X connect 14 1 7 0;
+#X connect 15 0 8 1;
+#X connect 16 0 9 1;
+#X connect 17 0 10 1;
+#X connect 18 0 11 1;
+#X connect 19 0 15 1;
+#X connect 19 1 16 1;
+#X connect 19 2 17 1;
+#X connect 19 3 18 1;
+#X connect 20 0 21 1;
+#X connect 20 1 19 0;
+#X connect 21 0 2 0;
+#X connect 22 0 14 0;
+#X connect 23 0 20 0;
diff --git a/tests/mtx_le/09_function.pd b/tests/mtx_le/09_function.pd
new file mode 100644
index 0000000..72a32e3
--- /dev/null
+++ b/tests/mtx_le/09_function.pd
@@ -0,0 +1,62 @@
+#N canvas 311 295 379 440 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 236 248 unpack 0 0 0 0;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 122 179 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 122 98 t b b;
+#X obj 185 156 t l l;
+#X obj 122 156 t l l;
+#X obj 122 221 mtx_le;
+#X obj 236 269 <=;
+#X obj 267 269 <=;
+#X obj 298 268 <=;
+#X obj 329 268 <=;
+#X msg 186 200 matrix 1 2 \$1 \$2;
+#X obj 252 228 unpack 0 0;
+#X msg 122 132 10 9 -1 3;
+#X msg 185 133 7 34;
+#X connect 0 0 13 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 3 2 10 0;
+#X connect 3 3 11 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 17 0;
+#X connect 7 1 18 0;
+#X connect 7 2 19 0;
+#X connect 7 3 20 0;
+#X connect 8 0 5 0;
+#X connect 9 0 5 1;
+#X connect 10 0 4 0;
+#X connect 11 0 4 1;
+#X connect 12 0 16 0;
+#X connect 13 0 23 0;
+#X connect 13 1 24 0;
+#X connect 14 0 21 0;
+#X connect 14 1 22 0;
+#X connect 15 0 12 0;
+#X connect 15 1 7 0;
+#X connect 16 0 2 0;
+#X connect 17 0 8 1;
+#X connect 18 0 9 1;
+#X connect 19 0 10 1;
+#X connect 20 0 11 1;
+#X connect 21 0 16 1;
+#X connect 22 0 17 1;
+#X connect 22 0 19 1;
+#X connect 22 1 18 1;
+#X connect 22 1 20 1;
+#X connect 23 0 15 0;
+#X connect 24 0 14 0;
diff --git a/tests/mtx_le/10_function.pd b/tests/mtx_le/10_function.pd
new file mode 100644
index 0000000..8204d46
--- /dev/null
+++ b/tests/mtx_le/10_function.pd
@@ -0,0 +1,62 @@
+#N canvas 182 266 409 472 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 236 248 unpack 0 0 0 0;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 122 179 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 122 98 t b b;
+#X obj 185 156 t l l;
+#X obj 122 156 t l l;
+#X obj 122 221 mtx_le;
+#X obj 236 269 <=;
+#X obj 267 269 <=;
+#X obj 298 268 <=;
+#X obj 329 268 <=;
+#X msg 166 200 matrix 2 1 \$1 \$2;
+#X obj 252 226 unpack 0 0;
+#X msg 185 133 5 3;
+#X msg 122 132 4 2 9 8;
+#X connect 0 0 13 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 3 2 10 0;
+#X connect 3 3 11 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 17 0;
+#X connect 7 1 18 0;
+#X connect 7 2 19 0;
+#X connect 7 3 20 0;
+#X connect 8 0 5 0;
+#X connect 9 0 5 1;
+#X connect 10 0 4 0;
+#X connect 11 0 4 1;
+#X connect 12 0 16 0;
+#X connect 13 0 24 0;
+#X connect 13 1 23 0;
+#X connect 14 0 21 0;
+#X connect 14 1 22 0;
+#X connect 15 0 12 0;
+#X connect 15 1 7 0;
+#X connect 16 0 2 0;
+#X connect 17 0 8 1;
+#X connect 18 0 9 1;
+#X connect 19 0 10 1;
+#X connect 20 0 11 1;
+#X connect 21 0 16 1;
+#X connect 22 0 17 1;
+#X connect 22 0 18 1;
+#X connect 22 1 19 1;
+#X connect 22 1 20 1;
+#X connect 23 0 14 0;
+#X connect 24 0 15 0;
diff --git a/tests/mtx_lt/01_function.pd b/tests/mtx_lt/01_function.pd
new file mode 100644
index 0000000..f175266
--- /dev/null
+++ b/tests/mtx_lt/01_function.pd
@@ -0,0 +1,49 @@
+#N canvas 117 373 440 427 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 236 200 unpack 0 0 0 0;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 122 179 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 122 156 t l l;
+#X obj 122 98 t b;
+#X obj 122 221 mtx_lt 2;
+#X obj 236 221 < 2;
+#X obj 277 221 < 2;
+#X obj 318 220 < 2;
+#X obj 359 220 < 2;
+#X msg 122 132 2 5 -1.1 4;
+#X connect 0 0 14 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 3 2 10 0;
+#X connect 3 3 11 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 16 0;
+#X connect 7 1 17 0;
+#X connect 7 2 18 0;
+#X connect 7 3 19 0;
+#X connect 8 0 5 0;
+#X connect 9 0 5 1;
+#X connect 10 0 4 0;
+#X connect 11 0 4 1;
+#X connect 12 0 15 0;
+#X connect 13 0 12 0;
+#X connect 13 1 7 0;
+#X connect 14 0 20 0;
+#X connect 15 0 2 0;
+#X connect 16 0 8 1;
+#X connect 17 0 9 1;
+#X connect 18 0 10 1;
+#X connect 19 0 11 1;
+#X connect 20 0 13 0;
diff --git a/tests/mtx_lt/02_function.pd b/tests/mtx_lt/02_function.pd
new file mode 100644
index 0000000..625615c
--- /dev/null
+++ b/tests/mtx_lt/02_function.pd
@@ -0,0 +1,62 @@
+#N canvas 176 399 508 466 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 236 248 unpack 0 0 0 0;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 166 200 matrix 2 2 \$1 \$2 \$3 \$4;
+#X msg 122 179 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 252 228 unpack 0 0 0 0;
+#X obj 122 98 t b b;
+#X obj 185 156 t l l;
+#X obj 122 156 t l l;
+#X obj 122 221 mtx_lt;
+#X obj 236 269 <;
+#X obj 267 269 <;
+#X obj 298 268 <;
+#X obj 329 268 <;
+#X msg 122 132 1 2 3 4;
+#X msg 185 133 9 8 7 6;
+#X connect 0 0 15 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 3 2 10 0;
+#X connect 3 3 11 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 19 0;
+#X connect 7 1 20 0;
+#X connect 7 2 21 0;
+#X connect 7 3 22 0;
+#X connect 8 0 5 0;
+#X connect 9 0 5 1;
+#X connect 10 0 4 0;
+#X connect 11 0 4 1;
+#X connect 12 0 18 1;
+#X connect 13 0 18 0;
+#X connect 14 0 19 1;
+#X connect 14 1 20 1;
+#X connect 14 2 21 1;
+#X connect 14 3 22 1;
+#X connect 15 0 23 0;
+#X connect 15 1 24 0;
+#X connect 16 0 12 0;
+#X connect 16 1 14 0;
+#X connect 17 0 13 0;
+#X connect 17 1 7 0;
+#X connect 18 0 2 0;
+#X connect 19 0 8 1;
+#X connect 20 0 9 1;
+#X connect 21 0 10 1;
+#X connect 22 0 11 1;
+#X connect 23 0 17 0;
+#X connect 24 0 16 0;
diff --git a/tests/mtx_lt/03_function.pd b/tests/mtx_lt/03_function.pd
new file mode 100644
index 0000000..7747744
--- /dev/null
+++ b/tests/mtx_lt/03_function.pd
@@ -0,0 +1,49 @@
+#N canvas 144 215 431 450 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 256 200 unpack 0 0 0 0;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 122 179 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 122 156 t l l;
+#X obj 122 98 t b;
+#X msg 122 132 3 2 1 0;
+#X obj 122 221 mtx_lt 1;
+#X obj 256 221 < 1;
+#X obj 297 221 < 1;
+#X obj 338 220 < 1;
+#X obj 379 220 < 1;
+#X connect 0 0 14 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 3 2 10 0;
+#X connect 3 3 11 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 17 0;
+#X connect 7 1 18 0;
+#X connect 7 2 19 0;
+#X connect 7 3 20 0;
+#X connect 8 0 5 0;
+#X connect 9 0 5 1;
+#X connect 10 0 4 0;
+#X connect 11 0 4 1;
+#X connect 12 0 16 0;
+#X connect 13 0 12 0;
+#X connect 13 1 7 0;
+#X connect 14 0 15 0;
+#X connect 15 0 13 0;
+#X connect 16 0 2 0;
+#X connect 17 0 8 1;
+#X connect 18 0 9 1;
+#X connect 19 0 10 1;
+#X connect 20 0 11 1;
diff --git a/tests/mtx_lt/04_function.pd b/tests/mtx_lt/04_function.pd
new file mode 100644
index 0000000..b6583db
--- /dev/null
+++ b/tests/mtx_lt/04_function.pd
@@ -0,0 +1,60 @@
+#N canvas 190 400 412 429 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 185 190 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 252 228 unpack 0 0 0 0;
+#X obj 122 98 t b b;
+#X obj 185 156 t l l;
+#X obj 122 221 mtx_lt;
+#X obj 236 269 <;
+#X obj 267 269 <;
+#X obj 298 268 <;
+#X obj 329 268 <;
+#X obj 122 156 t f f;
+#X obj 236 248 t f f f f;
+#X msg 122 132 5;
+#X msg 185 133 1 2 4 8;
+#X connect 0 0 13 0;
+#X connect 2 0 3 0;
+#X connect 3 0 7 0;
+#X connect 3 1 8 0;
+#X connect 3 2 9 0;
+#X connect 3 3 10 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 5 0;
+#X connect 8 0 5 1;
+#X connect 9 0 4 0;
+#X connect 10 0 4 1;
+#X connect 11 0 15 1;
+#X connect 12 0 16 1;
+#X connect 12 1 17 1;
+#X connect 12 2 18 1;
+#X connect 12 3 19 1;
+#X connect 13 0 22 0;
+#X connect 13 1 23 0;
+#X connect 14 0 11 0;
+#X connect 14 1 12 0;
+#X connect 15 0 2 0;
+#X connect 16 0 7 1;
+#X connect 17 0 8 1;
+#X connect 18 0 9 1;
+#X connect 19 0 10 1;
+#X connect 20 0 15 0;
+#X connect 20 1 21 0;
+#X connect 21 0 16 0;
+#X connect 21 1 17 0;
+#X connect 21 2 18 0;
+#X connect 21 3 19 0;
+#X connect 22 0 20 0;
+#X connect 23 0 14 0;
diff --git a/tests/mtx_lt/05_function.pd b/tests/mtx_lt/05_function.pd
new file mode 100644
index 0000000..d8f168d
--- /dev/null
+++ b/tests/mtx_lt/05_function.pd
@@ -0,0 +1,17 @@
+#N canvas 55 354 508 466 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X obj 122 307 ==;
+#X obj 122 98 t b;
+#X obj 122 174 t f f;
+#X msg 122 132 11;
+#X obj 122 221 mtx_lt 7;
+#X obj 207 221 < 7;
+#X connect 0 0 3 0;
+#X connect 2 0 1 0;
+#X connect 3 0 5 0;
+#X connect 4 0 6 0;
+#X connect 4 1 7 0;
+#X connect 5 0 4 0;
+#X connect 6 0 2 0;
+#X connect 7 0 2 1;
diff --git a/tests/mtx_lt/06_function.pd b/tests/mtx_lt/06_function.pd
new file mode 100644
index 0000000..7412a85
--- /dev/null
+++ b/tests/mtx_lt/06_function.pd
@@ -0,0 +1,60 @@
+#N canvas 282 295 386 465 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 236 248 unpack 0 0 0 0;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 122 179 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 122 98 t b b;
+#X obj 122 156 t l l;
+#X obj 236 269 <;
+#X obj 267 269 <;
+#X obj 298 268 <;
+#X obj 329 268 <;
+#X obj 252 228 t f f f f;
+#X obj 185 156 t f f;
+#X obj 122 221 mtx_lt 0;
+#X msg 122 132 0 2 3 5;
+#X msg 185 133 17;
+#X connect 0 0 13 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 3 2 10 0;
+#X connect 3 3 11 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 15 0;
+#X connect 7 1 16 0;
+#X connect 7 2 17 0;
+#X connect 7 3 18 0;
+#X connect 8 0 5 0;
+#X connect 9 0 5 1;
+#X connect 10 0 4 0;
+#X connect 11 0 4 1;
+#X connect 12 0 21 0;
+#X connect 13 0 22 0;
+#X connect 13 1 23 0;
+#X connect 14 0 12 0;
+#X connect 14 1 7 0;
+#X connect 15 0 8 1;
+#X connect 16 0 9 1;
+#X connect 17 0 10 1;
+#X connect 18 0 11 1;
+#X connect 19 0 15 1;
+#X connect 19 1 16 1;
+#X connect 19 2 17 1;
+#X connect 19 3 18 1;
+#X connect 20 0 21 1;
+#X connect 20 1 19 0;
+#X connect 21 0 2 0;
+#X connect 22 0 14 0;
+#X connect 23 0 20 0;
diff --git a/tests/mtx_lt/07_function.pd b/tests/mtx_lt/07_function.pd
new file mode 100644
index 0000000..b5eb8fd
--- /dev/null
+++ b/tests/mtx_lt/07_function.pd
@@ -0,0 +1,23 @@
+#N canvas 270 180 508 466 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 213 71 bang;
+#X obj 122 98 t b b;
+#X obj 122 175 t f f;
+#X obj 122 307 ==;
+#X obj 122 251 mtx_lt 0;
+#X obj 239 251 <;
+#X msg 122 132 6;
+#X msg 152 131 9;
+#X connect 0 0 3 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 4 0 6 0;
+#X connect 4 1 7 0;
+#X connect 5 0 1 0;
+#X connect 6 0 5 0;
+#X connect 7 0 5 1;
+#X connect 8 0 4 0;
+#X connect 9 0 6 1;
+#X connect 9 0 7 1;
diff --git a/tests/mtx_lt/08_function.pd b/tests/mtx_lt/08_function.pd
new file mode 100644
index 0000000..a4c13ed
--- /dev/null
+++ b/tests/mtx_lt/08_function.pd
@@ -0,0 +1,60 @@
+#N canvas 277 252 796 483 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 236 248 unpack 0 0 0 0;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 122 179 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 122 98 t b b;
+#X obj 122 156 t l l;
+#X obj 236 269 <;
+#X obj 267 269 <;
+#X obj 298 268 <;
+#X obj 329 268 <;
+#X obj 252 228 t f f f f;
+#X obj 185 156 t f f;
+#X obj 122 221 mtx_lt 0;
+#X msg 122 132 4 3 7 6;
+#X msg 185 133 123;
+#X connect 0 0 13 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 3 2 10 0;
+#X connect 3 3 11 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 15 0;
+#X connect 7 1 16 0;
+#X connect 7 2 17 0;
+#X connect 7 3 18 0;
+#X connect 8 0 5 0;
+#X connect 9 0 5 1;
+#X connect 10 0 4 0;
+#X connect 11 0 4 1;
+#X connect 12 0 21 0;
+#X connect 13 0 22 0;
+#X connect 13 1 23 0;
+#X connect 14 0 12 0;
+#X connect 14 1 7 0;
+#X connect 15 0 8 1;
+#X connect 16 0 9 1;
+#X connect 17 0 10 1;
+#X connect 18 0 11 1;
+#X connect 19 0 15 1;
+#X connect 19 1 16 1;
+#X connect 19 2 17 1;
+#X connect 19 3 18 1;
+#X connect 20 0 21 1;
+#X connect 20 1 19 0;
+#X connect 21 0 2 0;
+#X connect 22 0 14 0;
+#X connect 23 0 20 0;
diff --git a/tests/mtx_lt/09_function.pd b/tests/mtx_lt/09_function.pd
new file mode 100644
index 0000000..c4dc259
--- /dev/null
+++ b/tests/mtx_lt/09_function.pd
@@ -0,0 +1,62 @@
+#N canvas 311 295 379 440 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 236 248 unpack 0 0 0 0;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 122 179 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 122 98 t b b;
+#X obj 185 156 t l l;
+#X obj 122 156 t l l;
+#X obj 122 221 mtx_lt;
+#X obj 236 269 <;
+#X obj 267 269 <;
+#X obj 298 268 <;
+#X obj 329 268 <;
+#X msg 186 200 matrix 1 2 \$1 \$2;
+#X obj 252 228 unpack 0 0;
+#X msg 122 132 10 9 -1 3;
+#X msg 185 133 7 34;
+#X connect 0 0 13 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 3 2 10 0;
+#X connect 3 3 11 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 17 0;
+#X connect 7 1 18 0;
+#X connect 7 2 19 0;
+#X connect 7 3 20 0;
+#X connect 8 0 5 0;
+#X connect 9 0 5 1;
+#X connect 10 0 4 0;
+#X connect 11 0 4 1;
+#X connect 12 0 16 0;
+#X connect 13 0 23 0;
+#X connect 13 1 24 0;
+#X connect 14 0 21 0;
+#X connect 14 1 22 0;
+#X connect 15 0 12 0;
+#X connect 15 1 7 0;
+#X connect 16 0 2 0;
+#X connect 17 0 8 1;
+#X connect 18 0 9 1;
+#X connect 19 0 10 1;
+#X connect 20 0 11 1;
+#X connect 21 0 16 1;
+#X connect 22 0 17 1;
+#X connect 22 0 19 1;
+#X connect 22 1 18 1;
+#X connect 22 1 20 1;
+#X connect 23 0 15 0;
+#X connect 24 0 14 0;
diff --git a/tests/mtx_lt/10_function.pd b/tests/mtx_lt/10_function.pd
new file mode 100644
index 0000000..f66bb0d
--- /dev/null
+++ b/tests/mtx_lt/10_function.pd
@@ -0,0 +1,62 @@
+#N canvas 182 266 409 472 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 236 248 unpack 0 0 0 0;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 122 179 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 122 98 t b b;
+#X obj 185 156 t l l;
+#X obj 122 156 t l l;
+#X obj 122 221 mtx_lt;
+#X obj 236 269 <;
+#X obj 267 269 <;
+#X obj 298 268 <;
+#X obj 329 268 <;
+#X msg 166 200 matrix 2 1 \$1 \$2;
+#X obj 252 226 unpack 0 0;
+#X msg 185 133 5 3;
+#X msg 122 132 4 2 9 8;
+#X connect 0 0 13 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 3 2 10 0;
+#X connect 3 3 11 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 17 0;
+#X connect 7 1 18 0;
+#X connect 7 2 19 0;
+#X connect 7 3 20 0;
+#X connect 8 0 5 0;
+#X connect 9 0 5 1;
+#X connect 10 0 4 0;
+#X connect 11 0 4 1;
+#X connect 12 0 16 0;
+#X connect 13 0 24 0;
+#X connect 13 1 23 0;
+#X connect 14 0 21 0;
+#X connect 14 1 22 0;
+#X connect 15 0 12 0;
+#X connect 15 1 7 0;
+#X connect 16 0 2 0;
+#X connect 17 0 8 1;
+#X connect 18 0 9 1;
+#X connect 19 0 10 1;
+#X connect 20 0 11 1;
+#X connect 21 0 16 1;
+#X connect 22 0 17 1;
+#X connect 22 0 18 1;
+#X connect 22 1 19 1;
+#X connect 22 1 20 1;
+#X connect 23 0 14 0;
+#X connect 24 0 15 0;
diff --git a/tests/mtx_neq/01_function.pd b/tests/mtx_neq/01_function.pd
new file mode 100644
index 0000000..13d0171
--- /dev/null
+++ b/tests/mtx_neq/01_function.pd
@@ -0,0 +1,49 @@
+#N canvas 117 373 440 427 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 236 200 unpack 0 0 0 0;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 122 179 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 122 156 t l l;
+#X obj 122 98 t b;
+#X obj 122 221 mtx_neq 2;
+#X obj 236 221 != 2;
+#X obj 277 221 != 2;
+#X obj 318 220 != 2;
+#X obj 359 220 != 2;
+#X msg 122 132 2 5 -1.1 4;
+#X connect 0 0 14 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 3 2 10 0;
+#X connect 3 3 11 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 16 0;
+#X connect 7 1 17 0;
+#X connect 7 2 18 0;
+#X connect 7 3 19 0;
+#X connect 8 0 5 0;
+#X connect 9 0 5 1;
+#X connect 10 0 4 0;
+#X connect 11 0 4 1;
+#X connect 12 0 15 0;
+#X connect 13 0 12 0;
+#X connect 13 1 7 0;
+#X connect 14 0 20 0;
+#X connect 15 0 2 0;
+#X connect 16 0 8 1;
+#X connect 17 0 9 1;
+#X connect 18 0 10 1;
+#X connect 19 0 11 1;
+#X connect 20 0 13 0;
diff --git a/tests/mtx_neq/02_function.pd b/tests/mtx_neq/02_function.pd
new file mode 100644
index 0000000..290a534
--- /dev/null
+++ b/tests/mtx_neq/02_function.pd
@@ -0,0 +1,62 @@
+#N canvas 176 399 508 466 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 236 248 unpack 0 0 0 0;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 166 200 matrix 2 2 \$1 \$2 \$3 \$4;
+#X msg 122 179 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 252 228 unpack 0 0 0 0;
+#X obj 122 98 t b b;
+#X obj 185 156 t l l;
+#X obj 122 156 t l l;
+#X obj 122 221 mtx_neq;
+#X obj 236 269 !=;
+#X obj 267 269 !=;
+#X obj 298 268 !=;
+#X obj 329 268 !=;
+#X msg 122 132 1 2 3 4;
+#X msg 185 133 9 8 7 6;
+#X connect 0 0 15 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 3 2 10 0;
+#X connect 3 3 11 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 19 0;
+#X connect 7 1 20 0;
+#X connect 7 2 21 0;
+#X connect 7 3 22 0;
+#X connect 8 0 5 0;
+#X connect 9 0 5 1;
+#X connect 10 0 4 0;
+#X connect 11 0 4 1;
+#X connect 12 0 18 1;
+#X connect 13 0 18 0;
+#X connect 14 0 19 1;
+#X connect 14 1 20 1;
+#X connect 14 2 21 1;
+#X connect 14 3 22 1;
+#X connect 15 0 23 0;
+#X connect 15 1 24 0;
+#X connect 16 0 12 0;
+#X connect 16 1 14 0;
+#X connect 17 0 13 0;
+#X connect 17 1 7 0;
+#X connect 18 0 2 0;
+#X connect 19 0 8 1;
+#X connect 20 0 9 1;
+#X connect 21 0 10 1;
+#X connect 22 0 11 1;
+#X connect 23 0 17 0;
+#X connect 24 0 16 0;
diff --git a/tests/mtx_neq/03_function.pd b/tests/mtx_neq/03_function.pd
new file mode 100644
index 0000000..2051f10
--- /dev/null
+++ b/tests/mtx_neq/03_function.pd
@@ -0,0 +1,49 @@
+#N canvas 144 215 431 450 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 256 200 unpack 0 0 0 0;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 122 179 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 122 156 t l l;
+#X obj 122 98 t b;
+#X msg 122 132 3 2 1 0;
+#X obj 122 221 mtx_neq 1;
+#X obj 256 221 != 1;
+#X obj 297 221 != 1;
+#X obj 338 220 != 1;
+#X obj 379 220 != 1;
+#X connect 0 0 14 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 3 2 10 0;
+#X connect 3 3 11 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 17 0;
+#X connect 7 1 18 0;
+#X connect 7 2 19 0;
+#X connect 7 3 20 0;
+#X connect 8 0 5 0;
+#X connect 9 0 5 1;
+#X connect 10 0 4 0;
+#X connect 11 0 4 1;
+#X connect 12 0 16 0;
+#X connect 13 0 12 0;
+#X connect 13 1 7 0;
+#X connect 14 0 15 0;
+#X connect 15 0 13 0;
+#X connect 16 0 2 0;
+#X connect 17 0 8 1;
+#X connect 18 0 9 1;
+#X connect 19 0 10 1;
+#X connect 20 0 11 1;
diff --git a/tests/mtx_neq/04_function.pd b/tests/mtx_neq/04_function.pd
new file mode 100644
index 0000000..810dc93
--- /dev/null
+++ b/tests/mtx_neq/04_function.pd
@@ -0,0 +1,60 @@
+#N canvas 190 400 412 429 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 185 190 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 252 228 unpack 0 0 0 0;
+#X obj 122 98 t b b;
+#X obj 185 156 t l l;
+#X obj 122 221 mtx_neq;
+#X obj 236 269 !=;
+#X obj 267 269 !=;
+#X obj 298 268 !=;
+#X obj 329 268 !=;
+#X obj 122 156 t f f;
+#X obj 236 248 t f f f f;
+#X msg 122 132 5;
+#X msg 185 133 1 2 4 8;
+#X connect 0 0 13 0;
+#X connect 2 0 3 0;
+#X connect 3 0 7 0;
+#X connect 3 1 8 0;
+#X connect 3 2 9 0;
+#X connect 3 3 10 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 5 0;
+#X connect 8 0 5 1;
+#X connect 9 0 4 0;
+#X connect 10 0 4 1;
+#X connect 11 0 15 1;
+#X connect 12 0 16 1;
+#X connect 12 1 17 1;
+#X connect 12 2 18 1;
+#X connect 12 3 19 1;
+#X connect 13 0 22 0;
+#X connect 13 1 23 0;
+#X connect 14 0 11 0;
+#X connect 14 1 12 0;
+#X connect 15 0 2 0;
+#X connect 16 0 7 1;
+#X connect 17 0 8 1;
+#X connect 18 0 9 1;
+#X connect 19 0 10 1;
+#X connect 20 0 15 0;
+#X connect 20 1 21 0;
+#X connect 21 0 16 0;
+#X connect 21 1 17 0;
+#X connect 21 2 18 0;
+#X connect 21 3 19 0;
+#X connect 22 0 20 0;
+#X connect 23 0 14 0;
diff --git a/tests/mtx_neq/05_function.pd b/tests/mtx_neq/05_function.pd
new file mode 100644
index 0000000..e3fcab8
--- /dev/null
+++ b/tests/mtx_neq/05_function.pd
@@ -0,0 +1,17 @@
+#N canvas 55 354 508 466 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X obj 122 307 ==;
+#X obj 122 98 t b;
+#X obj 122 174 t f f;
+#X msg 122 132 11;
+#X obj 122 221 mtx_neq 7;
+#X obj 207 221 != 7;
+#X connect 0 0 3 0;
+#X connect 2 0 1 0;
+#X connect 3 0 5 0;
+#X connect 4 0 6 0;
+#X connect 4 1 7 0;
+#X connect 5 0 4 0;
+#X connect 6 0 2 0;
+#X connect 7 0 2 1;
diff --git a/tests/mtx_neq/06_function.pd b/tests/mtx_neq/06_function.pd
new file mode 100644
index 0000000..2bd0deb
--- /dev/null
+++ b/tests/mtx_neq/06_function.pd
@@ -0,0 +1,60 @@
+#N canvas 282 295 386 465 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 236 248 unpack 0 0 0 0;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 122 179 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 122 98 t b b;
+#X obj 122 156 t l l;
+#X obj 236 269 !=;
+#X obj 267 269 !=;
+#X obj 298 268 !=;
+#X obj 329 268 !=;
+#X obj 252 228 t f f f f;
+#X obj 185 156 t f f;
+#X obj 122 221 mtx_neq 0;
+#X msg 122 132 0 2 3 5;
+#X msg 185 133 17;
+#X connect 0 0 13 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 3 2 10 0;
+#X connect 3 3 11 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 15 0;
+#X connect 7 1 16 0;
+#X connect 7 2 17 0;
+#X connect 7 3 18 0;
+#X connect 8 0 5 0;
+#X connect 9 0 5 1;
+#X connect 10 0 4 0;
+#X connect 11 0 4 1;
+#X connect 12 0 21 0;
+#X connect 13 0 22 0;
+#X connect 13 1 23 0;
+#X connect 14 0 12 0;
+#X connect 14 1 7 0;
+#X connect 15 0 8 1;
+#X connect 16 0 9 1;
+#X connect 17 0 10 1;
+#X connect 18 0 11 1;
+#X connect 19 0 15 1;
+#X connect 19 1 16 1;
+#X connect 19 2 17 1;
+#X connect 19 3 18 1;
+#X connect 20 0 21 1;
+#X connect 20 1 19 0;
+#X connect 21 0 2 0;
+#X connect 22 0 14 0;
+#X connect 23 0 20 0;
diff --git a/tests/mtx_neq/07_function.pd b/tests/mtx_neq/07_function.pd
new file mode 100644
index 0000000..0856831
--- /dev/null
+++ b/tests/mtx_neq/07_function.pd
@@ -0,0 +1,23 @@
+#N canvas 270 180 508 466 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 213 71 bang;
+#X obj 122 98 t b b;
+#X obj 122 175 t f f;
+#X obj 122 307 ==;
+#X obj 122 251 mtx_neq 0;
+#X obj 239 251 !=;
+#X msg 122 132 6;
+#X msg 152 131 9;
+#X connect 0 0 3 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 4 0 6 0;
+#X connect 4 1 7 0;
+#X connect 5 0 1 0;
+#X connect 6 0 5 0;
+#X connect 7 0 5 1;
+#X connect 8 0 4 0;
+#X connect 9 0 6 1;
+#X connect 9 0 7 1;
diff --git a/tests/mtx_neq/08_function.pd b/tests/mtx_neq/08_function.pd
new file mode 100644
index 0000000..f4a9389
--- /dev/null
+++ b/tests/mtx_neq/08_function.pd
@@ -0,0 +1,60 @@
+#N canvas 277 252 796 483 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 236 248 unpack 0 0 0 0;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 122 179 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 122 98 t b b;
+#X obj 122 156 t l l;
+#X obj 236 269 !=;
+#X obj 267 269 !=;
+#X obj 298 268 !=;
+#X obj 329 268 !=;
+#X obj 252 228 t f f f f;
+#X obj 185 156 t f f;
+#X obj 122 221 mtx_neq 0;
+#X msg 122 132 4 3 7 6;
+#X msg 185 133 123;
+#X connect 0 0 13 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 3 2 10 0;
+#X connect 3 3 11 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 15 0;
+#X connect 7 1 16 0;
+#X connect 7 2 17 0;
+#X connect 7 3 18 0;
+#X connect 8 0 5 0;
+#X connect 9 0 5 1;
+#X connect 10 0 4 0;
+#X connect 11 0 4 1;
+#X connect 12 0 21 0;
+#X connect 13 0 22 0;
+#X connect 13 1 23 0;
+#X connect 14 0 12 0;
+#X connect 14 1 7 0;
+#X connect 15 0 8 1;
+#X connect 16 0 9 1;
+#X connect 17 0 10 1;
+#X connect 18 0 11 1;
+#X connect 19 0 15 1;
+#X connect 19 1 16 1;
+#X connect 19 2 17 1;
+#X connect 19 3 18 1;
+#X connect 20 0 21 1;
+#X connect 20 1 19 0;
+#X connect 21 0 2 0;
+#X connect 22 0 14 0;
+#X connect 23 0 20 0;
diff --git a/tests/mtx_neq/09_function.pd b/tests/mtx_neq/09_function.pd
new file mode 100644
index 0000000..cddce3a
--- /dev/null
+++ b/tests/mtx_neq/09_function.pd
@@ -0,0 +1,62 @@
+#N canvas 311 295 379 440 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 236 248 unpack 0 0 0 0;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 122 179 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 122 98 t b b;
+#X obj 185 156 t l l;
+#X obj 122 156 t l l;
+#X obj 122 221 mtx_neq;
+#X obj 236 269 !=;
+#X obj 267 269 !=;
+#X obj 298 268 !=;
+#X obj 329 268 !=;
+#X msg 186 200 matrix 1 2 \$1 \$2;
+#X obj 252 228 unpack 0 0;
+#X msg 122 132 10 9 -1 3;
+#X msg 185 133 7 34;
+#X connect 0 0 13 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 3 2 10 0;
+#X connect 3 3 11 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 17 0;
+#X connect 7 1 18 0;
+#X connect 7 2 19 0;
+#X connect 7 3 20 0;
+#X connect 8 0 5 0;
+#X connect 9 0 5 1;
+#X connect 10 0 4 0;
+#X connect 11 0 4 1;
+#X connect 12 0 16 0;
+#X connect 13 0 23 0;
+#X connect 13 1 24 0;
+#X connect 14 0 21 0;
+#X connect 14 1 22 0;
+#X connect 15 0 12 0;
+#X connect 15 1 7 0;
+#X connect 16 0 2 0;
+#X connect 17 0 8 1;
+#X connect 18 0 9 1;
+#X connect 19 0 10 1;
+#X connect 20 0 11 1;
+#X connect 21 0 16 1;
+#X connect 22 0 17 1;
+#X connect 22 0 19 1;
+#X connect 22 1 18 1;
+#X connect 22 1 20 1;
+#X connect 23 0 15 0;
+#X connect 24 0 14 0;
diff --git a/tests/mtx_neq/10_function.pd b/tests/mtx_neq/10_function.pd
new file mode 100644
index 0000000..104415a
--- /dev/null
+++ b/tests/mtx_neq/10_function.pd
@@ -0,0 +1,62 @@
+#N canvas 182 266 409 472 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 236 248 unpack 0 0 0 0;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 122 179 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 122 98 t b b;
+#X obj 185 156 t l l;
+#X obj 122 156 t l l;
+#X obj 122 221 mtx_neq;
+#X obj 236 269 !=;
+#X obj 267 269 !=;
+#X obj 298 268 !=;
+#X obj 329 268 !=;
+#X msg 166 200 matrix 2 1 \$1 \$2;
+#X obj 252 226 unpack 0 0;
+#X msg 185 133 5 3;
+#X msg 122 132 4 2 9 8;
+#X connect 0 0 13 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 3 2 10 0;
+#X connect 3 3 11 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 17 0;
+#X connect 7 1 18 0;
+#X connect 7 2 19 0;
+#X connect 7 3 20 0;
+#X connect 8 0 5 0;
+#X connect 9 0 5 1;
+#X connect 10 0 4 0;
+#X connect 11 0 4 1;
+#X connect 12 0 16 0;
+#X connect 13 0 24 0;
+#X connect 13 1 23 0;
+#X connect 14 0 21 0;
+#X connect 14 1 22 0;
+#X connect 15 0 12 0;
+#X connect 15 1 7 0;
+#X connect 16 0 2 0;
+#X connect 17 0 8 1;
+#X connect 18 0 9 1;
+#X connect 19 0 10 1;
+#X connect 20 0 11 1;
+#X connect 21 0 16 1;
+#X connect 22 0 17 1;
+#X connect 22 0 18 1;
+#X connect 22 1 19 1;
+#X connect 22 1 20 1;
+#X connect 23 0 14 0;
+#X connect 24 0 15 0;
diff --git a/tests/mtx_or/01_function.pd b/tests/mtx_or/01_function.pd
new file mode 100644
index 0000000..ea80ad5
--- /dev/null
+++ b/tests/mtx_or/01_function.pd
@@ -0,0 +1,49 @@
+#N canvas 117 373 440 427 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 236 200 unpack 0 0 0 0;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 122 179 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 122 156 t l l;
+#X obj 122 98 t b;
+#X msg 122 132 0 1 0 2;
+#X obj 122 221 mtx_or 4;
+#X obj 236 221 || 4;
+#X obj 277 221 || 4;
+#X obj 318 220 || 4;
+#X obj 359 220 || 4;
+#X connect 0 0 14 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 3 2 10 0;
+#X connect 3 3 11 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 17 0;
+#X connect 7 1 18 0;
+#X connect 7 2 19 0;
+#X connect 7 3 20 0;
+#X connect 8 0 5 0;
+#X connect 9 0 5 1;
+#X connect 10 0 4 0;
+#X connect 11 0 4 1;
+#X connect 12 0 16 0;
+#X connect 13 0 12 0;
+#X connect 13 1 7 0;
+#X connect 14 0 15 0;
+#X connect 15 0 13 0;
+#X connect 16 0 2 0;
+#X connect 17 0 8 1;
+#X connect 18 0 9 1;
+#X connect 19 0 10 1;
+#X connect 20 0 11 1;
diff --git a/tests/mtx_or/02_function.pd b/tests/mtx_or/02_function.pd
new file mode 100644
index 0000000..eea7ffb
--- /dev/null
+++ b/tests/mtx_or/02_function.pd
@@ -0,0 +1,62 @@
+#N canvas 721 420 508 466 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 236 248 unpack 0 0 0 0;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 166 200 matrix 2 2 \$1 \$2 \$3 \$4;
+#X msg 122 179 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 252 228 unpack 0 0 0 0;
+#X obj 122 98 t b b;
+#X obj 185 156 t l l;
+#X obj 122 156 t l l;
+#X obj 122 221 mtx_or;
+#X obj 236 269 ||;
+#X obj 267 269 ||;
+#X obj 298 268 ||;
+#X obj 329 268 ||;
+#X msg 122 132 0 1 0 1;
+#X msg 185 133 1 1 0 0;
+#X connect 0 0 15 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 3 2 10 0;
+#X connect 3 3 11 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 19 0;
+#X connect 7 1 20 0;
+#X connect 7 2 21 0;
+#X connect 7 3 22 0;
+#X connect 8 0 5 0;
+#X connect 9 0 5 1;
+#X connect 10 0 4 0;
+#X connect 11 0 4 1;
+#X connect 12 0 18 1;
+#X connect 13 0 18 0;
+#X connect 14 0 19 1;
+#X connect 14 1 20 1;
+#X connect 14 2 21 1;
+#X connect 14 3 22 1;
+#X connect 15 0 23 0;
+#X connect 15 1 24 0;
+#X connect 16 0 12 0;
+#X connect 16 1 14 0;
+#X connect 17 0 13 0;
+#X connect 17 1 7 0;
+#X connect 18 0 2 0;
+#X connect 19 0 8 1;
+#X connect 20 0 9 1;
+#X connect 21 0 10 1;
+#X connect 22 0 11 1;
+#X connect 23 0 17 0;
+#X connect 24 0 16 0;
diff --git a/tests/mtx_or/03_function.pd b/tests/mtx_or/03_function.pd
new file mode 100644
index 0000000..1e1a2ee
--- /dev/null
+++ b/tests/mtx_or/03_function.pd
@@ -0,0 +1,49 @@
+#N canvas 144 215 431 450 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 256 200 unpack 0 0 0 0;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 122 179 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 122 156 t l l;
+#X obj 122 98 t b;
+#X msg 122 132 0 1 2 3;
+#X obj 122 221 mtx_or 2;
+#X obj 256 221 || 2;
+#X obj 297 221 || 2;
+#X obj 338 220 || 2;
+#X obj 379 220 || 2;
+#X connect 0 0 14 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 3 2 10 0;
+#X connect 3 3 11 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 17 0;
+#X connect 7 1 18 0;
+#X connect 7 2 19 0;
+#X connect 7 3 20 0;
+#X connect 8 0 5 0;
+#X connect 9 0 5 1;
+#X connect 10 0 4 0;
+#X connect 11 0 4 1;
+#X connect 12 0 16 0;
+#X connect 13 0 12 0;
+#X connect 13 1 7 0;
+#X connect 14 0 15 0;
+#X connect 15 0 13 0;
+#X connect 16 0 2 0;
+#X connect 17 0 8 1;
+#X connect 18 0 9 1;
+#X connect 19 0 10 1;
+#X connect 20 0 11 1;
diff --git a/tests/mtx_or/04_function.pd b/tests/mtx_or/04_function.pd
new file mode 100644
index 0000000..61877ed
--- /dev/null
+++ b/tests/mtx_or/04_function.pd
@@ -0,0 +1,60 @@
+#N canvas 385 142 412 429 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 185 190 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 252 228 unpack 0 0 0 0;
+#X obj 122 98 t b b;
+#X obj 185 156 t l l;
+#X obj 122 221 mtx_or;
+#X obj 122 156 t f f;
+#X obj 236 248 t f f f f;
+#X msg 122 132 2;
+#X obj 236 269 ||;
+#X obj 267 269 ||;
+#X obj 298 268 ||;
+#X obj 329 268 ||;
+#X msg 185 133 1 0 3 2;
+#X connect 0 0 13 0;
+#X connect 2 0 3 0;
+#X connect 3 0 7 0;
+#X connect 3 1 8 0;
+#X connect 3 2 9 0;
+#X connect 3 3 10 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 5 0;
+#X connect 8 0 5 1;
+#X connect 9 0 4 0;
+#X connect 10 0 4 1;
+#X connect 11 0 15 1;
+#X connect 12 0 19 1;
+#X connect 12 1 20 1;
+#X connect 12 2 21 1;
+#X connect 12 3 22 1;
+#X connect 13 0 18 0;
+#X connect 13 1 23 0;
+#X connect 14 0 11 0;
+#X connect 14 1 12 0;
+#X connect 15 0 2 0;
+#X connect 16 0 15 0;
+#X connect 16 1 17 0;
+#X connect 17 0 19 0;
+#X connect 17 1 20 0;
+#X connect 17 2 21 0;
+#X connect 17 3 22 0;
+#X connect 18 0 16 0;
+#X connect 19 0 7 1;
+#X connect 20 0 8 1;
+#X connect 21 0 9 1;
+#X connect 22 0 10 1;
+#X connect 23 0 14 0;
diff --git a/tests/mtx_or/05_function.pd b/tests/mtx_or/05_function.pd
new file mode 100644
index 0000000..14ccc8b
--- /dev/null
+++ b/tests/mtx_or/05_function.pd
@@ -0,0 +1,17 @@
+#N canvas 55 354 508 466 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X obj 122 307 ==;
+#X obj 122 98 t b;
+#X obj 122 174 t f f;
+#X msg 122 132 6.2;
+#X obj 122 221 mtx_or 1.1;
+#X obj 207 222 || 1.1;
+#X connect 0 0 3 0;
+#X connect 2 0 1 0;
+#X connect 3 0 5 0;
+#X connect 4 0 6 0;
+#X connect 4 1 7 0;
+#X connect 5 0 4 0;
+#X connect 6 0 2 0;
+#X connect 7 0 2 1;
diff --git a/tests/mtx_or/06_function.pd b/tests/mtx_or/06_function.pd
new file mode 100644
index 0000000..cbcd563
--- /dev/null
+++ b/tests/mtx_or/06_function.pd
@@ -0,0 +1,60 @@
+#N canvas 385 142 386 465 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 236 248 unpack 0 0 0 0;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 122 179 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 122 98 t b b;
+#X obj 122 156 t l l;
+#X obj 236 269 ||;
+#X obj 267 269 ||;
+#X obj 298 268 ||;
+#X obj 329 268 ||;
+#X obj 252 228 t f f f f;
+#X obj 185 156 t f f;
+#X obj 122 221 mtx_or 0;
+#X msg 82 132 -1 0 2.2 0.1;
+#X msg 185 133 3.1;
+#X connect 0 0 13 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 3 2 10 0;
+#X connect 3 3 11 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 15 0;
+#X connect 7 1 16 0;
+#X connect 7 2 17 0;
+#X connect 7 3 18 0;
+#X connect 8 0 5 0;
+#X connect 9 0 5 1;
+#X connect 10 0 4 0;
+#X connect 11 0 4 1;
+#X connect 12 0 21 0;
+#X connect 13 0 22 0;
+#X connect 13 1 23 0;
+#X connect 14 0 12 0;
+#X connect 14 1 7 0;
+#X connect 15 0 8 1;
+#X connect 16 0 9 1;
+#X connect 17 0 10 1;
+#X connect 18 0 11 1;
+#X connect 19 0 15 1;
+#X connect 19 1 16 1;
+#X connect 19 2 17 1;
+#X connect 19 3 18 1;
+#X connect 20 0 21 1;
+#X connect 20 1 19 0;
+#X connect 21 0 2 0;
+#X connect 22 0 14 0;
+#X connect 23 0 20 0;
diff --git a/tests/mtx_or/07_function.pd b/tests/mtx_or/07_function.pd
new file mode 100644
index 0000000..66b134f
--- /dev/null
+++ b/tests/mtx_or/07_function.pd
@@ -0,0 +1,23 @@
+#N canvas 270 180 508 466 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 213 71 bang;
+#X obj 122 98 t b b;
+#X obj 122 175 t f f;
+#X obj 122 307 ==;
+#X obj 122 251 mtx_or 0;
+#X obj 239 251 ||;
+#X msg 122 132 2;
+#X msg 152 131 0;
+#X connect 0 0 3 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 4 0 6 0;
+#X connect 4 1 7 0;
+#X connect 5 0 1 0;
+#X connect 6 0 5 0;
+#X connect 7 0 5 1;
+#X connect 8 0 4 0;
+#X connect 9 0 6 1;
+#X connect 9 0 7 1;
diff --git a/tests/mtx_or/08_function.pd b/tests/mtx_or/08_function.pd
new file mode 100644
index 0000000..27b7c38
--- /dev/null
+++ b/tests/mtx_or/08_function.pd
@@ -0,0 +1,60 @@
+#N canvas 277 252 796 483 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 236 248 unpack 0 0 0 0;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 122 179 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 122 98 t b b;
+#X obj 122 156 t l l;
+#X obj 236 269 ||;
+#X obj 267 269 ||;
+#X obj 298 268 ||;
+#X obj 329 268 ||;
+#X obj 252 228 t f f f f;
+#X obj 185 156 t f f;
+#X obj 122 221 mtx_or 0;
+#X msg 122 132 0 1 0 1;
+#X msg 185 133 2;
+#X connect 0 0 13 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 3 2 10 0;
+#X connect 3 3 11 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 15 0;
+#X connect 7 1 16 0;
+#X connect 7 2 17 0;
+#X connect 7 3 18 0;
+#X connect 8 0 5 0;
+#X connect 9 0 5 1;
+#X connect 10 0 4 0;
+#X connect 11 0 4 1;
+#X connect 12 0 21 0;
+#X connect 13 0 22 0;
+#X connect 13 1 23 0;
+#X connect 14 0 12 0;
+#X connect 14 1 7 0;
+#X connect 15 0 8 1;
+#X connect 16 0 9 1;
+#X connect 17 0 10 1;
+#X connect 18 0 11 1;
+#X connect 19 0 15 1;
+#X connect 19 1 16 1;
+#X connect 19 2 17 1;
+#X connect 19 3 18 1;
+#X connect 20 0 21 1;
+#X connect 20 1 19 0;
+#X connect 21 0 2 0;
+#X connect 22 0 14 0;
+#X connect 23 0 20 0;
diff --git a/tests/mtx_or/09_function.pd b/tests/mtx_or/09_function.pd
new file mode 100644
index 0000000..145403e
--- /dev/null
+++ b/tests/mtx_or/09_function.pd
@@ -0,0 +1,62 @@
+#N canvas 311 295 379 440 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 236 248 unpack 0 0 0 0;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 122 179 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 122 98 t b b;
+#X obj 185 156 t l l;
+#X obj 122 156 t l l;
+#X obj 122 221 mtx_or;
+#X obj 236 269 ||;
+#X obj 267 269 ||;
+#X obj 298 268 ||;
+#X obj 329 268 ||;
+#X msg 186 200 matrix 1 2 \$1 \$2;
+#X obj 252 228 unpack 0 0;
+#X msg 122 132 0 1 0 1;
+#X msg 185 133 1 0;
+#X connect 0 0 13 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 3 2 10 0;
+#X connect 3 3 11 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 17 0;
+#X connect 7 1 18 0;
+#X connect 7 2 19 0;
+#X connect 7 3 20 0;
+#X connect 8 0 5 0;
+#X connect 9 0 5 1;
+#X connect 10 0 4 0;
+#X connect 11 0 4 1;
+#X connect 12 0 16 0;
+#X connect 13 0 23 0;
+#X connect 13 1 24 0;
+#X connect 14 0 21 0;
+#X connect 14 1 22 0;
+#X connect 15 0 12 0;
+#X connect 15 1 7 0;
+#X connect 16 0 2 0;
+#X connect 17 0 8 1;
+#X connect 18 0 9 1;
+#X connect 19 0 10 1;
+#X connect 20 0 11 1;
+#X connect 21 0 16 1;
+#X connect 22 0 17 1;
+#X connect 22 0 19 1;
+#X connect 22 1 18 1;
+#X connect 22 1 20 1;
+#X connect 23 0 15 0;
+#X connect 24 0 14 0;
diff --git a/tests/mtx_or/10_function.pd b/tests/mtx_or/10_function.pd
new file mode 100644
index 0000000..4fb0aa0
--- /dev/null
+++ b/tests/mtx_or/10_function.pd
@@ -0,0 +1,62 @@
+#N canvas 182 266 409 472 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 236 248 unpack 0 0 0 0;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 122 179 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 122 98 t b b;
+#X obj 185 156 t l l;
+#X obj 122 156 t l l;
+#X obj 122 221 mtx_or;
+#X obj 236 269 ||;
+#X obj 267 269 ||;
+#X obj 298 268 ||;
+#X obj 329 268 ||;
+#X msg 166 200 matrix 2 1 \$1 \$2;
+#X obj 252 226 unpack 0 0;
+#X msg 122 132 1 0 -1 2;
+#X msg 185 133 0 1;
+#X connect 0 0 13 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 3 2 10 0;
+#X connect 3 3 11 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 17 0;
+#X connect 7 1 18 0;
+#X connect 7 2 19 0;
+#X connect 7 3 20 0;
+#X connect 8 0 5 0;
+#X connect 9 0 5 1;
+#X connect 10 0 4 0;
+#X connect 11 0 4 1;
+#X connect 12 0 16 0;
+#X connect 13 0 23 0;
+#X connect 13 1 24 0;
+#X connect 14 0 21 0;
+#X connect 14 1 22 0;
+#X connect 15 0 12 0;
+#X connect 15 1 7 0;
+#X connect 16 0 2 0;
+#X connect 17 0 8 1;
+#X connect 18 0 9 1;
+#X connect 19 0 10 1;
+#X connect 20 0 11 1;
+#X connect 21 0 16 1;
+#X connect 22 0 17 1;
+#X connect 22 0 18 1;
+#X connect 22 1 19 1;
+#X connect 22 1 20 1;
+#X connect 23 0 15 0;
+#X connect 24 0 14 0;
diff --git a/tests/mtx_sub/01_function.pd b/tests/mtx_sub/01_function.pd
new file mode 100644
index 0000000..fe6fc51
--- /dev/null
+++ b/tests/mtx_sub/01_function.pd
@@ -0,0 +1,49 @@
+#N canvas 117 373 440 427 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 236 200 unpack 0 0 0 0;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 122 179 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 122 156 t l l;
+#X obj 122 98 t b;
+#X msg 122 132 3 9 243 43;
+#X obj 122 221 mtx_sub -1;
+#X obj 236 221 - -1;
+#X obj 277 221 - -1;
+#X obj 318 220 - -1;
+#X obj 359 220 - -1;
+#X connect 0 0 14 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 3 2 10 0;
+#X connect 3 3 11 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 17 0;
+#X connect 7 1 18 0;
+#X connect 7 2 19 0;
+#X connect 7 3 20 0;
+#X connect 8 0 5 0;
+#X connect 9 0 5 1;
+#X connect 10 0 4 0;
+#X connect 11 0 4 1;
+#X connect 12 0 16 0;
+#X connect 13 0 12 0;
+#X connect 13 1 7 0;
+#X connect 14 0 15 0;
+#X connect 15 0 13 0;
+#X connect 16 0 2 0;
+#X connect 17 0 8 1;
+#X connect 18 0 9 1;
+#X connect 19 0 10 1;
+#X connect 20 0 11 1;
diff --git a/tests/mtx_sub/02_function.pd b/tests/mtx_sub/02_function.pd
new file mode 100644
index 0000000..3f761a9
--- /dev/null
+++ b/tests/mtx_sub/02_function.pd
@@ -0,0 +1,62 @@
+#N canvas 252 376 508 466 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 236 248 unpack 0 0 0 0;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 166 200 matrix 2 2 \$1 \$2 \$3 \$4;
+#X msg 122 179 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 252 228 unpack 0 0 0 0;
+#X obj 122 98 t b b;
+#X obj 185 156 t l l;
+#X obj 122 156 t l l;
+#X obj 122 221 mtx_sub;
+#X obj 236 269 -;
+#X obj 267 269 -;
+#X obj 298 268 -;
+#X obj 329 268 -;
+#X msg 122 132 1 3 2 -1;
+#X msg 185 133 0 0 4 6;
+#X connect 0 0 15 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 3 2 10 0;
+#X connect 3 3 11 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 19 0;
+#X connect 7 1 20 0;
+#X connect 7 2 21 0;
+#X connect 7 3 22 0;
+#X connect 8 0 5 0;
+#X connect 9 0 5 1;
+#X connect 10 0 4 0;
+#X connect 11 0 4 1;
+#X connect 12 0 18 1;
+#X connect 13 0 18 0;
+#X connect 14 0 19 1;
+#X connect 14 1 20 1;
+#X connect 14 2 21 1;
+#X connect 14 3 22 1;
+#X connect 15 0 23 0;
+#X connect 15 1 24 0;
+#X connect 16 0 12 0;
+#X connect 16 1 14 0;
+#X connect 17 0 13 0;
+#X connect 17 1 7 0;
+#X connect 18 0 2 0;
+#X connect 19 0 8 1;
+#X connect 20 0 9 1;
+#X connect 21 0 10 1;
+#X connect 22 0 11 1;
+#X connect 23 0 17 0;
+#X connect 24 0 16 0;
diff --git a/tests/mtx_sub/03_function.pd b/tests/mtx_sub/03_function.pd
new file mode 100644
index 0000000..3623c38
--- /dev/null
+++ b/tests/mtx_sub/03_function.pd
@@ -0,0 +1,49 @@
+#N canvas 144 215 431 450 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 256 200 unpack 0 0 0 0;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 122 179 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 122 156 t l l;
+#X obj 122 98 t b;
+#X msg 122 132 23 -3 4.4 9;
+#X obj 122 221 mtx_sub 6;
+#X obj 256 221 - 6;
+#X obj 297 221 - 6;
+#X obj 338 220 - 6;
+#X obj 379 220 - 6;
+#X connect 0 0 14 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 3 2 10 0;
+#X connect 3 3 11 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 17 0;
+#X connect 7 1 18 0;
+#X connect 7 2 19 0;
+#X connect 7 3 20 0;
+#X connect 8 0 5 0;
+#X connect 9 0 5 1;
+#X connect 10 0 4 0;
+#X connect 11 0 4 1;
+#X connect 12 0 16 0;
+#X connect 13 0 12 0;
+#X connect 13 1 7 0;
+#X connect 14 0 15 0;
+#X connect 15 0 13 0;
+#X connect 16 0 2 0;
+#X connect 17 0 8 1;
+#X connect 18 0 9 1;
+#X connect 19 0 10 1;
+#X connect 20 0 11 1;
diff --git a/tests/mtx_sub/04_function.pd b/tests/mtx_sub/04_function.pd
new file mode 100644
index 0000000..5cc865b
--- /dev/null
+++ b/tests/mtx_sub/04_function.pd
@@ -0,0 +1,60 @@
+#N canvas 385 142 412 429 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 185 190 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 252 228 unpack 0 0 0 0;
+#X obj 122 98 t b b;
+#X obj 185 156 t l l;
+#X obj 122 221 mtx_sub;
+#X obj 236 269 -;
+#X obj 267 269 -;
+#X obj 298 268 -;
+#X obj 329 268 -;
+#X obj 122 156 t f f;
+#X obj 236 248 t f f f f;
+#X msg 122 132 8;
+#X msg 185 133 5 3 -1000 12.1235;
+#X connect 0 0 13 0;
+#X connect 2 0 3 0;
+#X connect 3 0 7 0;
+#X connect 3 1 8 0;
+#X connect 3 2 9 0;
+#X connect 3 3 10 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 5 0;
+#X connect 8 0 5 1;
+#X connect 9 0 4 0;
+#X connect 10 0 4 1;
+#X connect 11 0 15 1;
+#X connect 12 0 16 1;
+#X connect 12 1 17 1;
+#X connect 12 2 18 1;
+#X connect 12 3 19 1;
+#X connect 13 0 22 0;
+#X connect 13 1 23 0;
+#X connect 14 0 11 0;
+#X connect 14 1 12 0;
+#X connect 15 0 2 0;
+#X connect 16 0 7 1;
+#X connect 17 0 8 1;
+#X connect 18 0 9 1;
+#X connect 19 0 10 1;
+#X connect 20 0 15 0;
+#X connect 20 1 21 0;
+#X connect 21 0 16 0;
+#X connect 21 1 17 0;
+#X connect 21 2 18 0;
+#X connect 21 3 19 0;
+#X connect 22 0 20 0;
+#X connect 23 0 14 0;
diff --git a/tests/mtx_sub/05_function.pd b/tests/mtx_sub/05_function.pd
new file mode 100644
index 0000000..65026d8
--- /dev/null
+++ b/tests/mtx_sub/05_function.pd
@@ -0,0 +1,17 @@
+#N canvas 55 354 508 466 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X obj 122 307 ==;
+#X obj 122 98 t b;
+#X obj 122 174 t f f;
+#X msg 122 132 7;
+#X obj 122 221 mtx_sub 2.1;
+#X obj 207 221 - 2.1;
+#X connect 0 0 3 0;
+#X connect 2 0 1 0;
+#X connect 3 0 5 0;
+#X connect 4 0 6 0;
+#X connect 4 1 7 0;
+#X connect 5 0 4 0;
+#X connect 6 0 2 0;
+#X connect 7 0 2 1;
diff --git a/tests/mtx_sub/06_function.pd b/tests/mtx_sub/06_function.pd
new file mode 100644
index 0000000..ee1b2dd
--- /dev/null
+++ b/tests/mtx_sub/06_function.pd
@@ -0,0 +1,60 @@
+#N canvas 385 142 386 465 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 236 248 unpack 0 0 0 0;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 122 179 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 122 98 t b b;
+#X obj 122 156 t l l;
+#X obj 236 269 -;
+#X obj 267 269 -;
+#X obj 298 268 -;
+#X obj 329 268 -;
+#X obj 252 228 t f f f f;
+#X obj 185 156 t f f;
+#X obj 122 221 mtx_sub 0;
+#X msg 122 132 4 34 76 0.1;
+#X msg 205 133 9.5;
+#X connect 0 0 13 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 3 2 10 0;
+#X connect 3 3 11 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 15 0;
+#X connect 7 1 16 0;
+#X connect 7 2 17 0;
+#X connect 7 3 18 0;
+#X connect 8 0 5 0;
+#X connect 9 0 5 1;
+#X connect 10 0 4 0;
+#X connect 11 0 4 1;
+#X connect 12 0 21 0;
+#X connect 13 0 22 0;
+#X connect 13 1 23 0;
+#X connect 14 0 12 0;
+#X connect 14 1 7 0;
+#X connect 15 0 8 1;
+#X connect 16 0 9 1;
+#X connect 17 0 10 1;
+#X connect 18 0 11 1;
+#X connect 19 0 15 1;
+#X connect 19 1 16 1;
+#X connect 19 2 17 1;
+#X connect 19 3 18 1;
+#X connect 20 0 21 1;
+#X connect 20 1 19 0;
+#X connect 21 0 2 0;
+#X connect 22 0 14 0;
+#X connect 23 0 20 0;
diff --git a/tests/mtx_sub/07_function.pd b/tests/mtx_sub/07_function.pd
new file mode 100644
index 0000000..9488d27
--- /dev/null
+++ b/tests/mtx_sub/07_function.pd
@@ -0,0 +1,23 @@
+#N canvas 270 180 508 466 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 213 71 bang;
+#X obj 122 98 t b b;
+#X obj 122 175 t f f;
+#X obj 122 307 ==;
+#X obj 122 251 mtx_sub 0;
+#X obj 239 251 -;
+#X msg 122 132 2;
+#X msg 152 131 6.9;
+#X connect 0 0 3 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 4 0 6 0;
+#X connect 4 1 7 0;
+#X connect 5 0 1 0;
+#X connect 6 0 5 0;
+#X connect 7 0 5 1;
+#X connect 8 0 4 0;
+#X connect 9 0 6 1;
+#X connect 9 0 7 1;
diff --git a/tests/mtx_sub/08_function.pd b/tests/mtx_sub/08_function.pd
new file mode 100644
index 0000000..e06c2f2
--- /dev/null
+++ b/tests/mtx_sub/08_function.pd
@@ -0,0 +1,60 @@
+#N canvas 277 252 796 483 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 236 248 unpack 0 0 0 0;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 122 179 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 122 98 t b b;
+#X obj 122 156 t l l;
+#X obj 236 269 -;
+#X obj 267 269 -;
+#X obj 298 268 -;
+#X obj 329 268 -;
+#X obj 252 228 t f f f f;
+#X obj 225 156 t f f;
+#X obj 122 221 mtx_sub 0;
+#X msg 225 133 9.99;
+#X msg 122 132 3 2 6543.1 -1;
+#X connect 0 0 13 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 3 2 10 0;
+#X connect 3 3 11 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 15 0;
+#X connect 7 1 16 0;
+#X connect 7 2 17 0;
+#X connect 7 3 18 0;
+#X connect 8 0 5 0;
+#X connect 9 0 5 1;
+#X connect 10 0 4 0;
+#X connect 11 0 4 1;
+#X connect 12 0 21 0;
+#X connect 13 0 23 0;
+#X connect 13 1 22 0;
+#X connect 14 0 12 0;
+#X connect 14 1 7 0;
+#X connect 15 0 8 1;
+#X connect 16 0 9 1;
+#X connect 17 0 10 1;
+#X connect 18 0 11 1;
+#X connect 19 0 15 1;
+#X connect 19 1 16 1;
+#X connect 19 2 17 1;
+#X connect 19 3 18 1;
+#X connect 20 0 21 1;
+#X connect 20 1 19 0;
+#X connect 21 0 2 0;
+#X connect 22 0 20 0;
+#X connect 23 0 14 0;
diff --git a/tests/mtx_sub/09_function.pd b/tests/mtx_sub/09_function.pd
new file mode 100644
index 0000000..97a4fe3
--- /dev/null
+++ b/tests/mtx_sub/09_function.pd
@@ -0,0 +1,62 @@
+#N canvas 311 295 379 440 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 236 248 unpack 0 0 0 0;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 122 179 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 122 98 t b b;
+#X obj 185 156 t l l;
+#X obj 122 156 t l l;
+#X obj 122 221 mtx_sub;
+#X obj 236 269 -;
+#X obj 267 269 -;
+#X obj 298 268 -;
+#X obj 329 268 -;
+#X msg 186 200 matrix 1 2 \$1 \$2;
+#X obj 252 228 unpack 0 0;
+#X msg 122 132 3 -1 0.2 4.4;
+#X msg 215 133 9.13;
+#X connect 0 0 13 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 3 2 10 0;
+#X connect 3 3 11 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 17 0;
+#X connect 7 1 18 0;
+#X connect 7 2 19 0;
+#X connect 7 3 20 0;
+#X connect 8 0 5 0;
+#X connect 9 0 5 1;
+#X connect 10 0 4 0;
+#X connect 11 0 4 1;
+#X connect 12 0 16 0;
+#X connect 13 0 23 0;
+#X connect 13 1 24 0;
+#X connect 14 0 21 0;
+#X connect 14 1 22 0;
+#X connect 15 0 12 0;
+#X connect 15 1 7 0;
+#X connect 16 0 2 0;
+#X connect 17 0 8 1;
+#X connect 18 0 9 1;
+#X connect 19 0 10 1;
+#X connect 20 0 11 1;
+#X connect 21 0 16 1;
+#X connect 22 0 17 1;
+#X connect 22 0 19 1;
+#X connect 22 1 18 1;
+#X connect 22 1 20 1;
+#X connect 23 0 15 0;
+#X connect 24 0 14 0;
diff --git a/tests/mtx_sub/10_function.pd b/tests/mtx_sub/10_function.pd
new file mode 100644
index 0000000..4c7b399
--- /dev/null
+++ b/tests/mtx_sub/10_function.pd
@@ -0,0 +1,62 @@
+#N canvas 182 266 409 472 10;
+#X obj 122 68 inlet bang;
+#X obj 122 385 outlet 1==OK;
+#X msg 122 243 \$3 \$4 \$5 \$6;
+#X obj 122 268 unpack 0 0 0 0;
+#X obj 184 330 *;
+#X obj 122 330 *;
+#X obj 122 356 *;
+#X obj 236 248 unpack 0 0 0 0;
+#X obj 122 307 ==;
+#X obj 153 307 ==;
+#X obj 184 307 ==;
+#X obj 215 307 ==;
+#X msg 122 179 matrix 2 2 \$1 \$2 \$3 \$4;
+#X obj 122 98 t b b;
+#X obj 185 156 t l l;
+#X obj 122 156 t l l;
+#X obj 122 221 mtx_sub;
+#X obj 236 269 -;
+#X obj 267 269 -;
+#X obj 298 268 -;
+#X obj 329 268 -;
+#X msg 166 200 matrix 2 1 \$1 \$2;
+#X obj 252 226 unpack 0 0;
+#X msg 122 132 3 2 -1 6;
+#X msg 185 133 12.5 -100;
+#X connect 0 0 13 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 3 2 10 0;
+#X connect 3 3 11 0;
+#X connect 4 0 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 17 0;
+#X connect 7 1 18 0;
+#X connect 7 2 19 0;
+#X connect 7 3 20 0;
+#X connect 8 0 5 0;
+#X connect 9 0 5 1;
+#X connect 10 0 4 0;
+#X connect 11 0 4 1;
+#X connect 12 0 16 0;
+#X connect 13 0 23 0;
+#X connect 13 1 24 0;
+#X connect 14 0 21 0;
+#X connect 14 1 22 0;
+#X connect 15 0 12 0;
+#X connect 15 1 7 0;
+#X connect 16 0 2 0;
+#X connect 17 0 8 1;
+#X connect 18 0 9 1;
+#X connect 19 0 10 1;
+#X connect 20 0 11 1;
+#X connect 21 0 16 1;
+#X connect 22 0 17 1;
+#X connect 22 0 18 1;
+#X connect 22 1 19 1;
+#X connect 22 1 20 1;
+#X connect 23 0 15 0;
+#X connect 24 0 14 0;
diff --git a/tests/runtests.txt b/tests/runtests.txt
index 6dd17a1..b224529 100644
--- a/tests/runtests.txt
+++ b/tests/runtests.txt
@@ -3,22 +3,70 @@ mtx_abs/01_function;
mtx_add/00_exist;
mtx_add/00_exist1;
mtx_add/01_function;
-mtx_add/01_function1;
mtx_add/02_function;
+mtx_add/03_function;
+mtx_add/04_function;
+mtx_add/05_function;
+mtx_add/06_function;
+mtx_add/07_function;
+mtx_add/08_function;
+mtx_add/09_function;
+mtx_add/10_function;
mtx_and/00_exist;
mtx_and/01_function;
mtx_and/02_function;
mtx_and/03_function;
+mtx_and/04_function;
+mtx_and/05_function;
+mtx_and/06_function;
+mtx_and/07_function;
+mtx_and/08_function;
+mtx_and/09_function;
+mtx_and/10_function;
mtx_bitand/00_exist;
mtx_bitand/01_function;
mtx_bitand/02_function;
mtx_bitand/03_function;
+mtx_bitand/04_function;
+mtx_bitand/05_function;
+mtx_bitand/06_function;
+mtx_bitand/07_function;
+mtx_bitand/08_function;
+mtx_bitand/09_function;
+mtx_bitand/10_function;
mtx_bitleft/00_exist;
+mtx_bitleft/01_function;
+mtx_bitleft/02_function;
+mtx_bitleft/03_function;
+mtx_bitleft/04_function;
+mtx_bitleft/05_function;
+mtx_bitleft/06_function;
+mtx_bitleft/07_function;
+mtx_bitleft/08_function;
+mtx_bitleft/09_function;
+mtx_bitleft/10_function;
mtx_bitor/00_exist;
mtx_bitor/01_function;
mtx_bitor/02_function;
mtx_bitor/03_function;
+mtx_bitor/04_function;
+mtx_bitor/05_function;
+mtx_bitor/06_function;
+mtx_bitor/07_function;
+mtx_bitor/08_function;
+mtx_bitor/09_function;
+mtx_bitor/10_function;
mtx_bitright/00_exist;
+mtx_bitright/01_function;
+mtx_bitright/02_function;
+mtx_bitright/03_function;
+mtx_bitright/04_function;
+mtx_bitright/05_function;
+mtx_bitright/06_function;
+mtx_bitright/07_function;
+mtx_bitright/08_function;
+mtx_bitright/09_function;
+mtx_bitright/10_function;
mtx_check/00_exist;
mtx_cholesky/00_exist;
mtx_col/00_exist;
@@ -37,19 +85,69 @@ mtx_distance2/00_exist;
mtx_egg/00_exist;
mtx_element/00_exist;
mtx_eq/00_exist;
+mtx_eq/01_function;
+mtx_eq/02_function;
+mtx_eq/03_function;
+mtx_eq/04_function;
+mtx_eq/05_function;
+mtx_eq/06_function;
+mtx_eq/07_function;
+mtx_eq/08_function;
+mtx_eq/09_function;
+mtx_eq/10_function;
mtx_exp/00_exist;
mtx_eye/00_exist;
mtx_fill/00_exist;
mtx_find/00_exist;
mtx_gauss/00_exist;
mtx_ge/00_exist;
+mtx_ge/01_function;
+mtx_ge/02_function;
+mtx_ge/03_function;
+mtx_ge/04_function;
+mtx_ge/05_function;
+mtx_ge/06_function;
+mtx_ge/07_function;
+mtx_ge/08_function;
+mtx_ge/09_function;
+mtx_ge/10_function;
mtx_gt/00_exist;
+mtx_gt/01_function;
+mtx_gt/02_function;
+mtx_gt/03_function;
+mtx_gt/04_function;
+mtx_gt/05_function;
+mtx_gt/06_function;
+mtx_gt/07_function;
+mtx_gt/08_function;
+mtx_gt/09_function;
+mtx_gt/10_function;
mtx_index/00_exist;
mtx_int/00_exist;
mtx_inverse/00_exist;
mtx_le/00_exist;
+mtx_le/01_function;
+mtx_le/02_function;
+mtx_le/03_function;
+mtx_le/04_function;
+mtx_le/05_function;
+mtx_le/06_function;
+mtx_le/07_function;
+mtx_le/08_function;
+mtx_le/09_function;
+mtx_le/10_function;
mtx_log/00_exist;
mtx_lt/00_exist;
+mtx_lt/01_function;
+mtx_lt/02_function;
+mtx_lt/03_function;
+mtx_lt/04_function;
+mtx_lt/05_function;
+mtx_lt/06_function;
+mtx_lt/07_function;
+mtx_lt/08_function;
+mtx_lt/09_function;
+mtx_lt/10_function;
mtx_matcher/00_exist;
mtx_matrix/00_exist;
mtx_matrix/00_exist1;
@@ -60,10 +158,30 @@ mtx_mul/00_exist;
mtx_mul/00_exist1;
mtx_mul/00_exist2;
mtx_neq/00_exist;
+mtx_neq/01_function;
+mtx_neq/02_function;
+mtx_neq/03_function;
+mtx_neq/04_function;
+mtx_neq/05_function;
+mtx_neq/06_function;
+mtx_neq/07_function;
+mtx_neq/08_function;
+mtx_neq/09_function;
+mtx_neq/10_function;
mtx_not/00_exist;
mtx_not/00_exist1;
mtx_ones/00_exist;
mtx_or/00_exist;
+mtx_or/01_function;
+mtx_or/02_function;
+mtx_or/03_function;
+mtx_or/04_function;
+mtx_or/05_function;
+mtx_or/06_function;
+mtx_or/07_function;
+mtx_or/08_function;
+mtx_or/09_function;
+mtx_or/10_function;
mtx_pivot/00_exist;
mtx_prod/00_exist;
mtx_rand/00_exist;
@@ -83,6 +201,16 @@ mtx_sort/00_exist;
mtx_spivot/00_exist;
mtx_sub/00_exist;
mtx_sub/00_exist1;
+mtx_sub/01_function;
+mtx_sub/02_function;
+mtx_sub/03_function;
+mtx_sub/04_function;
+mtx_sub/05_function;
+mtx_sub/06_function;
+mtx_sub/07_function;
+mtx_sub/08_function;
+mtx_sub/09_function;
+mtx_sub/10_function;
mtx_sum/00_exist;
mtx_symasym/00_exist;
mtx_trace/00_exist;