<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"> <title>Eigen::PermutationMatrix Class Reference</title> <link href="doxygen.css" rel="stylesheet" type="text/css"> <link href="tabs.css" rel="stylesheet" type="text/css"> </head><body> <div align="left"><a href="http://www.mrpt.org/">Main MRPT website</a> > <b>C++ reference</b> </div> <div align="right"> <a href="index.html"><img border="0" src="mrpt_logo.png" alt="MRPT logo"></a> </div> <!-- Generated by Doxygen 1.7.5 --> <script type="text/javascript"> var searchBox = new SearchBox("searchBox", "search",false,'Search'); </script> <div id="navrow1" class="tabs"> <ul class="tablist"> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li><a href="modules.html"><span>Modules</span></a></li> <li><a href="namespaces.html"><span>Namespaces</span></a></li> <li class="current"><a href="annotated.html"><span>Classes</span></a></li> <li><a href="files.html"><span>Files</span></a></li> <li> <div id="MSearchBox" class="MSearchBoxInactive"> <div class="left"> <form id="FSearchBox" action="search.php" method="get"> <img id="MSearchSelect" src="search/mag.png" alt=""/> <input type="text" id="MSearchField" name="query" value="Search" size="20" accesskey="S" onfocus="searchBox.OnSearchFieldFocus(true)" onblur="searchBox.OnSearchFieldFocus(false)"/> </form> </div><div class="right"></div> </div> </li> </ul> </div> <div id="navrow2" class="tabs2"> <ul class="tablist"> <li><a href="annotated.html"><span>Class List</span></a></li> <li><a href="classes.html"><span>Class Index</span></a></li> <li><a href="inherits.html"><span>Class Hierarchy</span></a></li> <li><a href="functions.html"><span>Class Members</span></a></li> </ul> </div> <div id="nav-path" class="navpath"> <ul> <li class="navelem"><a class="el" href="namespace_eigen.html">Eigen</a> </li> <li class="navelem"><a class="el" href="class_eigen_1_1_permutation_matrix.html">PermutationMatrix</a> </li> </ul> </div> </div> <div class="header"> <div class="summary"> <a href="#pub-methods">Public Member Functions</a> | <a href="#pro-attribs">Protected Attributes</a> | <a href="#pri-types">Private Types</a> | <a href="#friends">Friends</a> </div> <div class="headertitle"> <div class="title">Eigen::PermutationMatrix Class Reference<div class="ingroups"><a class="el" href="group___core___module.html">Core module</a></div></div> </div> </div> <div class="contents"> <!-- doxytag: class="Eigen::PermutationMatrix" --><!-- doxytag: inherits="PermutationBase< PermutationMatrix< SizeAtCompileTime, MaxSizeAtCompileTime, IndexType > >" --><hr/><a name="details" id="details"></a><h2>Detailed Description</h2> <div class="textblock"><p>Permutation matrix. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">SizeAtCompileTime</td><td>the number of rows/cols, or Dynamic </td></tr> <tr><td class="paramname">MaxSizeAtCompileTime</td><td>the maximum number of rows/cols, or Dynamic. This optional parameter defaults to SizeAtCompileTime. Most of the time, you should not have to specify it. </td></tr> <tr><td class="paramname">IndexType</td><td>the interger type of the indices</td></tr> </table> </dd> </dl> <p>This class represents a permutation matrix, internally stored as a vector of integers.</p> <dl class="see"><dt><b>See also:</b></dt><dd>class <a class="el" href="class_eigen_1_1_permutation_base.html" title="Base class for permutations.">PermutationBase</a>, class <a class="el" href="class_eigen_1_1_permutation_wrapper.html" title="Class to view a vector of integers as a permutation matrix.">PermutationWrapper</a>, class <a class="el" href="class_eigen_1_1_diagonal_matrix.html" title="Represents a diagonal matrix with its storage.">DiagonalMatrix</a> </dd></dl> </div><div class="dynheader"> Inheritance diagram for Eigen::PermutationMatrix:</div> <div class="dyncontent"> <div class="center"><img src="class_eigen_1_1_permutation_matrix__inherit__graph.png" border="0" usemap="#_eigen_1_1_permutation_matrix_inherit__map" alt="Inheritance graph"/></div> <map name="_eigen_1_1_permutation_matrix_inherit__map" id="_eigen_1_1_permutation_matrix_inherit__map"> <area shape="rect" id="node11" href="class_eigen_1_1_permutation_matrix.html" title="Eigen::PermutationMatrix\< ColsAtCompileTime, MaxColsAtCompileTime \>" alt="" coords="2442,5,2902,32"/><area shape="rect" id="node13" href="class_eigen_1_1_permutation_matrix.html" title="Eigen::PermutationMatrix\< RowsAtCompileTime, MaxRowsAtCompileTime \>" alt="" coords="2435,56,2909,83"/><area shape="rect" id="node2" href="class_eigen_1_1_permutation_base.html" title="Eigen::PermutationBase\< PermutationMatrix\< SizeAtCompileTime, MaxSizeAtCompileTime, IndexType \> \>" alt="" coords="1205,31,1856,57"/><area shape="rect" id="node4" href="class_eigen_1_1_permutation_base.html" title="Base class for permutations." alt="" coords="501,31,664,57"/><area shape="rect" id="node6" href="struct_eigen_1_1_eigen_base.html" title="Eigen::EigenBase\< Derived \>" alt="" coords="256,31,451,57"/><area shape="rect" id="node8" href="struct_eigen_1_1_eigen_base.html" title="Common base class for all classes T such that MatrixBase has an operator=(T) and a constructor Matrix..." alt="" coords="6,31,133,57"/></map> <center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div> <p><a href="class_eigen_1_1_permutation_matrix-members.html">List of all members.</a></p> <table class="memberdecls"> <tr><td colspan="2"><h2><a name="pub-methods"></a> Public Member Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_eigen_1_1_permutation_matrix.html#a0f9feaa091db680296d8696590b7c967">PermutationMatrix</a> ()</td></tr> <tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_eigen_1_1_permutation_matrix.html#a66e03b64f4f83ba896be1544b1b3f92e">PermutationMatrix</a> (int size)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Constructs an uninitialized permutation matrix of given size. <a href="#a66e03b64f4f83ba896be1544b1b3f92e"></a><br/></td></tr> <tr><td class="memTemplParams" colspan="2">template<typename OtherDerived > </td></tr> <tr><td class="memTemplItemLeft" align="right" valign="top"> </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="class_eigen_1_1_permutation_matrix.html#aec44fe19a57fcc9598303c73d5c18858">PermutationMatrix</a> (const <a class="el" href="class_eigen_1_1_permutation_base.html">PermutationBase</a>< OtherDerived > &other)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Copy constructor. <a href="#aec44fe19a57fcc9598303c73d5c18858"></a><br/></td></tr> <tr><td class="memTemplParams" colspan="2">template<typename Other > </td></tr> <tr><td class="memTemplItemLeft" align="right" valign="top"> </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="class_eigen_1_1_permutation_matrix.html#a3552ed441654816e7e5196f16eccb2e1">PermutationMatrix</a> (const <a class="el" href="class_eigen_1_1_matrix_base.html">MatrixBase</a>< Other > &indices)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Generic constructor from expression of the indices. <a href="#a3552ed441654816e7e5196f16eccb2e1"></a><br/></td></tr> <tr><td class="memTemplParams" colspan="2">template<typename Other > </td></tr> <tr><td class="memTemplItemLeft" align="right" valign="top"> </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="class_eigen_1_1_permutation_matrix.html#a68fb7c2b7cf8cf4197d60707eab28ea4">PermutationMatrix</a> (const <a class="el" href="class_eigen_1_1_transpositions_base.html">TranspositionsBase</a>< Other > &tr)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Convert the <a class="el" href="class_eigen_1_1_transpositions.html" title="Represents a sequence of transpositions (row/column interchange)">Transpositions</a> <em>tr</em> to a permutation matrix. <a href="#a68fb7c2b7cf8cf4197d60707eab28ea4"></a><br/></td></tr> <tr><td class="memTemplParams" colspan="2">template<typename Other > </td></tr> <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="class_eigen_1_1_permutation_matrix.html">PermutationMatrix</a> & </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="class_eigen_1_1_permutation_matrix.html#a16ef8fbd6c92f32a5aaac7d94df4b7b1">operator=</a> (const <a class="el" href="class_eigen_1_1_permutation_base.html">PermutationBase</a>< Other > &other)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Copies the other permutation into *this. <a href="#a16ef8fbd6c92f32a5aaac7d94df4b7b1"></a><br/></td></tr> <tr><td class="memTemplParams" colspan="2">template<typename Other > </td></tr> <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="class_eigen_1_1_permutation_matrix.html">PermutationMatrix</a> & </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="class_eigen_1_1_permutation_matrix.html#ae73660b5e324a7660acd489d8cfb251a">operator=</a> (const <a class="el" href="class_eigen_1_1_transpositions_base.html">TranspositionsBase</a>< Other > &tr)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Assignment from the <a class="el" href="class_eigen_1_1_transpositions.html" title="Represents a sequence of transpositions (row/column interchange)">Transpositions</a> <em>tr</em>. <a href="#ae73660b5e324a7660acd489d8cfb251a"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">const IndicesType & </td><td class="memItemRight" valign="bottom"><a class="el" href="class_eigen_1_1_permutation_matrix.html#a025e824408c0b5fdc2843938cceb87a8">indices</a> () const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">const version of <a class="el" href="class_eigen_1_1_permutation_matrix.html#a1f86d5f8ff8e9509266684342b01468d">indices()</a>. <a href="#a025e824408c0b5fdc2843938cceb87a8"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">IndicesType & </td><td class="memItemRight" valign="bottom"><a class="el" href="class_eigen_1_1_permutation_matrix.html#a1f86d5f8ff8e9509266684342b01468d">indices</a> ()</td></tr> <tr><td class="memItemLeft" align="right" valign="top">Index </td><td class="memItemRight" valign="bottom"><a class="el" href="class_eigen_1_1_permutation_base.html#a8b205ecbcc2f9a3caba5b04729945799">rows</a> () const </td></tr> <tr><td class="memItemLeft" align="right" valign="top">Index </td><td class="memItemRight" valign="bottom"><a class="el" href="class_eigen_1_1_permutation_base.html#aacaf8bc9a6075bc06d35131f2df1f6c7">cols</a> () const </td></tr> <tr><td class="memItemLeft" align="right" valign="top">Index </td><td class="memItemRight" valign="bottom"><a class="el" href="class_eigen_1_1_permutation_base.html#a366f2cffa577a229d972425eb92cc91e">size</a> () const </td></tr> <tr><td class="memItemLeft" align="right" valign="top">DenseMatrixType </td><td class="memItemRight" valign="bottom"><a class="el" href="class_eigen_1_1_permutation_base.html#a769a68292f47ac302fadab660ad438fc">toDenseMatrix</a> () const </td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_eigen_1_1_permutation_base.html#a828d2f51adb08ba1e251b355ca106799">resize</a> (Index size)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Resizes to given size. <a href="#a828d2f51adb08ba1e251b355ca106799"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_eigen_1_1_permutation_base.html#a4e922d295299a124ec4a4e98ca913bfe">setIdentity</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Sets *this to be the identity permutation matrix. <a href="#a4e922d295299a124ec4a4e98ca913bfe"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_eigen_1_1_permutation_base.html#a153cb6e9ca14fee0336f13b2ae0b8d8e">setIdentity</a> (Index size)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Sets *this to be the identity permutation matrix of given size. <a href="#a153cb6e9ca14fee0336f13b2ae0b8d8e"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">Derived & </td><td class="memItemRight" valign="bottom"><a class="el" href="class_eigen_1_1_permutation_base.html#a90dfa04c2679c1d36580ed40889d3082">applyTranspositionOnTheLeft</a> (Index i, Index j)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Multiplies *this by the transposition <img class="formulaInl" alt="$(ij)$" src="form_154.png"/> on the left. <a href="#a90dfa04c2679c1d36580ed40889d3082"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">Derived & </td><td class="memItemRight" valign="bottom"><a class="el" href="class_eigen_1_1_permutation_base.html#a03b3f8f23e1c2d67f32c9601876ab31a">applyTranspositionOnTheRight</a> (Index i, Index j)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Multiplies *this by the transposition <img class="formulaInl" alt="$(ij)$" src="form_154.png"/> on the right. <a href="#a03b3f8f23e1c2d67f32c9601876ab31a"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_eigen_1_1_transpose.html">Transpose</a>< <a class="el" href="class_eigen_1_1_permutation_base.html">PermutationBase</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="class_eigen_1_1_permutation_base.html#a363e27832a4e4cd7950ebf3b21522235">inverse</a> () const </td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_eigen_1_1_transpose.html">Transpose</a>< <a class="el" href="class_eigen_1_1_permutation_base.html">PermutationBase</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="class_eigen_1_1_permutation_base.html#abc80afc553941382c9d6ad17682e5e60">transpose</a> () const </td></tr> <tr><td class="memItemLeft" align="right" valign="top">PlainPermutationType </td><td class="memItemRight" valign="bottom"><a class="el" href="class_eigen_1_1_permutation_base.html#ac7ab0585e811b4ea1acede157350bc5a">operator*</a> (const <a class="el" href="class_eigen_1_1_permutation_base.html">PermutationBase</a>< Other > &other) const </td></tr> <tr><td class="memItemLeft" align="right" valign="top">PlainPermutationType </td><td class="memItemRight" valign="bottom"><a class="el" href="class_eigen_1_1_permutation_base.html#afd04fc28a07cbd06d31bc804e3957b83">operator*</a> (const <a class="el" href="class_eigen_1_1_transpose.html">Transpose</a>< <a class="el" href="class_eigen_1_1_permutation_base.html">PermutationBase</a>< Other > > &other) const </td></tr> <tr><td colspan="2"><h2><a name="pro-attribs"></a> Protected Attributes</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">IndicesType </td><td class="memItemRight" valign="bottom"><a class="el" href="class_eigen_1_1_permutation_matrix.html#a28ecf5957ab7418e0a2f56f4f8b0bfbc">m_indices</a></td></tr> <tr><td colspan="2"><h2><a name="pri-types"></a> Private Types</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="class_eigen_1_1_permutation_base.html">PermutationBase</a><br class="typebreak"/> < <a class="el" href="class_eigen_1_1_permutation_matrix.html">PermutationMatrix</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="class_eigen_1_1_permutation_matrix.html#a7ce265d5d70106d31aa382b03f3d7cbf">Base</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">typedef internal::traits<br class="typebreak"/> < <a class="el" href="class_eigen_1_1_permutation_matrix.html">PermutationMatrix</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="class_eigen_1_1_permutation_matrix.html#a8fb26e60a9cd0f181a4569bf71596ed0">Traits</a></td></tr> <tr><td colspan="2"><h2><a name="friends"></a> Friends</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">PlainPermutationType </td><td class="memItemRight" valign="bottom"><a class="el" href="class_eigen_1_1_permutation_base.html#a0972773a04ab8399ac02a16e5f243310">operator*</a> (const <a class="el" href="class_eigen_1_1_transpose.html">Transpose</a>< <a class="el" href="class_eigen_1_1_permutation_base.html">PermutationBase</a>< Other > > &other, const <a class="el" href="class_eigen_1_1_permutation_base.html">PermutationBase</a> &perm)</td></tr> </table> <hr/><h2>Member Typedef Documentation</h2> <a class="anchor" id="a7ce265d5d70106d31aa382b03f3d7cbf"></a><!-- doxytag: member="Eigen::PermutationMatrix::Base" ref="a7ce265d5d70106d31aa382b03f3d7cbf" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef <a class="el" href="class_eigen_1_1_permutation_base.html">PermutationBase</a><<a class="el" href="class_eigen_1_1_permutation_matrix.html">PermutationMatrix</a>> <a class="el" href="class_eigen_1_1_permutation_matrix.html#a7ce265d5d70106d31aa382b03f3d7cbf">Eigen::PermutationMatrix::Base</a><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Reimplemented from <a class="el" href="class_eigen_1_1_permutation_base.html#aa1d04a401d1d43abb252110b87fbb746">Eigen::PermutationBase< PermutationMatrix< SizeAtCompileTime, MaxSizeAtCompileTime, IndexType > ></a>.</p> <p>Definition at line <a class="el" href="_core_source.html#l00297">297</a> of file <a class="el" href="_core_source.html">Core</a>.</p> </div> </div> <a class="anchor" id="a8fb26e60a9cd0f181a4569bf71596ed0"></a><!-- doxytag: member="Eigen::PermutationMatrix::Traits" ref="a8fb26e60a9cd0f181a4569bf71596ed0" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef internal::traits<<a class="el" href="class_eigen_1_1_permutation_matrix.html">PermutationMatrix</a>> <a class="el" href="class_eigen_1_1_permutation_matrix.html#a8fb26e60a9cd0f181a4569bf71596ed0">Eigen::PermutationMatrix::Traits</a><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Reimplemented from <a class="el" href="class_eigen_1_1_permutation_base.html#a2fc3a5f3f95640601fe2be0ac3375001">Eigen::PermutationBase< PermutationMatrix< SizeAtCompileTime, MaxSizeAtCompileTime, IndexType > ></a>.</p> <p>Definition at line <a class="el" href="_core_source.html#l00298">298</a> of file <a class="el" href="_core_source.html">Core</a>.</p> </div> </div> <hr/><h2>Constructor & Destructor Documentation</h2> <a class="anchor" id="a0f9feaa091db680296d8696590b7c967"></a><!-- doxytag: member="Eigen::PermutationMatrix::PermutationMatrix" ref="a0f9feaa091db680296d8696590b7c967" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">Eigen::PermutationMatrix::PermutationMatrix </td> <td>(</td> <td class="paramname"></td><td>)</td> <td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="_core_source.html#l00305">305</a> of file <a class="el" href="_core_source.html">Core</a>.</p> </div> </div> <a class="anchor" id="a66e03b64f4f83ba896be1544b1b3f92e"></a><!-- doxytag: member="Eigen::PermutationMatrix::PermutationMatrix" ref="a66e03b64f4f83ba896be1544b1b3f92e" args="(int size)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">Eigen::PermutationMatrix::PermutationMatrix </td> <td>(</td> <td class="paramtype">int </td> <td class="paramname"><em>size</em></td><td>)</td> <td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Constructs an uninitialized permutation matrix of given size. </p> <p>Definition at line <a class="el" href="_core_source.html#l00310">310</a> of file <a class="el" href="_core_source.html">Core</a>.</p> </div> </div> <a class="anchor" id="aec44fe19a57fcc9598303c73d5c18858"></a><!-- doxytag: member="Eigen::PermutationMatrix::PermutationMatrix" ref="aec44fe19a57fcc9598303c73d5c18858" args="(const PermutationBase< OtherDerived > &other)" --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename OtherDerived > </div> <table class="memname"> <tr> <td class="memname">Eigen::PermutationMatrix::PermutationMatrix </td> <td>(</td> <td class="paramtype">const <a class="el" href="class_eigen_1_1_permutation_base.html">PermutationBase</a>< OtherDerived > & </td> <td class="paramname"><em>other</em></td><td>)</td> <td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Copy constructor. </p> <p>Definition at line <a class="el" href="_core_source.html#l00315">315</a> of file <a class="el" href="_core_source.html">Core</a>.</p> </div> </div> <a class="anchor" id="a3552ed441654816e7e5196f16eccb2e1"></a><!-- doxytag: member="Eigen::PermutationMatrix::PermutationMatrix" ref="a3552ed441654816e7e5196f16eccb2e1" args="(const MatrixBase< Other > &indices)" --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename Other > </div> <table class="memname"> <tr> <td class="memname">Eigen::PermutationMatrix::PermutationMatrix </td> <td>(</td> <td class="paramtype">const <a class="el" href="class_eigen_1_1_matrix_base.html">MatrixBase</a>< Other > & </td> <td class="paramname"><em>indices</em></td><td>)</td> <td><code> [inline, explicit]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Generic constructor from expression of the indices. </p> <p>The indices array has the meaning that the permutations sends each integer i to indices[i].</p> <dl class="warning"><dt><b>Warning:</b></dt><dd>It is your responsibility to check that the indices array that you passes actually describes a permutation, i.e., each value between 0 and n-1 occurs exactly once, where n is the array's size. </dd></dl> <p>Definition at line <a class="el" href="_core_source.html#l00332">332</a> of file <a class="el" href="_core_source.html">Core</a>.</p> </div> </div> <a class="anchor" id="a68fb7c2b7cf8cf4197d60707eab28ea4"></a><!-- doxytag: member="Eigen::PermutationMatrix::PermutationMatrix" ref="a68fb7c2b7cf8cf4197d60707eab28ea4" args="(const TranspositionsBase< Other > &tr)" --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename Other > </div> <table class="memname"> <tr> <td class="memname">Eigen::PermutationMatrix::PermutationMatrix </td> <td>(</td> <td class="paramtype">const <a class="el" href="class_eigen_1_1_transpositions_base.html">TranspositionsBase</a>< Other > & </td> <td class="paramname"><em>tr</em></td><td>)</td> <td><code> [inline, explicit]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Convert the <a class="el" href="class_eigen_1_1_transpositions.html" title="Represents a sequence of transpositions (row/column interchange)">Transpositions</a> <em>tr</em> to a permutation matrix. </p> <p>Definition at line <a class="el" href="_core_source.html#l00337">337</a> of file <a class="el" href="_core_source.html">Core</a>.</p> </div> </div> <hr/><h2>Member Function Documentation</h2> <a class="anchor" id="a90dfa04c2679c1d36580ed40889d3082"></a><!-- doxytag: member="Eigen::PermutationMatrix::applyTranspositionOnTheLeft" ref="a90dfa04c2679c1d36580ed40889d3082" args="(Index i, Index j)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">Derived& Eigen::PermutationBase::applyTranspositionOnTheLeft </td> <td>(</td> <td class="paramtype">Index </td> <td class="paramname"><em>i</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">Index </td> <td class="paramname"><em>j</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td><code> [inline, inherited]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Multiplies *this by the transposition <img class="formulaInl" alt="$(ij)$" src="form_154.png"/> on the left. </p> <dl class="return"><dt><b>Returns:</b></dt><dd>a reference to *this.</dd></dl> <dl class="warning"><dt><b>Warning:</b></dt><dd>This is much slower than applyTranspositionOnTheRight(int,int): this has linear complexity and requires a lot of branching.</dd></dl> <dl class="see"><dt><b>See also:</b></dt><dd>applyTranspositionOnTheRight(int,int) </dd></dl> <p>Definition at line <a class="el" href="_core_source.html#l00183">183</a> of file <a class="el" href="_core_source.html">Core</a>.</p> </div> </div> <a class="anchor" id="a03b3f8f23e1c2d67f32c9601876ab31a"></a><!-- doxytag: member="Eigen::PermutationMatrix::applyTranspositionOnTheRight" ref="a03b3f8f23e1c2d67f32c9601876ab31a" args="(Index i, Index j)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">Derived& Eigen::PermutationBase::applyTranspositionOnTheRight </td> <td>(</td> <td class="paramtype">Index </td> <td class="paramname"><em>i</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">Index </td> <td class="paramname"><em>j</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td><code> [inline, inherited]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Multiplies *this by the transposition <img class="formulaInl" alt="$(ij)$" src="form_154.png"/> on the right. </p> <dl class="return"><dt><b>Returns:</b></dt><dd>a reference to *this.</dd></dl> <p>This is a fast operation, it only consists in swapping two indices.</p> <dl class="see"><dt><b>See also:</b></dt><dd>applyTranspositionOnTheLeft(int,int) </dd></dl> <p>Definition at line <a class="el" href="_core_source.html#l00202">202</a> of file <a class="el" href="_core_source.html">Core</a>.</p> </div> </div> <a class="anchor" id="aacaf8bc9a6075bc06d35131f2df1f6c7"></a><!-- doxytag: member="Eigen::PermutationMatrix::cols" ref="aacaf8bc9a6075bc06d35131f2df1f6c7" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">Index Eigen::PermutationBase::cols </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"></td><td>)</td> <td> const<code> [inline, inherited]</code></td> </tr> </table> </div> <div class="memdoc"> <dl class="return"><dt><b>Returns:</b></dt><dd>the number of columns </dd></dl> <p>Definition at line <a class="el" href="_core_source.html#l00123">123</a> of file <a class="el" href="_core_source.html">Core</a>.</p> </div> </div> <a class="anchor" id="a025e824408c0b5fdc2843938cceb87a8"></a><!-- doxytag: member="Eigen::PermutationMatrix::indices" ref="a025e824408c0b5fdc2843938cceb87a8" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const IndicesType& Eigen::PermutationMatrix::indices </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>const version of <a class="el" href="class_eigen_1_1_permutation_matrix.html#a1f86d5f8ff8e9509266684342b01468d">indices()</a>. </p> <p>Reimplemented from <a class="el" href="class_eigen_1_1_permutation_base.html#a58ff4ec77f1a1c7647a19cd0ea727b16">Eigen::PermutationBase< PermutationMatrix< SizeAtCompileTime, MaxSizeAtCompileTime, IndexType > ></a>.</p> <p>Definition at line <a class="el" href="_core_source.html#l00370">370</a> of file <a class="el" href="_core_source.html">Core</a>.</p> </div> </div> <a class="anchor" id="a1f86d5f8ff8e9509266684342b01468d"></a><!-- doxytag: member="Eigen::PermutationMatrix::indices" ref="a1f86d5f8ff8e9509266684342b01468d" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">IndicesType& Eigen::PermutationMatrix::indices </td> <td>(</td> <td class="paramname"></td><td>)</td> <td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <dl class="return"><dt><b>Returns:</b></dt><dd>a reference to the stored array representing the permutation. </dd></dl> <p>Reimplemented from <a class="el" href="class_eigen_1_1_permutation_base.html#a56e0ee02e3372f775ff3d400896c26a6">Eigen::PermutationBase< PermutationMatrix< SizeAtCompileTime, MaxSizeAtCompileTime, IndexType > ></a>.</p> <p>Definition at line <a class="el" href="_core_source.html#l00372">372</a> of file <a class="el" href="_core_source.html">Core</a>.</p> </div> </div> <a class="anchor" id="a363e27832a4e4cd7950ebf3b21522235"></a><!-- doxytag: member="Eigen::PermutationMatrix::inverse" ref="a363e27832a4e4cd7950ebf3b21522235" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="class_eigen_1_1_transpose.html">Transpose</a><<a class="el" href="class_eigen_1_1_permutation_base.html">PermutationBase</a>> Eigen::PermutationBase::inverse </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const<code> [inline, inherited]</code></td> </tr> </table> </div> <div class="memdoc"> <dl class="return"><dt><b>Returns:</b></dt><dd>the inverse permutation matrix.</dd></dl> <dl class="note"><dt><b>Note:</b></dt><dd></dd></dl> <p>Definition at line <a class="el" href="_core_source.html#l00213">213</a> of file <a class="el" href="_core_source.html">Core</a>.</p> </div> </div> <a class="anchor" id="ac7ab0585e811b4ea1acede157350bc5a"></a><!-- doxytag: member="Eigen::PermutationMatrix::operator*" ref="ac7ab0585e811b4ea1acede157350bc5a" args="(const PermutationBase< Other > &other) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">PlainPermutationType Eigen::PermutationBase::operator* </td> <td>(</td> <td class="paramtype">const <a class="el" href="class_eigen_1_1_permutation_base.html">PermutationBase</a>< Other > & </td> <td class="paramname"><em>other</em></td><td>)</td> <td> const<code> [inline, inherited]</code></td> </tr> </table> </div> <div class="memdoc"> <dl class="return"><dt><b>Returns:</b></dt><dd>the product permutation matrix.</dd></dl> <dl class="note"><dt><b>Note:</b></dt><dd></dd></dl> <p>Definition at line <a class="el" href="_core_source.html#l00247">247</a> of file <a class="el" href="_core_source.html">Core</a>.</p> </div> </div> <a class="anchor" id="afd04fc28a07cbd06d31bc804e3957b83"></a><!-- doxytag: member="Eigen::PermutationMatrix::operator*" ref="afd04fc28a07cbd06d31bc804e3957b83" args="(const Transpose< PermutationBase< Other > > &other) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">PlainPermutationType Eigen::PermutationBase::operator* </td> <td>(</td> <td class="paramtype">const <a class="el" href="class_eigen_1_1_transpose.html">Transpose</a>< <a class="el" href="class_eigen_1_1_permutation_base.html">PermutationBase</a>< Other > > & </td> <td class="paramname"><em>other</em></td><td>)</td> <td> const<code> [inline, inherited]</code></td> </tr> </table> </div> <div class="memdoc"> <dl class="return"><dt><b>Returns:</b></dt><dd>the product of a permutation with another inverse permutation.</dd></dl> <dl class="note"><dt><b>Note:</b></dt><dd></dd></dl> <p>Definition at line <a class="el" href="_core_source.html#l00255">255</a> of file <a class="el" href="_core_source.html">Core</a>.</p> </div> </div> <a class="anchor" id="a16ef8fbd6c92f32a5aaac7d94df4b7b1"></a><!-- doxytag: member="Eigen::PermutationMatrix::operator=" ref="a16ef8fbd6c92f32a5aaac7d94df4b7b1" args="(const PermutationBase< Other > &other)" --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename Other > </div> <table class="memname"> <tr> <td class="memname"><a class="el" href="class_eigen_1_1_permutation_matrix.html">PermutationMatrix</a>& Eigen::PermutationMatrix::operator= </td> <td>(</td> <td class="paramtype">const <a class="el" href="class_eigen_1_1_permutation_base.html">PermutationBase</a>< Other > & </td> <td class="paramname"><em>other</em></td><td>)</td> <td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Copies the other permutation into *this. </p> <p>Definition at line <a class="el" href="_core_source.html#l00345">345</a> of file <a class="el" href="_core_source.html">Core</a>.</p> </div> </div> <a class="anchor" id="ae73660b5e324a7660acd489d8cfb251a"></a><!-- doxytag: member="Eigen::PermutationMatrix::operator=" ref="ae73660b5e324a7660acd489d8cfb251a" args="(const TranspositionsBase< Other > &tr)" --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename Other > </div> <table class="memname"> <tr> <td class="memname"><a class="el" href="class_eigen_1_1_permutation_matrix.html">PermutationMatrix</a>& Eigen::PermutationMatrix::operator= </td> <td>(</td> <td class="paramtype">const <a class="el" href="class_eigen_1_1_transpositions_base.html">TranspositionsBase</a>< Other > & </td> <td class="paramname"><em>tr</em></td><td>)</td> <td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Assignment from the <a class="el" href="class_eigen_1_1_transpositions.html" title="Represents a sequence of transpositions (row/column interchange)">Transpositions</a> <em>tr</em>. </p> <p>Definition at line <a class="el" href="_core_source.html#l00353">353</a> of file <a class="el" href="_core_source.html">Core</a>.</p> </div> </div> <a class="anchor" id="a828d2f51adb08ba1e251b355ca106799"></a><!-- doxytag: member="Eigen::PermutationMatrix::resize" ref="a828d2f51adb08ba1e251b355ca106799" args="(Index size)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void Eigen::PermutationBase::resize </td> <td>(</td> <td class="paramtype">Index </td> <td class="paramname"><em>size</em></td><td>)</td> <td><code> [inline, inherited]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Resizes to given size. </p> <p>Definition at line <a class="el" href="_core_source.html#l00154">154</a> of file <a class="el" href="_core_source.html">Core</a>.</p> </div> </div> <a class="anchor" id="a8b205ecbcc2f9a3caba5b04729945799"></a><!-- doxytag: member="Eigen::PermutationMatrix::rows" ref="a8b205ecbcc2f9a3caba5b04729945799" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">Index Eigen::PermutationBase::rows </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"></td><td>)</td> <td> const<code> [inline, inherited]</code></td> </tr> </table> </div> <div class="memdoc"> <dl class="return"><dt><b>Returns:</b></dt><dd>the number of rows </dd></dl> <p>Definition at line <a class="el" href="_core_source.html#l00120">120</a> of file <a class="el" href="_core_source.html">Core</a>.</p> </div> </div> <a class="anchor" id="a4e922d295299a124ec4a4e98ca913bfe"></a><!-- doxytag: member="Eigen::PermutationMatrix::setIdentity" ref="a4e922d295299a124ec4a4e98ca913bfe" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void Eigen::PermutationBase::setIdentity </td> <td>(</td> <td class="paramname"></td><td>)</td> <td><code> [inline, inherited]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Sets *this to be the identity permutation matrix. </p> <p>Definition at line <a class="el" href="_core_source.html#l00160">160</a> of file <a class="el" href="_core_source.html">Core</a>.</p> </div> </div> <a class="anchor" id="a153cb6e9ca14fee0336f13b2ae0b8d8e"></a><!-- doxytag: member="Eigen::PermutationMatrix::setIdentity" ref="a153cb6e9ca14fee0336f13b2ae0b8d8e" args="(Index size)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void Eigen::PermutationBase::setIdentity </td> <td>(</td> <td class="paramtype">Index </td> <td class="paramname"><em>size</em></td><td>)</td> <td><code> [inline, inherited]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Sets *this to be the identity permutation matrix of given size. </p> <p>Definition at line <a class="el" href="_core_source.html#l00168">168</a> of file <a class="el" href="_core_source.html">Core</a>.</p> </div> </div> <a class="anchor" id="a366f2cffa577a229d972425eb92cc91e"></a><!-- doxytag: member="Eigen::PermutationMatrix::size" ref="a366f2cffa577a229d972425eb92cc91e" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">Index Eigen::PermutationBase::size </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const<code> [inline, inherited]</code></td> </tr> </table> </div> <div class="memdoc"> <dl class="return"><dt><b>Returns:</b></dt><dd>the size of a side of the respective square matrix, i.e., the number of indices </dd></dl> <p>Definition at line <a class="el" href="_core_source.html#l00126">126</a> of file <a class="el" href="_core_source.html">Core</a>.</p> </div> </div> <a class="anchor" id="a769a68292f47ac302fadab660ad438fc"></a><!-- doxytag: member="Eigen::PermutationMatrix::toDenseMatrix" ref="a769a68292f47ac302fadab660ad438fc" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">DenseMatrixType Eigen::PermutationBase::toDenseMatrix </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const<code> [inline, inherited]</code></td> </tr> </table> </div> <div class="memdoc"> <dl class="return"><dt><b>Returns:</b></dt><dd>a Matrix object initialized from this permutation matrix. Notice that it is inefficient to return this Matrix object by value. For efficiency, favor using the Matrix constructor taking EigenBase objects. </dd></dl> <p>Definition at line <a class="el" href="_core_source.html#l00142">142</a> of file <a class="el" href="_core_source.html">Core</a>.</p> </div> </div> <a class="anchor" id="abc80afc553941382c9d6ad17682e5e60"></a><!-- doxytag: member="Eigen::PermutationMatrix::transpose" ref="abc80afc553941382c9d6ad17682e5e60" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="class_eigen_1_1_transpose.html">Transpose</a><<a class="el" href="class_eigen_1_1_permutation_base.html">PermutationBase</a>> Eigen::PermutationBase::transpose </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const<code> [inline, inherited]</code></td> </tr> </table> </div> <div class="memdoc"> <dl class="return"><dt><b>Returns:</b></dt><dd>the tranpose permutation matrix.</dd></dl> <dl class="note"><dt><b>Note:</b></dt><dd></dd></dl> <p>Definition at line <a class="el" href="_core_source.html#l00219">219</a> of file <a class="el" href="_core_source.html">Core</a>.</p> </div> </div> <hr/><h2>Friends And Related Function Documentation</h2> <a class="anchor" id="a0972773a04ab8399ac02a16e5f243310"></a><!-- doxytag: member="Eigen::PermutationMatrix::operator*" ref="a0972773a04ab8399ac02a16e5f243310" args="(const Transpose< PermutationBase< Other > > &other, const PermutationBase &perm)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">PlainPermutationType operator* </td> <td>(</td> <td class="paramtype">const <a class="el" href="class_eigen_1_1_transpose.html">Transpose</a>< <a class="el" href="class_eigen_1_1_permutation_base.html">PermutationBase</a>< Other > > & </td> <td class="paramname"><em>other</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="class_eigen_1_1_permutation_base.html">PermutationBase</a>< <a class="el" href="class_eigen_1_1_permutation_matrix.html">PermutationMatrix</a>< SizeAtCompileTime, MaxSizeAtCompileTime, IndexType > > & </td> <td class="paramname"><em>perm</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td><code> [friend, inherited]</code></td> </tr> </table> </div> <div class="memdoc"> <dl class="return"><dt><b>Returns:</b></dt><dd>the product of an inverse permutation with another permutation.</dd></dl> <dl class="note"><dt><b>Note:</b></dt><dd></dd></dl> <p>Definition at line <a class="el" href="_core_source.html#l00263">263</a> of file <a class="el" href="_core_source.html">Core</a>.</p> </div> </div> <hr/><h2>Member Data Documentation</h2> <a class="anchor" id="a28ecf5957ab7418e0a2f56f4f8b0bfbc"></a><!-- doxytag: member="Eigen::PermutationMatrix::m_indices" ref="a28ecf5957ab7418e0a2f56f4f8b0bfbc" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">IndicesType <a class="el" href="class_eigen_1_1_permutation_matrix.html#a28ecf5957ab7418e0a2f56f4f8b0bfbc">Eigen::PermutationMatrix::m_indices</a><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="_core_source.html#l00394">394</a> of file <a class="el" href="_core_source.html">Core</a>.</p> </div> </div> </div> <br><hr><br> <table border="0" width="100%"> <tr> <td> Page generated by <a href="http://www.doxygen.org" target="_blank">Doxygen 1.7.5</a> for MRPT 0.9.5 SVN: at Sun Sep 25 17:20:18 UTC 2011</td><td></td> <td width="100"> </td> <td width="150"> </td></tr> </table> </body></html>