<!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::HouseholderQR 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_householder_q_r.html">HouseholderQR</a> </li> </ul> </div> </div> <div class="header"> <div class="summary"> <a href="#pub-types">Public Types</a> | <a href="#pub-methods">Public Member Functions</a> | <a href="#pro-attribs">Protected Attributes</a> </div> <div class="headertitle"> <div class="title">Eigen::HouseholderQR Class Reference<div class="ingroups"><a class="el" href="group___q_r___module.html">QR module</a></div></div> </div> </div> <div class="contents"> <!-- doxytag: class="Eigen::HouseholderQR" --><hr/><a name="details" id="details"></a><h2>Detailed Description</h2> <div class="textblock"><p>Householder QR decomposition of a matrix. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">MatrixType</td><td>the type of the matrix of which we are computing the QR decomposition</td></tr> </table> </dd> </dl> <p>This class performs a QR decomposition of a matrix <b>A</b> into matrices <b>Q</b> and <b>R</b> such that </p> <p class="formulaDsp"> <img class="formulaDsp" alt="\[ \mathbf{A} = \mathbf{Q} \, \mathbf{R} \]" src="form_264.png"/> </p> <p> by using Householder transformations. Here, <b>Q</b> a unitary matrix and <b>R</b> an upper triangular matrix. The result is stored in a compact way compatible with LAPACK.</p> <p>Note that no pivoting is performed. This is <b>not</b> a rank-revealing decomposition. If you want that feature, use <a class="el" href="class_eigen_1_1_full_piv_householder_q_r.html" title="Householder rank-revealing QR decomposition of a matrix with full pivoting.">FullPivHouseholderQR</a> or <a class="el" href="class_eigen_1_1_col_piv_householder_q_r.html" title="Householder rank-revealing QR decomposition of a matrix with column-pivoting.">ColPivHouseholderQR</a> instead.</p> <p>This Householder QR decomposition is faster, but less numerically stable and less feature-full than <a class="el" href="class_eigen_1_1_full_piv_householder_q_r.html" title="Householder rank-revealing QR decomposition of a matrix with full pivoting.">FullPivHouseholderQR</a> or <a class="el" href="class_eigen_1_1_col_piv_householder_q_r.html" title="Householder rank-revealing QR decomposition of a matrix with column-pivoting.">ColPivHouseholderQR</a>.</p> <dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="class_eigen_1_1_matrix_base.html#aed4fc6caac738a174619f27af5e8bf9e">MatrixBase::householderQr()</a> </dd></dl> </div> <p><a href="class_eigen_1_1_householder_q_r-members.html">List of all members.</a></p> <table class="memberdecls"> <tr><td colspan="2"><h2><a name="pub-types"></a> Public Types</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom">{ <br/>   <a class="el" href="class_eigen_1_1_householder_q_r.html#a3c98c2a9ec990354f72875989cb663edae92400f822386f3a113dac8600a4f5a6">RowsAtCompileTime</a> = MatrixType::RowsAtCompileTime, <a class="el" href="class_eigen_1_1_householder_q_r.html#a3c98c2a9ec990354f72875989cb663eda5f8a706c8abdf1ed821a442a5befb4a7">ColsAtCompileTime</a> = MatrixType::ColsAtCompileTime, <a class="el" href="class_eigen_1_1_householder_q_r.html#a3c98c2a9ec990354f72875989cb663eda7e598eb5e41a037eceee4153e43c3408">Options</a> = MatrixType::Options, <a class="el" href="class_eigen_1_1_householder_q_r.html#a3c98c2a9ec990354f72875989cb663eda2f04f554b52400ae9a5c2eeda6e03daf">MaxRowsAtCompileTime</a> = MatrixType::MaxRowsAtCompileTime, <br/>   <a class="el" href="class_eigen_1_1_householder_q_r.html#a3c98c2a9ec990354f72875989cb663eda3ca9bc7d2e1456d4d9b488c5eb2e2011">MaxColsAtCompileTime</a> = MatrixType::MaxColsAtCompileTime <br/> }</td></tr> <tr><td class="memItemLeft" align="right" valign="top">typedef _MatrixType </td><td class="memItemRight" valign="bottom"><a class="el" href="class_eigen_1_1_householder_q_r.html#aed8a2f1de5ee24a7dd00984dd00cdecc">MatrixType</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">typedef MatrixType::Scalar </td><td class="memItemRight" valign="bottom"><a class="el" href="class_eigen_1_1_householder_q_r.html#a969bc1bf44a1da630e58ad937924d55d">Scalar</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">typedef MatrixType::RealScalar </td><td class="memItemRight" valign="bottom"><a class="el" href="class_eigen_1_1_householder_q_r.html#a5edd7afded601a255eeb0f9b118c6ed8">RealScalar</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">typedef MatrixType::Index </td><td class="memItemRight" valign="bottom"><a class="el" href="class_eigen_1_1_householder_q_r.html#a54db7da9598ca6fadfe21bcdb9522834">Index</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="class_eigen_1_1_matrix.html">Matrix</a>< <a class="el" href="class_eigen_1_1_householder_q_r.html#a969bc1bf44a1da630e58ad937924d55d">Scalar</a>, <br class="typebreak"/> RowsAtCompileTime, <br class="typebreak"/> RowsAtCompileTime,(MatrixType::Flags <br class="typebreak"/> &<a class="el" href="group__flags.html#gae4f56c2a60bbe4bd2e44c5b19cbe8762">RowMajorBit</a>)?RowMajor:ColMajor, <br class="typebreak"/> MaxRowsAtCompileTime, <br class="typebreak"/> MaxRowsAtCompileTime > </td><td class="memItemRight" valign="bottom"><a class="el" href="class_eigen_1_1_householder_q_r.html#a9ac958b24d59f696fd519a681d134029">MatrixQType</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">typedef <br class="typebreak"/> <a class="el" href="struct_eigen_1_1internal_1_1plain__diag__type.html">internal::plain_diag_type</a><br class="typebreak"/> < <a class="el" href="class_eigen_1_1_householder_q_r.html#aed8a2f1de5ee24a7dd00984dd00cdecc">MatrixType</a> >::type </td><td class="memItemRight" valign="bottom"><a class="el" href="class_eigen_1_1_householder_q_r.html#a20239f2785393963c1c099a6544a7f3a">HCoeffsType</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">typedef <br class="typebreak"/> <a class="el" href="struct_eigen_1_1internal_1_1plain__row__type.html">internal::plain_row_type</a><br class="typebreak"/> < <a class="el" href="class_eigen_1_1_householder_q_r.html#aed8a2f1de5ee24a7dd00984dd00cdecc">MatrixType</a> >::type </td><td class="memItemRight" valign="bottom"><a class="el" href="class_eigen_1_1_householder_q_r.html#a04b30b09c2cd66282fe1527fb5200732">RowVectorType</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="class_eigen_1_1_householder_sequence.html">HouseholderSequence</a><br class="typebreak"/> < <a class="el" href="class_eigen_1_1_householder_q_r.html#aed8a2f1de5ee24a7dd00984dd00cdecc">MatrixType</a>, <a class="el" href="class_eigen_1_1_householder_q_r.html#a20239f2785393963c1c099a6544a7f3a">HCoeffsType</a> ><br class="typebreak"/> ::ConjugateReturnType </td><td class="memItemRight" valign="bottom"><a class="el" href="class_eigen_1_1_householder_q_r.html#a5ea66296321d81ca0c539119a3e20f61">HouseholderSequenceType</a></td></tr> <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_householder_q_r.html#aa831b18d62c7a50490b1f36ab09aacd2">HouseholderQR</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Default Constructor. <a href="#aa831b18d62c7a50490b1f36ab09aacd2"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_eigen_1_1_householder_q_r.html#a2dc3c780ac7ba7a1f81d17fe0eec2755">HouseholderQR</a> (<a class="el" href="class_eigen_1_1_householder_q_r.html#a54db7da9598ca6fadfe21bcdb9522834">Index</a> rows, <a class="el" href="class_eigen_1_1_householder_q_r.html#a54db7da9598ca6fadfe21bcdb9522834">Index</a> cols)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Default Constructor with memory preallocation. <a href="#a2dc3c780ac7ba7a1f81d17fe0eec2755"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_eigen_1_1_householder_q_r.html#ae6d58aa2a7096256639abee56fa2a68d">HouseholderQR</a> (const <a class="el" href="class_eigen_1_1_householder_q_r.html#aed8a2f1de5ee24a7dd00984dd00cdecc">MatrixType</a> &matrix)</td></tr> <tr><td class="memTemplParams" colspan="2">template<typename Rhs > </td></tr> <tr><td class="memTemplItemLeft" align="right" valign="top">const internal::solve_retval<br class="typebreak"/> < <a class="el" href="class_eigen_1_1_householder_q_r.html">HouseholderQR</a>, Rhs > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="class_eigen_1_1_householder_q_r.html#a4a6bea02fcfdf7380297606332c6fe6a">solve</a> (const <a class="el" href="class_eigen_1_1_matrix_base.html">MatrixBase</a>< Rhs > &b) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">This method finds a solution x to the equation Ax=b, where A is the matrix of which *this is the QR decomposition, if any exists. <a href="#a4a6bea02fcfdf7380297606332c6fe6a"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_eigen_1_1_householder_q_r.html#a5ea66296321d81ca0c539119a3e20f61">HouseholderSequenceType</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_eigen_1_1_householder_q_r.html#ae8a3a9d83c813bb40dda3472f4fa257d">householderQ</a> () const </td></tr> <tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="class_eigen_1_1_householder_q_r.html#aed8a2f1de5ee24a7dd00984dd00cdecc">MatrixType</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="class_eigen_1_1_householder_q_r.html#a89328ed69bc8a0ceb82f343d9ce1013b">matrixQR</a> () const </td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_eigen_1_1_householder_q_r.html">HouseholderQR</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="class_eigen_1_1_householder_q_r.html#af3ded499ca0c073824aa70e47f911460">compute</a> (const <a class="el" href="class_eigen_1_1_householder_q_r.html#aed8a2f1de5ee24a7dd00984dd00cdecc">MatrixType</a> &matrix)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">MatrixType::RealScalar </td><td class="memItemRight" valign="bottom"><a class="el" href="class_eigen_1_1_householder_q_r.html#a4ad5dfc4fb2375539ac74713dda3afb3">absDeterminant</a> () const </td></tr> <tr><td class="memItemLeft" align="right" valign="top">MatrixType::RealScalar </td><td class="memItemRight" valign="bottom"><a class="el" href="class_eigen_1_1_householder_q_r.html#a73496e169b7e534953bdb4f8a2800a9c">logAbsDeterminant</a> () const </td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_eigen_1_1_householder_q_r.html#a54db7da9598ca6fadfe21bcdb9522834">Index</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_eigen_1_1_householder_q_r.html#a53ad0021bb4fb18bd40368d9ddddd214">rows</a> () const </td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_eigen_1_1_householder_q_r.html#a54db7da9598ca6fadfe21bcdb9522834">Index</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_eigen_1_1_householder_q_r.html#ae20f91178dd7ab1072757f71745ff93a">cols</a> () const </td></tr> <tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="class_eigen_1_1_householder_q_r.html#a20239f2785393963c1c099a6544a7f3a">HCoeffsType</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="class_eigen_1_1_householder_q_r.html#a225e3117193b98e13266c62644f06c97">hCoeffs</a> () 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"><a class="el" href="class_eigen_1_1_householder_q_r.html#aed8a2f1de5ee24a7dd00984dd00cdecc">MatrixType</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_eigen_1_1_householder_q_r.html#ad4c37b05eae1a8002322ee9d38fc2d80">m_qr</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_eigen_1_1_householder_q_r.html#a20239f2785393963c1c099a6544a7f3a">HCoeffsType</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_eigen_1_1_householder_q_r.html#ab47e710e2c8575317bad57b0bae99427">m_hCoeffs</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_eigen_1_1_householder_q_r.html#a04b30b09c2cd66282fe1527fb5200732">RowVectorType</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_eigen_1_1_householder_q_r.html#ac74098939dc2d96927bc2287f65dc9e7">m_temp</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="class_eigen_1_1_householder_q_r.html#a583a18017119ad8b400567427c731281">m_isInitialized</a></td></tr> </table> <hr/><h2>Member Typedef Documentation</h2> <a class="anchor" id="a20239f2785393963c1c099a6544a7f3a"></a><!-- doxytag: member="Eigen::HouseholderQR::HCoeffsType" ref="a20239f2785393963c1c099a6544a7f3a" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef <a class="el" href="struct_eigen_1_1internal_1_1plain__diag__type.html">internal::plain_diag_type</a><<a class="el" href="class_eigen_1_1_householder_q_r.html#aed8a2f1de5ee24a7dd00984dd00cdecc">MatrixType</a>>::type <a class="el" href="class_eigen_1_1_householder_q_r.html#a20239f2785393963c1c099a6544a7f3a">Eigen::HouseholderQR::HCoeffsType</a></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="_q_r_source.html#l00072">72</a> of file <a class="el" href="_q_r_source.html">QR</a>.</p> </div> </div> <a class="anchor" id="a5ea66296321d81ca0c539119a3e20f61"></a><!-- doxytag: member="Eigen::HouseholderQR::HouseholderSequenceType" ref="a5ea66296321d81ca0c539119a3e20f61" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef <a class="el" href="class_eigen_1_1_householder_sequence.html">HouseholderSequence</a><<a class="el" href="class_eigen_1_1_householder_q_r.html#aed8a2f1de5ee24a7dd00984dd00cdecc">MatrixType</a>,<a class="el" href="class_eigen_1_1_householder_q_r.html#a20239f2785393963c1c099a6544a7f3a">HCoeffsType</a>>::ConjugateReturnType <a class="el" href="class_eigen_1_1_householder_q_r.html#a5ea66296321d81ca0c539119a3e20f61">Eigen::HouseholderQR::HouseholderSequenceType</a></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="_q_r_source.html#l00074">74</a> of file <a class="el" href="_q_r_source.html">QR</a>.</p> </div> </div> <a class="anchor" id="a54db7da9598ca6fadfe21bcdb9522834"></a><!-- doxytag: member="Eigen::HouseholderQR::Index" ref="a54db7da9598ca6fadfe21bcdb9522834" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef MatrixType::Index <a class="el" href="class_eigen_1_1_householder_q_r.html#a54db7da9598ca6fadfe21bcdb9522834">Eigen::HouseholderQR::Index</a></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="_q_r_source.html#l00070">70</a> of file <a class="el" href="_q_r_source.html">QR</a>.</p> </div> </div> <a class="anchor" id="a9ac958b24d59f696fd519a681d134029"></a><!-- doxytag: member="Eigen::HouseholderQR::MatrixQType" ref="a9ac958b24d59f696fd519a681d134029" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef <a class="el" href="class_eigen_1_1_matrix.html">Matrix</a><<a class="el" href="class_eigen_1_1_householder_q_r.html#a969bc1bf44a1da630e58ad937924d55d">Scalar</a>, RowsAtCompileTime, RowsAtCompileTime, (MatrixType::Flags&<a class="el" href="group__flags.html#gae4f56c2a60bbe4bd2e44c5b19cbe8762">RowMajorBit</a>) ? RowMajor : ColMajor, MaxRowsAtCompileTime, MaxRowsAtCompileTime> <a class="el" href="class_eigen_1_1_householder_q_r.html#a9ac958b24d59f696fd519a681d134029">Eigen::HouseholderQR::MatrixQType</a></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="_q_r_source.html#l00071">71</a> of file <a class="el" href="_q_r_source.html">QR</a>.</p> </div> </div> <a class="anchor" id="aed8a2f1de5ee24a7dd00984dd00cdecc"></a><!-- doxytag: member="Eigen::HouseholderQR::MatrixType" ref="aed8a2f1de5ee24a7dd00984dd00cdecc" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef _MatrixType <a class="el" href="class_eigen_1_1_householder_q_r.html#aed8a2f1de5ee24a7dd00984dd00cdecc">Eigen::HouseholderQR::MatrixType</a></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="_q_r_source.html#l00060">60</a> of file <a class="el" href="_q_r_source.html">QR</a>.</p> </div> </div> <a class="anchor" id="a5edd7afded601a255eeb0f9b118c6ed8"></a><!-- doxytag: member="Eigen::HouseholderQR::RealScalar" ref="a5edd7afded601a255eeb0f9b118c6ed8" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef MatrixType::RealScalar <a class="el" href="class_eigen_1_1_householder_q_r.html#a5edd7afded601a255eeb0f9b118c6ed8">Eigen::HouseholderQR::RealScalar</a></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="_q_r_source.html#l00069">69</a> of file <a class="el" href="_q_r_source.html">QR</a>.</p> </div> </div> <a class="anchor" id="a04b30b09c2cd66282fe1527fb5200732"></a><!-- doxytag: member="Eigen::HouseholderQR::RowVectorType" ref="a04b30b09c2cd66282fe1527fb5200732" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef <a class="el" href="struct_eigen_1_1internal_1_1plain__row__type.html">internal::plain_row_type</a><<a class="el" href="class_eigen_1_1_householder_q_r.html#aed8a2f1de5ee24a7dd00984dd00cdecc">MatrixType</a>>::type <a class="el" href="class_eigen_1_1_householder_q_r.html#a04b30b09c2cd66282fe1527fb5200732">Eigen::HouseholderQR::RowVectorType</a></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="_q_r_source.html#l00073">73</a> of file <a class="el" href="_q_r_source.html">QR</a>.</p> </div> </div> <a class="anchor" id="a969bc1bf44a1da630e58ad937924d55d"></a><!-- doxytag: member="Eigen::HouseholderQR::Scalar" ref="a969bc1bf44a1da630e58ad937924d55d" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef MatrixType::Scalar <a class="el" href="class_eigen_1_1_householder_q_r.html#a969bc1bf44a1da630e58ad937924d55d">Eigen::HouseholderQR::Scalar</a></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="_q_r_source.html#l00068">68</a> of file <a class="el" href="_q_r_source.html">QR</a>.</p> </div> </div> <hr/><h2>Member Enumeration Documentation</h2> <a class="anchor" id="a3c98c2a9ec990354f72875989cb663ed"></a><!-- doxytag: member="Eigen::HouseholderQR::@376" ref="a3c98c2a9ec990354f72875989cb663ed" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">anonymous enum</td> </tr> </table> </div> <div class="memdoc"> <dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"><em><a class="anchor" id="a3c98c2a9ec990354f72875989cb663edae92400f822386f3a113dac8600a4f5a6"></a><!-- doxytag: member="RowsAtCompileTime" ref="a3c98c2a9ec990354f72875989cb663edae92400f822386f3a113dac8600a4f5a6" args="" -->RowsAtCompileTime</em> </td><td> </td></tr> <tr><td valign="top"><em><a class="anchor" id="a3c98c2a9ec990354f72875989cb663eda5f8a706c8abdf1ed821a442a5befb4a7"></a><!-- doxytag: member="ColsAtCompileTime" ref="a3c98c2a9ec990354f72875989cb663eda5f8a706c8abdf1ed821a442a5befb4a7" args="" -->ColsAtCompileTime</em> </td><td> </td></tr> <tr><td valign="top"><em><a class="anchor" id="a3c98c2a9ec990354f72875989cb663eda7e598eb5e41a037eceee4153e43c3408"></a><!-- doxytag: member="Options" ref="a3c98c2a9ec990354f72875989cb663eda7e598eb5e41a037eceee4153e43c3408" args="" -->Options</em> </td><td> </td></tr> <tr><td valign="top"><em><a class="anchor" id="a3c98c2a9ec990354f72875989cb663eda2f04f554b52400ae9a5c2eeda6e03daf"></a><!-- doxytag: member="MaxRowsAtCompileTime" ref="a3c98c2a9ec990354f72875989cb663eda2f04f554b52400ae9a5c2eeda6e03daf" args="" -->MaxRowsAtCompileTime</em> </td><td> </td></tr> <tr><td valign="top"><em><a class="anchor" id="a3c98c2a9ec990354f72875989cb663eda3ca9bc7d2e1456d4d9b488c5eb2e2011"></a><!-- doxytag: member="MaxColsAtCompileTime" ref="a3c98c2a9ec990354f72875989cb663eda3ca9bc7d2e1456d4d9b488c5eb2e2011" args="" -->MaxColsAtCompileTime</em> </td><td> </td></tr> </table> </dd> </dl> <p>Definition at line <a class="el" href="_q_r_source.html#l00061">61</a> of file <a class="el" href="_q_r_source.html">QR</a>.</p> </div> </div> <hr/><h2>Constructor & Destructor Documentation</h2> <a class="anchor" id="aa831b18d62c7a50490b1f36ab09aacd2"></a><!-- doxytag: member="Eigen::HouseholderQR::HouseholderQR" ref="aa831b18d62c7a50490b1f36ab09aacd2" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">Eigen::HouseholderQR::HouseholderQR </td> <td>(</td> <td class="paramname"></td><td>)</td> <td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Default Constructor. </p> <p>The default constructor is useful in cases in which the user intends to perform decompositions via <a class="el" href="class_eigen_1_1_householder_q_r.html#af3ded499ca0c073824aa70e47f911460">HouseholderQR::compute(const MatrixType&)</a>. </p> <p>Definition at line <a class="el" href="_q_r_source.html#l00082">82</a> of file <a class="el" href="_q_r_source.html">QR</a>.</p> </div> </div> <a class="anchor" id="a2dc3c780ac7ba7a1f81d17fe0eec2755"></a><!-- doxytag: member="Eigen::HouseholderQR::HouseholderQR" ref="a2dc3c780ac7ba7a1f81d17fe0eec2755" args="(Index rows, Index cols)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">Eigen::HouseholderQR::HouseholderQR </td> <td>(</td> <td class="paramtype"><a class="el" href="class_eigen_1_1_householder_q_r.html#a54db7da9598ca6fadfe21bcdb9522834">Index</a> </td> <td class="paramname"><em>rows</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="class_eigen_1_1_householder_q_r.html#a54db7da9598ca6fadfe21bcdb9522834">Index</a> </td> <td class="paramname"><em>cols</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Default Constructor with memory preallocation. </p> <p>Like the default constructor but with preallocation of the internal data according to the specified problem <em>size</em>. </p> <dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="class_eigen_1_1_householder_q_r.html#aa831b18d62c7a50490b1f36ab09aacd2" title="Default Constructor.">HouseholderQR()</a> </dd></dl> <p>Definition at line <a class="el" href="_q_r_source.html#l00090">90</a> of file <a class="el" href="_q_r_source.html">QR</a>.</p> </div> </div> <a class="anchor" id="ae6d58aa2a7096256639abee56fa2a68d"></a><!-- doxytag: member="Eigen::HouseholderQR::HouseholderQR" ref="ae6d58aa2a7096256639abee56fa2a68d" args="(const MatrixType &matrix)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">Eigen::HouseholderQR::HouseholderQR </td> <td>(</td> <td class="paramtype">const <a class="el" href="class_eigen_1_1_householder_q_r.html#aed8a2f1de5ee24a7dd00984dd00cdecc">MatrixType</a> & </td> <td class="paramname"><em>matrix</em></td><td>)</td> <td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="_q_r_source.html#l00096">96</a> of file <a class="el" href="_q_r_source.html">QR</a>.</p> </div> </div> <hr/><h2>Member Function Documentation</h2> <a class="anchor" id="a4ad5dfc4fb2375539ac74713dda3afb3"></a><!-- doxytag: member="Eigen::HouseholderQR::absDeterminant" ref="a4ad5dfc4fb2375539ac74713dda3afb3" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">MatrixType::RealScalar Eigen::HouseholderQR::absDeterminant </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const</td> </tr> </table> </div> <div class="memdoc"> <dl class="return"><dt><b>Returns:</b></dt><dd>the absolute value of the determinant of the matrix of which *this is the QR decomposition. It has only linear complexity (that is, O(n) where n is the dimension of the square matrix) as the QR decomposition has already been computed.</dd></dl> <dl class="note"><dt><b>Note:</b></dt><dd>This is only for square matrices.</dd></dl> <dl class="warning"><dt><b>Warning:</b></dt><dd>a determinant can be very big or small, so for matrices of large enough dimension, there is a risk of overflow/underflow. One way to work around that is to use <a class="el" href="class_eigen_1_1_householder_q_r.html#a73496e169b7e534953bdb4f8a2800a9c">logAbsDeterminant()</a> instead.</dd></dl> <dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="class_eigen_1_1_householder_q_r.html#a73496e169b7e534953bdb4f8a2800a9c">logAbsDeterminant()</a>, <a class="el" href="class_eigen_1_1_matrix_base.html#aeaa1e616a5c11b439fcf23282f582c89">MatrixBase::determinant()</a> </dd></dl> <p>Definition at line <a class="el" href="_q_r_source.html#l00188">188</a> of file <a class="el" href="_q_r_source.html">QR</a>.</p> </div> </div> <a class="anchor" id="ae20f91178dd7ab1072757f71745ff93a"></a><!-- doxytag: member="Eigen::HouseholderQR::cols" ref="ae20f91178dd7ab1072757f71745ff93a" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="class_eigen_1_1_householder_q_r.html#a54db7da9598ca6fadfe21bcdb9522834">Index</a> Eigen::HouseholderQR::cols </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"></td><td>)</td> <td> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="_q_r_source.html#l00177">177</a> of file <a class="el" href="_q_r_source.html">QR</a>.</p> </div> </div> <a class="anchor" id="af3ded499ca0c073824aa70e47f911460"></a><!-- doxytag: member="Eigen::HouseholderQR::compute" ref="af3ded499ca0c073824aa70e47f911460" args="(const MatrixType &matrix)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="class_eigen_1_1_householder_q_r.html">HouseholderQR</a>< <a class="el" href="class_eigen_1_1_householder_q_r.html#aed8a2f1de5ee24a7dd00984dd00cdecc">MatrixType</a> > & Eigen::HouseholderQR::compute </td> <td>(</td> <td class="paramtype">const <a class="el" href="class_eigen_1_1_householder_q_r.html#aed8a2f1de5ee24a7dd00984dd00cdecc">MatrixType</a> & </td> <td class="paramname"><em>matrix</em></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="_q_r_source.html#l00327">327</a> of file <a class="el" href="_q_r_source.html">QR</a>.</p> </div> </div> <a class="anchor" id="a225e3117193b98e13266c62644f06c97"></a><!-- doxytag: member="Eigen::HouseholderQR::hCoeffs" ref="a225e3117193b98e13266c62644f06c97" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const <a class="el" href="class_eigen_1_1_householder_q_r.html#a20239f2785393963c1c099a6544a7f3a">HCoeffsType</a>& Eigen::HouseholderQR::hCoeffs </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="_q_r_source.html#l00178">178</a> of file <a class="el" href="_q_r_source.html">QR</a>.</p> </div> </div> <a class="anchor" id="ae8a3a9d83c813bb40dda3472f4fa257d"></a><!-- doxytag: member="Eigen::HouseholderQR::householderQ" ref="ae8a3a9d83c813bb40dda3472f4fa257d" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="class_eigen_1_1_householder_q_r.html#a5ea66296321d81ca0c539119a3e20f61">HouseholderSequenceType</a> Eigen::HouseholderQR::householderQ </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="_q_r_source.html#l00130">130</a> of file <a class="el" href="_q_r_source.html">QR</a>.</p> </div> </div> <a class="anchor" id="a73496e169b7e534953bdb4f8a2800a9c"></a><!-- doxytag: member="Eigen::HouseholderQR::logAbsDeterminant" ref="a73496e169b7e534953bdb4f8a2800a9c" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">MatrixType::RealScalar Eigen::HouseholderQR::logAbsDeterminant </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const</td> </tr> </table> </div> <div class="memdoc"> <dl class="return"><dt><b>Returns:</b></dt><dd>the natural log of the absolute value of the determinant of the matrix of which *this is the QR decomposition. It has only linear complexity (that is, O(n) where n is the dimension of the square matrix) as the QR decomposition has already been computed.</dd></dl> <dl class="note"><dt><b>Note:</b></dt><dd>This is only for square matrices.</dd> <dd> This method is useful to work around the risk of overflow/underflow that's inherent to determinant computation.</dd></dl> <dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="class_eigen_1_1_householder_q_r.html#a4ad5dfc4fb2375539ac74713dda3afb3">absDeterminant()</a>, <a class="el" href="class_eigen_1_1_matrix_base.html#aeaa1e616a5c11b439fcf23282f582c89">MatrixBase::determinant()</a> </dd></dl> <p>Definition at line <a class="el" href="_q_r_source.html#l00196">196</a> of file <a class="el" href="_q_r_source.html">QR</a>.</p> </div> </div> <a class="anchor" id="a89328ed69bc8a0ceb82f343d9ce1013b"></a><!-- doxytag: member="Eigen::HouseholderQR::matrixQR" ref="a89328ed69bc8a0ceb82f343d9ce1013b" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const <a class="el" href="class_eigen_1_1_householder_q_r.html#aed8a2f1de5ee24a7dd00984dd00cdecc">MatrixType</a>& Eigen::HouseholderQR::matrixQR </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <dl class="return"><dt><b>Returns:</b></dt><dd>a reference to the matrix where the Householder QR decomposition is stored in a LAPACK-compatible way. </dd></dl> <p>Definition at line <a class="el" href="_q_r_source.html#l00139">139</a> of file <a class="el" href="_q_r_source.html">QR</a>.</p> </div> </div> <a class="anchor" id="a53ad0021bb4fb18bd40368d9ddddd214"></a><!-- doxytag: member="Eigen::HouseholderQR::rows" ref="a53ad0021bb4fb18bd40368d9ddddd214" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="class_eigen_1_1_householder_q_r.html#a54db7da9598ca6fadfe21bcdb9522834">Index</a> Eigen::HouseholderQR::rows </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"></td><td>)</td> <td> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="_q_r_source.html#l00176">176</a> of file <a class="el" href="_q_r_source.html">QR</a>.</p> </div> </div> <a class="anchor" id="a4a6bea02fcfdf7380297606332c6fe6a"></a><!-- doxytag: member="Eigen::HouseholderQR::solve" ref="a4a6bea02fcfdf7380297606332c6fe6a" args="(const MatrixBase< Rhs > &b) const " --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename Rhs > </div> <table class="memname"> <tr> <td class="memname">const internal::solve_retval<<a class="el" href="class_eigen_1_1_householder_q_r.html">HouseholderQR</a>, Rhs> Eigen::HouseholderQR::solve </td> <td>(</td> <td class="paramtype">const <a class="el" href="class_eigen_1_1_matrix_base.html">MatrixBase</a>< Rhs > & </td> <td class="paramname"><em>b</em></td><td>)</td> <td> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>This method finds a solution x to the equation Ax=b, where A is the matrix of which *this is the QR decomposition, if any exists. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">b</td><td>the right-hand-side of the equation to solve.</td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>a solution.</dd></dl> <dl class="note"><dt><b>Note:</b></dt><dd>The case where b is a matrix is not yet implemented. Also, this code is space inefficient.</dd></dl> <p>Example: </p> <div class="fragment"><pre class="fragment"></pre></div><p> Output: </p> <div class="fragment"><pre class="fragment"></pre></div> <p>Definition at line <a class="el" href="_q_r_source.html#l00124">124</a> of file <a class="el" href="_q_r_source.html">QR</a>.</p> </div> </div> <hr/><h2>Member Data Documentation</h2> <a class="anchor" id="ab47e710e2c8575317bad57b0bae99427"></a><!-- doxytag: member="Eigen::HouseholderQR::m_hCoeffs" ref="ab47e710e2c8575317bad57b0bae99427" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="class_eigen_1_1_householder_q_r.html#a20239f2785393963c1c099a6544a7f3a">HCoeffsType</a> <a class="el" href="class_eigen_1_1_householder_q_r.html#ab47e710e2c8575317bad57b0bae99427">Eigen::HouseholderQR::m_hCoeffs</a><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="_q_r_source.html#l00182">182</a> of file <a class="el" href="_q_r_source.html">QR</a>.</p> </div> </div> <a class="anchor" id="a583a18017119ad8b400567427c731281"></a><!-- doxytag: member="Eigen::HouseholderQR::m_isInitialized" ref="a583a18017119ad8b400567427c731281" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool <a class="el" href="class_eigen_1_1_householder_q_r.html#a583a18017119ad8b400567427c731281">Eigen::HouseholderQR::m_isInitialized</a><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="_q_r_source.html#l00184">184</a> of file <a class="el" href="_q_r_source.html">QR</a>.</p> </div> </div> <a class="anchor" id="ad4c37b05eae1a8002322ee9d38fc2d80"></a><!-- doxytag: member="Eigen::HouseholderQR::m_qr" ref="ad4c37b05eae1a8002322ee9d38fc2d80" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="class_eigen_1_1_householder_q_r.html#aed8a2f1de5ee24a7dd00984dd00cdecc">MatrixType</a> <a class="el" href="class_eigen_1_1_householder_q_r.html#ad4c37b05eae1a8002322ee9d38fc2d80">Eigen::HouseholderQR::m_qr</a><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="_q_r_source.html#l00181">181</a> of file <a class="el" href="_q_r_source.html">QR</a>.</p> </div> </div> <a class="anchor" id="ac74098939dc2d96927bc2287f65dc9e7"></a><!-- doxytag: member="Eigen::HouseholderQR::m_temp" ref="ac74098939dc2d96927bc2287f65dc9e7" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="class_eigen_1_1_householder_q_r.html#a04b30b09c2cd66282fe1527fb5200732">RowVectorType</a> <a class="el" href="class_eigen_1_1_householder_q_r.html#ac74098939dc2d96927bc2287f65dc9e7">Eigen::HouseholderQR::m_temp</a><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="_q_r_source.html#l00183">183</a> of file <a class="el" href="_q_r_source.html">QR</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>