Namespaces | Classes | Typedefs | Functions
Eigen Namespace Reference

Namespaces

 internal
 

Classes

struct  matrix_exp_computeUV
 
struct  matrix_exp_computeUV< MatrixType >
 
struct  MatrixExponentialScalingOp
 
struct  NumTraits< stan::math::fvar< T > >
 
struct  NumTraits< stan::math::var >
 

Typedefs

using ArrayXstan = Eigen::Array< stan::math::var, Eigen::Dynamic, 1 >
 
template<class T >
using ArrayX = Eigen::Array< T, Eigen::Dynamic, 1 >
 
using VectorXstan = Eigen::Matrix< stan::math::var, Eigen::Dynamic, 1 >
 

Functions

template<typename MatrixType >
void matrix_exp_pade3 (const MatrixType &A, MatrixType &U, MatrixType &V)
 Compute the (5,5)-Padé approximant to the exponential. More...
 
template<typename MatrixType >
void matrix_exp_pade5 (const MatrixType &A, MatrixType &U, MatrixType &V)
 Compute the (5,5)-Padé approximant to the exponential. More...
 
template<typename MatrixType >
void matrix_exp_pade7 (const MatrixType &A, MatrixType &U, MatrixType &V)
 Compute the (7,7)-Padé approximant to the exponential. More...
 
template<typename MatrixType >
void matrix_exp_pade9 (const MatrixType &A, MatrixType &U, MatrixType &V)
 Compute the (9,9)-Padé approximant to the exponential. More...
 
template<typename MatrixType >
void matrix_exp_pade13 (const MatrixType &A, MatrixType &U, MatrixType &V)
 Compute the (13,13)-Padé approximant to the exponential. More...
 

Typedef Documentation

template<class T >
using Eigen::ArrayX = typedef Eigen::Array<T, Eigen::Dynamic, 1>

Definition at line 12 of file OscCalcAnalytic.h.

typedef Eigen::Array< stan::math::var, Eigen::Dynamic, 1 > Eigen::ArrayXstan

Definition at line 7 of file StanUtils.h.

using Eigen::VectorXstan = typedef Eigen::Matrix<stan::math::var, Eigen::Dynamic, 1>

Definition at line 22 of file Hist.h.

Function Documentation

template<typename MatrixType >
void Eigen::matrix_exp_pade13 ( const MatrixType &  A,
MatrixType &  U,
MatrixType &  V 
)

Compute the (13,13)-Padé approximant to the exponential.

After exit, $ (V+U)(V-U)^{-1} $ is the Padé approximant of $ \exp(A) $ around $ A = 0 $.

Definition at line 140 of file MatrixExponential.h.

References genie::units::A, b, and tmp.

Referenced by Eigen::matrix_exp_computeUV< MatrixType >::run().

141  {
142  using Eigen::internal::traits;
143  typedef typename Eigen::NumTraits<typename traits<MatrixType>::Scalar>::Real RealScalar;
144  const RealScalar b[] = {64764752532480000.L, 32382376266240000.L, 7771770303897600.L,
145  1187353796428800.L, 129060195264000.L, 10559470521600.L, 670442572800.L,
146  33522128640.L, 1323241920.L, 40840800.L, 960960.L, 16380.L, 182.L, 1.L};
147  const MatrixType A2 = A * A;
148  const MatrixType A4 = A2 * A2;
149  const MatrixType A6 = A4 * A2;
150  V = b[13] * A6 + b[11] * A4 + b[9] * A2; // used for temporary storage
151  MatrixType tmp = A6 * V;
152  tmp += b[7] * A6 + b[5] * A4 + b[3] * A2 + b[1] * MatrixType::Identity(A.rows(), A.cols());
153  U.noalias() = A * tmp;
154  tmp = b[12] * A6 + b[10] * A4 + b[8] * A2;
155  V.noalias() = A6 * tmp;
156  V += b[6] * A6 + b[4] * A4 + b[2] * A2 + b[0] * MatrixType::Identity(A.rows(), A.cols());
157  }
Float_t tmp
Definition: plot.C:36
static const double A
Definition: Units.h:82
const hit & b
Definition: hits.cxx:21
template<typename MatrixType >
void Eigen::matrix_exp_pade3 ( const MatrixType &  A,
MatrixType &  U,
MatrixType &  V 
)

Compute the (5,5)-Padé approximant to the exponential.

After exit, $ (V+U)(V-U)^{-1} $ is the Padé approximant of $ \exp(A) $ around $ A = 0 $.

Definition at line 64 of file MatrixExponential.h.

References genie::units::A, b, and tmp.

Referenced by Eigen::matrix_exp_computeUV< MatrixType >::run().

