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
SCALAR Scalar
Definition: bench_gemm.cpp:33
Scalar stem_function_sinh(Scalar x, int n)
Hyperbolic sine (and its derivatives).
Definition: StemFunction.h:96
EIGEN_DEVICE_FUNC const ExpReturnType exp() const
int n
EIGEN_DEVICE_FUNC const CoshReturnType cosh() const
Namespace containing all symbols from the Eigen library.
Definition: jet.h:637
cout<< "Here is the matrix m:"<< endl<< m<< endl;Matrix< ptrdiff_t, 3, 1 > res
EIGEN_DEVICE_FUNC const CosReturnType cos() const
Scalar stem_function_exp(Scalar x, int)
The exponential function (and its derivatives).
Definition: StemFunction.h:19
EIGEN_DEVICE_FUNC const SinhReturnType sinh() const
Scalar stem_function_sin(Scalar x, int n)
Sine (and its derivatives).
Definition: StemFunction.h:52
Scalar stem_function_cos(Scalar x, int n)
Cosine (and its derivatives).
Definition: StemFunction.h:27
Scalar stem_function_cosh(Scalar x, int n)
Hyperbolic cosine (and its derivatives).
Definition: StemFunction.h:77
EIGEN_DEVICE_FUNC const SinReturnType sin() const
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


gtsam
Author(s):
autogenerated on Sat May 8 2021 02:44:50