Matrix row reduction

Benchmark created on


Setup

function createMatrix(width, height) {
    return new Array(height).fill(0).map(() => new Array(width).fill(0).map(() => Math.random()));
}
var n = 10;
var A = createMatrix(n + 1, n);

Test runner

Ready to run.

Testing in
TestOps/sec
Add 1 inside loop
for(let j = 0; j < n - 1; j++) {
	let j_row = A[j];
    for(let k = j + 1; k < n; k++) {
        let k_row = A[k];
        let scale = k_row[j] / j_row[j];
        k_row[j] = 0.0;
        for(let l = j; l < n; l++) {
            k_row[l + 1] -= scale * j_row[l + 1];
        }
    }
}
ready
Add 1 in loop condition
for(let j = 0; j < n - 1; j++) {
	let j_row = A[j];
    for(let k = j + 1; k < n; k++) {
        let k_row = A[k];
        let scale = k_row[j] / j_row[j];
        k_row[j] = 0.0;
        for(let l = j + 1; l < n + 1; l++) {
            k_row[l] -= scale * j_row[l];
        }
    }
}
ready

Revisions

You can edit these tests or add more tests to this page by appending /edit to the URL.