65  {
66  using Eigen::internal::traits;
67  typedef typename Eigen::NumTraits<typename traits<MatrixType>::Scalar>::Real RealScalar;
68  const RealScalar b[] = {120.L, 60.L, 12.L, 1.L};
69  const MatrixType A2 = A * A;
70  const MatrixType tmp = b[3] * A2 + b[1] * MatrixType::Identity(A.rows(), A.cols());
71  U.noalias() = A * tmp;
72  V = b[2] * A2 + b[0] * MatrixType::Identity(A.rows(), A.cols());
73  }
Float_t tmp
Definition: plot.C:36
static const double A
Definition: Units.h:82
const hit & b
Definition: hits.cxx:21
template<typename MatrixType >
void Eigen::matrix_exp_pade5 ( const MatrixType &  A,
MatrixType &  U,
MatrixType &  V 
)

Compute the (5,5)-Padé approximant to the exponential.

After exit, $ (V+U)(V-U)^{-1} $ is the Padé approximant of $ \exp(A) $ around $ A = 0 $.

Definition at line 81 of file MatrixExponential.h.

References genie::units::A, b, and tmp.

Referenced by Eigen::matrix_exp_computeUV< MatrixType >::run().

82  {
83  typedef typename Eigen::NumTraits<typename Eigen::internal::traits<MatrixType>::Scalar>::Real RealScalar;
84  const RealScalar b[] = {30240.L, 15120.L, 3360.L, 420.L, 30.L, 1.L};
85  const MatrixType A2 = A * A;
86  const MatrixType A4 = A2 * A2;
87  const MatrixType tmp = b[5] * A4 + b[3] * A2 + b[1] * MatrixType::Identity(A.rows(), A.cols());
88  U.noalias() = A * tmp;
89  V = b[4] * A4 + b[2] * A2 + b[0] * MatrixType::Identity(A.rows(), A.cols());
90  }
Float_t tmp
Definition: plot.C:36
static const double A
Definition: Units.h:82
const hit & b
Definition: hits.cxx:21
template<typename MatrixType >
void Eigen::matrix_exp_pade7 ( const MatrixType &  A,
MatrixType &  U,
MatrixType &  V 
)

Compute the (7,7)-Padé approximant to the exponential.

After exit, $ (V+U)(V-U)^{-1} $ is the Padé approximant of $ \exp(A) $ around $ A = 0 $.

Definition at line 98 of file MatrixExponential.h.

References genie::units::A, b, and tmp.

Referenced by Eigen::matrix_exp_computeUV< MatrixType >::run().

99  {
100  using Eigen::internal::traits;
101  typedef typename Eigen::NumTraits<typename traits<MatrixType>::Scalar>::Real RealScalar;
102  const RealScalar b[] = {17297280.L, 8648640.L, 1995840.L, 277200.L, 25200.L, 1512.L, 56.L, 1.L};
103  const MatrixType A2 = A * A;
104  const MatrixType A4 = A2 * A2;
105  const MatrixType A6 = A4 * A2;
106  const MatrixType tmp = b[7] * A6 + b[5] * A4 + b[3] * A2
107  + b[1] * MatrixType::Identity(A.rows(), A.cols());
108  U.noalias() = A * tmp;
109  V = b[6] * A6 + b[4] * A4 + b[2] * A2 + b[0] * MatrixType::Identity(A.rows(), A.cols());
110  }
Float_t tmp
Definition: plot.C:36
static const double A
Definition: Units.h:82
const hit & b
Definition: hits.cxx:21
template<typename MatrixType >
void Eigen::matrix_exp_pade9 ( const MatrixType &  A,
MatrixType &  U,
MatrixType &  V 
)

Compute the (9,9)-Padé approximant to the exponential.

After exit, $ (V+U)(V-U)^{-1} $ is the Padé approximant of $ \exp(A) $ around $ A = 0 $.

Definition at line 118 of file MatrixExponential.h.

References genie::units::A, b, and tmp.

Referenced by Eigen::matrix_exp_computeUV< MatrixType >::run().

119  {
120  using Eigen::internal::traits;
121  typedef typename Eigen::NumTraits<typename traits<MatrixType>::Scalar>::Real RealScalar;
122  const RealScalar b[] = {17643225600.L, 8821612800.L, 2075673600.L, 302702400.L, 30270240.L,
123  2162160.L, 110880.L, 3960.L, 90.L, 1.L};
124  const MatrixType A2 = A * A;
125  const MatrixType A4 = A2 * A2;
126  const MatrixType A6 = A4 * A2;
127  const MatrixType A8 = A6 * A2;
128  const MatrixType tmp = b[9] * A8 + b[7] * A6 + b[5] * A4 + b[3] * A2
129  + b[1] * MatrixType::Identity(A.rows(), A.cols());
130  U.noalias() = A * tmp;
131  V = b[8] * A8 + b[6] * A6 + b[4] * A4 + b[2] * A2 + b[0] * MatrixType::Identity(A.rows(), A.cols());
132  }
Float_t tmp
Definition: plot.C:36
static const double A
Definition: Units.h:82
const hit & b
Definition: hits.cxx:21