<!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::NumTraits 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="struct_eigen_1_1_num_traits.html">NumTraits</a> </li> </ul> </div> </div> <div class="header"> <div class="summary"> <a href="#pub-types">Public Types</a> </div> <div class="headertitle"> <div class="title">Eigen::NumTraits 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::NumTraits" --><!-- doxytag: inherits="GenericNumTraits< T >" --><hr/><a name="details" id="details"></a><h2>Detailed Description</h2> <div class="textblock"><p>Holds information about the various numeric (i.e. </p> <p>scalar) types allowed by <a class="el" href="namespace_eigen.html" title="Namespace containing all symbols from the Eigen library.">Eigen</a>.</p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">T</td><td>the numeric type at hand</td></tr> </table> </dd> </dl> <p>This class stores enums, typedefs and static methods giving information about a numeric type.</p> <p>The provided data consists of: </p> <ul> <li>A typedef <em>Real</em>, giving the "real part" type of <em>T</em>. If <em>T</em> is already real, then <em>Real</em> is just a typedef to <em>T</em>. If <em>T</em> is <code>std::complex<U></code> then <em>Real</em> is a typedef to <em>U</em>. </li> <li>A typedef <em>NonInteger</em>, giving the type that should be used for operations producing non-integral values, such as quotients, square roots, etc. If <em>T</em> is a floating-point type, then this typedef just gives <em>T</em> again. Note however that many <a class="el" href="namespace_eigen.html" title="Namespace containing all symbols from the Eigen library.">Eigen</a> functions such as internal::sqrt simply refuse to take integers. Outside of a few cases, <a class="el" href="namespace_eigen.html" title="Namespace containing all symbols from the Eigen library.">Eigen</a> doesn't do automatic type promotion. Thus, this typedef is only intended as a helper for code that needs to explicitly promote types. </li> <li>A typedef <em>Nested</em> giving the type to use to nest a value inside of the expression tree. If you don't know what this means, just use <em>T</em> here. </li> <li>An enum value <em>IsComplex</em>. It is equal to 1 if <em>T</em> is a <code><a class="el" href="classstd_1_1complex.html" title="STL class.">std::complex</a></code> type, and to 0 otherwise. </li> <li>An enum value <em>IsInteger</em>. It is equal to <code>1</code> if <em>T</em> is an integer type such as <code>int</code>, and to <code>0</code> otherwise. </li> <li>Enum values ReadCost, AddCost and MulCost representing a rough estimate of the number of CPU cycles needed to by move / add / mul instructions respectively, assuming the data is already stored in CPU registers. Stay vague here. No need to do architecture-specific stuff. </li> <li>An enum value <em>IsSigned</em>. It is equal to <code>1</code> if <em>T</em> is a signed type and to 0 if <em>T</em> is unsigned. </li> <li>An enum value <em>RequireInitialization</em>. It is equal to <code>1</code> if the constructor of the numeric type <em>T</em> must be called, and to 0 if it is safe not to call it. Default is 0 if <em>T</em> is an arithmetic type, and 1 otherwise. </li> <li>An epsilon() function which, unlike std::numeric_limits::epsilon(), returns a <em>Real</em> instead of a <em>T</em>. </li> <li>A dummy_precision() function returning a weak epsilon value. It is mainly used as a default value by the fuzzy comparison operators. </li> <li>highest() and lowest() functions returning the highest and lowest possible values respectively. </li> </ul> </div><div class="dynheader"> Inheritance diagram for Eigen::NumTraits:</div> <div class="dyncontent"> <div class="center"><img src="struct_eigen_1_1_num_traits__inherit__graph.png" border="0" usemap="#_eigen_1_1_num_traits_inherit__map" alt="Inheritance graph"/></div> <map name="_eigen_1_1_num_traits_inherit__map" id="_eigen_1_1_num_traits_inherit__map"> <area shape="rect" id="node7" href="struct_eigen_1_1_num_traits.html" title="Eigen::NumTraits\< Scalar \>" alt="" coords="5,264,189,291"/><area shape="rect" id="node9" href="struct_eigen_1_1_num_traits.html" title="Eigen::NumTraits\< typename MatrixType::Scalar \>" alt="" coords="214,264,532,291"/><area shape="rect" id="node2" href="struct_eigen_1_1_generic_num_traits.html" title="Eigen::GenericNumTraits\< T \>" alt="" coords="134,96,335,123"/><area shape="rect" id="node4" href="struct_eigen_1_1_generic_num_traits.html" title="Eigen::GenericNumTraits" alt="" coords="150,5,319,32"/></map> <center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div> <p><a href="class_eigen_1_1_num_traits-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"></td></tr> <tr><td class="memItemLeft" align="right" valign="top">typedef T </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_eigen_1_1_generic_num_traits.html#a65b97cb706537fd34dd99323247ec472">Real</a></td></tr> </table> <hr/><h2>Member Typedef Documentation</h2> <a class="anchor" id="a65b97cb706537fd34dd99323247ec472"></a><!-- doxytag: member="Eigen::NumTraits::Real" ref="a65b97cb706537fd34dd99323247ec472" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef T <a class="el" href="struct_eigen_1_1_generic_num_traits.html#a65b97cb706537fd34dd99323247ec472">Eigen::GenericNumTraits::Real</a><code> [inherited]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="_core_source.html#l00077">77</a> of file <a class="el" href="_core_source.html">Core</a>.</p> </div> </div> <hr/><h2>Member Enumeration Documentation</h2> <a class="anchor" id="a5c6315c565ec1245114fd9e04ceabca2"></a><!-- doxytag: member="Eigen::NumTraits::@118" ref="a5c6315c565ec1245114fd9e04ceabca2" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">anonymous enum<code> [inherited]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="_core_source.html#l00067">67</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>