} while (--nc); 
} 
  multiply: function(matrix) {    if (!matrix.elements) {      return this.map(function(x) { return x * matrix; });    }    var returnVector = matrix.modulus ? true : false;    var M = matrix.elements || matrix;    if (typeof(M[0][0]) == 'undefined') { M = Matrix.create(M).elements; }    if (!this.canMultiplyFromLeft(M)) { return null; }    var ni = this.elements.length, ki = ni, i, nj, kj = M[0].length, j;    var cols = this.elements[0].length, elements = [], sum, nc, c;    do { i = ki - ni;      elements[i] = [];      nj = kj;      do { j = kj - nj;        sum = 0;        nc = cols;        do { c = cols - nc;          sum += this.elements[i][c] * M[c][j];        } while (--nc);        elements[i][j] = sum;      } while (--nj);    } while (--ni);    var M = Matrix.create(elements);    return returnVector ? M.col(1) : M;  },
3123	/local1/tlutelli/issta_data/temp/all_js/javascript/2007_temp/2007/3123/5bb35ddb3516d7e68f3747d86540ffaa68de3fe3/matrix.js/buggy/src/matrix.js