Struct sym::GroupOps< EquirectangularCameraCal< Scalar > >#
-
template<typename Scalar>
struct GroupOps<EquirectangularCameraCal<Scalar>> C++ GroupOps implementation for <class ‘symforce.cam.equirectangular_camera_cal.EquirectangularCameraCal’>.
Public Types
-
using T = EquirectangularCameraCal<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: EquirectangularCameraCal
-
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: (4x4) jacobian of res (4) wrt arg a (4)
-
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: (4x4) jacobian of res (4) wrt arg a (4) res_D_b: (4x4) jacobian of res (4) wrt arg b (4)
-
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: (4x4) jacobian of res (4) wrt arg a (4) res_D_b: (4x4) jacobian of res (4) wrt arg b (4)
-
using T = EquirectangularCameraCal<Scalar>