Skip to content
Browse files

added scalarMultiplication

  • Loading branch information...
1 parent d60207f commit 2f27d35e7ac43fbc6f5068a2464f51146ff5e468 @fibo committed Jan 19, 2013
Showing with 19 additions and 5 deletions.
  1. +19 −5 lib/Real/SquareMatrix.js
View
24 lib/Real/SquareMatrix.js
@@ -23,7 +23,7 @@ function RealSquareMatrix(arg) {
_elements.push(arg.elements[i]);
}
}
- self.getElements = function () { return _elements };
+ self.getElements = function getElements() { return _elements };
// TODO order ricavato in automatico in base al numero di elementi
// se non si tratta di un quadrato pero?
@@ -36,6 +36,21 @@ function RealSquareMatrix(arg) {
return _elements[index(i, j, _numCols)];
};
+ self.scalar = self.scalarMultiplication = function scalarMultiplication(scalar) {
+
+ // TOOD funzione comune a tutti coerceToRealElement
+ if (typeof scalar == 'number') {
+ scalar = new RealElement(scalar);
+ }
+ // TODO qui presumo che scalar sia un RealElement, devo usare instanceof per assicurarmene
+ // forse la cosa migliore è dare questa intelligenza al costruttore di RealElement
+ for (var i in _elements) _elements[i].mul(scalar);
+ // TODO sarebbe comodo fare una classe Set per fare
+ // _elements = new Set di reali, a quel punto posso fare
+ // _elements.mul(scalar) e li moltiplico tutti, perchè a sua volta la classe Set applica la mul a tutti
+ // questo potrebbe essere usato sia da Vector che da Matrix che da Tensor
+ };
+
// TODO wquesto modo di definire le funzioni sarebbe consigliabile
// per non farle anomime e avere uno stack migliore.
self.row = self.getRowByIndex = function getRowByIndex(rowIndex) {
@@ -48,7 +63,8 @@ function RealSquareMatrix(arg) {
};
- self.getColumnByIndex = function (colIndex) {
+
+ self.col = self.getColumnByIndex = function getColumnByIndex(colIndex) {
var col = [];
for (var i = 0; i < _numRows; i++) {
var element = self.ij(i, colIndex);
@@ -57,7 +73,6 @@ function RealSquareMatrix(arg) {
return col;
};
- self.col = self.getColumnByIndex;
self.rightMultiplication = function (matrix) {
for (var i = 0; i < _numRows; i++) {
@@ -69,10 +84,9 @@ function RealSquareMatrix(arg) {
var element = R.getZero();
for (var k = 0; k < _order; k++) {
- console.log(element.num() + ' + ' + row[k].num() + ' * ' + col[k].num());
+ console.log('('+i+','+j+') '+element.num() + ' + ' + row[k].num() + ' * ' + col[k].num());
element.add(row[k].mul(col[k]));
}
- console.log('element = '+element.num());
_elements[index(i, j, _numCols)] = element;
}
}

0 comments on commit 2f27d35

Please sign in to comment.
Something went wrong with that request. Please try again.