mirror of
https://gitlab.com/libeigen/eigen.git
synced 2025-08-12 11:49:02 +08:00
Move is_diagonal to XprHelper, forward declare Ref
This commit is contained in:
parent
573c587e3d
commit
a08cba6b5f
@ -277,8 +277,8 @@ using std::ptrdiff_t;
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "src/Core/util/Constants.h"
|
#include "src/Core/util/Constants.h"
|
||||||
#include "src/Core/util/ForwardDeclarations.h"
|
|
||||||
#include "src/Core/util/Meta.h"
|
#include "src/Core/util/Meta.h"
|
||||||
|
#include "src/Core/util/ForwardDeclarations.h"
|
||||||
#include "src/Core/util/StaticAssert.h"
|
#include "src/Core/util/StaticAssert.h"
|
||||||
#include "src/Core/util/XprHelper.h"
|
#include "src/Core/util/XprHelper.h"
|
||||||
#include "src/Core/util/Memory.h"
|
#include "src/Core/util/Memory.h"
|
||||||
@ -340,12 +340,12 @@ using std::ptrdiff_t;
|
|||||||
#include "src/Core/SelfCwiseBinaryOp.h"
|
#include "src/Core/SelfCwiseBinaryOp.h"
|
||||||
#include "src/Core/Dot.h"
|
#include "src/Core/Dot.h"
|
||||||
#include "src/Core/StableNorm.h"
|
#include "src/Core/StableNorm.h"
|
||||||
#include "src/Core/MapBase.h"
|
|
||||||
#include "src/Core/Stride.h"
|
#include "src/Core/Stride.h"
|
||||||
|
#include "src/Core/MapBase.h"
|
||||||
#include "src/Core/Map.h"
|
#include "src/Core/Map.h"
|
||||||
|
#include "src/Core/Ref.h"
|
||||||
#include "src/Core/Block.h"
|
#include "src/Core/Block.h"
|
||||||
#include "src/Core/VectorBlock.h"
|
#include "src/Core/VectorBlock.h"
|
||||||
#include "src/Core/Ref.h"
|
|
||||||
#include "src/Core/Transpose.h"
|
#include "src/Core/Transpose.h"
|
||||||
#include "src/Core/DiagonalMatrix.h"
|
#include "src/Core/DiagonalMatrix.h"
|
||||||
#include "src/Core/Diagonal.h"
|
#include "src/Core/Diagonal.h"
|
||||||
|
@ -12,10 +12,6 @@
|
|||||||
|
|
||||||
namespace Eigen {
|
namespace Eigen {
|
||||||
|
|
||||||
template<typename Derived> class RefBase;
|
|
||||||
template<typename PlainObjectType, int Options = 0,
|
|
||||||
typename StrideType = typename internal::conditional<PlainObjectType::IsVectorAtCompileTime,InnerStride<1>,OuterStride<> >::type > class Ref;
|
|
||||||
|
|
||||||
/** \class Ref
|
/** \class Ref
|
||||||
* \ingroup Core_Module
|
* \ingroup Core_Module
|
||||||
*
|
*
|
||||||
|
@ -86,7 +86,7 @@ class Stride
|
|||||||
|
|
||||||
/** \brief Convenience specialization of Stride to specify only an inner stride
|
/** \brief Convenience specialization of Stride to specify only an inner stride
|
||||||
* See class Map for some examples */
|
* See class Map for some examples */
|
||||||
template<int Value = Dynamic>
|
template<int Value>
|
||||||
class InnerStride : public Stride<0, Value>
|
class InnerStride : public Stride<0, Value>
|
||||||
{
|
{
|
||||||
typedef Stride<0, Value> Base;
|
typedef Stride<0, Value> Base;
|
||||||
@ -98,7 +98,7 @@ class InnerStride : public Stride<0, Value>
|
|||||||
|
|
||||||
/** \brief Convenience specialization of Stride to specify only an outer stride
|
/** \brief Convenience specialization of Stride to specify only an outer stride
|
||||||
* See class Map for some examples */
|
* See class Map for some examples */
|
||||||
template<int Value = Dynamic>
|
template<int Value>
|
||||||
class OuterStride : public Stride<Value, 0>
|
class OuterStride : public Stride<Value, 0>
|
||||||
{
|
{
|
||||||
typedef Stride<Value, 0> Base;
|
typedef Stride<Value, 0> Base;
|
||||||
|
@ -121,7 +121,12 @@ template<typename Derived,
|
|||||||
int Level = internal::accessors_level<Derived>::has_write_access ? WriteAccessors : ReadOnlyAccessors
|
int Level = internal::accessors_level<Derived>::has_write_access ? WriteAccessors : ReadOnlyAccessors
|
||||||
> class MapBase;
|
> class MapBase;
|
||||||
template<int InnerStrideAtCompileTime, int OuterStrideAtCompileTime> class Stride;
|
template<int InnerStrideAtCompileTime, int OuterStrideAtCompileTime> class Stride;
|
||||||
|
template<int Value = Dynamic> class InnerStride;
|
||||||
|
template<int Value = Dynamic> class OuterStride;
|
||||||
template<typename MatrixType, int MapOptions=Unaligned, typename StrideType = Stride<0,0> > class Map;
|
template<typename MatrixType, int MapOptions=Unaligned, typename StrideType = Stride<0,0> > class Map;
|
||||||
|
template<typename Derived> class RefBase;
|
||||||
|
template<typename PlainObjectType, int Options = 0,
|
||||||
|
typename StrideType = typename internal::conditional<PlainObjectType::IsVectorAtCompileTime,InnerStride<1>,OuterStride<> >::type > class Ref;
|
||||||
|
|
||||||
template<typename Derived> class TriangularBase;
|
template<typename Derived> class TriangularBase;
|
||||||
template<typename MatrixType, unsigned int Mode> class TriangularView;
|
template<typename MatrixType, unsigned int Mode> class TriangularView;
|
||||||
|
@ -246,18 +246,6 @@ template<typename T> struct scalar_product_traits<std::complex<T>, T>
|
|||||||
// typedef typename scalar_product_traits<typename remove_all<ArgType0>::type, typename remove_all<ArgType1>::type>::ReturnType type;
|
// typedef typename scalar_product_traits<typename remove_all<ArgType0>::type, typename remove_all<ArgType1>::type>::ReturnType type;
|
||||||
// };
|
// };
|
||||||
|
|
||||||
template<typename T> struct is_diagonal
|
|
||||||
{ enum { ret = false }; };
|
|
||||||
|
|
||||||
template<typename T> struct is_diagonal<DiagonalBase<T> >
|
|
||||||
{ enum { ret = true }; };
|
|
||||||
|
|
||||||
template<typename T> struct is_diagonal<DiagonalWrapper<T> >
|
|
||||||
{ enum { ret = true }; };
|
|
||||||
|
|
||||||
template<typename T, int S> struct is_diagonal<DiagonalMatrix<T,S> >
|
|
||||||
{ enum { ret = true }; };
|
|
||||||
|
|
||||||
} // end namespace internal
|
} // end namespace internal
|
||||||
|
|
||||||
namespace numext {
|
namespace numext {
|
||||||
|
@ -502,6 +502,18 @@ struct is_lvalue
|
|||||||
bool(traits<ExpressionType>::Flags & LvalueBit) };
|
bool(traits<ExpressionType>::Flags & LvalueBit) };
|
||||||
};
|
};
|
||||||
|
|
||||||
|
template<typename T> struct is_diagonal
|
||||||
|
{ enum { ret = false }; };
|
||||||
|
|
||||||
|
template<typename T> struct is_diagonal<DiagonalBase<T> >
|
||||||
|
{ enum { ret = true }; };
|
||||||
|
|
||||||
|
template<typename T> struct is_diagonal<DiagonalWrapper<T> >
|
||||||
|
{ enum { ret = true }; };
|
||||||
|
|
||||||
|
template<typename T, int S> struct is_diagonal<DiagonalMatrix<T,S> >
|
||||||
|
{ enum { ret = true }; };
|
||||||
|
|
||||||
} // end namespace internal
|
} // end namespace internal
|
||||||
|
|
||||||
} // end namespace Eigen
|
} // end namespace Eigen
|
||||||
|
Loading…
x
Reference in New Issue
Block a user