# shz_mat3x3_inverse_unscaled

Source: https://sh4zam.com/api/matrix/shz_mat3x3_inverse_unscaled/

```c
SHZ_INLINE void shz_mat3x3_inverse_unscaled(const shz_mat3x3_t* mat, shz_mat3x3_t* out) SHZ_NOEXCEPT;
```

Computes the inverse of an orthonormal 3x3 matrix.

## Parameters

| Name | Type | Description |
| --- | --- | --- |
| `mat` | `const shz_mat3x3_t *` | Pointer to the 3x3 matrix to invert. |
| `out` | `shz_mat3x3_t *` | Pointer to the resulting inverted matrix. |

## Returns

Nothing (`void`).

## Notes

- The routine saves cycles by not scaling by the determinant, which is typically useful for normals and lighting, where the matrix has no scale factor.

## Warnings

- This routine clobbers XMTRX.

## Availability

- **C++ equivalent:** none (call the C function from C++)
- **Type-generic form:** none
- **Back-ends:** SH4: shared C implementation · SW: portable C · SPU: shared C implementation
- **Defined in:** [`sh4zam/shz_matrix.h:959`](https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_matrix.h#L959)
- **Module:** [Matrix](https://sh4zam.com/api/matrix/), section "Functions"
