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);//
}