Luna::determinant

f32 determinant(const Float4x4 &mat)

Computes the determinant of the specified matrix.

This function performs the following operations:

return
     m.r[0].x * (m.r[1].y * (m.r[2].z * m.r[3].w - m.r[2].w * m.r[3].z) + m.r[1].z * (m.r[2].w * m.r[3].y - m.r[2].y * m.r[3].w) + m.r[1].w * (m.r[2].y * m.r[3].z - m.r[2].z * m.r[3].y))
    -m.r[0].y * (m.r[1].x * (m.r[2].z * m.r[3].w - m.r[2].w * m.r[3].z) + m.r[1].z * (m.r[2].w * m.r[3].x - m.r[2].x * m.r[3].w) + m.r[1].w * (m.r[2].x * m.r[3].z - m.r[2].z * m.r[3].x))
    +m.r[0].z * (m.r[1].x * (m.r[2].y * m.r[3].w - m.r[2].w * m.r[3].y) + m.r[1].y * (m.r[2].w * m.r[3].x - m.r[2].x * m.r[3].w) + m.r[1].w * (m.r[2].x * m.r[3].y - m.r[2].y * m.r[3].x))
    -m.r[0].w * (m.r[1].x * (m.r[2].y * m.r[3].z - m.r[2].z * m.r[3].y) + m.r[1].y * (m.r[2].z * m.r[3].x - m.r[2].x * m.r[3].z) + m.r[1].z * (m.r[2].x * m.r[3].y - m.r[2].y * m.r[3].x));

Parameters

  • in mat

    The matrix to compute.

Return value

Returns the computed determinant.