Eigne Matrix Class Library

Dependents:   MPC_current_control HydraulicControlBoard_SW AHRS Test_ekf ... more

Committer:
jsoh91
Date:
Tue Sep 24 00:18:23 2019 +0000
Revision:
1:3b8049da21b8
Parent:
0:13a5d365ba16
ignore and revise some of error parts

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ykuroda 0:13a5d365ba16 1 // This file is part of Eigen, a lightweight C++ template library
ykuroda 0:13a5d365ba16 2 // for linear algebra.
ykuroda 0:13a5d365ba16 3 //
ykuroda 0:13a5d365ba16 4 // Copyright (C) 2009 Benoit Jacob <jacob.benoit.1@gmail.com>
ykuroda 0:13a5d365ba16 5 //
ykuroda 0:13a5d365ba16 6 // This Source Code Form is subject to the terms of the Mozilla
ykuroda 0:13a5d365ba16 7 // Public License v. 2.0. If a copy of the MPL was not distributed
ykuroda 0:13a5d365ba16 8 // with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
ykuroda 0:13a5d365ba16 9
ykuroda 0:13a5d365ba16 10 #ifndef EIGEN_MISC_SOLVE_H
ykuroda 0:13a5d365ba16 11 #define EIGEN_MISC_SOLVE_H
ykuroda 0:13a5d365ba16 12
ykuroda 0:13a5d365ba16 13 namespace Eigen {
ykuroda 0:13a5d365ba16 14
ykuroda 0:13a5d365ba16 15 namespace internal {
ykuroda 0:13a5d365ba16 16
ykuroda 0:13a5d365ba16 17 /** \class solve_retval_base
ykuroda 0:13a5d365ba16 18 *
ykuroda 0:13a5d365ba16 19 */
ykuroda 0:13a5d365ba16 20 template<typename DecompositionType, typename Rhs>
ykuroda 0:13a5d365ba16 21 struct traits<solve_retval_base<DecompositionType, Rhs> >
ykuroda 0:13a5d365ba16 22 {
ykuroda 0:13a5d365ba16 23 typedef typename DecompositionType::MatrixType MatrixType;
ykuroda 0:13a5d365ba16 24 typedef Matrix<typename Rhs::Scalar,
ykuroda 0:13a5d365ba16 25 MatrixType::ColsAtCompileTime,
ykuroda 0:13a5d365ba16 26 Rhs::ColsAtCompileTime,
ykuroda 0:13a5d365ba16 27 Rhs::PlainObject::Options,
ykuroda 0:13a5d365ba16 28 MatrixType::MaxColsAtCompileTime,
ykuroda 0:13a5d365ba16 29 Rhs::MaxColsAtCompileTime> ReturnType;
ykuroda 0:13a5d365ba16 30 };
ykuroda 0:13a5d365ba16 31
ykuroda 0:13a5d365ba16 32 template<typename _DecompositionType, typename Rhs> struct solve_retval_base
ykuroda 0:13a5d365ba16 33 : public ReturnByValue<solve_retval_base<_DecompositionType, Rhs> >
ykuroda 0:13a5d365ba16 34 {
ykuroda 0:13a5d365ba16 35 typedef typename remove_all<typename Rhs::Nested>::type RhsNestedCleaned;
ykuroda 0:13a5d365ba16 36 typedef _DecompositionType DecompositionType;
ykuroda 0:13a5d365ba16 37 typedef ReturnByValue<solve_retval_base> Base;
ykuroda 0:13a5d365ba16 38 typedef typename Base::Index Index;
ykuroda 0:13a5d365ba16 39
ykuroda 0:13a5d365ba16 40 solve_retval_base(const DecompositionType& dec, const Rhs& rhs)
ykuroda 0:13a5d365ba16 41 : m_dec(dec), m_rhs(rhs)
ykuroda 0:13a5d365ba16 42 {}
ykuroda 0:13a5d365ba16 43
ykuroda 0:13a5d365ba16 44 inline Index rows() const { return m_dec.cols(); }
ykuroda 0:13a5d365ba16 45 inline Index cols() const { return m_rhs.cols(); }
ykuroda 0:13a5d365ba16 46 inline const DecompositionType& dec() const { return m_dec; }
ykuroda 0:13a5d365ba16 47 inline const RhsNestedCleaned& rhs() const { return m_rhs; }
ykuroda 0:13a5d365ba16 48
ykuroda 0:13a5d365ba16 49 template<typename Dest> inline void evalTo(Dest& dst) const
ykuroda 0:13a5d365ba16 50 {
ykuroda 0:13a5d365ba16 51 static_cast<const solve_retval<DecompositionType,Rhs>*>(this)->evalTo(dst);
ykuroda 0:13a5d365ba16 52 }
ykuroda 0:13a5d365ba16 53
ykuroda 0:13a5d365ba16 54 protected:
ykuroda 0:13a5d365ba16 55 const DecompositionType& m_dec;
ykuroda 0:13a5d365ba16 56 typename Rhs::Nested m_rhs;
ykuroda 0:13a5d365ba16 57 };
ykuroda 0:13a5d365ba16 58
ykuroda 0:13a5d365ba16 59 } // end namespace internal
ykuroda 0:13a5d365ba16 60
ykuroda 0:13a5d365ba16 61 #define EIGEN_MAKE_SOLVE_HELPERS(DecompositionType,Rhs) \
ykuroda 0:13a5d365ba16 62 typedef typename DecompositionType::MatrixType MatrixType; \
ykuroda 0:13a5d365ba16 63 typedef typename MatrixType::Scalar Scalar; \
ykuroda 0:13a5d365ba16 64 typedef typename MatrixType::RealScalar RealScalar; \
ykuroda 0:13a5d365ba16 65 typedef typename MatrixType::Index Index; \
ykuroda 0:13a5d365ba16 66 typedef Eigen::internal::solve_retval_base<DecompositionType,Rhs> Base; \
ykuroda 0:13a5d365ba16 67 using Base::dec; \
ykuroda 0:13a5d365ba16 68 using Base::rhs; \
ykuroda 0:13a5d365ba16 69 using Base::rows; \
ykuroda 0:13a5d365ba16 70 using Base::cols; \
ykuroda 0:13a5d365ba16 71 solve_retval(const DecompositionType& dec, const Rhs& rhs) \
ykuroda 0:13a5d365ba16 72 : Base(dec, rhs) {}
ykuroda 0:13a5d365ba16 73
ykuroda 0:13a5d365ba16 74 } // end namespace Eigen
ykuroda 0:13a5d365ba16 75
ykuroda 0:13a5d365ba16 76 #endif // EIGEN_MISC_SOLVE_H