Go to the documentation of this file.
156 #ifndef CERES_PUBLIC_JET_H_
157 #define CERES_PUBLIC_JET_H_
170 template <
typename T,
int N>
200 template<
typename Derived>
248 template<
typename T,
int N>
inline
257 template<
typename T,
int N>
inline
263 template<
typename T,
int N>
inline
270 template<
typename T,
int N>
inline
276 template<
typename T,
int N>
inline
282 template<
typename T,
int N>
inline
289 template<
typename T,
int N>
inline
295 template<
typename T,
int N>
inline
301 template<
typename T,
int N>
inline
308 template<
typename T,
int N>
inline
314 template<
typename T,
int N>
inline
320 template<
typename T,
int N>
inline
330 const T g_a_inverse =
T(1.0) /
g.a;
331 const T f_a_by_g_a =
f.a * g_a_inverse;
332 return Jet<T, N>(
f.a * g_a_inverse, (
f.v - f_a_by_g_a *
g.v) * g_a_inverse);
336 template<
typename T,
int N>
inline
338 const T minus_s_g_a_inverse2 = -
s / (
g.a *
g.a);
343 template<
typename T,
int N>
inline
345 const T s_inverse = 1.0 /
s;
346 return Jet<T, N>(
f.a * s_inverse,
f.v * s_inverse);
350 #define CERES_DEFINE_JET_COMPARISON_OPERATOR(op) \
351 template<typename T, int N> inline \
352 bool operator op(const Jet<T, N>& f, const Jet<T, N>& g) { \
355 template<typename T, int N> inline \
356 bool operator op(const T& s, const Jet<T, N>& g) { \
359 template<typename T, int N> inline \
360 bool operator op(const Jet<T, N>& f, const T& s) { \
369 #undef CERES_DEFINE_JET_COMPARISON_OPERATOR
397 template <
typename T,
int N>
inline
399 return f.a <
T(0.0) ? -
f :
f;
403 template <
typename T,
int N>
inline
405 const T a_inverse =
T(1.0) /
f.a;
410 template <
typename T,
int N>
inline
412 const T tmp =
exp(
f.a);
417 template <
typename T,
int N>
inline
420 const T two_a_inverse =
T(1.0) / (
T(2.0) * tmp);
425 template <
typename T,
int N>
inline
431 template <
typename T,
int N>
inline
433 const T tmp = -
T(1.0) /
sqrt(
T(1.0) -
f.a *
f.a);
438 template <
typename T,
int N>
inline
444 template <
typename T,
int N>
inline
446 const T tmp =
T(1.0) /
sqrt(
T(1.0) -
f.a *
f.a);
451 template <
typename T,
int N>
inline
453 const T tan_a =
tan(
f.a);
454 const T tmp =
T(1.0) + tan_a * tan_a;
459 template <
typename T,
int N>
inline
461 const T tmp =
T(1.0) / (
T(1.0) +
f.a *
f.a);
466 template <
typename T,
int N>
inline
472 template <
typename T,
int N>
inline
478 template <
typename T,
int N>
inline
480 const T tanh_a =
tanh(
f.a);
481 const T tmp =
T(1.0) - tanh_a * tanh_a;
496 template <
typename T,
int N>
inline
501 for (
int i = 0;
i <
N; ++
i) {
510 template <
typename T,
int N>
inline
515 for (
int i = 0;
i <
N;
i++) {
524 template <
typename T,
int N>
inline
529 for (
int i = 0;
i <
N; ++
i) {
538 template <
typename T,
int N>
inline
543 for (
int i = 0;
i <
N; ++
i) {
555 template <
typename T,
int N>
inline
562 T const tmp =
T(1.0) / (
f.a *
f.a +
g.a *
g.a);
569 template <
typename T,
int N>
inline
571 T const tmp =
g *
pow(
f.a,
g -
T(1.0));
577 template <
typename T,
int N>
inline
579 T const tmp =
pow(
f,
g.a);
586 template <
typename T,
int N>
inline
588 T const tmp1 =
pow(
f.a,
g.a);
589 T const tmp2 =
g.a *
pow(
f.a,
g.a -
T(1.0));
590 T const tmp3 = tmp1 *
log(
f.a);
630 template <
typename T,
int N>
632 return s <<
"[" <<
z.a <<
" ; " <<
z.v.transpose() <<
"]";
641 template<
typename T,
int N>
663 HasFloatingPoint = 1,
670 #endif // CERES_PUBLIC_JET_H_
Jet< T, N > log(const Jet< T, N > &f)
Namespace containing all symbols from the Eigen library.
Jet< T, N > atan2(const Jet< T, N > &g, const Jet< T, N > &f)
Jet< T, N > ei_abs(const Jet< T, N > &x)
Jet< T, N > tan(const Jet< T, N > &f)
Array< double, 1, 3 > e(1./3., 0.5, 2.)
const EIGEN_DEVICE_FUNC AtanReturnType atan() const
Jet< T, N > sin(const Jet< T, N > &f)
Jet< T, N > ei_tanh(const Jet< T, N > &x)
Jet< T, N > atan(const Jet< T, N > &f)
Jet< T, N > operator*(const Jet< T, N > &f, const Jet< T, N > &g)
const Jet< T, N > & ei_conj(const Jet< T, N > &x)
set noclip points set clip one set noclip two set bar set border lt lw set xdata set ydata set zdata set x2data set y2data set boxwidth set dummy x
Jet< T, N > operator-(const Jet< T, N > &f)
Jet< T, N > ei_tan(const Jet< T, N > &x)
Jet< T, N > const & operator+(const Jet< T, N > &f)
static ceres::Jet< T, N > dummy_precision()
Eigen::Triplet< double > T
const EIGEN_DEVICE_FUNC LogReturnType log() const
Jet< T, N > exp(const Jet< T, N > &f)
Jet< T, N > & operator-=(const Jet< T, N > &y)
const EIGEN_DEVICE_FUNC AsinReturnType asin() const
const EIGEN_DEVICE_FUNC ExpReturnType exp() const
Jet< T, N > acos(const Jet< T, N > &f)
Jet< T, N > cos(const Jet< T, N > &f)
Jet< T, N > sinh(const Jet< T, N > &f)
Jet< T, N > & operator*=(const Jet< T, N > &y)
const EIGEN_DEVICE_FUNC CoshReturnType cosh() const
Eigen::Matrix< T, N, 1, Eigen::DontAlign > v
Jet< T, N > ei_imag(const Jet< T, N > &)
Jet< T, N > asin(const Jet< T, N > &f)
Jet< T, N > ei_cosh(const Jet< T, N > &x)
ceres::Jet< T, N > NonInteger
std::ostream & operator<<(std::ostream &s, const Jet< T, N > &z)
#define EIGEN_STRONG_INLINE
Jet< T, N > ei_abs2(const Jet< T, N > &x)
Jet< T, N > pow(const Jet< T, N > &f, const Jet< T, N > &g)
Jet< T, N > ei_sqrt(const Jet< T, N > &x)
Jet< T, N > ei_exp(const Jet< T, N > &x)
const EIGEN_DEVICE_FUNC TanReturnType tan() const
Jet< T, N > pow(const Jet< T, N > &f, double g)
void g(const string &key, int i)
Jet< T, N > ei_pow(const Jet< T, N > &x, Jet< T, N > y)
CERES_DEFINE_JET_COMPARISON_OPERATOR(<) CERES_DEFINE_JET_COMPARISON_OPERATOR(<
AnnoyingScalar atan2(const AnnoyingScalar &y, const AnnoyingScalar &x)
Jet< T, N > operator/(const Jet< T, N > &f, const Jet< T, N > &g)
Point2(* f)(const Point3 &, OptionalJacobian< 2, 3 >)
Jet< T, N > & operator+=(const Jet< T, N > &y)
Jet< T, N > ei_cos(const Jet< T, N > &x)
Jet< T, N > tanh(const Jet< T, N > &f)
const EIGEN_DEVICE_FUNC TanhReturnType tanh() const
Jet< T, N > ei_sin(const Jet< T, N > &x)
Jet< T, N > ei_sinh(const Jet< T, N > &x)
Base class for all dense matrices, vectors, and arrays.
Jet< T, N > ei_log(const Jet< T, N > &x)
bool IsInfinite(double x)
Jet< T, N > ei_atan(const Jet< T, N > &x)
int N Jet< T, N > abs(const Jet< T, N > &f)
The matrix class, also used for vectors and row-vectors.
Jet< T, N > & operator/=(const Jet< T, N > &y)
Jet< T, N > cosh(const Jet< T, N > &f)
EIGEN_STRONG_INLINE Jet(const T &a, const Eigen::DenseBase< Derived > &v)
const EIGEN_DEVICE_FUNC SinhReturnType sinh() const
const Jet< T, N > & ei_real(const Jet< T, N > &x)
Holds information about the various numeric (i.e. scalar) types allowed by Eigen.
Jet< T, N > sqrt(const Jet< T, N > &f)
Jet(const T &value, int k)
ceres::Jet< T, N > Nested
gtsam
Author(s):
autogenerated on Fri Nov 1 2024 03:33:00