mirror of
https://gitlab.com/libeigen/eigen.git
synced 2024-11-21 03:11:25 +08:00
add main ei_* functions into Eigen2Support
This commit is contained in:
parent
14208eb478
commit
c49c013c47
@ -50,6 +50,7 @@ namespace Eigen {
|
||||
#include "src/Eigen2Support/Block.h"
|
||||
#include "src/Eigen2Support/VectorBlock.h"
|
||||
#include "src/Eigen2Support/Minor.h"
|
||||
#include "src/Eigen2Support/MathFunctions.h"
|
||||
|
||||
|
||||
} // namespace Eigen
|
||||
|
41
Eigen/src/Eigen2Support/MathFunctions.h
Normal file
41
Eigen/src/Eigen2Support/MathFunctions.h
Normal file
@ -0,0 +1,41 @@
|
||||
// This file is part of Eigen, a lightweight C++ template library
|
||||
// for linear algebra.
|
||||
//
|
||||
// Copyright (C) 2010 Gael Guennebaud <gael.guennebaud@inria.fr>
|
||||
//
|
||||
// Eigen is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 3 of the License, or (at your option) any later version.
|
||||
//
|
||||
// Alternatively, you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License as
|
||||
// published by the Free Software Foundation; either version 2 of
|
||||
// the License, or (at your option) any later version.
|
||||
//
|
||||
// Eigen is distributed in the hope that it will be useful, but WITHOUT ANY
|
||||
// WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||
// FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License or the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License and a copy of the GNU General Public License along with
|
||||
// Eigen. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
#ifndef EIGEN2_MATH_FUNCTIONS_H
|
||||
#define EIGEN2_MATH_FUNCTIONS_H
|
||||
|
||||
template<typename T> inline typename NumTraits<T>::Real ei_real(const T& x) { return internal::real(x); }
|
||||
template<typename T> inline typename NumTraits<T>::Real ei_imag(const T& x) { return internal::imag(x); }
|
||||
template<typename T> inline T ei_conj(const T& x) { return internal::conj(x); }
|
||||
template<typename T> inline T ei_abs (const T& x) { return internal::abs(x); }
|
||||
template<typename T> inline T ei_abs2(const T& x) { return internal::abs2(x); }
|
||||
template<typename T> inline T ei_sqrt(const T& x) { return internal::sqrt(x); }
|
||||
template<typename T> inline T ei_exp (const T& x) { return internal::exp(x); }
|
||||
template<typename T> inline T ei_log (const T& x) { return internal::log(x); }
|
||||
template<typename T> inline T ei_sin (const T& x) { return internal::sin(x); }
|
||||
template<typename T> inline T ei_cos (const T& x) { return internal::cos(x); }
|
||||
template<typename T> inline T ei_atan2(const T& x,const T& y) { return internal::atan2(x,y); }
|
||||
template<typename T> inline T ei_pow (const T& x,const T& y) { return internal::pow(x,y); }
|
||||
|
||||
#endif // EIGEN2_MATH_FUNCTIONS_H
|
@ -280,7 +280,7 @@ result = Vector4f::MapAligned(some_aligned_array);
|
||||
|
||||
\section eiPrefix Internal ei_ prefix
|
||||
|
||||
In Eigen2, global internal functions and structures were prefixed by \c ei_. In Eigen3, they all have been moved into the more explicit \c internal namespace. So, e.g., \c ei_sqrt(x) now becomes \c internal::sqrt(x).
|
||||
In Eigen2, global internal functions and structures were prefixed by \c ei_. In Eigen3, they all have been moved into the more explicit \c internal namespace. So, e.g., \c ei_sqrt(x) now becomes \c internal::sqrt(x). Of course it is not recommended to rely on Eigen's internal features.
|
||||
|
||||
|
||||
|
||||
|
@ -58,6 +58,11 @@ template<typename MatrixType> void eigen2support(const MatrixType& m)
|
||||
VERIFY_IS_EQUAL((m1.col(0).template start<1>()), (m1.col(0).segment(0,1)));
|
||||
VERIFY_IS_EQUAL((m1.col(0).end(1)), (m1.col(0).segment(rows-1,1)));
|
||||
VERIFY_IS_EQUAL((m1.col(0).template end<1>()), (m1.col(0).segment(rows-1,1)));
|
||||
|
||||
using namespace internal;
|
||||
VERIFY_IS_EQUAL(ei_cos(s1), cos(s1));
|
||||
VERIFY_IS_EQUAL(ei_real(s1), real(s1));
|
||||
VERIFY_IS_EQUAL(ei_abs2(s1), abs2(s1));
|
||||
|
||||
m1.minor(0,0);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user