view 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
line wrap: on
line source

document.write("<p>start</p>");

fftCross = Module.cwrap(
    'fftCross', 'void', ['number', 'number', 'number', 'number', 'number', 'number' ]
);

var data = new Float64Array([1,1,1,1,1,1,1,1]);
var n = data.length * data.BYTES_PER_ELEMENT;
var ptr = Module._malloc(n * 4);
var h1 = new Uint8Array(Module.HEAPU8.buffer, ptr, n);
var h2 = new Uint8Array(Module.HEAPU8.buffer, ptr + n, n);
document.write("ptr = " + ptr + ", h1 = " + h1 + "<br>");
h1.set(new Uint8Array(data.buffer));
h2.set(new Uint8Array(data.buffer));
var result = fftCross(8, 0, ptr, ptr + n, ptr + 2*n, ptr + 3*n);
var real = new Float64Array(Module.HEAPU8.buffer, ptr + 2*n, 8);
var imag = new Float64Array(Module.HEAPU8.buffer, ptr + 3*n, 8);
document.write("result: " + result + "<br>");
document.write("output: ");
for (var i = 0; i < 8; ++i) {
    document.write(real[i] + "," + imag[i] + " ");
}
Module._free(ptr);


document.write("<p>end</p>");