middleman-wizard-template 1.0.2 → 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (25) hide show
  1. checksums.yaml +7 -0
  2. data/lib/middleman-wizard-template/template/source/index.html.erb +1 -89
  3. data/lib/middleman-wizard-template/template/source/javascripts/_lib/ww/Matrix.js +449 -0
  4. data/lib/middleman-wizard-template/template/source/javascripts/_lib/ww/PxLoader/PxLoader.js +395 -0
  5. data/lib/middleman-wizard-template/template/source/javascripts/_lib/ww/PxLoader/PxLoaderImage.js +96 -0
  6. data/lib/middleman-wizard-template/template/source/javascripts/_lib/ww/PxLoader/PxLoaderSwiffy.js +68 -0
  7. data/lib/middleman-wizard-template/template/source/javascripts/_lib/ww/RouteRecognizer.js +506 -0
  8. data/lib/middleman-wizard-template/template/source/javascripts/_lib/ww/Slides.js +846 -0
  9. data/lib/middleman-wizard-template/template/source/javascripts/_lib/ww/Transform.js +312 -0
  10. data/lib/middleman-wizard-template/template/source/javascripts/_lib/{Tween.js → ww/Tween.js} +26 -11
  11. data/lib/middleman-wizard-template/template/source/javascripts/_lib/ww/base.js +8 -0
  12. data/lib/middleman-wizard-template/template/source/javascripts/_lib/ww/raf.js +131 -0
  13. data/lib/middleman-wizard-template/template/source/javascripts/_lib/ww/statemachine.js +1024 -0
  14. data/lib/middleman-wizard-template/template/source/javascripts/_lib/ww/useragent.js +1244 -0
  15. data/lib/middleman-wizard-template/template/source/javascripts/_lib/{util.js → ww/util.js} +48 -50
  16. data/lib/middleman-wizard-template/template/source/javascripts/_lib/ww/viewport.js +89 -0
  17. data/lib/middleman-wizard-template/template/source/javascripts/{app.js → site.js} +5 -5
  18. data/lib/middleman-wizard-template/template/source/layouts/layout.erb +85 -0
  19. data/lib/middleman-wizard-template/template/source/stylesheets/default.css +2 -1
  20. data/lib/middleman-wizard-template/template/source/stylesheets/site.css.scss +11 -3
  21. data/lib/middleman-wizard-template/version.rb +1 -1
  22. metadata +23 -23
  23. data/lib/middleman-wizard-template/template/source/javascripts/_lib/Transform.js +0 -401
  24. data/lib/middleman-wizard-template/template/source/javascripts/_lib/raf.js +0 -26
  25. data/lib/middleman-wizard-template/template/source/javascripts/_lib/router.js +0 -679
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 35b547b31fb7f432f69044f4947b2be82ad820c0
4
+ data.tar.gz: ac55e5b1572518f794db9d04a6486455c3c1c4cb
5
+ SHA512:
6
+ metadata.gz: 251f7f5f63a92d3bb4033c3428aa6174693635ca1705d05562221ab3503224f31a36e54ff57dc355d5e5644955425e84210d6061e318a49b36a3e3141c1f9fed
7
+ data.tar.gz: 567e046a9b67d808554425c3dd737bfa2843c63c54cfe4c8b81b16611e322f295231a3e3336e93597a0a5da444b22145e47598161e629a6346e627c21a35e1c0
@@ -1,89 +1 @@
1
- <!DOCTYPE html>
2
- <html class="google" lang="en" class="no-js">
3
- <head>
4
-
5
- <script>
6
- (function(H){H.className=H.className.replace(/\bgoogle\b/,'google-js')})(document.documentElement)
7
- </script>
8
- <meta charset="utf-8">
9
- <meta content="initial-scale=1, minimum-scale=1, width=device-width" name="viewport">
10
- <title>
11
- Site – Google
12
- </title>
13
- <script src="http://www.google.com/js/google.js">
14
- </script>
15
- <!--script>
16
- new gweb.analytics.AutoTrack({profile:"UA-22442000-1",trackQueryParams:"true"});
17
- </script-->
18
- <link href="http://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700&amp;lang=en" rel=
19
- "stylesheet">
20
- <%= stylesheet_link_tag :default %>
21
- <%= javascript_include_tag :modernizr %>
22
- <%= stylesheet_link_tag :site %>
23
-
24
- <script src="/closure/library/closure/goog/base.js"></script>
25
- </head>
26
- <body>
27
- <div class="maia-header" id="maia-header" role="banner">
28
- <div class="maia-aux">
29
- <h1>
30
- <a href="/" target="_blank"><img alt="Google" src="//www.google.com/images/logos/google_logo_41.png"></a>
31
- </h1>
32
- <h2>
33
- <a href="../">Site</a>
34
- </h2>
35
- </div>
36
- </div>
37
- <div id="maia-main" role="main">
38
-
39
-
40
-
41
-
42
-
43
- </div>
44
- <div id="maia-signature"></div>
45
-
46
- <script type="text/javascript" src="https://www.google.com/jsapi"></script>
47
- <%= javascript_include_tag :site %>
48
- <script>ww.init();</script>
49
-
50
- <div class="maia-footer" id="maia-footer">
51
- <div id="maia-footer-local">
52
- <div class="maia-aux">
53
- <p>
54
- <a data-g-event="Footer Nav: Press" href="../press/">Press Center</a> |
55
- <a data-g-event="Footer Nav: For educators" href="../searcheducation/index.html">For
56
- Educators</a>
57
- </p>
58
- <div class="plus">
59
- <div class="g-plusone" data-href="http://www.google.com/insidesearch/" data-size=
60
- "small"></div>
61
- </div>
62
- </div>
63
- </div>
64
- <div id="maia-footer-global">
65
- <div class="maia-aux">
66
- <ul>
67
- <li>
68
- <a href="/" target="_blank">Google</a>
69
- </li>
70
- <li>
71
- <a href="/intl/en/about/">About Google</a>
72
- </li>
73
- <li>
74
- <a href="/intl/en/policies/">Privacy &amp; Terms</a>
75
- </li>
76
- </ul>
77
- </div>
78
- </div>
79
- </div>
80
- <!--script>
81
- window.___gcfg = {lang: 'en'};
82
- (function() {
83
- var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
84
- po.src = 'https://apis.google.com/js/plusone.js';
85
- var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
86
- })();
87
- </script--> <script src="http://www.google.com/js/maia.js"></script>
88
- </body>
89
- </html>
1
+ <h1>Site Name</h1>
@@ -0,0 +1,449 @@
1
+ goog.provide('Sylvester.Matrix');
2
+
3
+ Sylvester.Matrix = function() {};
4
+
5
+ Sylvester.Matrix.create = function(elements) {
6
+ var M = new Sylvester.Matrix();
7
+ return M.setElements(elements);
8
+ };
9
+ var $M = Sylvester.Matrix.create;
10
+
11
+ Sylvester.Matrix.I = function(n) {
12
+ var els = [], i = n, j;
13
+ while (i--) { j = n;
14
+ els[i] = [];
15
+ while (j--) {
16
+ els[i][j] = (i === j) ? 1 : 0;
17
+ }
18
+ }
19
+ return Sylvester.Matrix.create(els);
20
+ };
21
+
22
+ Sylvester.Matrix.Diagonal = function(elements) {
23
+ var i = elements.length;
24
+ var M = Sylvester.Matrix.I(i);
25
+ while (i--) {
26
+ M.elements[i][i] = elements[i];
27
+ }
28
+ return M;
29
+ };
30
+
31
+ Sylvester.Matrix.Rotation = function(theta, a) {
32
+ if (!a) {
33
+ return Sylvester.Matrix.create([
34
+ [Math.cos(theta), -Math.sin(theta)],
35
+ [Math.sin(theta), Math.cos(theta)]
36
+ ]);
37
+ }
38
+ var axis = a.dup();
39
+ if (axis.elements.length !== 3) { return null; }
40
+ var mod = axis.modulus();
41
+ var x = axis.elements[0]/mod, y = axis.elements[1]/mod, z = axis.elements[2]/mod;
42
+ var s = Math.sin(theta), c = Math.cos(theta), t = 1 - c;
43
+ // Formula derived here: http://www.gamedev.net/reference/articles/article1199.asp
44
+ // That proof rotates the co-ordinate system so theta becomes -theta and sin
45
+ // becomes -sin here.
46
+ return Sylvester.Matrix.create([
47
+ [ t*x*x + c, t*x*y - s*z, t*x*z + s*y ],
48
+ [ t*x*y + s*z, t*y*y + c, t*y*z - s*x ],
49
+ [ t*x*z - s*y, t*y*z + s*x, t*z*z + c ]
50
+ ]);
51
+ };
52
+
53
+ Sylvester.Matrix.RotationX = function(t) {
54
+ var c = Math.cos(t), s = Math.sin(t);
55
+ return Sylvester.Matrix.create([
56
+ [ 1, 0, 0 ],
57
+ [ 0, c, -s ],
58
+ [ 0, s, c ]
59
+ ]);
60
+ };
61
+ Sylvester.Matrix.RotationY = function(t) {
62
+ var c = Math.cos(t), s = Math.sin(t);
63
+ return Sylvester.Matrix.create([
64
+ [ c, 0, s ],
65
+ [ 0, 1, 0 ],
66
+ [ -s, 0, c ]
67
+ ]);
68
+ };
69
+ Sylvester.Matrix.RotationZ = function(t) {
70
+ var c = Math.cos(t), s = Math.sin(t);
71
+ return Sylvester.Matrix.create([
72
+ [ c, -s, 0 ],
73
+ [ s, c, 0 ],
74
+ [ 0, 0, 1 ]
75
+ ]);
76
+ };
77
+
78
+ Sylvester.Matrix.Random = function(n, m) {
79
+ return Sylvester.Matrix.Zero(n, m).map(
80
+ function() { return Math.random(); }
81
+ );
82
+ };
83
+
84
+ Sylvester.Matrix.Zero = function(n, m) {
85
+ var els = [], i = n, j;
86
+ while (i--) { j = m;
87
+ els[i] = [];
88
+ while (j--) {
89
+ els[i][j] = 0;
90
+ }
91
+ }
92
+ return Sylvester.Matrix.create(els);
93
+ };
94
+
95
+ Sylvester.Matrix.prototype = {
96
+ e: function(i,j) {
97
+ if (i < 1 || i > this.elements.length || j < 1 || j > this.elements[0].length) { return null; }
98
+ return this.elements[i-1][j-1];
99
+ },
100
+
101
+ row: function(i) {
102
+ if (i > this.elements.length) { return null; }
103
+ return Sylvester.Vector.create(this.elements[i-1]);
104
+ },
105
+
106
+ col: function(j) {
107
+ if (this.elements.length === 0) { return null; }
108
+ if (j > this.elements[0].length) { return null; }
109
+ var col = [], n = this.elements.length;
110
+ for (var i = 0; i < n; i++) { col.push(this.elements[i][j-1]); }
111
+ return Sylvester.Vector.create(col);
112
+ },
113
+
114
+ dimensions: function() {
115
+ var cols = (this.elements.length === 0) ? 0 : this.elements[0].length;
116
+ return {rows: this.elements.length, cols: cols};
117
+ },
118
+
119
+ rows: function() {
120
+ return this.elements.length;
121
+ },
122
+
123
+ cols: function() {
124
+ if (this.elements.length === 0) { return 0; }
125
+ return this.elements[0].length;
126
+ },
127
+
128
+ eql: function(matrix) {
129
+ var M = matrix.elements || matrix;
130
+ if (!M[0] || typeof(M[0][0]) === 'undefined') { M = Sylvester.Matrix.create(M).elements; }
131
+ if (this.elements.length === 0 || M.length === 0) {
132
+ return this.elements.length === M.length;
133
+ }
134
+ if (this.elements.length !== M.length) { return false; }
135
+ if (this.elements[0].length !== M[0].length) { return false; }
136
+ var i = this.elements.length, nj = this.elements[0].length, j;
137
+ while (i--) { j = nj;
138
+ while (j--) {
139
+ if (Math.abs(this.elements[i][j] - M[i][j]) > Sylvester.precision) { return false; }
140
+ }
141
+ }
142
+ return true;
143
+ },
144
+
145
+ dup: function() {
146
+ return Sylvester.Matrix.create(this.elements);
147
+ },
148
+
149
+ map: function(fn, context) {
150
+ if (this.elements.length === 0) { return Sylvester.Matrix.create([]); }
151
+ var els = [], i = this.elements.length, nj = this.elements[0].length, j;
152
+ while (i--) { j = nj;
153
+ els[i] = [];
154
+ while (j--) {
155
+ els[i][j] = fn.call(context, this.elements[i][j], i + 1, j + 1);
156
+ }
157
+ }
158
+ return Sylvester.Matrix.create(els);
159
+ },
160
+
161
+ isSameSizeAs: function(matrix) {
162
+ var M = matrix.elements || matrix;
163
+ if (typeof(M[0][0]) === 'undefined') { M = Sylvester.Matrix.create(M).elements; }
164
+ if (this.elements.length === 0) { return M.length === 0; }
165
+ return (this.elements.length === M.length &&
166
+ this.elements[0].length === M[0].length);
167
+ },
168
+
169
+ add: function(matrix) {
170
+ if (this.elements.length === 0) return this.map(function(x) { return x });
171
+ var M = matrix.elements || matrix;
172
+ if (typeof(M[0][0]) === 'undefined') { M = Sylvester.Matrix.create(M).elements; }
173
+ if (!this.isSameSizeAs(M)) { return null; }
174
+ return this.map(function(x, i, j) { return x + M[i-1][j-1]; });
175
+ },
176
+
177
+ subtract: function(matrix) {
178
+ if (this.elements.length === 0) return this.map(function(x) { return x });
179
+ var M = matrix.elements || matrix;
180
+ if (typeof(M[0][0]) === 'undefined') { M = Sylvester.Matrix.create(M).elements; }
181
+ if (!this.isSameSizeAs(M)) { return null; }
182
+ return this.map(function(x, i, j) { return x - M[i-1][j-1]; });
183
+ },
184
+
185
+ canMultiplyFromLeft: function(matrix) {
186
+ if (this.elements.length === 0) { return false; }
187
+ var M = matrix.elements || matrix;
188
+ if (typeof(M[0][0]) === 'undefined') { M = Sylvester.Matrix.create(M).elements; }
189
+ // this.columns should equal matrix.rows
190
+ return (this.elements[0].length === M.length);
191
+ },
192
+
193
+ multiply: function(matrix) {
194
+ if (this.elements.length === 0) { return null; }
195
+ if (!matrix.elements) {
196
+ return this.map(function(x) { return x * matrix; });
197
+ }
198
+ var returnVector = matrix.modulus ? true : false;
199
+ var M = matrix.elements || matrix;
200
+ if (typeof(M[0][0]) === 'undefined') { M = Sylvester.Matrix.create(M).elements; }
201
+ if (!this.canMultiplyFromLeft(M)) { return null; }
202
+ var i = this.elements.length, nj = M[0].length, j;
203
+ var cols = this.elements[0].length, c, elements = [], sum;
204
+ while (i--) { j = nj;
205
+ elements[i] = [];
206
+ while (j--) { c = cols;
207
+ sum = 0;
208
+ while (c--) {
209
+ sum += this.elements[i][c] * M[c][j];
210
+ }
211
+ elements[i][j] = sum;
212
+ }
213
+ }
214
+ var M = Sylvester.Matrix.create(elements);
215
+ return returnVector ? M.col(1) : M;
216
+ },
217
+
218
+ minor: function(a, b, c, d) {
219
+ if (this.elements.length === 0) { return null; }
220
+ var elements = [], ni = c, i, nj, j;
221
+ var rows = this.elements.length, cols = this.elements[0].length;
222
+ while (ni--) { i = c - ni - 1;
223
+ elements[i] = [];
224
+ nj = d;
225
+ while (nj--) { j = d - nj - 1;
226
+ elements[i][j] = this.elements[(a+i-1)%rows][(b+j-1)%cols];
227
+ }
228
+ }
229
+ return Sylvester.Matrix.create(elements);
230
+ },
231
+
232
+ transpose: function() {
233
+ if (this.elements.length === 0) return Sylvester.Matrix.create([]);
234
+ var rows = this.elements.length, i, cols = this.elements[0].length, j;
235
+ var elements = [], i = cols;
236
+ while (i--) { j = rows;
237
+ elements[i] = [];
238
+ while (j--) {
239
+ elements[i][j] = this.elements[j][i];
240
+ }
241
+ }
242
+ return Sylvester.Matrix.create(elements);
243
+ },
244
+
245
+ isSquare: function() {
246
+ var cols = (this.elements.length === 0) ? 0 : this.elements[0].length;
247
+ return (this.elements.length === cols);
248
+ },
249
+
250
+ max: function() {
251
+ if (this.elements.length === 0) { return null; }
252
+ var m = 0, i = this.elements.length, nj = this.elements[0].length, j;
253
+ while (i--) { j = nj;
254
+ while (j--) {
255
+ if (Math.abs(this.elements[i][j]) > Math.abs(m)) { m = this.elements[i][j]; }
256
+ }
257
+ }
258
+ return m;
259
+ },
260
+
261
+ indexOf: function(x) {
262
+ if (this.elements.length === 0) { return null; }
263
+ var index = null, ni = this.elements.length, i, nj = this.elements[0].length, j;
264
+ for (i = 0; i < ni; i++) {
265
+ for (j = 0; j < nj; j++) {
266
+ if (this.elements[i][j] === x) { return {i: i+1, j: j+1}; }
267
+ }
268
+ }
269
+ return null;
270
+ },
271
+
272
+ diagonal: function() {
273
+ if (!this.isSquare) { return null; }
274
+ var els = [], n = this.elements.length;
275
+ for (var i = 0; i < n; i++) {
276
+ els.push(this.elements[i][i]);
277
+ }
278
+ return Sylvester.Vector.create(els);
279
+ },
280
+
281
+ toRightTriangular: function() {
282
+ if (this.elements.length === 0) return Sylvester.Matrix.create([]);
283
+ var M = this.dup(), els;
284
+ var n = this.elements.length, i, j, np = this.elements[0].length, p;
285
+ for (i = 0; i < n; i++) {
286
+ if (M.elements[i][i] === 0) {
287
+ for (j = i + 1; j < n; j++) {
288
+ if (M.elements[j][i] !== 0) {
289
+ els = [];
290
+ for (p = 0; p < np; p++) { els.push(M.elements[i][p] + M.elements[j][p]); }
291
+ M.elements[i] = els;
292
+ break;
293
+ }
294
+ }
295
+ }
296
+ if (M.elements[i][i] !== 0) {
297
+ for (j = i + 1; j < n; j++) {
298
+ var multiplier = M.elements[j][i] / M.elements[i][i];
299
+ els = [];
300
+ for (p = 0; p < np; p++) {
301
+ // Elements with column numbers up to an including the number of the
302
+ // row that we're subtracting can safely be set straight to zero,
303
+ // since that's the point of this routine and it avoids having to
304
+ // loop over and correct rounding errors later
305
+ els.push(p <= i ? 0 : M.elements[j][p] - M.elements[i][p] * multiplier);
306
+ }
307
+ M.elements[j] = els;
308
+ }
309
+ }
310
+ }
311
+ return M;
312
+ },
313
+
314
+ determinant: function() {
315
+ if (this.elements.length === 0) { return 1; }
316
+ if (!this.isSquare()) { return null; }
317
+ var M = this.toRightTriangular();
318
+ var det = M.elements[0][0], n = M.elements.length;
319
+ for (var i = 1; i < n; i++) {
320
+ det = det * M.elements[i][i];
321
+ }
322
+ return det;
323
+ },
324
+
325
+ isSingular: function() {
326
+ return (this.isSquare() && this.determinant() === 0);
327
+ },
328
+
329
+ trace: function() {
330
+ if (this.elements.length === 0) { return 0; }
331
+ if (!this.isSquare()) { return null; }
332
+ var tr = this.elements[0][0], n = this.elements.length;
333
+ for (var i = 1; i < n; i++) {
334
+ tr += this.elements[i][i];
335
+ }
336
+ return tr;
337
+ },
338
+
339
+ rank: function() {
340
+ if (this.elements.length === 0) { return 0; }
341
+ var M = this.toRightTriangular(), rank = 0;
342
+ var i = this.elements.length, nj = this.elements[0].length, j;
343
+ while (i--) { j = nj;
344
+ while (j--) {
345
+ if (Math.abs(M.elements[i][j]) > Sylvester.precision) { rank++; break; }
346
+ }
347
+ }
348
+ return rank;
349
+ },
350
+
351
+ augment: function(matrix) {
352
+ if (this.elements.length === 0) { return this.dup(); }
353
+ var M = matrix.elements || matrix;
354
+ if (typeof(M[0][0]) === 'undefined') { M = Sylvester.Matrix.create(M).elements; }
355
+ var T = this.dup(), cols = T.elements[0].length;
356
+ var i = T.elements.length, nj = M[0].length, j;
357
+ if (i !== M.length) { return null; }
358
+ while (i--) { j = nj;
359
+ while (j--) {
360
+ T.elements[i][cols + j] = M[i][j];
361
+ }
362
+ }
363
+ return T;
364
+ },
365
+
366
+ inverse: function() {
367
+ if (this.elements.length === 0) { return null; }
368
+ if (!this.isSquare() || this.isSingular()) { return null; }
369
+ var n = this.elements.length, i= n, j;
370
+ var M = this.augment(Sylvester.Matrix.I(n)).toRightTriangular();
371
+ var np = M.elements[0].length, p, els, divisor;
372
+ var inverse_elements = [], new_element;
373
+ // Sylvester.Matrix is non-singular so there will be no zeros on the
374
+ // diagonal. Cycle through rows from last to first.
375
+ while (i--) {
376
+ // First, normalise diagonal elements to 1
377
+ els = [];
378
+ inverse_elements[i] = [];
379
+ divisor = M.elements[i][i];
380
+ for (p = 0; p < np; p++) {
381
+ new_element = M.elements[i][p] / divisor;
382
+ els.push(new_element);
383
+ // Shuffle off the current row of the right hand side into the results
384
+ // array as it will not be modified by later runs through this loop
385
+ if (p >= n) { inverse_elements[i].push(new_element); }
386
+ }
387
+ M.elements[i] = els;
388
+ // Then, subtract this row from those above it to give the identity matrix
389
+ // on the left hand side
390
+ j = i;
391
+ while (j--) {
392
+ els = [];
393
+ for (p = 0; p < np; p++) {
394
+ els.push(M.elements[j][p] - M.elements[i][p] * M.elements[j][i]);
395
+ }
396
+ M.elements[j] = els;
397
+ }
398
+ }
399
+ return Sylvester.Matrix.create(inverse_elements);
400
+ },
401
+
402
+ round: function() {
403
+ return this.map(function(x) { return Math.round(x); });
404
+ },
405
+
406
+ snapTo: function(x) {
407
+ return this.map(function(p) {
408
+ return (Math.abs(p - x) <= Sylvester.precision) ? x : p;
409
+ });
410
+ },
411
+
412
+ inspect: function() {
413
+ var matrix_rows = [];
414
+ var n = this.elements.length;
415
+ if (n === 0) return '[]';
416
+ for (var i = 0; i < n; i++) {
417
+ matrix_rows.push(Sylvester.Vector.create(this.elements[i]).inspect());
418
+ }
419
+ return matrix_rows.join('\n');
420
+ },
421
+
422
+ setElements: function(els) {
423
+ var i, j, elements = els.elements || els;
424
+ if (elements[0] && typeof(elements[0][0]) !== 'undefined') {
425
+ i = elements.length;
426
+ this.elements = [];
427
+ while (i--) { j = elements[i].length;
428
+ this.elements[i] = [];
429
+ while (j--) {
430
+ this.elements[i][j] = elements[i][j];
431
+ }
432
+ }
433
+ return this;
434
+ }
435
+ var n = elements.length;
436
+ this.elements = [];
437
+ for (i = 0; i < n; i++) {
438
+ this.elements.push([elements[i]]);
439
+ }
440
+ return this;
441
+ }
442
+ };
443
+
444
+ Sylvester.Matrix.prototype.toUpperTriangular = Sylvester.Matrix.prototype.toRightTriangular;
445
+ Sylvester.Matrix.prototype.det = Sylvester.Matrix.prototype.determinant;
446
+ Sylvester.Matrix.prototype.tr = Sylvester.Matrix.prototype.trace;
447
+ Sylvester.Matrix.prototype.rk = Sylvester.Matrix.prototype.rank;
448
+ Sylvester.Matrix.prototype.inv = Sylvester.Matrix.prototype.inverse;
449
+ Sylvester.Matrix.prototype.x = Sylvester.Matrix.prototype.multiply;