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 &lt;revolution/mtx.h&gt;
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>.&nbsp;Matrices are treated as row-major for multiplication purposes:</P>
47<P><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>
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>