Skip to content

Instantly share code, notes, and snippets.

@jussi-kalliokoski
Created July 1, 2012 08:50
Show Gist options
  • Save jussi-kalliokoski/3027596 to your computer and use it in GitHub Desktop.
Save jussi-kalliokoski/3027596 to your computer and use it in GitHub Desktop.
The power of JS macros
function wat (
outputBuffer, outputOffset, outputStride,
inputBuffer, inputOffset, inputStride,
a, b, c, d
) {
var o, i, s
i = (inputOffset) || 0
inputStride = inputStride || 1
o = (outputOffset) || 0
outputStride = outputStride || 1
var _a = typeof a === "number"
var _b = typeof b === "number"
var _c = typeof c === "number"
var _d = typeof d === "number"
if (!_a && !_b && !_c && !_d) for (; i<(inputBuffer).length; outputBuffer[o] = (Math.random() * s * inputBuffer[i]), i+=inputStride, o+=outputStride) {
s = 1 * a[i] * b[i] * c[i] * d[i]
}
if (_a && !_b && !_c && !_d) for (; i<(inputBuffer).length; outputBuffer[o] = (Math.random() * s * inputBuffer[i]), i+=inputStride, o+=outputStride) {
s = 1 * a * b[i] * c[i] * d[i]
}
if (!_a && _b && !_c && !_d) for (; i<(inputBuffer).length; outputBuffer[o] = (Math.random() * s * inputBuffer[i]), i+=inputStride, o+=outputStride) {
s = 1 * a[i] * b * c[i] * d[i]
}
if (_a && _b && !_c && !_d) for (; i<(inputBuffer).length; outputBuffer[o] = (Math.random() * s * inputBuffer[i]), i+=inputStride, o+=outputStride) {
s = 1 * a * b * c[i] * d[i]
}
if (!_a && !_b && _c && !_d) for (; i<(inputBuffer).length; outputBuffer[o] = (Math.random() * s * inputBuffer[i]), i+=inputStride, o+=outputStride) {
s = 1 * a[i] * b[i] * c * d[i]
}
if (_a && !_b && _c && !_d) for (; i<(inputBuffer).length; outputBuffer[o] = (Math.random() * s * inputBuffer[i]), i+=inputStride, o+=outputStride) {
s = 1 * a * b[i] * c * d[i]
}
if (!_a && _b && _c && !_d) for (; i<(inputBuffer).length; outputBuffer[o] = (Math.random() * s * inputBuffer[i]), i+=inputStride, o+=outputStride) {
s = 1 * a[i] * b * c * d[i]
}
if (_a && _b && _c && !_d) for (; i<(inputBuffer).length; outputBuffer[o] = (Math.random() * s * inputBuffer[i]), i+=inputStride, o+=outputStride) {
s = 1 * a * b * c * d[i]
}
if (!_a && !_b && !_c && _d) for (; i<(inputBuffer).length; outputBuffer[o] = (Math.random() * s * inputBuffer[i]), i+=inputStride, o+=outputStride) {
s = 1 * a[i] * b[i] * c[i] * d
}
if (_a && !_b && !_c && _d) for (; i<(inputBuffer).length; outputBuffer[o] = (Math.random() * s * inputBuffer[i]), i+=inputStride, o+=outputStride) {
s = 1 * a * b[i] * c[i] * d
}
if (!_a && _b && !_c && _d) for (; i<(inputBuffer).length; outputBuffer[o] = (Math.random() * s * inputBuffer[i]), i+=inputStride, o+=outputStride) {
s = 1 * a[i] * b * c[i] * d
}
if (_a && _b && !_c && _d) for (; i<(inputBuffer).length; outputBuffer[o] = (Math.random() * s * inputBuffer[i]), i+=inputStride, o+=outputStride) {
s = 1 * a * b * c[i] * d
}
if (!_a && !_b && _c && _d) for (; i<(inputBuffer).length; outputBuffer[o] = (Math.random() * s * inputBuffer[i]), i+=inputStride, o+=outputStride) {
s = 1 * a[i] * b[i] * c * d
}
if (_a && !_b && _c && _d) for (; i<(inputBuffer).length; outputBuffer[o] = (Math.random() * s * inputBuffer[i]), i+=inputStride, o+=outputStride) {
s = 1 * a * b[i] * c * d
}
if (!_a && _b && _c && _d) for (; i<(inputBuffer).length; outputBuffer[o] = (Math.random() * s * inputBuffer[i]), i+=inputStride, o+=outputStride) {
s = 1 * a[i] * b * c * d
}
if (_a && _b && _c && _d) for (; i<(inputBuffer).length; outputBuffer[o] = (Math.random() * s * inputBuffer[i]), i+=inputStride, o+=outputStride) {
s = 1 * a * b * c * d
}
}
function wat (
outputBuffer, outputOffset, outputStride,
inputBuffer, inputOffset, inputStride,
a, b, c, d
) {
var o, i, s
process (Math.random() * s * inputBuffer[i],
o, outputBuffer, outputOffset, outputStride,
i, inputBuffer, inputOffset, inputStride,
a, b, c, d
) {
s = 1 * a * b * c * d
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment