JAL-1807 still testing
[jalviewjs.git] / bin / javajs / util / Matrix.js
index cadc683..50972a4 100644 (file)
-Clazz.declarePackage ("javajs.util");
-c$ = Clazz.decorateAsClass (function () {
-this.a = null;
-this.m = 0;
-this.n = 0;
-if (!Clazz.isClassDefined ("javajs.util.Matrix.LUDecomp")) {
-javajs.util.Matrix.$Matrix$LUDecomp$ ();
-}
-Clazz.instantialize (this, arguments);
-}, javajs.util, "Matrix", null, Cloneable);
-Clazz.makeConstructor (c$, 
-function (a, m, n) {
-this.a = (a == null ?  Clazz.newDoubleArray (m, n, 0) : a);
-this.m = m;
-this.n = n;
-}, "~A,~N,~N");
-Clazz.defineMethod (c$, "getRowDimension", 
-function () {
-return this.m;
-});
-Clazz.defineMethod (c$, "getColumnDimension", 
-function () {
-return this.n;
-});
-Clazz.defineMethod (c$, "getArray", 
-function () {
-return this.a;
-});
-Clazz.defineMethod (c$, "getArrayCopy", 
-function () {
-var x =  Clazz.newDoubleArray (this.m, this.n, 0);
-for (var i = this.m; --i >= 0; ) for (var j = this.n; --j >= 0; ) x[i][j] = this.a[i][j];
-
-
-return x;
-});
-Clazz.defineMethod (c$, "copy", 
-function () {
-var x =  new javajs.util.Matrix (null, this.m, this.n);
-var c = x.a;
-for (var i = this.m; --i >= 0; ) for (var j = this.n; --j >= 0; ) c[i][j] = this.a[i][j];
-
-
-return x;
-});
-Clazz.overrideMethod (c$, "clone", 
-function () {
-return this.copy ();
-});
-Clazz.defineMethod (c$, "getSubmatrix", 
-function (i0, j0, nrows, ncols) {
-var x =  new javajs.util.Matrix (null, nrows, ncols);
-var xa = x.a;
-for (var i = nrows; --i >= 0; ) for (var j = ncols; --j >= 0; ) xa[i][j] = this.a[i0 + i][j0 + j];
-
-
-return x;
-}, "~N,~N,~N,~N");
-Clazz.defineMethod (c$, "getMatrixSelected", 
-function (r, n) {
-var x =  new javajs.util.Matrix (null, r.length, n);
-var xa = x.a;
-for (var i = r.length; --i >= 0; ) {
-var b = this.a[r[i]];
-for (var j = n; --j >= 0; ) xa[i][j] = b[j];
-
-}
-return x;
-}, "~A,~N");
-Clazz.defineMethod (c$, "transpose", 
-function () {
-var x =  new javajs.util.Matrix (null, this.n, this.m);
-var c = x.a;
-for (var i = this.m; --i >= 0; ) for (var j = this.n; --j >= 0; ) c[j][i] = this.a[i][j];
-
-
-return x;
-});
-Clazz.defineMethod (c$, "add", 
-function (b) {
-return this.scaleAdd (b, 1);
-}, "javajs.util.Matrix");
-Clazz.defineMethod (c$, "sub", 
-function (b) {
-return this.scaleAdd (b, -1);
-}, "javajs.util.Matrix");
-Clazz.defineMethod (c$, "scaleAdd", 
-function (b, scale) {
-var x =  new javajs.util.Matrix (null, this.m, this.n);
-var xa = x.a;
-var ba = b.a;
-for (var i = this.m; --i >= 0; ) for (var j = this.n; --j >= 0; ) xa[i][j] = ba[i][j] * scale + this.a[i][j];
-
-
-return x;
-}, "javajs.util.Matrix,~N");
-Clazz.defineMethod (c$, "mul", 
-function (b) {
-if (b.m != this.n) return null;
-var x =  new javajs.util.Matrix (null, this.m, b.n);
-var xa = x.a;
-var ba = b.a;
-for (var j = b.n; --j >= 0; ) for (var i = this.m; --i >= 0; ) {
-var arowi = this.a[i];
-var s = 0;
-for (var k = this.n; --k >= 0; ) s += arowi[k] * ba[k][j];
-
-xa[i][j] = s;
-}
-
-return x;
-}, "javajs.util.Matrix");
-Clazz.defineMethod (c$, "inverse", 
-function () {
-return Clazz.innerTypeInstance (javajs.util.Matrix.LUDecomp, this, null, this.m, this.n).solve (javajs.util.Matrix.identity (this.m, this.m), this.n);
-});
-Clazz.defineMethod (c$, "trace", 
-function () {
-var t = 0;
-for (var i = Math.min (this.m, this.n); --i >= 0; ) t += this.a[i][i];
-
-return t;
-});
-c$.identity = Clazz.defineMethod (c$, "identity", 
-function (m, n) {
-var x =  new javajs.util.Matrix (null, m, n);
-var xa = x.a;
-for (var i = Math.min (m, n); --i >= 0; ) xa[i][i] = 1;
-
-return x;
-}, "~N,~N");
-Clazz.defineMethod (c$, "getRotation", 
-function () {
-return this.getSubmatrix (0, 0, this.m - 1, this.n - 1);
-});
-Clazz.defineMethod (c$, "getTranslation", 
-function () {
-return this.getSubmatrix (0, this.n - 1, this.m - 1, 1);
-});
-c$.newT = Clazz.defineMethod (c$, "newT", 
-function (r, asColumn) {
-return (asColumn ?  new javajs.util.Matrix ( Clazz.newArray (-1, [ Clazz.newDoubleArray (-1, [r.x]),  Clazz.newDoubleArray (-1, [r.y]),  Clazz.newDoubleArray (-1, [r.z])]), 3, 1) :  new javajs.util.Matrix ( Clazz.newArray (-1, [ Clazz.newDoubleArray (-1, [r.x, r.y, r.z])]), 1, 3));
-}, "javajs.util.T3,~B");
-Clazz.overrideMethod (c$, "toString", 
-function () {
-var s = "[\n";
-for (var i = 0; i < this.m; i++) {
-s += "  [";
-for (var j = 0; j < this.n; j++) s += " " + this.a[i][j];
-
-s += "]\n";
-}
-s += "]";
-return s;
-});
-c$.$Matrix$LUDecomp$ = function () {
-Clazz.pu$h ();
-c$ = Clazz.decorateAsClass (function () {
-Clazz.prepareCallback (this, arguments);
-this.LU = null;
-this.piv = null;
-this.pivsign = 0;
-Clazz.instantialize (this, arguments);
-}, javajs.util.Matrix, "LUDecomp");
-Clazz.makeConstructor (c$, 
-function (a, b) {
-this.LU = this.b$["javajs.util.Matrix"].getArrayCopy ();
-this.piv =  Clazz.newIntArray (a, 0);
-for (var c = a; --c >= 0; ) this.piv[c] = c;
-
-this.pivsign = 1;
-var d;
-var e =  Clazz.newDoubleArray (a, 0);
-for (var f = 0; f < b; f++) {
-for (var g = a; --g >= 0; ) e[g] = this.LU[g][f];
-
-for (var h = a; --h >= 0; ) {
-d = this.LU[h];
-var i = Math.min (h, f);
-var j = 0.0;
-for (var k = i; --k >= 0; ) j += d[k] * e[k];
-
-d[f] = e[h] -= j;
-}
-var i = f;
-for (var j = a; --j > f; ) if (Math.abs (e[j]) > Math.abs (e[i])) i = j;
-
-if (i != f) {
-for (var k = b; --k >= 0; ) {
-var l = this.LU[i][k];
-this.LU[i][k] = this.LU[f][k];
-this.LU[f][k] = l;
-}
-var l = this.piv[i];
-this.piv[i] = this.piv[f];
-this.piv[f] = l;
-this.pivsign = -this.pivsign;
-}if ( new Boolean (f < a & this.LU[f][f] != 0.0).valueOf ()) for (var k = a; --k > f; ) this.LU[k][f] /= this.LU[f][f];
-
-}
-}, "~N,~N");
-Clazz.defineMethod (c$, "solve", 
-function (a, b) {
-for (var c = 0; c < b; c++) if (this.LU[c][c] == 0) return null;
-
-var d = a.n;
-var e = a.getMatrixSelected (this.piv, d);
-var f = e.a;
-for (var g = 0; g < b; g++) for (var h = g + 1; h < b; h++) for (var i = 0; i < d; i++) f[h][i] -= f[g][i] * this.LU[h][g];
-
-
-
-for (var j = b; --j >= 0; ) {
-for (var k = d; --k >= 0; ) f[j][k] /= this.LU[j][j];
-
-for (var l = j; --l >= 0; ) for (var m = d; --m >= 0; ) f[l][m] -= f[j][m] * this.LU[l][j];
-
-
-}
-return e;
-}, "javajs.util.Matrix,~N");
-c$ = Clazz.p0p ();
-};
+Clazz.declarePackage ("javajs.util");\r
+c$ = Clazz.decorateAsClass (function () {\r
+this.a = null;\r
+this.m = 0;\r
+this.n = 0;\r
+if (!Clazz.isClassDefined ("javajs.util.Matrix.LUDecomp")) {\r
+javajs.util.Matrix.$Matrix$LUDecomp$ ();\r
+}\r
+Clazz.instantialize (this, arguments);\r
+}, javajs.util, "Matrix", null, Cloneable);\r
+Clazz.makeConstructor (c$, \r
+function (a, m, n) {\r
+this.a = (a == null ?  Clazz.newDoubleArray (m, n, 0) : a);\r
+this.m = m;\r
+this.n = n;\r
+}, "~A,~N,~N");\r
+Clazz.defineMethod (c$, "getRowDimension", \r
+function () {\r
+return this.m;\r
+});\r
+Clazz.defineMethod (c$, "getColumnDimension", \r
+function () {\r
+return this.n;\r
+});\r
+Clazz.defineMethod (c$, "getArray", \r
+function () {\r
+return this.a;\r
+});\r
+Clazz.defineMethod (c$, "getArrayCopy", \r
+function () {\r
+var x =  Clazz.newDoubleArray (this.m, this.n, 0);\r
+for (var i = this.m; --i >= 0; ) for (var j = this.n; --j >= 0; ) x[i][j] = this.a[i][j];\r
+\r
+\r
+return x;\r
+});\r
+Clazz.defineMethod (c$, "copy", \r
+function () {\r
+var x =  new javajs.util.Matrix (null, this.m, this.n);\r
+var c = x.a;\r
+for (var i = this.m; --i >= 0; ) for (var j = this.n; --j >= 0; ) c[i][j] = this.a[i][j];\r
+\r
+\r
+return x;\r
+});\r
+Clazz.overrideMethod (c$, "clone", \r
+function () {\r
+return this.copy ();\r
+});\r
+Clazz.defineMethod (c$, "getSubmatrix", \r
+function (i0, j0, nrows, ncols) {\r
+var x =  new javajs.util.Matrix (null, nrows, ncols);\r
+var xa = x.a;\r
+for (var i = nrows; --i >= 0; ) for (var j = ncols; --j >= 0; ) xa[i][j] = this.a[i0 + i][j0 + j];\r
+\r
+\r
+return x;\r
+}, "~N,~N,~N,~N");\r
+Clazz.defineMethod (c$, "getMatrixSelected", \r
+function (r, n) {\r
+var x =  new javajs.util.Matrix (null, r.length, n);\r
+var xa = x.a;\r
+for (var i = r.length; --i >= 0; ) {\r
+var b = this.a[r[i]];\r
+for (var j = n; --j >= 0; ) xa[i][j] = b[j];\r
+\r
+}\r
+return x;\r
+}, "~A,~N");\r
+Clazz.defineMethod (c$, "transpose", \r
+function () {\r
+var x =  new javajs.util.Matrix (null, this.n, this.m);\r
+var c = x.a;\r
+for (var i = this.m; --i >= 0; ) for (var j = this.n; --j >= 0; ) c[j][i] = this.a[i][j];\r
+\r
+\r
+return x;\r
+});\r
+Clazz.defineMethod (c$, "add", \r
+function (b) {\r
+return this.scaleAdd (b, 1);\r
+}, "javajs.util.Matrix");\r
+Clazz.defineMethod (c$, "sub", \r
+function (b) {\r
+return this.scaleAdd (b, -1);\r
+}, "javajs.util.Matrix");\r
+Clazz.defineMethod (c$, "scaleAdd", \r
+function (b, scale) {\r
+var x =  new javajs.util.Matrix (null, this.m, this.n);\r
+var xa = x.a;\r
+var ba = b.a;\r
+for (var i = this.m; --i >= 0; ) for (var j = this.n; --j >= 0; ) xa[i][j] = ba[i][j] * scale + this.a[i][j];\r
+\r
+\r
+return x;\r
+}, "javajs.util.Matrix,~N");\r
+Clazz.defineMethod (c$, "mul", \r
+function (b) {\r
+if (b.m != this.n) return null;\r
+var x =  new javajs.util.Matrix (null, this.m, b.n);\r
+var xa = x.a;\r
+var ba = b.a;\r
+for (var j = b.n; --j >= 0; ) for (var i = this.m; --i >= 0; ) {\r
+var arowi = this.a[i];\r
+var s = 0;\r
+for (var k = this.n; --k >= 0; ) s += arowi[k] * ba[k][j];\r
+\r
+xa[i][j] = s;\r
+}\r
+\r
+return x;\r
+}, "javajs.util.Matrix");\r
+Clazz.defineMethod (c$, "inverse", \r
+function () {\r
+return Clazz.innerTypeInstance (javajs.util.Matrix.LUDecomp, this, null, this.m, this.n).solve (javajs.util.Matrix.identity (this.m, this.m), this.n);\r
+});\r
+Clazz.defineMethod (c$, "trace", \r
+function () {\r
+var t = 0;\r
+for (var i = Math.min (this.m, this.n); --i >= 0; ) t += this.a[i][i];\r
+\r
+return t;\r
+});\r
+c$.identity = Clazz.defineMethod (c$, "identity", \r
+function (m, n) {\r
+var x =  new javajs.util.Matrix (null, m, n);\r
+var xa = x.a;\r
+for (var i = Math.min (m, n); --i >= 0; ) xa[i][i] = 1;\r
+\r
+return x;\r
+}, "~N,~N");\r
+Clazz.defineMethod (c$, "getRotation", \r
+function () {\r
+return this.getSubmatrix (0, 0, this.m - 1, this.n - 1);\r
+});\r
+Clazz.defineMethod (c$, "getTranslation", \r
+function () {\r
+return this.getSubmatrix (0, this.n - 1, this.m - 1, 1);\r
+});\r
+c$.newT = Clazz.defineMethod (c$, "newT", \r
+function (r, asColumn) {\r
+return (asColumn ?  new javajs.util.Matrix ( Clazz.newArray (-1, [ Clazz.newDoubleArray (-1, [r.x]),  Clazz.newDoubleArray (-1, [r.y]),  Clazz.newDoubleArray (-1, [r.z])]), 3, 1) :  new javajs.util.Matrix ( Clazz.newArray (-1, [ Clazz.newDoubleArray (-1, [r.x, r.y, r.z])]), 1, 3));\r
+}, "javajs.util.T3,~B");\r
+Clazz.overrideMethod (c$, "toString", \r
+function () {\r
+var s = "[\n";\r
+for (var i = 0; i < this.m; i++) {\r
+s += "  [";\r
+for (var j = 0; j < this.n; j++) s += " " + this.a[i][j];\r
+\r
+s += "]\n";\r
+}\r
+s += "]";\r
+return s;\r
+});\r
+c$.$Matrix$LUDecomp$ = function () {\r
+Clazz.pu$h ();\r
+c$ = Clazz.decorateAsClass (function () {\r
+Clazz.prepareCallback (this, arguments);\r
+this.LU = null;\r
+this.piv = null;\r
+this.pivsign = 0;\r
+Clazz.instantialize (this, arguments);\r
+}, javajs.util.Matrix, "LUDecomp");\r
+Clazz.makeConstructor (c$, \r
+function (a, b) {\r
+this.LU = this.b$["javajs.util.Matrix"].getArrayCopy ();\r
+this.piv =  Clazz.newIntArray (a, 0);\r
+for (var c = a; --c >= 0; ) this.piv[c] = c;\r
+\r
+this.pivsign = 1;\r
+var d;\r
+var e =  Clazz.newDoubleArray (a, 0);\r
+for (var f = 0; f < b; f++) {\r
+for (var g = a; --g >= 0; ) e[g] = this.LU[g][f];\r
+\r
+for (var h = a; --h >= 0; ) {\r
+d = this.LU[h];\r
+var i = Math.min (h, f);\r
+var j = 0.0;\r
+for (var k = i; --k >= 0; ) j += d[k] * e[k];\r
+\r
+d[f] = e[h] -= j;\r
+}\r
+var i = f;\r
+for (var j = a; --j > f; ) if (Math.abs (e[j]) > Math.abs (e[i])) i = j;\r
+\r
+if (i != f) {\r
+for (var k = b; --k >= 0; ) {\r
+var l = this.LU[i][k];\r
+this.LU[i][k] = this.LU[f][k];\r
+this.LU[f][k] = l;\r
+}\r
+var l = this.piv[i];\r
+this.piv[i] = this.piv[f];\r
+this.piv[f] = l;\r
+this.pivsign = -this.pivsign;\r
+}if ( new Boolean (f < a & this.LU[f][f] != 0.0).valueOf ()) for (var k = a; --k > f; ) this.LU[k][f] /= this.LU[f][f];\r
+\r
+}\r
+}, "~N,~N");\r
+Clazz.defineMethod (c$, "solve", \r
+function (a, b) {\r
+for (var c = 0; c < b; c++) if (this.LU[c][c] == 0) return null;\r
+\r
+var d = a.n;\r
+var e = a.getMatrixSelected (this.piv, d);\r
+var f = e.a;\r
+for (var g = 0; g < b; g++) for (var h = g + 1; h < b; h++) for (var i = 0; i < d; i++) f[h][i] -= f[g][i] * this.LU[h][g];\r
+\r
+\r
+\r
+for (var j = b; --j >= 0; ) {\r
+for (var k = d; --k >= 0; ) f[j][k] /= this.LU[j][j];\r
+\r
+for (var l = j; --l >= 0; ) for (var m = d; --m >= 0; ) f[l][m] -= f[j][m] * this.LU[l][j];\r
+\r
+\r
+}\r
+return e;\r
+}, "javajs.util.Matrix,~N");\r
+c$ = Clazz.p0p ();\r
+};\r