tensor
test tensor library
by sjpt
HTML
<body>
<h1>tensor library</h1>
<div id="out"></div>
</body>
JavaScript
// test tensor library
// http://jsfiddle.net/sjpt/GMe3H/11/
var oid = document.getElementById("out");
function o(msg) { oid.innerHTML += msg + "<br>"; }
ld = [ {step:1, length: 3}, {step:3, length: 4} ];
t1 = [1,2,3,4,5,6,7,8,9,10,11,12];
t1.ld = ld;
ld.size = 3*4;
/** find the next pos based on the ld */
function next(pos) {
for (var i=0; ; i++) {
pos[i]++;
if (pos[i] < pos.ld[i].length) return;
pos[i] = 0;
}
}
/** return array of zeros */
function zarr(n) {
var r = new Array(n);
for (var i=0; i<n; i++) r[i] = 0;
return r;
}
/** return a tracker for tensor, must call next to start using it */
function tracker(t) {
ld = t.ld;
var r = zarr(ld.length);
r[0] = -1;
r.ld = ld;
return r;
}
/** mul two tensors */
function mul(t1, t2) {
var pos1=tracker(t1);
for (var i1=0; i1<t1.length; i1++) {
next(pos1);
var pos2=tracker(t2);
for (var i2=0; i2<t2.length; i2++) {
next(pos2);
var t = t1[i1]*t2[i2];
o(t);
}
}
}
o("def");
//debugger;
//mul(t1,t1);
//pos = tracker(t1);
//for (i=0; i<ld.size; i++) {
//next(pos, ld);
//o(pos);//
}