CogniPilot

MODELICA LIBRARY · ENGINEERING REFERENCE

function

LieGroups.SO3.Quat.product_right_factor_jacobian

Right-trivialized derivative of product with respect to its right factor

Rule for product, right slot. A right perturbation of the right factor is already a right perturbation of the product, so the rule is the identity for every q and p:

log_map(product(q,p)^-1 * product(q, p*exp_map(dp))) = dp

The identity is exact. The function takes both factors so that every rule in the library has its primitive's signature.

Public declarations

Explicit source declarations; dimensions, modifications and defaults are shown as written, without evaluation.

RoleNameTypeDimensions / attributes / defaultDescription
inputqReal[4]Left quaternion {w,x,y,z}
inputpReal[4]Right quaternion {w,x,y,z}
outputJReal[3, 3]d/d(dp) of log_map(product(q,p)^-1 * product(q, p*exp_map(dp)))

Modelica declarations and implementation

Show parameters, interfaces and source

Parameters, inputs, outputs, defaults and equations from the source file.

function product_right_factor_jacobian
  "Right-trivialized derivative of product with respect to its right factor"
  input Real q[4] "Left quaternion {w,x,y,z}";
  input Real p[4] "Right quaternion {w,x,y,z}";
  output Real J[3, 3] "d/d(dp) of log_map(product(q,p)^-1 * product(q, p*exp_map(dp)))";
algorithm
  J := identity(3);
  annotation(Documentation(info="<html>
    <p>Rule for <code>product</code>, right slot. A right perturbation of the
    right factor is already a right perturbation of the product, so the rule is
    the identity for every q and p:</p>
    <pre>log_map(product(q,p)^-1 * product(q, p*exp_map(dp))) = dp</pre>
    <p>The identity is exact. The function takes both factors so that every rule
    in the library has its primitive's signature.</p>
  </html>"));
end product_right_factor_jacobian;