Search across packages, versions, files, declarations, and comments. Use multiple terms to narrow results (AND), and add @vertex, @fragment, or @compute to filter by shader stage.
1fn _naga_inverse_3x3_f16(m: mat3x3<f16>) -> mat3x3<f16> {
2 var adj: mat3x3<f16>;
4 adj[0][0] = (m[1][1] * m[2][2] - m[2][1] * m[1][2]);
5 adj[1][0] = - (m[1][0] * m[2][2] - m[2][0] * m[1][2]);
6 adj[2][0] = (m[1][0] * m[2][1] - m[2][0] * m[1][1]);
7 adj[0][1] = - (m[0][1] * m[2][2] - m[2][1] * m[0][2]);
8 adj[1][1] = (m[0][0] * m[2][2] - m[2][0] * m[0][2]);
9 adj[2][1] = - (m[0][0] * m[2][1] - m[2][0] * m[0][1]);
10 adj[0][2] = (m[0][1] * m[1][2] - m[1][1] * m[0][2]);
11 adj[1][2] = - (m[0][0] * m[1][2] - m[1][0] * m[0][2]);
12 adj[2][2] = (m[0][0] * m[1][1] - m[1][0] * m[0][1]);
14 let det: f16 = (m[0][0] * (m[1][1] * m[2][2] - m[1][2] * m[2][1])
15 - m[0][1] * (m[1][0] * m[2][2] - m[1][2] * m[2][0])
16 + m[0][2] * (m[1][0] * m[2][1] - m[1][1] * m[2][0]));
18 return adj * (1 / det);
Contents