annotate fft/cross/Crosswrap.js @ 5:b4ab69bdb4c8

Beginnings of an emscripten example
author Chris Cannam
date Mon, 05 Oct 2015 11:30:40 +0100
parents
children 91d77df352fa
rev   line source
Chris@5 1
Chris@5 2 document.write("<p>start</p>");
Chris@5 3
Chris@5 4 fftCross = Module.cwrap(
Chris@5 5 'fftCross', 'void', ['number', 'number', 'number', 'number', 'number', 'number' ]
Chris@5 6 );
Chris@5 7
Chris@5 8 var data = new Float64Array([1,1,1,1,1,1,1,1]);
Chris@5 9 var n = data.length * data.BYTES_PER_ELEMENT;
Chris@5 10 var ptr = Module._malloc(n * 4);
Chris@5 11 var h1 = new Uint8Array(Module.HEAPU8.buffer, ptr, n);
Chris@5 12 var h2 = new Uint8Array(Module.HEAPU8.buffer, ptr + n, n);
Chris@5 13 document.write("ptr = " + ptr + ", h1 = " + h1 + "<br>");
Chris@5 14 h1.set(new Uint8Array(data.buffer));
Chris@5 15 h2.set(new Uint8Array(data.buffer));
Chris@5 16 var result = fftCross(8, 0, ptr, ptr + n, ptr + 2*n, ptr + 3*n);
Chris@5 17 var real = new Float64Array(Module.HEAPU8.buffer, ptr + 2*n, 8);
Chris@5 18 var imag = new Float64Array(Module.HEAPU8.buffer, ptr + 3*n, 8);
Chris@5 19 document.write("result: " + result + "<br>");
Chris@5 20 document.write("output: ");
Chris@5 21 for (var i = 0; i < 8; ++i) {
Chris@5 22 document.write(real[i] + "," + imag[i] + " ");
Chris@5 23 }
Chris@5 24 Module._free(ptr);
Chris@5 25
Chris@5 26
Chris@5 27 document.write("<p>end</p>");