-
Notifications
You must be signed in to change notification settings - Fork 0
/
olssm_ND.pd
295 lines (295 loc) · 7.41 KB
/
olssm_ND.pd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
#N canvas 762 428 522 514 12;
#X declare -lib iemmatrix;
#X declare -lib hexloader;
#X obj -124 482 outlet;
#X obj -14 132 - 1;
#X obj 109 12 inlet mode;
#N canvas 718 168 537 355 matrix_mode 0;
#X obj -88 39 list split 3;
#X obj -48 69 cyclone/prepend col 1 0;
#X text 106 37 |;
#X text 106 46 |;
#X text 106 50 V;
#X obj 70 229 mtx_fill;
#X obj 70 159 mtx_slice;
#X msg 130 129 2 1 \$1 \$1;
#X obj -2 129 mtx;
#X obj 216 69 mtx_zeros;
#X obj -48 99 t b a b;
#X obj -48 259 mtx;
#X obj 16 99 r \$0-pre_matrix;
#X obj -38 289 s \$0-pre_matrix;
#X obj 216 99 s \$0-pre_matrix;
#X obj 96 189 r \$0-pre_matrix;
#X obj -88 9 inlet distance;
#X text 38 25 with itself;
#X text 58 10 distance;
#X obj -48 319 outlet;
#X obj 130 9 inlet n-1;
#X obj 216 9 inlet n;
#X msg 336 189 matrix \$1 2;
#X obj 336 9 inlet N;
#X connect 0 1 1 0;
#X connect 1 0 10 0;
#X connect 5 0 11 1;
#X connect 6 0 5 0;
#X connect 7 0 6 1;
#X connect 8 0 6 0;
#X connect 9 0 14 0;
#X connect 10 0 11 0;
#X connect 10 1 11 0;
#X connect 10 2 8 0;
#X connect 11 0 13 0;
#X connect 11 0 19 0;
#X connect 12 0 8 1;
#X connect 15 0 5 1;
#X connect 16 0 0 0;
#X connect 20 0 7 0;
#X connect 21 0 9 0;
#X connect 22 0 5 2;
#X connect 23 0 22 0;
#X restore 33 412 pd matrix_mode;
#N canvas 556 554 656 353 vector_mode 0;
#X obj -65 -71 inlet distance;
#X obj -65 232 outlet;
#X obj 30 132 mtx_index;
#X obj 294 102 mtx_zeros;
#N canvas 975 374 301 597 ttrindex 0;
#X obj 139 412 cyclone/prepend;
#X obj 241 262 list;
#X msg 241 182 list;
#X obj 114 562 outlet;
#X obj 37 172 f;
#X obj 37 232 until;
#X obj 37 292 cup;
#X obj 107 172 - 1;
#X obj 17 132 - 1;
#X obj 100 322 select;
#X obj 40 72 1;
#X obj 139 262 +;
#X obj 177 262 f;
#X obj 47 262 r \$0-set;
#X obj 157 202 r \$0-set;
#X obj 157 232 - 1;
#X obj 40 102 s \$0-set;
#X obj 37 202 trigger any any;
#X obj 114 532 list;
#X obj 17 452 - 1;
#X obj 17 42 t a b b;
#X obj 18 492 select;
#X obj 100 452 cup;
#X obj 37 412 r \$0-set;
#X obj 57 132 r \$0-nxt;
#X obj 37 382 s \$0-nxt;
#X obj 37 352 delay;
#X text 98 62 return its lower triangle \,;
#X text 145 82 excluding the main;
#X text 194 102 diagonal and;
#X text 252 142 row.;
#X text 208 122 the lowest;
#X obj 17 12 inlet b;
#X text 77 42 For a square matrix size = n \,;
#X connect 0 0 1 0;
#X connect 0 0 18 1;
#X connect 1 0 0 1;
#X connect 2 0 1 0;
#X connect 4 0 7 0;
#X connect 4 0 17 0;
#X connect 5 0 6 0;
#X connect 6 0 9 0;
#X connect 7 0 4 1;
#X connect 8 0 4 0;
#X connect 8 0 19 0;
#X connect 9 0 22 0;
#X connect 9 0 26 0;
#X connect 9 1 0 0;
#X connect 10 0 16 0;
#X connect 11 0 9 1;
#X connect 11 0 12 0;
#X connect 12 0 11 1;
#X connect 13 0 6 0;
#X connect 14 0 15 0;
#X connect 15 0 11 1;
#X connect 17 0 5 0;
#X connect 17 1 11 0;
#X connect 18 0 3 0;
#X connect 19 0 21 1;
#X connect 20 0 8 0;
#X connect 20 1 10 0;
#X connect 20 2 2 0;
#X connect 21 0 18 0;
#X connect 22 0 21 0;
#X connect 23 0 22 0;
#X connect 24 0 4 0;
#X connect 26 0 25 0;
#X connect 32 0 20 0;
#X restore 90 2 pd ttrindex;
#X obj 90 102 cyclone/prepend;
#X obj 90 -38 trigger any any;
#X obj 192 32 trigger any any;
#X obj -65 172 mtx_concat col;
#X msg 192 72 matrix \$1 1;
#X msg 294 72 \$1 1;
#X obj -65 202 mtx_transpose;
#X obj 90 -68 inlet n;
#X obj 192 2 expr ( (pow($f1 \, 2) - $f1) / 2 ) - $f1 + 1;
#X connect 0 0 8 0;
#X connect 2 0 8 1;
#X connect 3 0 8 1;
#X connect 4 0 5 0;
#X connect 5 0 2 1;
#X connect 6 0 4 0;
#X connect 6 1 13 0;
#X connect 7 0 9 0;
#X connect 7 1 10 0;
#X connect 8 0 2 0;
#X connect 8 0 11 0;
#X connect 9 0 5 1;
#X connect 10 0 3 0;
#X connect 11 0 1 0;
#X connect 12 0 6 0;
#X connect 13 0 7 0;
#X restore -219 442 pd vector_mode;
#X obj 109 102 s \$0-mode;
#X obj -219 382 cyclone/gate 2;
#X obj -219 302 r \$0-mode;
#X obj -219 352 + 1;
#X msg 176 72 0;
#X obj 126 42 loadbang;
#X obj -14 102 t a a;
#X obj -124 232 t a a;
#N canvas 0 23 404 566 info 0;
#X text -149 -2 ONLINE SELF-SIMILARITY;
#X text -149 279 OUTLET 1:;
#X text -130 499 the upper triangle remains only zeros.;
#X text -149 439 Else if mode = 1;
#X text -131 339 which contains the lower triangle of the self;
#X text -132 359 similarity matrix excluding the diagonal.;
#X text -132 379 The following is an example of the output for;
#X text -131 419 (2 \, 1) \, (3 \, 1) \, (3 \, 2);
#X text -131 399 a similarity matrix of size = 3:;
#X text -130 319 A vector of length = ( (n^2 - n) / 2 ) - n + 1 \,
;
#X text -130 459 A matrix of size = n \, whose lower triangle is;
#X text -130 479 euclidean distances of the last n lists \, while;
#X text -142 109 INLET 1: List of N numbers (N-Dimensional vector).
;
#X text -142 129 INLET 2: dimensions number (N) and window size (n)
;
#X text -149 299 If mode = 0;
#X text -149 28 This abstraction returns the lower triangle of a;
#X text -149 49 self-similarity matrix constructed with the n-latest
;
#X text -150 69 N-element vectors.;
#X text -80 169 0 = low triangle vector \, 1 = square matrix;
#X text -142 149 INLET 3: mode;
#X text -80 189 default = 0;
#X text -80 249 default = 0;
#X text -142 209 INLET 4: distance;
#X text -80 229 0 = taxicab \, 1 = euclidean;
#X restore -219 92 pd info;
#N canvas 0 22 158 100 import 0;
#X obj 19 20 import iemmatrix;
#X obj 19 50 import hexloader;
#X restore -219 62 pd import;
#X obj -124 12 inlet ND_list;
#X obj 18 132 s \$0-n;
#X obj -14 162 s \$0-n-1;
#X obj -14 72 unpack f f;
#X obj -43 282 cyclone/prepend;
#X obj -124 412 r \$0-n;
#X obj -14 12 inlet N_n;
#X text 0 480 Juan Ignacio Mendoza G. - 2022;
#X msg 59 252 matrix 1 \$1;
#X obj -57 233 pack f f;
#X obj 53 102 s \$0-N;
#X obj -57 202 r \$0-n-1;
#X obj 59 202 r \$0-N;
#X msg -14 42 \$2 \$1;
#X obj 24 352 r \$0-n-1;
#X obj 96 352 r \$0-n;
#X obj 158 352 r \$0-N;
#X obj -124 282 mtx_buffer;
#X obj 209 12 inlet dist;
#N canvas 757 379 486 283 mtx_dist 0;
#X obj 116 19 inlet;
#X obj 21 229 outlet;
#X obj 176 19 inlet;
#X obj 351 19 inlet;
#X obj 21 119 cyclone/gate 2;
#X obj 201 119 cyclone/gate 2;
#X obj 351 49 + 1;
#X obj 241 19 inlet;
#N canvas 1143 524 316 231 mtx_taxicab 0;
#X obj 109 14 inlet;
#X obj 57 195 outlet;
#X obj 57 14 inlet;
#X obj 57 44 mtx_-;
#X obj 57 74 mtx_abs;
#X obj 57 104 mtx_transpose;
#X obj 57 134 mtx_sum;
#X obj 57 164 prepend;
#X msg 169 104 matrix \$1 1;
#X obj 169 14 inlet n;
#X connect 0 0 3 1;
#X connect 2 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 1 0;
#X connect 8 0 7 1;
#X connect 9 0 8 0;
#X restore 21 189 pd mtx_taxicab;
#X obj 215 189 mtx_distance;
#X connect 0 0 4 1;
#X connect 2 0 5 1;
#X connect 3 0 6 0;
#X connect 4 0 8 0;
#X connect 4 1 9 0;
#X connect 5 0 8 1;
#X connect 5 1 9 1;
#X connect 6 0 5 0;
#X connect 6 0 4 0;
#X connect 7 0 8 2;
#X connect 8 0 1 0;
#X connect 9 0 1 0;
#X restore -124 352 pd mtx_dist;
#X obj 209 282 i;
#X obj -43 312 r \$0-n-1;
#X connect 1 0 17 0;
#X connect 2 0 5 0;
#X connect 3 0 0 0;
#X connect 4 0 0 0;
#X connect 6 0 4 0;
#X connect 6 1 3 0;
#X connect 7 0 8 0;
#X connect 8 0 6 0;
#X connect 9 0 5 0;
#X connect 9 0 35 0;
#X connect 10 0 9 0;
#X connect 11 0 1 0;
#X connect 11 1 16 0;
#X connect 12 0 32 0;
#X connect 12 1 19 0;
#X connect 15 0 12 0;
#X connect 18 0 11 0;
#X connect 18 1 25 0;
#X connect 19 0 34 1;
#X connect 20 0 4 1;
#X connect 21 0 28 0;
#X connect 23 0 19 1;
#X connect 24 0 32 1;
#X connect 26 0 24 0;
#X connect 27 0 24 1;
#X connect 27 0 23 0;
#X connect 28 0 18 0;
#X connect 29 0 3 1;
#X connect 30 0 3 2;
#X connect 31 0 3 3;
#X connect 32 0 34 0;
#X connect 33 0 35 0;
#X connect 34 0 6 1;
#X connect 35 0 34 3;
#X connect 36 0 34 2;
#X coords 0 0 1 1 200 30 0;