<!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>ops_matrices.h File 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><a href="annotated.html"><span>Classes</span></a></li> <li class="current"><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="files.html"><span>File List</span></a></li> <li><a href="globals.html"><span>File Members</span></a></li> </ul> </div> </div> <div class="header"> <div class="summary"> <a href="#namespaces">Namespaces</a> | <a href="#define-members">Defines</a> | <a href="#func-members">Functions</a> </div> <div class="headertitle"> <div class="title">ops_matrices.h File Reference</div> </div> </div> <div class="contents"> <p>This file implements miscelaneous matrix and matrix/vector operations, plus internal functions in <a class="el" href="namespacemrpt_1_1math_1_1detail.html">mrpt::math::detail</a>. <a href="#details">More...</a></p> <hr/><a name="details" id="details"></a><h2>Detailed Description</h2> <div class="textblock"><p>This file implements miscelaneous matrix and matrix/vector operations, plus internal functions in <a class="el" href="namespacemrpt_1_1math_1_1detail.html">mrpt::math::detail</a>. </p> <p>Definition in file <a class="el" href="ops__matrices_8h_source.html">ops_matrices.h</a>.</p> </div><div class="textblock"><code>#include <<a class="el" href="math__frwds_8h_source.html">mrpt/math/math_frwds.h</a>></code><br/> <code>#include <<a class="el" href="_c_matrix_8h_source.html">mrpt/math/CMatrix.h</a>></code><br/> <code>#include <<a class="el" href="_c_matrix_d_8h_source.html">mrpt/math/CMatrixD.h</a>></code><br/> <code>#include <<a class="el" href="_c_stream_8h_source.html">mrpt/utils/CStream.h</a>></code><br/> <code>#include <<a class="el" href="_c_matrix_template_numeric_8h_source.html">mrpt/math/CMatrixTemplateNumeric.h</a>></code><br/> <code>#include <<a class="el" href="_c_matrix_fixed_numeric_8h_source.html">mrpt/math/CMatrixFixedNumeric.h</a>></code><br/> <code>#include <<a class="el" href="ops__containers_8h_source.html">mrpt/math/ops_containers.h</a>></code><br/> <code>#include <<a class="el" href="metaprogramming_8h_source.html">mrpt/utils/metaprogramming.h</a>></code><br/> </div><div class="textblock"><div class="dynheader"> Include dependency graph for ops_matrices.h:</div> <div class="dyncontent"> <div class="center"><img src="ops__matrices_8h__incl.png" border="0" usemap="#ops__matrices_8h" alt=""/></div> <map name="ops__matrices_8h" id="ops__matrices_8h"> <area shape="rect" id="node3" href="math__frwds_8h.html" title="mrpt/math/math_frwds.h" alt="" coords="745,901,908,928"/><area shape="rect" id="node20" href="_c_matrix_8h.html" title="mrpt/math/CMatrix.h" alt="" coords="1311,80,1453,107"/><area shape="rect" id="node91" href="_c_stream_8h.html" title="mrpt/utils/CStream.h" alt="" coords="1285,453,1427,480"/><area shape="rect" id="node105" href="_c_matrix_template_numeric_8h.html" title="mrpt/math/CMatrixTemplateNumeric.h" alt="" coords="1420,155,1665,181"/><area shape="rect" id="node121" href="ops__containers_8h.html" title="This file implements several operations that operate element-wise on individual or pairs of container..." alt="" coords="312,528,496,555"/><area shape="rect" id="node143" href="_c_matrix_fixed_numeric_8h.html" title="mrpt/math/CMatrixFixedNumeric.h" alt="" coords="1123,229,1345,256"/><area shape="rect" id="node149" href="_c_matrix_d_8h.html" title="mrpt/math/CMatrixD.h" alt="" coords="897,80,1049,107"/><area shape="rect" id="node159" href="metaprogramming_8h.html" title="mrpt/utils/metaprogramming.h" alt="" coords="1825,155,2020,181"/><area shape="rect" id="node7" href="base_2include_2mrpt_2base_2link__pragmas_8h.html" title="mrpt/base/link_pragmas.h" alt="" coords="2385,976,2556,1003"/><area shape="rect" id="node10" href="boost__join_8h.html" title="mrpt/utils/boost_join.h" alt="" coords="2495,1051,2645,1077"/><area shape="rect" id="node22" href="_c_serializable_8h.html" title="mrpt/utils/CSerializable.h" alt="" coords="1737,379,1905,405"/><area shape="rect" id="node24" href="_c_object_8h.html" title="mrpt/utils/CObject.h" alt="" coords="1663,528,1801,555"/><area shape="rect" id="node87" href="safe__pointers_8h.html" title="mrpt/utils/safe_pointers.h" alt="" coords="1722,603,1891,629"/><area shape="rect" id="node26" href="utils__defs_8h.html" title="mrpt/utils/utils_defs.h" alt="" coords="1501,677,1648,704"/><area shape="rect" id="node29" href="os_8h.html" title="mrpt/system/os.h" alt="" coords="2331,752,2455,779"/><area shape="rect" id="node38" href="base_2include_2mrpt_2utils_2types_8h.html" title="mrpt/utils/types.h" alt="" coords="1587,827,1709,853"/><area shape="rect" id="node51" href="mrpt__macros_8h.html" title="mrpt/utils/mrpt_macros.h" alt="" coords="1893,827,2059,853"/><area shape="rect" id="node54" href="compiler__fixes_8h.html" title="mrpt/utils/compiler_fixes.h" alt="" coords="1841,752,2015,779"/><area shape="rect" id="node81" href="smart__ptr_8hpp.html" title="mrpt/otherlibs/stlplus/smart_ptr.hpp" alt="" coords="1184,827,1411,853"/><area shape="rect" id="node84" href="bits_8h.html" title="mrpt/utils/bits.h" alt="" coords="1197,752,1308,779"/><area shape="rect" id="node94" href="_c_uncopiable_8h.html" title="mrpt/utils/CUncopiable.h" alt="" coords="1090,528,1256,555"/><area shape="rect" id="node98" href="exceptions_8h.html" title="mrpt/utils/exceptions.h" alt="" coords="1281,528,1435,555"/><area shape="rect" id="node107" href="_c_matrix_template_8h.html" title="mrpt/math/CMatrixTemplate.h" alt="" coords="1433,229,1628,256"/><area shape="rect" id="node110" href="memory_8h.html" title="mrpt/system/memory.h" alt="" coords="1556,379,1713,405"/><area shape="rect" id="node113" href="datetime_8h.html" title="mrpt/system/datetime.h" alt="" coords="1439,304,1597,331"/><area shape="rect" id="node117" href="_c_array_8h.html" title="mrpt/math/CArray.h" alt="" coords="1125,304,1261,331"/><area shape="rect" id="node124" href="lightweight__geom__data_8h.html" title="mrpt/math/lightweight_geom_data.h" alt="" coords="633,603,863,629"/><area shape="rect" id="node134" href="_c_histogram_8h.html" title="mrpt/math/CHistogram.h" alt="" coords="442,603,608,629"/></map> </div> </div><div class="textblock"><div class="dynheader"> This graph shows which files directly or indirectly include this file:</div> <div class="dyncontent"> <div class="center"><img src="ops__matrices_8h__dep__incl.png" border="0" usemap="#ops__matrices_8hdep" alt=""/></div> <map name="ops__matrices_8hdep" id="ops__matrices_8hdep"> <area shape="rect" id="node3" href="distributions_8h.html" title="distributions.h" alt="" coords="609,155,711,181"/><area shape="rect" id="node5" href="math_8h.html" title="math.h" alt="" coords="1074,304,1136,331"/><area shape="rect" id="node19" href="transform__gaussian_8h.html" title="transform_gaussian.h" alt="" coords="919,229,1065,256"/><area shape="rect" id="node22" href="base_2include_2mrpt_2math_2utils_8h.html" title="utils.h" alt="" coords="1253,80,1309,107"/><area shape="rect" id="node28" href="_c_pose_or_point_8h.html" title="CPoseOrPoint.h" alt="" coords="405,155,521,181"/><area shape="rect" id="node103" href="_random_generators_8h.html" title="RandomGenerators.h" alt="" coords="697,80,844,107"/><area shape="rect" id="node111" href="_c_canvas_8h.html" title="CCanvas.h" alt="" coords="269,80,357,107"/><area shape="rect" id="node122" href="_c_feature_8h.html" title="CFeature.h" alt="" coords="2789,229,2875,256"/><area shape="rect" id="node139" href="_c_graph_partitioner_8h.html" title="CGraphPartitioner.h" alt="" coords="2943,80,3080,107"/><area shape="rect" id="node17" href="_p_f__implementations_8h.html" title="This file contains the implementations of the template members declared in mrpt::slam::PF_implementat..." alt="" coords="641,229,793,256"/><area shape="rect" id="node7" href="base_8h.html" title="base.h" alt="" coords="671,453,732,480"/><area shape="rect" id="node9" href="cs_8h.html" title="cs.h" alt="" coords="1143,379,1189,405"/><area shape="rect" id="node11" href="math__mrpt_8h.html" title="math_mrpt.h" alt="" coords="1214,379,1308,405"/><area shape="rect" id="node13" href="_c_reactive_navigation_system_8h.html" title="CReactiveNavigationSystem.h" alt="" coords="865,379,1068,405"/><area shape="rect" id="node15" href="scanmatching_2scan__matching_8h.html" title="scan_matching.h" alt="" coords="650,379,771,405"/><area shape="rect" id="node24" href="jacobians_8h.html" title="jacobians.h" alt="" coords="969,155,1057,181"/><area shape="rect" id="node47" href="_c_levenberg_marquardt_8h.html" title="CLevenbergMarquardt.h" alt="" coords="1082,155,1243,181"/><area shape="rect" id="node50" href="geometry_8h.html" title="geometry.h" alt="" coords="1642,155,1728,181"/><area shape="rect" id="node75" href="_c_kalman_filter_capable_8h.html" title="CKalmanFilterCapable.h" alt="" coords="3363,304,3527,331"/><area shape="rect" id="node83" href="vision_2include_2mrpt_2vision_2utils_8h.html" title="utils.h" alt="" coords="2885,304,2941,331"/><area shape="rect" id="node99" href="multi_desc__utils_8h.html" title="multiDesc_utils.h" alt="" coords="2687,304,2809,331"/><area shape="rect" id="node30" href="_c_pose_8h.html" title="CPose.h" alt="" coords="379,229,452,256"/><area shape="rect" id="node32" href="poses_8h.html" title="poses.h" alt="" coords="401,304,468,331"/><area shape="rect" id="node40" href="_c_point_8h.html" title="CPoint.h" alt="" coords="282,229,355,256"/><area shape="rect" id="node44" href="_c_camera_8h.html" title="CCamera.h" alt="" coords="477,229,565,256"/><area shape="rect" id="node35" href="base_2include_2mrpt_2utils_8h.html" title="utils.h" alt="" coords="406,379,463,405"/><area shape="rect" id="node52" href="ransac__applications_8h.html" title="ransac_applications.h" alt="" coords="1242,229,1389,256"/><area shape="rect" id="node56" href="_c_disk_8h.html" title="CDisk.h" alt="" coords="1650,229,1720,256"/><area shape="rect" id="node58" href="_c_set_of_triangles_8h.html" title="CSetOfTriangles.h" alt="" coords="2121,229,2251,256"/><area shape="rect" id="node60" href="_c_generalized_cylinder_8h.html" title="CGeneralizedCylinder.h" alt="" coords="1532,304,1691,331"/><area shape="rect" id="node62" href="_c_angular_observation_mesh_8h.html" title="CAngularObservationMesh.h" alt="" coords="2143,304,2332,331"/><area shape="rect" id="node64" href="_c_textured_object_8h.html" title="CTexturedObject.h" alt="" coords="2327,229,2459,256"/><area shape="rect" id="node66" href="_c_polyhedron_8h.html" title="CPolyhedron.h" alt="" coords="1466,229,1573,256"/><area shape="rect" id="node70" href="_c_open_g_l_standard_object_8h.html" title="COpenGLStandardObject.h" alt="" coords="1745,229,1927,256"/><area shape="rect" id="node72" href="_c_height_grid_map2_d_8h.html" title="CHeightGridMap2D.h" alt="" coords="1951,229,2097,256"/><area shape="rect" id="node77" href="bayes_8h.html" title="bayes.h" alt="" coords="3613,379,3680,405"/><area shape="rect" id="node79" href="_c_range_bearing_k_f_s_l_a_m_8h.html" title="CRangeBearingKFSLAM.h" alt="" coords="3191,379,3369,405"/><area shape="rect" id="node81" href="_c_range_bearing_k_f_s_l_a_m2_d_8h.html" title="CRangeBearingKFSLAM2D.h" alt="" coords="3393,379,3588,405"/><area shape="rect" id="node85" href="_c_feature_extraction_8h.html" title="CFeatureExtraction.h" alt="" coords="2689,379,2836,405"/><area shape="rect" id="node87" href="vision_8h.html" title="vision.h" alt="" coords="2804,453,2871,480"/><area shape="rect" id="node89" href="_c_cam_model_8h.html" title="CCamModel.h" alt="" coords="2860,379,2967,405"/><area shape="rect" id="node92" href="_c_video_file_writer_8h.html" title="CVideoFileWriter.h" alt="" coords="2533,379,2664,405"/><area shape="rect" id="node95" href="pinhole_8h.html" title="pinhole.h" alt="" coords="2991,379,3064,405"/><area shape="rect" id="node105" href="random_8h.html" title="random.h" alt="" coords="751,155,827,181"/><area shape="rect" id="node113" href="_c_enhanced_meta_file_8h.html" title="CEnhancedMetaFile.h" alt="" coords="5,155,155,181"/><area shape="rect" id="node117" href="_c_image_8h.html" title="CImage.h" alt="" coords="2559,155,2637,181"/><area shape="rect" id="node132" href="tracking_8h.html" title="tracking.h" alt="" coords="2482,304,2560,331"/><area shape="rect" id="node126" href="_c_landmark_8h.html" title="CLandmark.h" alt="" coords="3149,304,3248,331"/><area shape="rect" id="node141" href="graphs_8h.html" title="graphs.h" alt="" coords="3052,155,3124,181"/></map> </div> </div> <p><a href="ops__matrices_8h_source.html">Go to the source code of this file.</a></p> <table class="memberdecls"> <tr><td colspan="2"><h2><a name="namespaces"></a> Namespaces</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">namespace  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemrpt.html">mrpt</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight"><p>This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries. </p> <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">namespace  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemrpt_1_1math.html">mrpt::math</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight"><p>This base provides a set of functions for maths stuff. </p> <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">namespace  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemrpt_1_1math_1_1detail.html">mrpt::math::detail</a></td></tr> <tr><td colspan="2"><h2><a name="define-members"></a> Defines</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="ops__matrices_8h.html#a462cb509d2376fdf42659d059685ca08">SAVE_MATRIX</a>(M)   M.saveToTextFile(#M ".txt");</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">A useful macro for saving matrixes to a file while debugging. <a href="#a462cb509d2376fdf42659d059685ca08"></a><br/></td></tr> <tr><td colspan="2"><h2><a name="func-members"></a> Functions</h2></td></tr> <tr><td class="memTemplParams" colspan="2">template<class Derived > </td></tr> <tr><td class="memTemplItemLeft" align="right" valign="top">const <a class="el" href="class_eigen_1_1_matrix_base.html">Eigen::MatrixBase</a><br class="typebreak"/> < Derived >::AdjointReturnType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__container__ops__grp.html#gab02e2e15de033aa2c5f47096964361ec">mrpt::math::operator~</a> (const <a class="el" href="class_eigen_1_1_matrix_base.html">Eigen::MatrixBase</a>< Derived > &m)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Transpose operator for matrices. <a href="group__container__ops__grp.html#gab02e2e15de033aa2c5f47096964361ec"></a><br/></td></tr> <tr><td class="memTemplParams" colspan="2">template<class Derived > </td></tr> <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="class_eigen_1_1_matrix_base.html">Eigen::MatrixBase</a>< Derived ><br class="typebreak"/> ::PlainObject </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__container__ops__grp.html#gae6aca84fb7a8bb647f606d59facd1e66">mrpt::math::operator!</a> (const <a class="el" href="class_eigen_1_1_matrix_base.html">Eigen::MatrixBase</a>< Derived > &m)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Unary inversion operator. <a href="group__container__ops__grp.html#gae6aca84fb7a8bb647f606d59facd1e66"></a><br/></td></tr> <tr><td class="memTemplParams" colspan="2">template<typename MAT_H , typename MAT_C , typename MAT_R > </td></tr> <tr><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemrpt_1_1math.html#ad9a424a973f0598f255924a9c89c07f7">mrpt::math::multiply_HCHt</a> (const MAT_H &H, const MAT_C &C, MAT_R &R, bool accumResultInOutput)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">R = H * C * H^t (with C symmetric) <a href="#ad9a424a973f0598f255924a9c89c07f7"></a><br/></td></tr> <tr><td class="memTemplParams" colspan="2">template<typename VECTOR_H , typename MAT_C > </td></tr> <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="eigen__plugins_8h.html#afd07186978da46f9908364e389f8a403">MAT_C::value_type</a> </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemrpt_1_1math.html#aa8357cce481e22376ecadae393167977">mrpt::math::multiply_HCHt_scalar</a> (const VECTOR_H &H, const MAT_C &C)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">r (a scalar) = H * C * H^t (with a vector H and a symmetric matrix C) <a href="#aa8357cce481e22376ecadae393167977"></a><br/></td></tr> <tr><td class="memTemplParams" colspan="2">template<typename MAT_H , typename MAT_C , typename MAT_R > </td></tr> <tr><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemrpt_1_1math.html#a49f1d85587f29a9d6691973452a3b2a0">mrpt::math::multiply_HtCH</a> (const MAT_H &H, const MAT_C &C, MAT_R &R, bool accumResultInOutput)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">R = H^t * C * H (with C symmetric) <a href="#a49f1d85587f29a9d6691973452a3b2a0"></a><br/></td></tr> <tr><td class="memTemplParams" colspan="2">template<class MAT_IN , class VECTOR , class MAT_OUT > </td></tr> <tr><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemrpt_1_1math.html#ae8d48c1203173296453a12b174ed932c">mrpt::math::meanAndCovMat</a> (const MAT_IN &v, VECTOR &out_mean, MAT_OUT &out_cov)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Computes the mean vector and covariance from a list of samples in an NxM matrix, where each row is a sample, so the covariance is MxM. <a href="#ae8d48c1203173296453a12b174ed932c"></a><br/></td></tr> <tr><td class="memTemplParams" colspan="2">template<class MATRIX > </td></tr> <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="class_eigen_1_1_matrix.html">Eigen::Matrix</a>< typename <br class="typebreak"/> MATRIX::Scalar, <br class="typebreak"/> MATRIX::ColsAtCompileTime, <br class="typebreak"/> MATRIX::ColsAtCompileTime > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemrpt_1_1math.html#a43f4e051fc574fd75b6800ad4fb25037">mrpt::math::cov</a> (const MATRIX &v)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Computes the covariance matrix from a list of samples in an NxM matrix, where each row is a sample, so the covariance is MxM. <a href="#a43f4e051fc574fd75b6800ad4fb25037"></a><br/></td></tr> <tr><td class="memTemplParams" colspan="2">template<class MAT_A , class SKEW_3VECTOR , class MAT_OUT > </td></tr> <tr><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemrpt_1_1math.html#ad21f2859644b754aba9a1392503a9776">mrpt::math::multiply_A_skew3</a> (const MAT_A &A, const SKEW_3VECTOR &v, MAT_OUT &out)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Only for vectors/arrays "v" of length3, compute out = A * Skew(v), where Skew(v) is the skew symmetric matric generated from <em>v</em> (see <a class="el" href="group__geometry__grp.html#ga1d062ce80412bd12f853b032f7822edb" title="Computes the 3x3 skew symmetric matrix from a 3-vector or 3-array: .">mrpt::math::skew_symmetric3</a>) <a href="#ad21f2859644b754aba9a1392503a9776"></a><br/></td></tr> <tr><td class="memTemplParams" colspan="2">template<class SKEW_3VECTOR , class MAT_A , class MAT_OUT > </td></tr> <tr><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemrpt_1_1math.html#a134f1d14fa12f25cbc82fa36faf59393">mrpt::math::multiply_skew3_A</a> (const SKEW_3VECTOR &v, const MAT_A &A, MAT_OUT &out)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Only for vectors/arrays "v" of length3, compute out = Skew(v) * A, where Skew(v) is the skew symmetric matric generated from <em>v</em> (see <a class="el" href="group__geometry__grp.html#ga1d062ce80412bd12f853b032f7822edb" title="Computes the 3x3 skew symmetric matrix from a 3-vector or 3-array: .">mrpt::math::skew_symmetric3</a>) <a href="#a134f1d14fa12f25cbc82fa36faf59393"></a><br/></td></tr> <tr><td class="memTemplParams" colspan="2">template<class MATORG , class MATDEST > </td></tr> <tr><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemrpt_1_1math_1_1detail.html#aa19b24dfb9f42a5339d2abf59dc97f27">mrpt::math::detail::extractMatrix</a> (const MATORG &M, const size_t first_row, const size_t first_col, MATDEST &outMat)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Extract a submatrix - The output matrix must be set to the required size before call. <a href="#aa19b24dfb9f42a5339d2abf59dc97f27"></a><br/></td></tr> <tr><td colspan="2"><div class="groupHeader">Operators for binary streaming of MRPT matrices</div></td></tr> <tr><td class="memTemplParams" colspan="2">template<size_t NROWS, size_t NCOLS> </td></tr> <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1utils_1_1_c_stream.html">mrpt::utils::CStream</a> & </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__container__ops__grp.html#ga56a2bcbd3e333c77935a7e54d6eb9466">mrpt::math::operator>></a> (<a class="el" href="classmrpt_1_1utils_1_1_c_stream.html">mrpt::utils::CStream</a> &in, CMatrixFixedNumeric< float, NROWS, NCOLS > &M)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Read operator from a CStream. <a href="group__container__ops__grp.html#ga56a2bcbd3e333c77935a7e54d6eb9466"></a><br/></td></tr> <tr><td class="memTemplParams" colspan="2">template<size_t NROWS, size_t NCOLS> </td></tr> <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1utils_1_1_c_stream.html">mrpt::utils::CStream</a> & </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__container__ops__grp.html#ga745fc9af0a39075b935a4b84c0b392b1">mrpt::math::operator>></a> (<a class="el" href="classmrpt_1_1utils_1_1_c_stream.html">mrpt::utils::CStream</a> &in, CMatrixFixedNumeric< double, NROWS, NCOLS > &M)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Read operator from a CStream. <a href="group__container__ops__grp.html#ga745fc9af0a39075b935a4b84c0b392b1"></a><br/></td></tr> <tr><td class="memTemplParams" colspan="2">template<size_t NROWS, size_t NCOLS> </td></tr> <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1utils_1_1_c_stream.html">mrpt::utils::CStream</a> & </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__container__ops__grp.html#ga22527dc2d242a466ca2bcd8f1656594b">mrpt::math::operator<<</a> (<a class="el" href="classmrpt_1_1utils_1_1_c_stream.html">mrpt::utils::CStream</a> &out, const CMatrixFixedNumeric< float, NROWS, NCOLS > &M)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Write operator for writing into a CStream. <a href="group__container__ops__grp.html#ga22527dc2d242a466ca2bcd8f1656594b"></a><br/></td></tr> <tr><td class="memTemplParams" colspan="2">template<size_t NROWS, size_t NCOLS> </td></tr> <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1utils_1_1_c_stream.html">mrpt::utils::CStream</a> & </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__container__ops__grp.html#ga0a1091c4d09339131c04d59c9b534a58">mrpt::math::operator<<</a> (<a class="el" href="classmrpt_1_1utils_1_1_c_stream.html">mrpt::utils::CStream</a> &out, const CMatrixFixedNumeric< double, NROWS, NCOLS > &M)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Write operator for writing into a CStream. <a href="group__container__ops__grp.html#ga0a1091c4d09339131c04d59c9b534a58"></a><br/></td></tr> <tr><td colspan="2"><div class="groupHeader">Operators for text streaming of MRPT matrices</div></td></tr> <tr><td class="memTemplParams" colspan="2">template<typename T , size_t NROWS, size_t NCOLS> </td></tr> <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classstd_1_1ostream.html">std::ostream</a> & </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__container__ops__grp.html#ga91b22de0057ca91e09f29a4b56e26976">mrpt::math::operator<<</a> (<a class="el" href="classstd_1_1ostream.html">std::ostream</a> &s, const CMatrixFixedNumeric< T, NROWS, NCOLS > &m)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Dumps the matrix to a text ostream, adding a final "\n" to Eigen's default output. <a href="group__container__ops__grp.html#ga91b22de0057ca91e09f29a4b56e26976"></a><br/></td></tr> <tr><td class="memTemplParams" colspan="2">template<typename T > </td></tr> <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classstd_1_1ostream.html">std::ostream</a> & </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__container__ops__grp.html#ga76d0eeef79e0687814bdee2a24a4c070">mrpt::math::operator<<</a> (<a class="el" href="classstd_1_1ostream.html">std::ostream</a> &s, const CMatrixTemplateNumeric< T > &m)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Dumps the matrix to a text ostream, adding a final "\n" to Eigen's default output. <a href="group__container__ops__grp.html#ga76d0eeef79e0687814bdee2a24a4c070"></a><br/></td></tr> <tr><td class="memTemplParams" colspan="2">template<typename T > </td></tr> <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classstd_1_1ostream.html">std::ostream</a> & </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__container__ops__grp.html#ga19bbefb659826b1e442bd8cf628b1507">mrpt::math::operator<<</a> (<a class="el" href="classstd_1_1ostream.html">std::ostream</a> &s, const <a class="el" href="structmrpt_1_1dynamicsize__vector.html">mrpt::dynamicsize_vector</a>< T > &m)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Dumps the vector as a row to a text ostream, with the format: "[v1 v2 v3... vN]". <a href="group__container__ops__grp.html#ga19bbefb659826b1e442bd8cf628b1507"></a><br/></td></tr> </table> <hr/><h2>Define Documentation</h2> <a class="anchor" id="a462cb509d2376fdf42659d059685ca08"></a><!-- doxytag: member="ops_matrices.h::SAVE_MATRIX" ref="a462cb509d2376fdf42659d059685ca08" args="(M)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define SAVE_MATRIX</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname">M</td><td>)</td> <td>   M.saveToTextFile(#M ".txt");</td> </tr> </table> </div> <div class="memdoc"> <p>A useful macro for saving matrixes to a file while debugging. </p> <p>Definition at line <a class="el" href="ops__matrices_8h_source.html#l00242">242</a> of file <a class="el" href="ops__matrices_8h_source.html">ops_matrices.h</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>