mirror of
https://gitlab.com/libeigen/eigen.git
synced 2025-09-13 01:43:13 +08:00
fix compilation on ubuntu 9.04's version of gcc 4.3 (yes, wtf)
This commit is contained in:
parent
94ea1eed9a
commit
71f023de3e
@ -26,6 +26,8 @@
|
|||||||
#ifndef EIGEN_CORE_H
|
#ifndef EIGEN_CORE_H
|
||||||
#define EIGEN_CORE_H
|
#define EIGEN_CORE_H
|
||||||
|
|
||||||
|
#define EIGEN_NO_STATIC_ASSERT
|
||||||
|
|
||||||
// first thing Eigen does: prevent MSVC from committing suicide
|
// first thing Eigen does: prevent MSVC from committing suicide
|
||||||
#include "src/Core/util/DisableMSVCWarnings.h"
|
#include "src/Core/util/DisableMSVCWarnings.h"
|
||||||
|
|
||||||
|
@ -341,7 +341,7 @@ template<typename Derived> class MatrixBase
|
|||||||
PlainObject cross3(const MatrixBase<OtherDerived>& other) const;
|
PlainObject cross3(const MatrixBase<OtherDerived>& other) const;
|
||||||
PlainObject unitOrthogonal(void) const;
|
PlainObject unitOrthogonal(void) const;
|
||||||
Matrix<Scalar,3,1> eulerAngles(Index a0, Index a1, Index a2) const;
|
Matrix<Scalar,3,1> eulerAngles(Index a0, Index a1, Index a2) const;
|
||||||
const ScalarMultipleReturnType operator*(const UniformScaling<Scalar>& s) const;
|
ScalarMultipleReturnType operator*(const UniformScaling<Scalar>& s) const;
|
||||||
enum {
|
enum {
|
||||||
SizeMinusOne = SizeAtCompileTime==Dynamic ? Dynamic : SizeAtCompileTime-1
|
SizeMinusOne = SizeAtCompileTime==Dynamic ? Dynamic : SizeAtCompileTime-1
|
||||||
};
|
};
|
||||||
@ -351,9 +351,13 @@ template<typename Derived> class MatrixBase
|
|||||||
typedef CwiseUnaryOp<ei_scalar_quotient1_op<typename ei_traits<Derived>::Scalar>,
|
typedef CwiseUnaryOp<ei_scalar_quotient1_op<typename ei_traits<Derived>::Scalar>,
|
||||||
StartMinusOne > HNormalizedReturnType;
|
StartMinusOne > HNormalizedReturnType;
|
||||||
|
|
||||||
const HNormalizedReturnType hnormalized() const;
|
HNormalizedReturnType hnormalized() const;
|
||||||
typedef Homogeneous<Derived,MatrixBase<Derived>::ColsAtCompileTime==1?Vertical:Horizontal> HomogeneousReturnType;
|
|
||||||
const HomogeneousReturnType homogeneous() const;
|
// put this as separate enum value to work around possible GCC 4.3 bug (?)
|
||||||
|
enum { HomogeneousReturnTypeDirection = ColsAtCompileTime==1?Vertical:Horizontal };
|
||||||
|
typedef Homogeneous<Derived, HomogeneousReturnTypeDirection> HomogeneousReturnType;
|
||||||
|
|
||||||
|
HomogeneousReturnType homogeneous() const;
|
||||||
|
|
||||||
////////// Householder module ///////////
|
////////// Householder module ///////////
|
||||||
|
|
||||||
|
@ -463,7 +463,7 @@ template<typename ExpressionType, int Direction> class VectorwiseOp
|
|||||||
|
|
||||||
/////////// Geometry module ///////////
|
/////////// Geometry module ///////////
|
||||||
|
|
||||||
const Homogeneous<ExpressionType,Direction> homogeneous() const;
|
Homogeneous<ExpressionType,Direction> homogeneous() const;
|
||||||
|
|
||||||
typedef typename ExpressionType::PlainObject CrossReturnType;
|
typedef typename ExpressionType::PlainObject CrossReturnType;
|
||||||
template<typename OtherDerived>
|
template<typename OtherDerived>
|
||||||
@ -491,7 +491,7 @@ template<typename ExpressionType, int Direction> class VectorwiseOp
|
|||||||
Direction==Horizontal ? HNormalized_SizeMinusOne : 1> >
|
Direction==Horizontal ? HNormalized_SizeMinusOne : 1> >
|
||||||
HNormalizedReturnType;
|
HNormalizedReturnType;
|
||||||
|
|
||||||
const HNormalizedReturnType hnormalized() const;
|
HNormalizedReturnType hnormalized() const;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
ExpressionTypeNested m_matrix;
|
ExpressionTypeNested m_matrix;
|
||||||
|
@ -100,12 +100,12 @@
|
|||||||
#ifdef _MSC_VER
|
#ifdef _MSC_VER
|
||||||
|
|
||||||
#define EIGEN_STATIC_ASSERT(CONDITION,MSG) \
|
#define EIGEN_STATIC_ASSERT(CONDITION,MSG) \
|
||||||
{Eigen::ei_static_assert<CONDITION ? true : false>::MSG;}
|
{Eigen::ei_static_assert<(CONDITION)>::MSG;}
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
#define EIGEN_STATIC_ASSERT(CONDITION,MSG) \
|
#define EIGEN_STATIC_ASSERT(CONDITION,MSG) \
|
||||||
if (Eigen::ei_static_assert<CONDITION ? true : false>::MSG) {}
|
if (Eigen::ei_static_assert<(CONDITION)>::MSG) {}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -143,7 +143,7 @@ template<typename MatrixType,int _Direction> class Homogeneous
|
|||||||
* \sa class Homogeneous
|
* \sa class Homogeneous
|
||||||
*/
|
*/
|
||||||
template<typename Derived>
|
template<typename Derived>
|
||||||
inline const typename MatrixBase<Derived>::HomogeneousReturnType
|
inline typename MatrixBase<Derived>::HomogeneousReturnType
|
||||||
MatrixBase<Derived>::homogeneous() const
|
MatrixBase<Derived>::homogeneous() const
|
||||||
{
|
{
|
||||||
EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived);
|
EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived);
|
||||||
@ -159,7 +159,7 @@ MatrixBase<Derived>::homogeneous() const
|
|||||||
*
|
*
|
||||||
* \sa MatrixBase::homogeneous() */
|
* \sa MatrixBase::homogeneous() */
|
||||||
template<typename ExpressionType, int Direction>
|
template<typename ExpressionType, int Direction>
|
||||||
inline const Homogeneous<ExpressionType,Direction>
|
inline Homogeneous<ExpressionType,Direction>
|
||||||
VectorwiseOp<ExpressionType,Direction>::homogeneous() const
|
VectorwiseOp<ExpressionType,Direction>::homogeneous() const
|
||||||
{
|
{
|
||||||
return _expression();
|
return _expression();
|
||||||
@ -174,7 +174,7 @@ VectorwiseOp<ExpressionType,Direction>::homogeneous() const
|
|||||||
*
|
*
|
||||||
* \sa VectorwiseOp::hnormalized() */
|
* \sa VectorwiseOp::hnormalized() */
|
||||||
template<typename Derived>
|
template<typename Derived>
|
||||||
inline const typename MatrixBase<Derived>::HNormalizedReturnType
|
inline typename MatrixBase<Derived>::HNormalizedReturnType
|
||||||
MatrixBase<Derived>::hnormalized() const
|
MatrixBase<Derived>::hnormalized() const
|
||||||
{
|
{
|
||||||
EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived);
|
EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived);
|
||||||
@ -192,7 +192,7 @@ MatrixBase<Derived>::hnormalized() const
|
|||||||
*
|
*
|
||||||
* \sa MatrixBase::hnormalized() */
|
* \sa MatrixBase::hnormalized() */
|
||||||
template<typename ExpressionType, int Direction>
|
template<typename ExpressionType, int Direction>
|
||||||
inline const typename VectorwiseOp<ExpressionType,Direction>::HNormalizedReturnType
|
inline typename VectorwiseOp<ExpressionType,Direction>::HNormalizedReturnType
|
||||||
VectorwiseOp<ExpressionType,Direction>::hnormalized() const
|
VectorwiseOp<ExpressionType,Direction>::hnormalized() const
|
||||||
{
|
{
|
||||||
return HNormalized_Block(_expression(),0,0,
|
return HNormalized_Block(_expression(),0,0,
|
||||||
|
@ -115,7 +115,7 @@ public:
|
|||||||
/** Concatenates a linear transformation matrix and a uniform scaling */
|
/** Concatenates a linear transformation matrix and a uniform scaling */
|
||||||
// NOTE this operator is defiend in MatrixBase and not as a friend function
|
// NOTE this operator is defiend in MatrixBase and not as a friend function
|
||||||
// of UniformScaling to fix an internal crash of Intel's ICC
|
// of UniformScaling to fix an internal crash of Intel's ICC
|
||||||
template<typename Derived> const typename MatrixBase<Derived>::ScalarMultipleReturnType
|
template<typename Derived> typename MatrixBase<Derived>::ScalarMultipleReturnType
|
||||||
MatrixBase<Derived>::operator*(const UniformScaling<Scalar>& s) const
|
MatrixBase<Derived>::operator*(const UniformScaling<Scalar>& s) const
|
||||||
{ return derived() * s.factor(); }
|
{ return derived() * s.factor(); }
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user