StackGenVis: Alignment of Data, Algorithms, and Models for Stacking Ensemble Learning Using Performance Metrics https://doi.org/10.1109/TVCG.2020.3030352
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
StackGenVis/frontend/node_modules/gl-mat3/invert.js

38 lines
881 B

4 years ago
module.exports = invert
/**
* Inverts a mat3
*
* @alias mat3.invert
* @param {mat3} out the receiving matrix
* @param {mat3} a the source matrix
* @returns {mat3} out
*/
function invert(out, a) {
var a00 = a[0], a01 = a[1], a02 = a[2]
var a10 = a[3], a11 = a[4], a12 = a[5]
var a20 = a[6], a21 = a[7], a22 = a[8]
var b01 = a22 * a11 - a12 * a21
var b11 = -a22 * a10 + a12 * a20
var b21 = a21 * a10 - a11 * a20
// Calculate the determinant
var det = a00 * b01 + a01 * b11 + a02 * b21
if (!det) return null
det = 1.0 / det
out[0] = b01 * det
out[1] = (-a22 * a01 + a02 * a21) * det
out[2] = (a12 * a01 - a02 * a11) * det
out[3] = b11 * det
out[4] = (a22 * a00 - a02 * a20) * det
out[5] = (-a12 * a00 + a02 * a10) * det
out[6] = b21 * det
out[7] = (-a21 * a00 + a01 * a20) * det
out[8] = (a11 * a00 - a01 * a10) * det
return out
}