#include <revolution/mtx.h> void C_MTXConcat ( const Mtx a, const Mtx b, Mtx ab ); void PSMTXConcat ( const Mtx a, const Mtx b, Mtx ab ); #define MTXConcat C_MTXConcat // for debug build #define MTXConcat PSMTXConcat // for nondebug build
| a | First matrix to multiply. The type of a may be either Mtx or MtxPtr. |
|---|---|
| b | Second matrix to multiply. The type of b may be either Mtx or MtxPtr. |
| ab | Resultant concatenated matrix (a x b). The type of ab may be either Mtx or MtxPtr. Okay if ab = a or ab = b. |
None.
Multiplies ( a x b ) and places the result in ab. Matrices are treated as row-major for multiplication purposes:
element [row][col] of ab = a [row] x b[col]
During a debug build, MTXConcat is interpreted as C_MTXConcat, which is a normal C language version. During a nondebug build for a Broadway processor, the paired-singles equivalent of this function, PSMTXConcat, will be automatically substituted. You can also call C_MTXConcat and PSMTXConcat explicitly.
Note 1: The C version of this function becomes faster if ab does not equal either a or b as it saves a copy operation from a temporary local matrix.
Note 2: Some calculation differences may be expected between the C version and the paired-single version because of processing order differences.
Mtx, MtxPtr, MTXPush, MTXPushFwd, MTXPushInv, MTXPushInvXpose
2006/03/01 Initial version.
CONFIDENTIAL