1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 2<HTML> 3<HEAD> 4<META http-equiv="Content-Type" content="text/html; charset=windows-1252"> 5<META name="GENERATOR" content="Microsoft FrontPage 5.0"> 6<META http-equiv="Content-Style-Type" content="text/css"> 7<LINK rel="stylesheet" type="text/css" href="../../CSS/revolution.css"> 8<TITLE>MTXConcat</TITLE> 9</HEAD> 10<BODY> 11<H1 align="left">MTXConcat</H1> 12 13<H2 align="left">Syntax</H2> 14<dl><dd><pre class="construction"> 15#include <revolution/mtx.h> 16 17void C_MTXConcat ( const Mtx a, const Mtx b, Mtx ab ); 18void PSMTXConcat ( const Mtx a, const Mtx b, Mtx ab ); 19 20#define MTXConcat C_MTXConcat // for debug build 21#define MTXConcat PSMTXConcat // for nondebug build 22</pre></dd></dl> 23 24<H2 align="left">Arguments</H2> 25<TABLE class="arguments" border="1" > 26 <TBODY> 27 <TR> 28<TH>a</TH> 29<TD>First matrix to multiply. The type of <SPAN class="argument">a</SPAN> may be either <A href="../structures/Mtx_MtxPtr.html"><CODE>Mtx</CODE></A> or <A href="../structures/Mtx_MtxPtr.html"><CODE>MtxPtr</CODE></A>.</TD> 30 </TR> 31 <TR> 32<TH>b</TH> 33<TD>Second matrix to multiply. The type of <SPAN class="argument">b</SPAN> may be either <A href="../structures/Mtx_MtxPtr.html"><CODE>Mtx</CODE></A> or <A href="../structures/Mtx_MtxPtr.html"><CODE>MtxPtr</CODE></A>.</TD> 34 </TR> 35 <TR> 36<TH>ab</TH> 37<TD>Resultant concatenated matrix (<SPAN class="argument">a</SPAN> x <SPAN class="argument">b</SPAN>). The type of <SPAN class="argument">ab</SPAN> may be either <A href="../structures/Mtx_MtxPtr.html"><CODE>Mtx</CODE></A> or <A href="../structures/Mtx_MtxPtr.html"><CODE>MtxPtr</CODE></A>. Okay if <SPAN class="argument">ab</SPAN> = <SPAN class="argument">a</SPAN> or <SPAN class="argument">ab</SPAN> = <SPAN class="argument">b</SPAN>.</TD> 38 </TR> 39 </TBODY> 40</TABLE> 41 42<H2 align="left">Return Values</H2> 43<P>None.</P> 44 45<H2 align="left">Description</H2> 46<P>Multiplies ( <code><em><strong>a</strong></em></code> x <code><em><strong>b</strong></em></code> ) and places the result in <code><em><strong>ab</strong></em></code>. Matrices are treated as row-major for multiplication purposes:</P> 47<P><code>element [row][col] of <em><strong>ab</strong></em> = <em><strong>a</strong></em> [row] x <em><strong>b</strong></em>[col]</code></P> 48<P>During a debug build, <code>MTXConcat</code> is interpreted as <code>C_MTXConcat</code>, which is a normal C language version. During a nondebug build for a Broadway processor, the paired-singles equivalent of this function, <code><font face="Courier New">PSMTXConcat</font></code>, will be automatically substituted. You can also call <CODE>C_MTXConcat</CODE> and <CODE>PSMTXConcat</CODE> explicitly.</P> 49<P>Note 1: The C version of this function becomes faster if <code><em><strong>ab</strong></em></code> does not equal either <code><em><strong>a</strong></em></code> or <code><em><strong>b</strong></em></code> as it saves a copy operation from a temporary local matrix.</P> 50<P><STRONG>Note 2:</STRONG> Some calculation differences may be expected between the C version and the paired-single version because of processing order differences.</P> 51 52<H2 align="left">See Also</H2> 53<P class="reference"> 54<A href="../structures/Mtx_MtxPtr.html">Mtx, MtxPtr</A>, 55<A href="../stack/MTXPush.html">MTXPush</A>, 56<A href="../stack/MTXPushFwd.html">MTXPushFwd</A>, 57<A href="../stack/MTXPushInv.html">MTXPushInv</A>, 58<A href="../stack/MTXPushInvXpose.html">MTXPushInvXpose</A> 59</P> 60 61<H2>Revision History</H2> 62<P> 632006/03/01 Initial version. 64</P> 65 66<hr><p>CONFIDENTIAL</p></body> 67</HTML>