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<H2 align="left">C Specification</H2>
13<P align="left"><CODE><CODE>&nbsp;&nbsp;&nbsp; #include &lt;revolution/mtx.h&gt;<BR> <BR> &nbsp;&nbsp;&nbsp; void C_MTXConcat ( const Mtx <EM>a</EM>, const Mtx <EM>b</EM>, Mtx <EM>ab</EM> );<BR> &nbsp;&nbsp;&nbsp; void PSMTXConcat ( const Mtx <EM>a</EM>, const Mtx <EM>b</EM>, Mtx <EM>ab</EM> );<BR> <BR> &nbsp;&nbsp;&nbsp; #define MTXConcat C_MTXConcat // for debug build<BR> &nbsp;&nbsp;&nbsp; #define MTXConcat PSMTXConcat // for nondebug build</CODE></CODE></P>
14<H2 align="left">Arguments</H2>
15<DIV align="left">
16<TABLE border="1" cellpadding="3" cellspacing="0.1">
17  <TBODY>
18    <TR>
19<TD width="120" bgcolor="#ffffe8"><EM><STRONG>a</STRONG></EM></TD>
20<TD width="520" valign="top" align="left">First matrix for multiply.&nbsp;&nbsp; <code><em><strong>a</strong></em></code> may be either an <A href="../structures/Mtx_MtxPtr.html"><CODE>Mtx</CODE></A> or an <A href="../structures/Mtx_MtxPtr.html"><CODE>MtxPtr</CODE></A>.</TD>
21    </TR>
22    <TR>
23<TD width="120" bgcolor="#ffffe8"><EM><STRONG><em><strong><code>b</code></strong></em>&nbsp;&nbsp;</STRONG></EM></TD>
24<TD width="520" valign="top" align="left">Second matrix for multiply.&nbsp;&nbsp; <code><em><strong>b</strong></em></code> may be either an <A href="../structures/Mtx_MtxPtr.html"><CODE>Mtx</CODE></A> or an <A href="../structures/Mtx_MtxPtr.html"><CODE>MtxPtr</CODE></A>.</TD>
25    </TR>
26    <TR>
27<TD width="120" bgcolor="#ffffe8"><EM><STRONG><em><strong><code>ab</code></strong></em>&nbsp;&nbsp;</STRONG></EM></TD>
28<TD width="520" valign="top" align="left">Resultant concatenated matrix ( <code><em><strong>a</strong></em></code> x <code><em><strong>b</strong></em></code> ).&nbsp;( <code><em><strong>ab</strong></em></code> may be either an <A href="../structures/Mtx_MtxPtr.html"><CODE>Mtx</CODE></a> or an <A href="../structures/Mtx_MtxPtr.html"><CODE>MtxPtr</CODE></a>.<br>ab</STRONG></EM></CODE> can be the same as <EM><STRONG>a</STRONG></EM> or <CODE><EM><STRONG>b</STRONG></EM></CODE>.</TD>
29    </TR>
30  </TBODY>
31</TABLE>
32</DIV>
33<H2 align="left">Return Values</H2>
34<P align="left">None.</P>
35<H2 align="left">Description</H2>
36<P align="left">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>.&nbsp;Matrices are treated as row-major for multiplication purposes:</P>
37<P align="left"><code>Element [row][col] of <em><strong>ab</strong></em> =&nbsp; <em><strong>a</strong></em> [row] x <em><strong>b</strong></em>[col]</code></P>
38<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>PSMTXConcat</code>, will be automatically substituted. You can also call <CODE>C_MTXConcat</CODE> or <code>PSMTXConcat</code> explicitly.</P>
39<P align="left"><B>Note 1:</B> 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> since it reduces a copy operation from the temporary local matrix.</P>
40<P><B>Note 2:</B> Some calculation errors can be expected between the C version and the paired-single version because of processing order differences.</P>
41
42
43<H2 align="left">See Also</H2>
44<P align="left"><A href="../structures/Mtx_MtxPtr.html"><CODE>Mtx, MtxPtr</CODE></A>,<A href="../stack/MTXPush.html"><CODE>MTXPush</CODE></A>, <A href="../stack/MTXPushFwd.html"><CODE>MTXPushFwd</CODE></A>, <A href="../stack/MTXPushInv.html"><CODE>MTXPushInv</CODE></A>, <A href="../stack/MTXPushInvXpose.html"><CODE>MTXPushInvXpose</CODE></A></P>
45<H2>Revision History</H2>
46<P>2006/03/01 Initial version.</P>
47<hr>
48<P>CONFIDENTIAL</p>
49</BODY>
50</HTML>