Skip to content

shz_xmtrx_apply_store_4x4

Markdown
SHZ_INLINE void shz_xmtrx_apply_store_4x4(shz_mat4x4_t* out, const shz_mat4x4_t* in) SHZ_NOEXCEPT;

Multiplies XMTRX by the matrix, in, storing the result within the matrix, out.

NameTypeDescription
outshz_mat4x4_t *
inconst shz_mat4x4_t *

Nothing (void).

This routine is roughly equivalent to: shz_xmtrx_apply_4x4(in); shz_xmtrx_store_4x4(out);

However, it has been optimized and pipelined for performing the multiply and store in parallel.

  • This is useful for when you want to multiply a batch of matrices by the same matrix, held within XMTRX.
  • The result of the multiplication is not stored within XMTRX, despite it getting clobbered.
  • shz_mat4x4_t and shz_mat2x2_t arguments must be 8-byte aligned. Unaligned data goes through the float[16] parameters of the _unaligned routines.
  • C++ equivalent: none (call the C function from C++)
  • Type-generic form: none
  • Back-ends: SH4: dedicated SH4 implementation · SW: portable C · SPU: shared C implementation
  • Defined in: sh4zam/shz_xmtrx.h:658
  • Module: XMTRX, section "Compound Operations"

shz_xmtrx_apply_4x4, shz_xmtrx_store_4x4, shz_xmtrx_apply_store_unaligned_4x4