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.
38 lines
881 B
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
|
||
|
}
|