StemFunction.h
Go to the documentation of this file.
1 // This file is part of Eigen, a lightweight C++ template library
2 // for linear algebra.
3 //
4 // Copyright (C) 2010, 2013 Jitse Niesen <jitse@maths.leeds.ac.uk>
5 //
6 // This Source Code Form is subject to the terms of the Mozilla
7 // Public License v. 2.0. If a copy of the MPL was not distributed
8 // with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
9 
10 #ifndef EIGEN_STEM_FUNCTION
11 #define EIGEN_STEM_FUNCTION
12 
13 namespace Eigen {
14 
15 namespace internal {
16 
18 template <typename Scalar>
20 {
21  using std::exp;
22  return exp(x);
23 }
24 
26 template <typename Scalar>
28 {
29  using std::cos;
30  using std::sin;
31  Scalar res;
32 
33  switch (n % 4) {
34  case 0:
35  res = std::cos(x);
36  break;
37  case 1:
38  res = -std::sin(x);
39  break;
40  case 2:
41  res = -std::cos(x);
42  break;
43  case 3:
44  res = std::sin(x);
45  break;
46  }
47  return res;
48 }
49 
51 template <typename Scalar>
53 {
54  using std::cos;
55  using std::sin;
56  Scalar res;
57 
58  switch (n % 4) {
59  case 0:
60  res = std::sin(x);
61  break;
62  case 1:
63  res = std::cos(x);
64  break;
65  case 2:
66  res = -std::sin(x);
67  break;
68  case 3:
69  res = -std::cos(x);
70  break;
71  }
72  return res;
73 }
74 
76 template <typename Scalar>
78 {
79  using std::cosh;
80  using std::sinh;
81  Scalar res;
82 
83  switch (n % 2) {
84  case 0:
85  res = std::cosh(x);
86  break;
87  case 1:
88  res = std::sinh(x);
89  break;
90  }
91  return res;
92 }
93 
95 template <typename Scalar>
97 {
98  using std::cosh;
99  using std::sinh;
100  Scalar res;
101 
102  switch (n % 2) {
103  case 0:
104  res = std::sinh(x);
105  break;
106  case 1:
107  res = std::cosh(x);
108  break;
109  }
110  return res;
111 }
112 
113 } // end namespace internal
114 
115 } // end namespace Eigen
116 
117 #endif // EIGEN_STEM_FUNCTION
Eigen
Namespace containing all symbols from the Eigen library.
Definition: jet.h:637
ceres::sin
Jet< T, N > sin(const Jet< T, N > &f)
Definition: jet.h:439
Eigen::internal::stem_function_sinh
Scalar stem_function_sinh(Scalar x, int n)
Hyperbolic sine (and its derivatives).
Definition: StemFunction.h:96
Eigen::internal::stem_function_sin
Scalar stem_function_sin(Scalar x, int n)
Sine (and its derivatives).
Definition: StemFunction.h:52
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
Definition: gnuplot_common_settings.hh:12
res
cout<< "Here is the matrix m:"<< endl<< m<< endl;Matrix< ptrdiff_t, 3, 1 > res
Definition: PartialRedux_count.cpp:3
exp
const EIGEN_DEVICE_FUNC ExpReturnType exp() const
Definition: ArrayCwiseUnaryOps.h:97
ceres::cos
Jet< T, N > cos(const Jet< T, N > &f)
Definition: jet.h:426
cosh
const EIGEN_DEVICE_FUNC CoshReturnType cosh() const
Definition: ArrayCwiseUnaryOps.h:353
n
int n
Definition: BiCGSTAB_simple.cpp:1
Eigen::internal::stem_function_cosh
Scalar stem_function_cosh(Scalar x, int n)
Hyperbolic cosine (and its derivatives).
Definition: StemFunction.h:77
Eigen::internal::stem_function_exp
Scalar stem_function_exp(Scalar x, int)
The exponential function (and its derivatives).
Definition: StemFunction.h:19
internal
Definition: BandTriangularSolver.h:13
sinh
const EIGEN_DEVICE_FUNC SinhReturnType sinh() const
Definition: ArrayCwiseUnaryOps.h:339
Scalar
SCALAR Scalar
Definition: bench_gemm.cpp:46
Eigen::internal::stem_function_cos
Scalar stem_function_cos(Scalar x, int n)
Cosine (and its derivatives).
Definition: StemFunction.h:27


gtsam
Author(s):
autogenerated on Sat Nov 16 2024 04:05:00