#include <revolution/mtx.h>
void C_MTXConcatArray (
const Mtx a,
const Mtx* srcBase, Mtx* dstBase,
u32 count );
void PSMTXConcatArray (
const Mtx a,
const Mtx* srcBase, Mtx* dstBase,
u32 count );
#define MTXConcatArray C_MTXConcatArray // for debug build
#define MTXConcatArray PSMTXConcatArray // for nondebug build
| a | First matrix to multiply. The type of a may be either Mtx or MtxPtr. |
|---|---|
| srcBase | Pointer to first matrix of source matrix array for multiply. (As second matrix for each concatenation.) |
| dstBase | Pointer to first matrix of destination matrix array. |
| count | Number of contiguous array elements to multiply. count must be greater than 1. |
OK if srcBase = dstBase. However, the condition of srcBase < dstBase < (srcBase + count - 1) must be avoided.
None.
Performs matrix concatenation for arrays. Multiplies (a x srcBase[n]) and places the result in dstBase[n] (0 ≦ n < count). Matrices are treated as row-major for multiplication purposes.
For arrays of matrices, this function is more efficient than calling MTXConcat in a loop; this saves the overhead of repeated function calls.
During a debug build, MTXConcatArray is interpreted as C_MTXConcatArray, which is a normal C language version. During a non-debug build for a Broadway processor, the paired-singles equivalent of this function, PSMTXConcatArray, will be automatically substituted. You can also call each of C_MTXConcatArray/PSMTXConcatArray explicitly.
Note: Because of processing order differences, some calculation errors may be expected between the C version and the paired-single version.
2006/03/01 Initial version.
CONFIDENTIAL