Struct sym::GroupOps< PolynomialCameraCal< Scalar > >#

template<typename Scalar>
struct GroupOps<PolynomialCameraCal<Scalar>>

C++ GroupOps implementation for <class ‘symforce.cam.polynomial_camera_cal.PolynomialCameraCal’>.

Public Types

using T = PolynomialCameraCal<Scalar>
using SelfJacobian = Eigen::Matrix<Scalar, LieGroupOps<T>::TangentDim(), LieGroupOps<T>::TangentDim()>

Public Static Functions

static T Identity()

This function was autogenerated from a symbolic function. Do not modify by hand.

Symbolic function: <lambda>

Args:

Outputs: res: PolynomialCameraCal

static T Inverse(const T &a)

Inverse of the element a.

Returns: Element: b such that a @ b = identity

static T Compose(const T &a, const T &b)

Composition of two elements in the group.

Returns: Element: a @ b

static T Between(const T &a, const T &b)

Returns the element that when composed with a produces b. For vector spaces it is b - a.

Implementation is simply compose(inverse(a), b).

Returns: Element: c such that a @ c = b

static T InverseWithJacobian(const T &a, SelfJacobian *const res_D_a = nullptr)

Inverse of the element a.

Returns: Element: b such that a @ b = identity res_D_a: (8x8) jacobian of res (8) wrt arg a (8)

static T ComposeWithJacobians(const T &a, const T &b, SelfJacobian *const res_D_a = nullptr, SelfJacobian *const res_D_b = nullptr)

Composition of two elements in the group.

Returns: Element: a @ b res_D_a: (8x8) jacobian of res (8) wrt arg a (8) res_D_b: (8x8) jacobian of res (8) wrt arg b (8)

static T BetweenWithJacobians(const T &a, const T &b, SelfJacobian *const res_D_a = nullptr, SelfJacobian *const res_D_b = nullptr)

Returns the element that when composed with a produces b. For vector spaces it is b - a.

Implementation is simply compose(inverse(a), b).

Returns: Element: c such that a @ c = b res_D_a: (8x8) jacobian of res (8) wrt arg a (8) res_D_b: (8x8) jacobian of res (8) wrt arg b (8)