Sophie

Sophie

distrib > Fedora > 16 > i386 > by-pkgid > 4bc66056a634db26a1f4d0845dc41ca6 > files > 11588

mrpt-doc-0.9.5-0.1.20110925svn2670.fc16.i686.rpm

<!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>mrpt::math::jacobians Namespace 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> &gt; <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&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li class="current"><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li><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="namespaces.html"><span>Namespace&#160;List</span></a></li>
      <li><a href="namespacemembers.html"><span>Namespace&#160;Members</span></a></li>
    </ul>
  </div>
  <div id="nav-path" class="navpath">
    <ul>
      <li class="navelem"><a class="el" href="namespacemrpt.html">mrpt</a>      </li>
      <li class="navelem"><a class="el" href="namespacemrpt_1_1math.html">math</a>      </li>
      <li class="navelem"><a class="el" href="namespacemrpt_1_1math_1_1jacobians.html">jacobians</a>      </li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">mrpt::math::jacobians Namespace Reference<div class="ingroups"><a class="el" href="group__mrpt__base__grp.html">[mrpt-base]</a></div></div>  </div>
</div>
<div class="contents">
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>A collection of functions to compute jacobians of diverse transformations, etc (some functions are redirections to existing methods elsewhere, so this namespace is actually used with grouping purposes). </p>
<p>Since most functions in this namespace are inline, their use implies no execution time overload and the code may be more clear to read, so it's recommended to use them where needed. </p>
</div><table class="memberdecls">
<tr><td colspan="2"><h2><a name="func-members"></a>
Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemrpt_1_1math_1_1jacobians.html#a30e4241b019f9b1160df7bca4afb783d">jacob_quat_from_yawpitchroll</a> (<a class="el" href="classmrpt_1_1math_1_1_c_matrix_fixed_numeric.html">CMatrixFixedNumeric</a>&lt; double, 4, 3 &gt; &amp;out_dq_dr, const double yaw, const double pitch, const double roll)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes the 4x3 Jacobian of the transformation from a 3D pose angles (yaw pitch roll) into a Quaternion, that is, the Jacobian of: </p>
<p class="formulaDsp">
<img class="formulaDsp" alt="\[ \mathbf{q} = \left( \begin{array}{c} \cos (\phi /2) \cos (\theta /2) \cos (\psi /2) + \sin (\phi /2) \sin (\theta /2) \sin (\psi /2) \\ \sin (\phi /2) \cos (\theta /2) \cos (\psi /2) - \cos (\phi /2) \sin (\theta /2) \sin (\psi /2) \\ \cos (\phi /2) \sin (\theta /2) \cos (\psi /2) + \sin (\phi /2) \cos (\theta /2) \sin (\psi /2) \\ \cos (\phi /2) \cos (\theta /2) \sin (\psi /2) - \sin (\phi /2) \sin (\theta /2) \cos (\psi /2) \\ \end{array}\right) \]" src="form_24.png"/>
</p>
<p> With : <img class="formulaInl" alt="$ \phi = roll $" src="form_25.png"/>, <img class="formulaInl" alt="$ \theta = pitch $" src="form_26.png"/> and <img class="formulaInl" alt="$ \psi = yaw $" src="form_27.png"/>.  <a href="#a30e4241b019f9b1160df7bca4afb783d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemrpt_1_1math_1_1jacobians.html#ad8c2781c9bbd4c32743bf0be99bf8c33">jacob_quat_from_yawpitchroll</a> (<a class="el" href="classmrpt_1_1math_1_1_c_matrix_fixed_numeric.html">CMatrixFixedNumeric</a>&lt; double, 4, 3 &gt; &amp;out_dq_dr, const <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d.html">CPose3D</a> &amp;in_pose)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes the 4x3 Jacobian of the transformation from a 3D pose angles (yaw pitch roll) into a Quaternion, that is, the Jacobian of: </p>
<p class="formulaDsp">
<img class="formulaDsp" alt="\[ \mathbf{q} = \left( \begin{array}{c} \cos (\phi /2) \cos (\theta /2) \cos (\psi /2) + \sin (\phi /2) \sin (\theta /2) \sin (\psi /2) \\ \sin (\phi /2) \cos (\theta /2) \cos (\psi /2) - \cos (\phi /2) \sin (\theta /2) \sin (\psi /2) \\ \cos (\phi /2) \sin (\theta /2) \cos (\psi /2) + \sin (\phi /2) \cos (\theta /2) \sin (\psi /2) \\ \cos (\phi /2) \cos (\theta /2) \sin (\psi /2) - \sin (\phi /2) \sin (\theta /2) \cos (\psi /2) \\ \end{array}\right) \]" src="form_24.png"/>
</p>
<p> With : <img class="formulaInl" alt="$ \phi = roll $" src="form_25.png"/>, <img class="formulaInl" alt="$ \theta = pitch $" src="form_26.png"/> and <img class="formulaInl" alt="$ \psi = yaw $" src="form_27.png"/>.  <a href="#ad8c2781c9bbd4c32743bf0be99bf8c33"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemrpt_1_1math_1_1jacobians.html#ae82c0c77eb8140df495cdb9312bcf49a">jacob_yawpitchroll_from_quat</a> (<a class="el" href="classmrpt_1_1math_1_1_c_matrix_fixed_numeric.html">CMatrixFixedNumeric</a>&lt; double, 3, 4 &gt; &amp;out_dr_dq)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes the 3x4 Jacobian of the transformation from a quaternion (qr qx qy qz) to 3D pose angles (yaw pitch roll).  <a href="#ae82c0c77eb8140df495cdb9312bcf49a"></a><br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;class QUATERNION , class MATRIXLIKE &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemrpt_1_1math_1_1jacobians.html#a0af89c27b4e68ac11002b015873da8c8">jacob_quat_rotation</a> (const QUATERNION &amp;quaternion, MATRIXLIKE &amp;out_mat4x4)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute the Jacobian of the rotation composition operation <img class="formulaInl" alt="$ p = f(\cdot) = q_{this} \times r $" src="form_7.png"/>, that is the 4x4 matrix <img class="formulaInl" alt="$ \frac{\partial f}{\partial q_{this} } $" src="form_8.png"/>.  <a href="#a0af89c27b4e68ac11002b015873da8c8"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemrpt_1_1math_1_1jacobians.html#acb6a24540a986fe0f20d73c8c72f1b50">jacobs_6D_pose_comp</a> (const <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d.html">CPose3D</a> &amp;x, const <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d.html">CPose3D</a> &amp;u, <a class="el" href="namespacemrpt_1_1math.html#a69ac788617e87d06107cd7a32a1352b7">CMatrixDouble66</a> &amp;out_df_dx, <a class="el" href="namespacemrpt_1_1math.html#a69ac788617e87d06107cd7a32a1352b7">CMatrixDouble66</a> &amp;out_df_du)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Given the 3D(6D) pose composition <img class="formulaInl" alt="$ f(x,u) = x \oplus u $" src="form_28.png"/>, compute the two 6x6 Jacobians <img class="formulaInl" alt="$ \frac{\partial f}{\partial x} $" src="form_29.png"/> and <img class="formulaInl" alt="$ \frac{\partial f}{\partial u} $" src="form_30.png"/>.  <a href="#acb6a24540a986fe0f20d73c8c72f1b50"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemrpt_1_1math_1_1jacobians.html#ab49860321328e9d934c2e9f019e1c464">jacobs_2D_pose_comp</a> (const <a class="el" href="classmrpt_1_1poses_1_1_c_pose_p_d_f_gaussian.html">CPosePDFGaussian</a> &amp;x, const <a class="el" href="classmrpt_1_1poses_1_1_c_pose_p_d_f_gaussian.html">CPosePDFGaussian</a> &amp;u, <a class="el" href="namespacemrpt_1_1math.html#a58d0ee60eee38e990848ccb8b83e8338">CMatrixDouble33</a> &amp;out_df_dx, <a class="el" href="namespacemrpt_1_1math.html#a58d0ee60eee38e990848ccb8b83e8338">CMatrixDouble33</a> &amp;out_df_du)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Given the 2D pose composition <img class="formulaInl" alt="$ f(x,u) = x \oplus u $" src="form_28.png"/>, compute the two 3x3 Jacobians <img class="formulaInl" alt="$ \frac{\partial f}{\partial x} $" src="form_29.png"/> and <img class="formulaInl" alt="$ \frac{\partial f}{\partial u} $" src="form_30.png"/>.  <a href="#ab49860321328e9d934c2e9f019e1c464"></a><br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;class VECTORLIKE , class VECTORLIKE2 , class VECTORLIKE3 , class MATRIXLIKE , class USERPARAM &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemrpt_1_1math_1_1jacobians.html#a6bfc725b0889aa6b7eee78bb91f19441">jacob_numeric_estimate</a> (const VECTORLIKE &amp;x, void(*functor)(const VECTORLIKE &amp;x, const USERPARAM &amp;y, VECTORLIKE3 &amp;out), const VECTORLIKE2 &amp;increments, const USERPARAM &amp;userParam, MATRIXLIKE &amp;out_Jacobian)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Numerical estimation of the Jacobian of a user-supplied function - this template redirects to <a class="el" href="group__container__ops__grp.html#ga13e2e339d944b37f2386fc4e0bb56935" title="Estimate the Jacobian of a multi-dimensional function around a point &quot;x&quot;, using finite differences of...">mrpt::math::estimateJacobian</a>, see that function for documentation.  <a href="#a6bfc725b0889aa6b7eee78bb91f19441"></a><br/></td></tr>
</table>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="a6bfc725b0889aa6b7eee78bb91f19441"></a><!-- doxytag: member="mrpt::math::jacobians::jacob_numeric_estimate" ref="a6bfc725b0889aa6b7eee78bb91f19441" args="(const VECTORLIKE &amp;x, void(*functor)(const VECTORLIKE &amp;x, const USERPARAM &amp;y, VECTORLIKE3 &amp;out), const VECTORLIKE2 &amp;increments, const USERPARAM &amp;userParam, MATRIXLIKE &amp;out_Jacobian)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class VECTORLIKE , class VECTORLIKE2 , class VECTORLIKE3 , class MATRIXLIKE , class USERPARAM &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::math::jacobians::jacob_numeric_estimate </td>
          <td>(</td>
          <td class="paramtype">const VECTORLIKE &amp;&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void(*)(const VECTORLIKE &amp;x, const USERPARAM &amp;y, VECTORLIKE3 &amp;out)&#160;</td>
          <td class="paramname"><em>functor</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const VECTORLIKE2 &amp;&#160;</td>
          <td class="paramname"><em>increments</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const USERPARAM &amp;&#160;</td>
          <td class="paramname"><em>userParam</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">MATRIXLIKE &amp;&#160;</td>
          <td class="paramname"><em>out_Jacobian</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Numerical estimation of the Jacobian of a user-supplied function - this template redirects to <a class="el" href="group__container__ops__grp.html#ga13e2e339d944b37f2386fc4e0bb56935" title="Estimate the Jacobian of a multi-dimensional function around a point &quot;x&quot;, using finite differences of...">mrpt::math::estimateJacobian</a>, see that function for documentation. </p>

<p>Definition at line <a class="el" href="jacobians_8h_source.html#l00128">128</a> of file <a class="el" href="jacobians_8h_source.html">jacobians.h</a>.</p>

<p>References <a class="el" href="base_2include_2mrpt_2math_2utils_8h_source.html#l00710">mrpt::math::estimateJacobian()</a>.</p>

<p>Referenced by <a class="el" href="transform__gaussian_8h_source.html#l00145">mrpt::math::transform_gaussian_linear()</a>.</p>

</div>
</div>
<a class="anchor" id="a30e4241b019f9b1160df7bca4afb783d"></a><!-- doxytag: member="mrpt::math::jacobians::jacob_quat_from_yawpitchroll" ref="a30e4241b019f9b1160df7bca4afb783d" args="(CMatrixFixedNumeric&lt; double, 4, 3 &gt; &amp;out_dq_dr, const double yaw, const double pitch, const double roll)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::math::jacobians::jacob_quat_from_yawpitchroll </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1math_1_1_c_matrix_fixed_numeric.html">CMatrixFixedNumeric</a>&lt; double, 4, 3 &gt; &amp;&#160;</td>
          <td class="paramname"><em>out_dq_dr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>yaw</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>pitch</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>roll</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Computes the 4x3 Jacobian of the transformation from a 3D pose angles (yaw pitch roll) into a Quaternion, that is, the Jacobian of: </p>
<p class="formulaDsp">
<img class="formulaDsp" alt="\[ \mathbf{q} = \left( \begin{array}{c} \cos (\phi /2) \cos (\theta /2) \cos (\psi /2) + \sin (\phi /2) \sin (\theta /2) \sin (\psi /2) \\ \sin (\phi /2) \cos (\theta /2) \cos (\psi /2) - \cos (\phi /2) \sin (\theta /2) \sin (\psi /2) \\ \cos (\phi /2) \sin (\theta /2) \cos (\psi /2) + \sin (\phi /2) \cos (\theta /2) \sin (\psi /2) \\ \cos (\phi /2) \cos (\theta /2) \sin (\psi /2) - \sin (\phi /2) \sin (\theta /2) \cos (\psi /2) \\ \end{array}\right) \]" src="form_24.png"/>
</p>
<p> With : <img class="formulaInl" alt="$ \phi = roll $" src="form_25.png"/>, <img class="formulaInl" alt="$ \theta = pitch $" src="form_26.png"/> and <img class="formulaInl" alt="$ \psi = yaw $" src="form_27.png"/>. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="namespacemrpt_1_1math_1_1jacobians.html#ae82c0c77eb8140df495cdb9312bcf49a" title="Computes the 3x4 Jacobian of the transformation from a quaternion (qr qx qy qz) to 3D pose angles (ya...">jacob_yawpitchroll_from_quat</a>, <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d.html#a31e4434ffbcf84c2675abcc131a51abf" title="Returns the quaternion associated to the rotation of this object (NOTE: XYZ translation is ignored)  ...">mrpt::poses::CPose3D::getAsQuaternion</a> </dd></dl>

<p>Definition at line <a class="el" href="jacobians_8h_source.html#l00056">56</a> of file <a class="el" href="jacobians_8h_source.html">jacobians.h</a>.</p>

<p>References <a class="el" href="_c_quaternion_8h_source.html#l00042">mrpt::math::UNINITIALIZED_QUATERNION</a>, and <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d.html#a31e4434ffbcf84c2675abcc131a51abf">mrpt::poses::CPose3D::getAsQuaternion()</a>.</p>

</div>
</div>
<a class="anchor" id="ad8c2781c9bbd4c32743bf0be99bf8c33"></a><!-- doxytag: member="mrpt::math::jacobians::jacob_quat_from_yawpitchroll" ref="ad8c2781c9bbd4c32743bf0be99bf8c33" args="(CMatrixFixedNumeric&lt; double, 4, 3 &gt; &amp;out_dq_dr, const CPose3D &amp;in_pose)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::math::jacobians::jacob_quat_from_yawpitchroll </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1math_1_1_c_matrix_fixed_numeric.html">CMatrixFixedNumeric</a>&lt; double, 4, 3 &gt; &amp;&#160;</td>
          <td class="paramname"><em>out_dq_dr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d.html">CPose3D</a> &amp;&#160;</td>
          <td class="paramname"><em>in_pose</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Computes the 4x3 Jacobian of the transformation from a 3D pose angles (yaw pitch roll) into a Quaternion, that is, the Jacobian of: </p>
<p class="formulaDsp">
<img class="formulaDsp" alt="\[ \mathbf{q} = \left( \begin{array}{c} \cos (\phi /2) \cos (\theta /2) \cos (\psi /2) + \sin (\phi /2) \sin (\theta /2) \sin (\psi /2) \\ \sin (\phi /2) \cos (\theta /2) \cos (\psi /2) - \cos (\phi /2) \sin (\theta /2) \sin (\psi /2) \\ \cos (\phi /2) \sin (\theta /2) \cos (\psi /2) + \sin (\phi /2) \cos (\theta /2) \sin (\psi /2) \\ \cos (\phi /2) \cos (\theta /2) \sin (\psi /2) - \sin (\phi /2) \sin (\theta /2) \cos (\psi /2) \\ \end{array}\right) \]" src="form_24.png"/>
</p>
<p> With : <img class="formulaInl" alt="$ \phi = roll $" src="form_25.png"/>, <img class="formulaInl" alt="$ \theta = pitch $" src="form_26.png"/> and <img class="formulaInl" alt="$ \psi = yaw $" src="form_27.png"/>. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="namespacemrpt_1_1math_1_1jacobians.html#ae82c0c77eb8140df495cdb9312bcf49a" title="Computes the 3x4 Jacobian of the transformation from a quaternion (qr qx qy qz) to 3D pose angles (ya...">jacob_yawpitchroll_from_quat</a>, <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d.html#a31e4434ffbcf84c2675abcc131a51abf" title="Returns the quaternion associated to the rotation of this object (NOTE: XYZ translation is ignored)  ...">mrpt::poses::CPose3D::getAsQuaternion</a> </dd></dl>

<p>Definition at line <a class="el" href="jacobians_8h_source.html#l00073">73</a> of file <a class="el" href="jacobians_8h_source.html">jacobians.h</a>.</p>

<p>References <a class="el" href="_c_quaternion_8h_source.html#l00042">mrpt::math::UNINITIALIZED_QUATERNION</a>, and <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d.html#a31e4434ffbcf84c2675abcc131a51abf">mrpt::poses::CPose3D::getAsQuaternion()</a>.</p>

</div>
</div>
<a class="anchor" id="a0af89c27b4e68ac11002b015873da8c8"></a><!-- doxytag: member="mrpt::math::jacobians::jacob_quat_rotation" ref="a0af89c27b4e68ac11002b015873da8c8" args="(const QUATERNION &amp;quaternion, MATRIXLIKE &amp;out_mat4x4)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class QUATERNION , class MATRIXLIKE &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::math::jacobians::jacob_quat_rotation </td>
          <td>(</td>
          <td class="paramtype">const QUATERNION &amp;&#160;</td>
          <td class="paramname"><em>quaternion</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">MATRIXLIKE &amp;&#160;</td>
          <td class="paramname"><em>out_mat4x4</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Compute the Jacobian of the rotation composition operation <img class="formulaInl" alt="$ p = f(\cdot) = q_{this} \times r $" src="form_7.png"/>, that is the 4x4 matrix <img class="formulaInl" alt="$ \frac{\partial f}{\partial q_{this} } $" src="form_8.png"/>. </p>
<p>The output matrix can be a dynamic or fixed size (4x4) matrix. The input quaternion can be <a class="el" href="namespacemrpt_1_1math.html#a668fef3a57a53170ce8b74d7a3debdce" title="A quaternion of data type &quot;float&quot;.">mrpt::math::CQuaternionFloat</a> or <a class="el" href="namespacemrpt_1_1math.html#ad0af3f20fa3e963153e6135431d597e3" title="A quaternion of data type &quot;double&quot;.">mrpt::math::CQuaternionDouble</a>. </p>

<p>Definition at line <a class="el" href="jacobians_8h_source.html#l00097">97</a> of file <a class="el" href="jacobians_8h_source.html">jacobians.h</a>.</p>

</div>
</div>
<a class="anchor" id="ae82c0c77eb8140df495cdb9312bcf49a"></a><!-- doxytag: member="mrpt::math::jacobians::jacob_yawpitchroll_from_quat" ref="ae82c0c77eb8140df495cdb9312bcf49a" args="(CMatrixFixedNumeric&lt; double, 3, 4 &gt; &amp;out_dr_dq)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::math::jacobians::jacob_yawpitchroll_from_quat </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1math_1_1_c_matrix_fixed_numeric.html">CMatrixFixedNumeric</a>&lt; double, 3, 4 &gt; &amp;&#160;</td>
          <td class="paramname"><em>out_dr_dq</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Computes the 3x4 Jacobian of the transformation from a quaternion (qr qx qy qz) to 3D pose angles (yaw pitch roll). </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="namespacemrpt_1_1math_1_1jacobians.html#a30e4241b019f9b1160df7bca4afb783d" title="Computes the 4x3 Jacobian of the transformation from a 3D pose angles (yaw pitch roll) into a Quatern...">jacob_quat_from_yawpitchroll</a> </dd></dl>

<p>Definition at line <a class="el" href="jacobians_8h_source.html#l00086">86</a> of file <a class="el" href="jacobians_8h_source.html">jacobians.h</a>.</p>

<p>References <a class="el" href="mrpt__macros_8h_source.html#l00131">THROW_EXCEPTION</a>.</p>

</div>
</div>
<a class="anchor" id="ab49860321328e9d934c2e9f019e1c464"></a><!-- doxytag: member="mrpt::math::jacobians::jacobs_2D_pose_comp" ref="ab49860321328e9d934c2e9f019e1c464" args="(const CPosePDFGaussian &amp;x, const CPosePDFGaussian &amp;u, CMatrixDouble33 &amp;out_df_dx, CMatrixDouble33 &amp;out_df_du)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::math::jacobians::jacobs_2D_pose_comp </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1poses_1_1_c_pose_p_d_f_gaussian.html">CPosePDFGaussian</a> &amp;&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1poses_1_1_c_pose_p_d_f_gaussian.html">CPosePDFGaussian</a> &amp;&#160;</td>
          <td class="paramname"><em>u</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespacemrpt_1_1math.html#a58d0ee60eee38e990848ccb8b83e8338">CMatrixDouble33</a> &amp;&#160;</td>
          <td class="paramname"><em>out_df_dx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespacemrpt_1_1math.html#a58d0ee60eee38e990848ccb8b83e8338">CMatrixDouble33</a> &amp;&#160;</td>
          <td class="paramname"><em>out_df_du</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Given the 2D pose composition <img class="formulaInl" alt="$ f(x,u) = x \oplus u $" src="form_28.png"/>, compute the two 3x3 Jacobians <img class="formulaInl" alt="$ \frac{\partial f}{\partial x} $" src="form_29.png"/> and <img class="formulaInl" alt="$ \frac{\partial f}{\partial u} $" src="form_30.png"/>. </p>
<p>For the equations, see <a class="el" href="classmrpt_1_1poses_1_1_c_pose_p_d_f_gaussian.html#a09df13a3b30ffdb07c24b4eadb2e5641" title="This static method computes the pose composition Jacobians, with these formulas:">CPosePDFGaussian::jacobiansPoseComposition</a> </p>

<p>Definition at line <a class="el" href="jacobians_8h_source.html#l00117">117</a> of file <a class="el" href="jacobians_8h_source.html">jacobians.h</a>.</p>

<p>References <a class="el" href="classmrpt_1_1poses_1_1_c_pose_p_d_f_gaussian.html#a09df13a3b30ffdb07c24b4eadb2e5641">mrpt::poses::CPosePDFGaussian::jacobiansPoseComposition()</a>.</p>

</div>
</div>
<a class="anchor" id="acb6a24540a986fe0f20d73c8c72f1b50"></a><!-- doxytag: member="mrpt::math::jacobians::jacobs_6D_pose_comp" ref="acb6a24540a986fe0f20d73c8c72f1b50" args="(const CPose3D &amp;x, const CPose3D &amp;u, CMatrixDouble66 &amp;out_df_dx, CMatrixDouble66 &amp;out_df_du)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::math::jacobians::jacobs_6D_pose_comp </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d.html">CPose3D</a> &amp;&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d.html">CPose3D</a> &amp;&#160;</td>
          <td class="paramname"><em>u</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespacemrpt_1_1math.html#a69ac788617e87d06107cd7a32a1352b7">CMatrixDouble66</a> &amp;&#160;</td>
          <td class="paramname"><em>out_df_dx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespacemrpt_1_1math.html#a69ac788617e87d06107cd7a32a1352b7">CMatrixDouble66</a> &amp;&#160;</td>
          <td class="paramname"><em>out_df_du</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Given the 3D(6D) pose composition <img class="formulaInl" alt="$ f(x,u) = x \oplus u $" src="form_28.png"/>, compute the two 6x6 Jacobians <img class="formulaInl" alt="$ \frac{\partial f}{\partial x} $" src="form_29.png"/> and <img class="formulaInl" alt="$ \frac{\partial f}{\partial u} $" src="form_30.png"/>. </p>
<p>For the equations, see <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d_p_d_f_gaussian.html#a3ebe1b404b8d2749eba448a91c4d5bf5" title="This static method computes the pose composition Jacobians.">CPose3DPDFGaussian::jacobiansPoseComposition</a> </p>

<p>Definition at line <a class="el" href="jacobians_8h_source.html#l00105">105</a> of file <a class="el" href="jacobians_8h_source.html">jacobians.h</a>.</p>

<p>References <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d_p_d_f_gaussian.html#a3ebe1b404b8d2749eba448a91c4d5bf5">mrpt::poses::CPose3DPDFGaussian::jacobiansPoseComposition()</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>