mirror of
https://github.com/xibyte/jsketcher
synced 2025-12-06 16:33:15 +01:00
clean up
This commit is contained in:
parent
7909cbc674
commit
025f4a94a8
1 changed files with 0 additions and 121 deletions
|
|
@ -1,121 +0,0 @@
|
||||||
import * as math from 'math'
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @constructor
|
|
||||||
* @deprecated use numeric library
|
|
||||||
* */
|
|
||||||
export function Matrix(r, c) {
|
|
||||||
this.data = [];
|
|
||||||
this.rSize = r;
|
|
||||||
this.cSize = c;
|
|
||||||
for (var i = 0; i < r; i++) {
|
|
||||||
this.data[i] = math._vec(c)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Matrix.prototype.identity = function() {
|
|
||||||
|
|
||||||
for (var i = 0; i < this.rSize; i++) {
|
|
||||||
for (var j = 0; j < this.cSize; j++) {
|
|
||||||
this.data[i][j] = i === j ? 1 : 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
Matrix.prototype.subtract = function(m) {
|
|
||||||
var out = new Matrix(this.rSize, this.cSize);
|
|
||||||
for (var i = 0; i < this.rSize; i++) {
|
|
||||||
for (var j = 0; j < this.cSize; j++) {
|
|
||||||
out.data[i][j] = this.data[i][j] - m.data[i][j];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return out;
|
|
||||||
};
|
|
||||||
|
|
||||||
Matrix.prototype.add = function(m) {
|
|
||||||
var out = new Matrix(this.rSize, this.cSize);
|
|
||||||
for (var i = 0; i < this.rSize; i++) {
|
|
||||||
for (var j = 0; j < this.cSize; j++) {
|
|
||||||
out.data[i][j] = this.data[i][j] + m.data[i][j];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return out;
|
|
||||||
};
|
|
||||||
|
|
||||||
Matrix.prototype.multiply = function(m) {
|
|
||||||
|
|
||||||
var nRows = this.rSize;
|
|
||||||
var nCols = m.cSize;
|
|
||||||
var nSum = this.cSize;
|
|
||||||
|
|
||||||
var out = new Matrix(nRows, nCols);
|
|
||||||
|
|
||||||
var outData = out.data;
|
|
||||||
var mCol = math._vec(nSum);
|
|
||||||
var mData = m.data;
|
|
||||||
|
|
||||||
for (var col = 0; col < nCols; col++) {
|
|
||||||
for (var mRow = 0; mRow < nSum; mRow++) {
|
|
||||||
mCol[mRow] = mData[mRow][col];
|
|
||||||
}
|
|
||||||
|
|
||||||
for (var row = 0; row < nRows; row++) {
|
|
||||||
var dataRow = this.data[row];
|
|
||||||
var sum = 0;
|
|
||||||
for (var i = 0; i < nSum; i++) {
|
|
||||||
sum += dataRow[i] * mCol[i];
|
|
||||||
}
|
|
||||||
outData[row][col] = sum;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return out;
|
|
||||||
};
|
|
||||||
|
|
||||||
Matrix.prototype.scalarMultiply = function(s) {
|
|
||||||
var out = new Matrix(this.rSize, this.cSize);
|
|
||||||
for (var i = 0; i < this.rSize; i++) {
|
|
||||||
for (var j = 0; j < this.cSize; j++) {
|
|
||||||
out.data[i][j] = this.data[i][j] * s;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return out;
|
|
||||||
};
|
|
||||||
|
|
||||||
Matrix.prototype.transpose = function() {
|
|
||||||
var out = new Matrix(this.cSize, this.rSize);
|
|
||||||
for (var i = 0; i < this.rSize; i++) {
|
|
||||||
for (var j = 0; j < this.cSize; j++) {
|
|
||||||
out.data[j][i] = this.data[i][j];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return out;
|
|
||||||
};
|
|
||||||
|
|
||||||
Matrix.prototype.copy = function() {
|
|
||||||
var out = new Matrix(this.rSize, this.cSize);
|
|
||||||
for (var i = 0; i < this.rSize; i++) {
|
|
||||||
for (var j = 0; j < this.cSize; j++) {
|
|
||||||
out.data[i][j] = this.data[i][j];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return out;
|
|
||||||
};
|
|
||||||
|
|
||||||
Matrix.prototype.dot = function(v) {
|
|
||||||
var vData = v.data;
|
|
||||||
var dot = 0;
|
|
||||||
for (var i = 0; i < this.rSize; i++) {
|
|
||||||
dot += this.data[i][0] * vData[i][0];
|
|
||||||
}
|
|
||||||
return dot;
|
|
||||||
};
|
|
||||||
|
|
||||||
Matrix.prototype.norm = function(v) {
|
|
||||||
var sum = 0;
|
|
||||||
for (var i = 0; i < this.rSize; i++) {
|
|
||||||
var a = this.data[i][0];
|
|
||||||
sum += a * a;
|
|
||||||
}
|
|
||||||
return Math.sqrt(sum);
|
|
||||||
};
|
|
||||||
Loading…
Reference in a new issue