console.warn("Can't multiply matricies of sizes "+ax+","+ay+" and "+bx+","+by);
return[[0]];
}
varc=[];
for(vark=0;k<ay;k++){
c[k]=[];
for(vari=0;i<bx;i++){
c[k][i]=0;
for(varm=0;m<ax;m++){
c[k][i]+=a[k][m]*b[m][i];
}
}
}
returnc;// Array
},
product:function(/* Array... */){
// summary
// Return the product of N matrices
if(arguments.length==0){
console.warn("can't multiply 0 matrices!");
return1;
}
varm=arguments[0];
for(vari=1;i<arguments.length;i++){
m=this.multiply(m,arguments[i]);
}
returnm;// Array
},
sum:function(/* Array... */){
// summary
// Return the sum of N matrices
if(arguments.length==0){
console.warn("can't sum 0 matrices!");
return0;// Number
}
varm=this.copy(arguments[0]);
varrows=m.length;
if(rows==0){
console.warn("can't deal with matrices of 0 rows!");
return0;
}
varcols=m[0].length;
if(cols==0){
console.warn("can't deal with matrices of 0 cols!");
return0;
}
for(vari=1;i<arguments.length;++i){
vararg=arguments[i];
if(arg.length!=rows||arg[0].length!=cols){
console.warn("can't add matrices of different dimensions: first dimensions were "+rows+"x"+cols+", current dimensions are "+arg.length+"x"+arg[0].length);