mirror of
https://gitlab.com/libeigen/eigen.git
synced 2025-08-13 12:19:12 +08:00
* temporarily remove doxygen customization, we'll see if that fix api.kde.org
but I no hope, that would be too simple ! * added Rotation2D typedefs * remove CoreDeclarations header file
This commit is contained in:
parent
70266b4d05
commit
3ced3f91c2
46
Eigen/Core
46
Eigen/Core
@ -1,7 +1,45 @@
|
|||||||
#ifndef EIGEN_CORE_H
|
#ifndef EIGEN_CORE_H
|
||||||
#define EIGEN_CORE_H
|
#define EIGEN_CORE_H
|
||||||
|
|
||||||
#include "CoreDeclarations"
|
#ifdef _MSC_VER
|
||||||
|
#pragma warning( disable : 4181 4244 )
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef __GNUC__
|
||||||
|
#define EIGEN_GNUC_AT_LEAST(x,y) ((__GNUC__>=x && __GNUC_MINOR__>=y) || __GNUC__>x)
|
||||||
|
#else
|
||||||
|
#define EIGEN_GNUC_AT_LEAST(x,y) 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef EIGEN_DONT_VECTORIZE
|
||||||
|
#if (defined __SSE2__) && ( (!defined __GNUC__) || EIGEN_GNUC_AT_LEAST(4,2) )
|
||||||
|
#define EIGEN_VECTORIZE
|
||||||
|
#define EIGEN_VECTORIZE_SSE
|
||||||
|
#include <emmintrin.h>
|
||||||
|
#include <xmmintrin.h>
|
||||||
|
#ifdef __SSE3__
|
||||||
|
#include <pmmintrin.h>
|
||||||
|
#endif
|
||||||
|
#ifdef __SSSE3__
|
||||||
|
#include <tmmintrin.h>
|
||||||
|
#endif
|
||||||
|
#elif (defined __ALTIVEC__)
|
||||||
|
#define EIGEN_VECTORIZE
|
||||||
|
#define EIGEN_VECTORIZE_ALTIVEC
|
||||||
|
#include <altivec.h>
|
||||||
|
// We _need_ to #undef all these ugly tokens defined in <altivec.h>
|
||||||
|
// => use __vector instead of vector
|
||||||
|
#undef bool
|
||||||
|
#undef vector
|
||||||
|
#undef pixel
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <cstdlib>
|
||||||
|
#include <cmath>
|
||||||
|
#include <complex>
|
||||||
|
#include <cassert>
|
||||||
|
#include <functional>
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <cstring>
|
#include <cstring>
|
||||||
#include <string>
|
#include <string>
|
||||||
@ -24,6 +62,12 @@ namespace Eigen {
|
|||||||
* which gives access to matrix and vector types as well as coefficient accessor operators.
|
* which gives access to matrix and vector types as well as coefficient accessor operators.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include "src/Core/util/Macros.h"
|
||||||
|
#include "src/Core/util/Constants.h"
|
||||||
|
#include "src/Core/util/ForwardDeclarations.h"
|
||||||
|
#include "src/Core/util/Meta.h"
|
||||||
|
#include "src/Core/util/XprHelper.h"
|
||||||
|
#include "src/Core/util/StaticAssert.h"
|
||||||
#include "src/Core/util/Memory.h"
|
#include "src/Core/util/Memory.h"
|
||||||
|
|
||||||
#include "src/Core/NumTraits.h"
|
#include "src/Core/NumTraits.h"
|
||||||
|
@ -1,55 +0,0 @@
|
|||||||
#ifndef EIGEN_CORE_DECLARATIONS_H
|
|
||||||
#define EIGEN_CORE_DECLARATIONS_H
|
|
||||||
|
|
||||||
#ifdef _MSC_VER
|
|
||||||
#pragma warning( disable : 4181 4244 )
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef __GNUC__
|
|
||||||
#define EIGEN_GNUC_AT_LEAST(x,y) ((__GNUC__>=x && __GNUC_MINOR__>=y) || __GNUC__>x)
|
|
||||||
#else
|
|
||||||
#define EIGEN_GNUC_AT_LEAST(x,y) 0
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef EIGEN_DONT_VECTORIZE
|
|
||||||
#if (defined __SSE2__) && ( (!defined __GNUC__) || EIGEN_GNUC_AT_LEAST(4,2) )
|
|
||||||
#define EIGEN_VECTORIZE
|
|
||||||
#define EIGEN_VECTORIZE_SSE
|
|
||||||
#include <emmintrin.h>
|
|
||||||
#include <xmmintrin.h>
|
|
||||||
#ifdef __SSE3__
|
|
||||||
#include <pmmintrin.h>
|
|
||||||
#endif
|
|
||||||
#ifdef __SSSE3__
|
|
||||||
#include <tmmintrin.h>
|
|
||||||
#endif
|
|
||||||
#elif (defined __ALTIVEC__)
|
|
||||||
#define EIGEN_VECTORIZE
|
|
||||||
#define EIGEN_VECTORIZE_ALTIVEC
|
|
||||||
#include <altivec.h>
|
|
||||||
// We _need_ to #undef all these ugly tokens defined in <altivec.h>
|
|
||||||
// => use __vector instead of vector
|
|
||||||
#undef bool
|
|
||||||
#undef vector
|
|
||||||
#undef pixel
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include <cstdlib>
|
|
||||||
#include <cmath>
|
|
||||||
#include <complex>
|
|
||||||
#include <cassert>
|
|
||||||
#include <functional>
|
|
||||||
|
|
||||||
namespace Eigen {
|
|
||||||
|
|
||||||
#include "src/Core/util/Macros.h"
|
|
||||||
#include "src/Core/util/Constants.h"
|
|
||||||
#include "src/Core/util/ForwardDeclarations.h"
|
|
||||||
#include "src/Core/util/Meta.h"
|
|
||||||
#include "src/Core/util/XprHelper.h"
|
|
||||||
#include "src/Core/util/StaticAssert.h"
|
|
||||||
|
|
||||||
} // namespace Eigen
|
|
||||||
|
|
||||||
#endif // EIGEN_CORE_DECLARATIONS_H
|
|
@ -247,13 +247,13 @@ struct ei_functor_traits<ei_scalar_real_op<Scalar> >
|
|||||||
*
|
*
|
||||||
* \sa class CwiseUnaryOp, MatrixBase::operator*, MatrixBase::operator/
|
* \sa class CwiseUnaryOp, MatrixBase::operator*, MatrixBase::operator/
|
||||||
*/
|
*/
|
||||||
/* NOTE why doing the ei_pset1() *is* an optimization ?
|
/* NOTE why doing the ei_pset1() in packetOp *is* an optimization ?
|
||||||
* indeed it seems better to declare m_other as a PacketScalar and do the ei_pset1() once
|
* indeed it seems better to declare m_other as a PacketScalar and do the ei_pset1() once
|
||||||
* in the constructor. However, in practice:
|
* in the constructor. However, in practice:
|
||||||
* - GCC does not like m_other as a PacketScalar and generate a load every time it needs it
|
* - GCC does not like m_other as a PacketScalar and generate a load every time it needs it
|
||||||
* - one the other hand GCC is able to moves the ei_pset1() away the loop :)
|
* - one the other hand GCC is able to moves the ei_pset1() away the loop :)
|
||||||
* - simpler code ;)
|
* - simpler code ;)
|
||||||
* (ICC performs well in both cases)
|
* (ICC and gcc 4.4 seems to perform well in both cases, the issue is visible with y = a*x + b*y)
|
||||||
*/
|
*/
|
||||||
template<typename Scalar>
|
template<typename Scalar>
|
||||||
struct ei_scalar_multiple_op {
|
struct ei_scalar_multiple_op {
|
||||||
|
@ -175,6 +175,13 @@ public:
|
|||||||
{ return m_angle * (1-t) + t * other; }
|
{ return m_angle * (1-t) + t * other; }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/** \ingroup GeometryModule
|
||||||
|
* single precision 2D rotation type */
|
||||||
|
typedef Rotation2D<float> Rotation2Df;
|
||||||
|
/** \ingroup GeometryModule
|
||||||
|
* double precision 2D rotation type */
|
||||||
|
typedef Rotation2D<double> Rotation2Dd;
|
||||||
|
|
||||||
/** Set \c *this from a 2x2 rotation matrix \a mat.
|
/** Set \c *this from a 2x2 rotation matrix \a mat.
|
||||||
* In other words, this function extract the rotation angle
|
* In other words, this function extract the rotation angle
|
||||||
* from the rotation matrix.
|
* from the rotation matrix.
|
||||||
|
@ -768,14 +768,16 @@ HTML_FILE_EXTENSION = .html
|
|||||||
# each generated HTML page. If it is left blank doxygen will generate a
|
# each generated HTML page. If it is left blank doxygen will generate a
|
||||||
# standard header.
|
# standard header.
|
||||||
|
|
||||||
HTML_HEADER = ${CMAKE_BINARY_DIR}/doc/eigendoxy_header.html
|
# ${CMAKE_BINARY_DIR}/doc/eigendoxy_header.html
|
||||||
|
HTML_HEADER =
|
||||||
|
|
||||||
# The HTML_FOOTER tag can be used to specify a personal HTML footer for
|
# The HTML_FOOTER tag can be used to specify a personal HTML footer for
|
||||||
# each generated HTML page. If it is left blank doxygen will generate a
|
# each generated HTML page. If it is left blank doxygen will generate a
|
||||||
# standard footer.
|
# standard footer.
|
||||||
|
|
||||||
# the footer has not been customized yet, so let's use the default one
|
# the footer has not been customized yet, so let's use the default one
|
||||||
#HTML_FOOTER = ${CMAKE_BINARY_DIR}/doc/eigendoxy_footer.html
|
# ${CMAKE_BINARY_DIR}/doc/eigendoxy_footer.html
|
||||||
|
HTML_FOOTER =
|
||||||
|
|
||||||
# The HTML_STYLESHEET tag can be used to specify a user-defined cascading
|
# The HTML_STYLESHEET tag can be used to specify a user-defined cascading
|
||||||
# style sheet that is used by each HTML page. It can be used to
|
# style sheet that is used by each HTML page. It can be used to
|
||||||
@ -784,7 +786,8 @@ HTML_HEADER = ${CMAKE_BINARY_DIR}/doc/eigendoxy_header.html
|
|||||||
# the style sheet file to the HTML output directory, so don't put your own
|
# the style sheet file to the HTML output directory, so don't put your own
|
||||||
# stylesheet in the HTML output directory as well, or it will be erased!
|
# stylesheet in the HTML output directory as well, or it will be erased!
|
||||||
|
|
||||||
HTML_STYLESHEET = ${CMAKE_SOURCE_DIR}/doc/eigendoxy.css
|
# ${CMAKE_SOURCE_DIR}/doc/eigendoxy.css
|
||||||
|
HTML_STYLESHEET =
|
||||||
|
|
||||||
# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes,
|
# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes,
|
||||||
# files or namespaces will be aligned in HTML using tables. If set to
|
# files or namespaces will be aligned in HTML using tables. If set to
|
||||||
|
Loading…
x
Reference in New Issue
Block a user