mirror of
https://gitlab.com/libeigen/eigen.git
synced 2025-04-23 01:59:38 +08:00
Revert "Adds EIGEN_CONSTEXPR and EIGEN_NOEXCEPT to rows(), cols(), innerStride(), outerStride(), and size()"
This reverts commit 6cbb3038ac48cb5fe17eba4dfbf26e3e798041f1 because it breaks clang-10 builds on x86 and aarch64 when C++11 is enabled.
This commit is contained in:
parent
6cbb3038ac
commit
5f0b4a4010
@ -246,8 +246,8 @@ template<typename _MatrixType, int _UpLo> class LDLT
|
|||||||
*/
|
*/
|
||||||
const LDLT& adjoint() const { return *this; };
|
const LDLT& adjoint() const { return *this; };
|
||||||
|
|
||||||
EIGEN_DEVICE_FUNC inline EIGEN_CONSTEXPR Index rows() const EIGEN_NOEXCEPT { return m_matrix.rows(); }
|
EIGEN_DEVICE_FUNC inline Index rows() const { return m_matrix.rows(); }
|
||||||
EIGEN_DEVICE_FUNC inline EIGEN_CONSTEXPR Index cols() const EIGEN_NOEXCEPT { return m_matrix.cols(); }
|
EIGEN_DEVICE_FUNC inline Index cols() const { return m_matrix.cols(); }
|
||||||
|
|
||||||
/** \brief Reports whether previous computation was successful.
|
/** \brief Reports whether previous computation was successful.
|
||||||
*
|
*
|
||||||
|
@ -199,10 +199,10 @@ template<typename _MatrixType, int _UpLo> class LLT
|
|||||||
* This method is provided for compatibility with other matrix decompositions, thus enabling generic code such as:
|
* This method is provided for compatibility with other matrix decompositions, thus enabling generic code such as:
|
||||||
* \code x = decomposition.adjoint().solve(b) \endcode
|
* \code x = decomposition.adjoint().solve(b) \endcode
|
||||||
*/
|
*/
|
||||||
const LLT& adjoint() const EIGEN_NOEXCEPT { return *this; };
|
const LLT& adjoint() const { return *this; };
|
||||||
|
|
||||||
inline EIGEN_CONSTEXPR Index rows() const EIGEN_NOEXCEPT { return m_matrix.rows(); }
|
inline Index rows() const { return m_matrix.rows(); }
|
||||||
inline EIGEN_CONSTEXPR Index cols() const EIGEN_NOEXCEPT { return m_matrix.cols(); }
|
inline Index cols() const { return m_matrix.cols(); }
|
||||||
|
|
||||||
template<typename VectorType>
|
template<typename VectorType>
|
||||||
LLT & rankUpdate(const VectorType& vec, const RealScalar& sigma = 1);
|
LLT & rankUpdate(const VectorType& vec, const RealScalar& sigma = 1);
|
||||||
|
@ -288,10 +288,8 @@ class Array
|
|||||||
: Base(other.derived())
|
: Base(other.derived())
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC inline Index innerStride() const { return 1; }
|
||||||
inline Index innerStride() const EIGEN_NOEXCEPT{ return 1; }
|
EIGEN_DEVICE_FUNC inline Index outerStride() const { return this->innerSize(); }
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
|
||||||
inline Index outerStride() const EIGEN_NOEXCEPT { return this->innerSize(); }
|
|
||||||
|
|
||||||
#ifdef EIGEN_ARRAY_PLUGIN
|
#ifdef EIGEN_ARRAY_PLUGIN
|
||||||
#include EIGEN_ARRAY_PLUGIN
|
#include EIGEN_ARRAY_PLUGIN
|
||||||
|
@ -60,14 +60,14 @@ class ArrayWrapper : public ArrayBase<ArrayWrapper<ExpressionType> >
|
|||||||
EIGEN_DEVICE_FUNC
|
EIGEN_DEVICE_FUNC
|
||||||
explicit EIGEN_STRONG_INLINE ArrayWrapper(ExpressionType& matrix) : m_expression(matrix) {}
|
explicit EIGEN_STRONG_INLINE ArrayWrapper(ExpressionType& matrix) : m_expression(matrix) {}
|
||||||
|
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC
|
||||||
inline Index rows() const EIGEN_NOEXCEPT { return m_expression.rows(); }
|
inline Index rows() const { return m_expression.rows(); }
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC
|
||||||
inline Index cols() const EIGEN_NOEXCEPT { return m_expression.cols(); }
|
inline Index cols() const { return m_expression.cols(); }
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC
|
||||||
inline Index outerStride() const EIGEN_NOEXCEPT { return m_expression.outerStride(); }
|
inline Index outerStride() const { return m_expression.outerStride(); }
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC
|
||||||
inline Index innerStride() const EIGEN_NOEXCEPT { return m_expression.innerStride(); }
|
inline Index innerStride() const { return m_expression.innerStride(); }
|
||||||
|
|
||||||
EIGEN_DEVICE_FUNC
|
EIGEN_DEVICE_FUNC
|
||||||
inline ScalarWithConstIfNotLvalue* data() { return m_expression.data(); }
|
inline ScalarWithConstIfNotLvalue* data() { return m_expression.data(); }
|
||||||
@ -158,14 +158,14 @@ class MatrixWrapper : public MatrixBase<MatrixWrapper<ExpressionType> >
|
|||||||
EIGEN_DEVICE_FUNC
|
EIGEN_DEVICE_FUNC
|
||||||
explicit inline MatrixWrapper(ExpressionType& matrix) : m_expression(matrix) {}
|
explicit inline MatrixWrapper(ExpressionType& matrix) : m_expression(matrix) {}
|
||||||
|
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC
|
||||||
inline Index rows() const EIGEN_NOEXCEPT { return m_expression.rows(); }
|
inline Index rows() const { return m_expression.rows(); }
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC
|
||||||
inline Index cols() const EIGEN_NOEXCEPT { return m_expression.cols(); }
|
inline Index cols() const { return m_expression.cols(); }
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC
|
||||||
inline Index outerStride() const EIGEN_NOEXCEPT { return m_expression.outerStride(); }
|
inline Index outerStride() const { return m_expression.outerStride(); }
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC
|
||||||
inline Index innerStride() const EIGEN_NOEXCEPT { return m_expression.innerStride(); }
|
inline Index innerStride() const { return m_expression.innerStride(); }
|
||||||
|
|
||||||
EIGEN_DEVICE_FUNC
|
EIGEN_DEVICE_FUNC
|
||||||
inline ScalarWithConstIfNotLvalue* data() { return m_expression.data(); }
|
inline ScalarWithConstIfNotLvalue* data() { return m_expression.data(); }
|
||||||
|
@ -638,15 +638,15 @@ public:
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR Index size() const EIGEN_NOEXCEPT { return m_dstExpr.size(); }
|
EIGEN_DEVICE_FUNC Index size() const { return m_dstExpr.size(); }
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR Index innerSize() const EIGEN_NOEXCEPT { return m_dstExpr.innerSize(); }
|
EIGEN_DEVICE_FUNC Index innerSize() const { return m_dstExpr.innerSize(); }
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR Index outerSize() const EIGEN_NOEXCEPT { return m_dstExpr.outerSize(); }
|
EIGEN_DEVICE_FUNC Index outerSize() const { return m_dstExpr.outerSize(); }
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR Index rows() const EIGEN_NOEXCEPT { return m_dstExpr.rows(); }
|
EIGEN_DEVICE_FUNC Index rows() const { return m_dstExpr.rows(); }
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR Index cols() const EIGEN_NOEXCEPT { return m_dstExpr.cols(); }
|
EIGEN_DEVICE_FUNC Index cols() const { return m_dstExpr.cols(); }
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR Index outerStride() const EIGEN_NOEXCEPT { return m_dstExpr.outerStride(); }
|
EIGEN_DEVICE_FUNC Index outerStride() const { return m_dstExpr.outerStride(); }
|
||||||
|
|
||||||
EIGEN_DEVICE_FUNC DstEvaluatorType& dstEvaluator() EIGEN_NOEXCEPT { return m_dst; }
|
EIGEN_DEVICE_FUNC DstEvaluatorType& dstEvaluator() { return m_dst; }
|
||||||
EIGEN_DEVICE_FUNC const SrcEvaluatorType& srcEvaluator() const EIGEN_NOEXCEPT { return m_src; }
|
EIGEN_DEVICE_FUNC const SrcEvaluatorType& srcEvaluator() const { return m_src; }
|
||||||
|
|
||||||
/// Assign src(row,col) to dst(row,col) through the assignment functor.
|
/// Assign src(row,col) to dst(row,col) through the assignment functor.
|
||||||
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE void assignCoeff(Index row, Index col)
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE void assignCoeff(Index row, Index col)
|
||||||
|
@ -211,16 +211,16 @@ class BandMatrix : public BandMatrixBase<BandMatrix<_Scalar,Rows,Cols,Supers,Sub
|
|||||||
}
|
}
|
||||||
|
|
||||||
/** \returns the number of columns */
|
/** \returns the number of columns */
|
||||||
inline EIGEN_CONSTEXPR Index rows() const { return m_rows.value(); }
|
inline Index rows() const { return m_rows.value(); }
|
||||||
|
|
||||||
/** \returns the number of rows */
|
/** \returns the number of rows */
|
||||||
inline EIGEN_CONSTEXPR Index cols() const { return m_coeffs.cols(); }
|
inline Index cols() const { return m_coeffs.cols(); }
|
||||||
|
|
||||||
/** \returns the number of super diagonals */
|
/** \returns the number of super diagonals */
|
||||||
inline EIGEN_CONSTEXPR Index supers() const { return m_supers.value(); }
|
inline Index supers() const { return m_supers.value(); }
|
||||||
|
|
||||||
/** \returns the number of sub diagonals */
|
/** \returns the number of sub diagonals */
|
||||||
inline EIGEN_CONSTEXPR Index subs() const { return m_subs.value(); }
|
inline Index subs() const { return m_subs.value(); }
|
||||||
|
|
||||||
inline const CoefficientsType& coeffs() const { return m_coeffs; }
|
inline const CoefficientsType& coeffs() const { return m_coeffs; }
|
||||||
inline CoefficientsType& coeffs() { return m_coeffs; }
|
inline CoefficientsType& coeffs() { return m_coeffs; }
|
||||||
@ -275,16 +275,16 @@ class BandMatrixWrapper : public BandMatrixBase<BandMatrixWrapper<_CoefficientsT
|
|||||||
}
|
}
|
||||||
|
|
||||||
/** \returns the number of columns */
|
/** \returns the number of columns */
|
||||||
inline EIGEN_CONSTEXPR Index rows() const { return m_rows.value(); }
|
inline Index rows() const { return m_rows.value(); }
|
||||||
|
|
||||||
/** \returns the number of rows */
|
/** \returns the number of rows */
|
||||||
inline EIGEN_CONSTEXPR Index cols() const { return m_coeffs.cols(); }
|
inline Index cols() const { return m_coeffs.cols(); }
|
||||||
|
|
||||||
/** \returns the number of super diagonals */
|
/** \returns the number of super diagonals */
|
||||||
inline EIGEN_CONSTEXPR Index supers() const { return m_supers.value(); }
|
inline Index supers() const { return m_supers.value(); }
|
||||||
|
|
||||||
/** \returns the number of sub diagonals */
|
/** \returns the number of sub diagonals */
|
||||||
inline EIGEN_CONSTEXPR Index subs() const { return m_subs.value(); }
|
inline Index subs() const { return m_subs.value(); }
|
||||||
|
|
||||||
inline const CoefficientsType& coeffs() const { return m_coeffs; }
|
inline const CoefficientsType& coeffs() const { return m_coeffs; }
|
||||||
|
|
||||||
|
@ -303,14 +303,14 @@ template<typename XprType, int BlockRows, int BlockCols, bool InnerPanel, bool H
|
|||||||
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
||||||
XprType& nestedExpression() { return m_xpr; }
|
XprType& nestedExpression() { return m_xpr; }
|
||||||
|
|
||||||
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
||||||
StorageIndex startRow() const EIGEN_NOEXCEPT
|
StorageIndex startRow() const
|
||||||
{
|
{
|
||||||
return m_startRow.value();
|
return m_startRow.value();
|
||||||
}
|
}
|
||||||
|
|
||||||
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
||||||
StorageIndex startCol() const EIGEN_NOEXCEPT
|
StorageIndex startCol() const
|
||||||
{
|
{
|
||||||
return m_startCol.value();
|
return m_startCol.value();
|
||||||
}
|
}
|
||||||
@ -378,7 +378,7 @@ class BlockImpl_dense<XprType,BlockRows,BlockCols, InnerPanel,true>
|
|||||||
}
|
}
|
||||||
|
|
||||||
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
||||||
const typename internal::remove_all<XprTypeNested>::type& nestedExpression() const EIGEN_NOEXCEPT
|
const typename internal::remove_all<XprTypeNested>::type& nestedExpression() const
|
||||||
{
|
{
|
||||||
return m_xpr;
|
return m_xpr;
|
||||||
}
|
}
|
||||||
@ -387,8 +387,8 @@ class BlockImpl_dense<XprType,BlockRows,BlockCols, InnerPanel,true>
|
|||||||
XprType& nestedExpression() { return m_xpr; }
|
XprType& nestedExpression() { return m_xpr; }
|
||||||
|
|
||||||
/** \sa MapBase::innerStride() */
|
/** \sa MapBase::innerStride() */
|
||||||
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
||||||
Index innerStride() const EIGEN_NOEXCEPT
|
Index innerStride() const
|
||||||
{
|
{
|
||||||
return internal::traits<BlockType>::HasSameStorageOrderAsXprType
|
return internal::traits<BlockType>::HasSameStorageOrderAsXprType
|
||||||
? m_xpr.innerStride()
|
? m_xpr.innerStride()
|
||||||
@ -396,19 +396,23 @@ class BlockImpl_dense<XprType,BlockRows,BlockCols, InnerPanel,true>
|
|||||||
}
|
}
|
||||||
|
|
||||||
/** \sa MapBase::outerStride() */
|
/** \sa MapBase::outerStride() */
|
||||||
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
||||||
Index outerStride() const EIGEN_NOEXCEPT
|
Index outerStride() const
|
||||||
{
|
{
|
||||||
return internal::traits<BlockType>::HasSameStorageOrderAsXprType
|
return m_outerStride;
|
||||||
? m_xpr.outerStride()
|
|
||||||
: m_xpr.innerStride();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
||||||
StorageIndex startRow() const EIGEN_NOEXCEPT { return m_startRow.value(); }
|
StorageIndex startRow() const
|
||||||
|
{
|
||||||
|
return m_startRow.value();
|
||||||
|
}
|
||||||
|
|
||||||
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
||||||
StorageIndex startCol() const EIGEN_NOEXCEPT { return m_startCol.value(); }
|
StorageIndex startCol() const
|
||||||
|
{
|
||||||
|
return m_startCol.value();
|
||||||
|
}
|
||||||
|
|
||||||
#ifndef __SUNPRO_CC
|
#ifndef __SUNPRO_CC
|
||||||
// FIXME sunstudio is not friendly with the above friend...
|
// FIXME sunstudio is not friendly with the above friend...
|
||||||
|
@ -143,8 +143,8 @@ public:
|
|||||||
#endif
|
#endif
|
||||||
eigen_internal_assert(outerStride==OuterStride);
|
eigen_internal_assert(outerStride==OuterStride);
|
||||||
}
|
}
|
||||||
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
||||||
Index outerStride() const EIGEN_NOEXCEPT { return OuterStride; }
|
Index outerStride() const { return OuterStride; }
|
||||||
const Scalar *data;
|
const Scalar *data;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -956,14 +956,10 @@ struct mapbase_evaluator : evaluator_base<Derived>
|
|||||||
internal::pstoret<Scalar, PacketType, StoreMode>(m_data + index * m_innerStride.value(), x);
|
internal::pstoret<Scalar, PacketType, StoreMode>(m_data + index * m_innerStride.value(), x);
|
||||||
}
|
}
|
||||||
protected:
|
protected:
|
||||||
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
||||||
Index rowStride() const EIGEN_NOEXCEPT {
|
Index rowStride() const { return XprType::IsRowMajor ? m_outerStride.value() : m_innerStride.value(); }
|
||||||
return XprType::IsRowMajor ? m_outerStride.value() : m_innerStride.value();
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
||||||
}
|
Index colStride() const { return XprType::IsRowMajor ? m_innerStride.value() : m_outerStride.value(); }
|
||||||
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE EIGEN_CONSTEXPR
|
|
||||||
Index colStride() const EIGEN_NOEXCEPT {
|
|
||||||
return XprType::IsRowMajor ? m_innerStride.value() : m_outerStride.value();
|
|
||||||
}
|
|
||||||
|
|
||||||
PointerType m_data;
|
PointerType m_data;
|
||||||
const internal::variable_if_dynamic<Index, XprType::InnerStrideAtCompileTime> m_innerStride;
|
const internal::variable_if_dynamic<Index, XprType::InnerStrideAtCompileTime> m_innerStride;
|
||||||
@ -1652,10 +1648,8 @@ protected:
|
|||||||
const internal::variable_if_dynamicindex<Index, XprType::DiagIndex> m_index;
|
const internal::variable_if_dynamicindex<Index, XprType::DiagIndex> m_index;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Index rowOffset() const { return m_index.value() > 0 ? 0 : -m_index.value(); }
|
||||||
Index rowOffset() const { return m_index.value() > 0 ? 0 : -m_index.value(); }
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Index colOffset() const { return m_index.value() > 0 ? m_index.value() : 0; }
|
||||||
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE EIGEN_CONSTEXPR
|
|
||||||
Index colOffset() const { return m_index.value() > 0 ? m_index.value() : 0; }
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -1692,12 +1686,12 @@ class EvalToTemp
|
|||||||
return m_arg;
|
return m_arg;
|
||||||
}
|
}
|
||||||
|
|
||||||
EIGEN_CONSTEXPR Index rows() const EIGEN_NOEXCEPT
|
Index rows() const
|
||||||
{
|
{
|
||||||
return m_arg.rows();
|
return m_arg.rows();
|
||||||
}
|
}
|
||||||
|
|
||||||
EIGEN_CONSTEXPR Index cols() const EIGEN_NOEXCEPT
|
Index cols() const
|
||||||
{
|
{
|
||||||
return m_arg.cols();
|
return m_arg.cols();
|
||||||
}
|
}
|
||||||
|
@ -116,15 +116,21 @@ class CwiseBinaryOp :
|
|||||||
eigen_assert(aLhs.rows() == aRhs.rows() && aLhs.cols() == aRhs.cols());
|
eigen_assert(aLhs.rows() == aRhs.rows() && aLhs.cols() == aRhs.cols());
|
||||||
}
|
}
|
||||||
|
|
||||||
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
||||||
Index rows() const EIGEN_NOEXCEPT {
|
Index rows() const {
|
||||||
// return the fixed size type if available to enable compile time optimizations
|
// return the fixed size type if available to enable compile time optimizations
|
||||||
return internal::traits<typename internal::remove_all<LhsNested>::type>::RowsAtCompileTime==Dynamic ? m_rhs.rows() : m_lhs.rows();
|
if (internal::traits<typename internal::remove_all<LhsNested>::type>::RowsAtCompileTime==Dynamic)
|
||||||
|
return m_rhs.rows();
|
||||||
|
else
|
||||||
|
return m_lhs.rows();
|
||||||
}
|
}
|
||||||
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
||||||
Index cols() const EIGEN_NOEXCEPT {
|
Index cols() const {
|
||||||
// return the fixed size type if available to enable compile time optimizations
|
// return the fixed size type if available to enable compile time optimizations
|
||||||
return internal::traits<typename internal::remove_all<LhsNested>::type>::ColsAtCompileTime==Dynamic ? m_rhs.cols() : m_lhs.cols();
|
if (internal::traits<typename internal::remove_all<LhsNested>::type>::ColsAtCompileTime==Dynamic)
|
||||||
|
return m_rhs.cols();
|
||||||
|
else
|
||||||
|
return m_lhs.cols();
|
||||||
}
|
}
|
||||||
|
|
||||||
/** \returns the left hand side nested expression */
|
/** \returns the left hand side nested expression */
|
||||||
|
@ -74,10 +74,10 @@ class CwiseNullaryOp : public internal::dense_xpr_base< CwiseNullaryOp<NullaryOp
|
|||||||
&& (ColsAtCompileTime == Dynamic || ColsAtCompileTime == cols));
|
&& (ColsAtCompileTime == Dynamic || ColsAtCompileTime == cols));
|
||||||
}
|
}
|
||||||
|
|
||||||
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC
|
||||||
Index rows() const { return m_rows.value(); }
|
EIGEN_STRONG_INLINE Index rows() const { return m_rows.value(); }
|
||||||
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC
|
||||||
Index cols() const { return m_cols.value(); }
|
EIGEN_STRONG_INLINE Index cols() const { return m_cols.value(); }
|
||||||
|
|
||||||
/** \returns the functor representing the nullary operation */
|
/** \returns the functor representing the nullary operation */
|
||||||
EIGEN_DEVICE_FUNC
|
EIGEN_DEVICE_FUNC
|
||||||
|
@ -65,10 +65,10 @@ class CwiseUnaryOp : public CwiseUnaryOpImpl<UnaryOp, XprType, typename internal
|
|||||||
explicit CwiseUnaryOp(const XprType& xpr, const UnaryOp& func = UnaryOp())
|
explicit CwiseUnaryOp(const XprType& xpr, const UnaryOp& func = UnaryOp())
|
||||||
: m_xpr(xpr), m_functor(func) {}
|
: m_xpr(xpr), m_functor(func) {}
|
||||||
|
|
||||||
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
||||||
Index rows() const EIGEN_NOEXCEPT { return m_xpr.rows(); }
|
Index rows() const { return m_xpr.rows(); }
|
||||||
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
||||||
Index cols() const EIGEN_NOEXCEPT { return m_xpr.cols(); }
|
Index cols() const { return m_xpr.cols(); }
|
||||||
|
|
||||||
/** \returns the functor representing the unary operation */
|
/** \returns the functor representing the unary operation */
|
||||||
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
||||||
|
@ -69,10 +69,8 @@ class CwiseUnaryView : public CwiseUnaryViewImpl<ViewOp, MatrixType, typename in
|
|||||||
|
|
||||||
EIGEN_INHERIT_ASSIGNMENT_OPERATORS(CwiseUnaryView)
|
EIGEN_INHERIT_ASSIGNMENT_OPERATORS(CwiseUnaryView)
|
||||||
|
|
||||||
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Index rows() const { return m_matrix.rows(); }
|
||||||
Index rows() const EIGEN_NOEXCEPT { return m_matrix.rows(); }
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Index cols() const { return m_matrix.cols(); }
|
||||||
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE EIGEN_CONSTEXPR
|
|
||||||
Index cols() const EIGEN_NOEXCEPT { return m_matrix.cols(); }
|
|
||||||
|
|
||||||
/** \returns the functor representing unary operation */
|
/** \returns the functor representing unary operation */
|
||||||
EIGEN_DEVICE_FUNC const ViewOp& functor() const { return m_functor; }
|
EIGEN_DEVICE_FUNC const ViewOp& functor() const { return m_functor; }
|
||||||
@ -114,12 +112,12 @@ class CwiseUnaryViewImpl<ViewOp,MatrixType,Dense>
|
|||||||
EIGEN_DEVICE_FUNC inline Scalar* data() { return &(this->coeffRef(0)); }
|
EIGEN_DEVICE_FUNC inline Scalar* data() { return &(this->coeffRef(0)); }
|
||||||
EIGEN_DEVICE_FUNC inline const Scalar* data() const { return &(this->coeff(0)); }
|
EIGEN_DEVICE_FUNC inline const Scalar* data() const { return &(this->coeff(0)); }
|
||||||
|
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR inline Index innerStride() const
|
EIGEN_DEVICE_FUNC inline Index innerStride() const
|
||||||
{
|
{
|
||||||
return derived().nestedExpression().innerStride() * sizeof(typename internal::traits<MatrixType>::Scalar) / sizeof(Scalar);
|
return derived().nestedExpression().innerStride() * sizeof(typename internal::traits<MatrixType>::Scalar) / sizeof(Scalar);
|
||||||
}
|
}
|
||||||
|
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR inline Index outerStride() const
|
EIGEN_DEVICE_FUNC inline Index outerStride() const
|
||||||
{
|
{
|
||||||
return derived().nestedExpression().outerStride() * sizeof(typename internal::traits<MatrixType>::Scalar) / sizeof(Scalar);
|
return derived().nestedExpression().outerStride() * sizeof(typename internal::traits<MatrixType>::Scalar) / sizeof(Scalar);
|
||||||
}
|
}
|
||||||
|
@ -211,7 +211,7 @@ template<typename Derived> class DenseBase
|
|||||||
|
|
||||||
/** \returns the number of nonzero coefficients which is in practice the number
|
/** \returns the number of nonzero coefficients which is in practice the number
|
||||||
* of stored coefficients. */
|
* of stored coefficients. */
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC
|
||||||
inline Index nonZeros() const { return size(); }
|
inline Index nonZeros() const { return size(); }
|
||||||
|
|
||||||
/** \returns the outer size.
|
/** \returns the outer size.
|
||||||
@ -219,7 +219,7 @@ template<typename Derived> class DenseBase
|
|||||||
* \note For a vector, this returns just 1. For a matrix (non-vector), this is the major dimension
|
* \note For a vector, this returns just 1. For a matrix (non-vector), this is the major dimension
|
||||||
* with respect to the \ref TopicStorageOrders "storage order", i.e., the number of columns for a
|
* with respect to the \ref TopicStorageOrders "storage order", i.e., the number of columns for a
|
||||||
* column-major matrix, and the number of rows for a row-major matrix. */
|
* column-major matrix, and the number of rows for a row-major matrix. */
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC
|
||||||
Index outerSize() const
|
Index outerSize() const
|
||||||
{
|
{
|
||||||
return IsVectorAtCompileTime ? 1
|
return IsVectorAtCompileTime ? 1
|
||||||
@ -231,7 +231,7 @@ template<typename Derived> class DenseBase
|
|||||||
* \note For a vector, this is just the size. For a matrix (non-vector), this is the minor dimension
|
* \note For a vector, this is just the size. For a matrix (non-vector), this is the minor dimension
|
||||||
* with respect to the \ref TopicStorageOrders "storage order", i.e., the number of rows for a
|
* with respect to the \ref TopicStorageOrders "storage order", i.e., the number of rows for a
|
||||||
* column-major matrix, and the number of columns for a row-major matrix. */
|
* column-major matrix, and the number of columns for a row-major matrix. */
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC
|
||||||
Index innerSize() const
|
Index innerSize() const
|
||||||
{
|
{
|
||||||
return IsVectorAtCompileTime ? this->size()
|
return IsVectorAtCompileTime ? this->size()
|
||||||
|
@ -495,7 +495,7 @@ class DenseCoeffsBase<Derived, DirectAccessors> : public DenseCoeffsBase<Derived
|
|||||||
*
|
*
|
||||||
* \sa outerStride(), rowStride(), colStride()
|
* \sa outerStride(), rowStride(), colStride()
|
||||||
*/
|
*/
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC
|
||||||
inline Index innerStride() const
|
inline Index innerStride() const
|
||||||
{
|
{
|
||||||
return derived().innerStride();
|
return derived().innerStride();
|
||||||
@ -506,14 +506,14 @@ class DenseCoeffsBase<Derived, DirectAccessors> : public DenseCoeffsBase<Derived
|
|||||||
*
|
*
|
||||||
* \sa innerStride(), rowStride(), colStride()
|
* \sa innerStride(), rowStride(), colStride()
|
||||||
*/
|
*/
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC
|
||||||
inline Index outerStride() const
|
inline Index outerStride() const
|
||||||
{
|
{
|
||||||
return derived().outerStride();
|
return derived().outerStride();
|
||||||
}
|
}
|
||||||
|
|
||||||
// FIXME shall we remove it ?
|
// FIXME shall we remove it ?
|
||||||
EIGEN_CONSTEXPR inline Index stride() const
|
inline Index stride() const
|
||||||
{
|
{
|
||||||
return Derived::IsVectorAtCompileTime ? innerStride() : outerStride();
|
return Derived::IsVectorAtCompileTime ? innerStride() : outerStride();
|
||||||
}
|
}
|
||||||
@ -522,7 +522,7 @@ class DenseCoeffsBase<Derived, DirectAccessors> : public DenseCoeffsBase<Derived
|
|||||||
*
|
*
|
||||||
* \sa innerStride(), outerStride(), colStride()
|
* \sa innerStride(), outerStride(), colStride()
|
||||||
*/
|
*/
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC
|
||||||
inline Index rowStride() const
|
inline Index rowStride() const
|
||||||
{
|
{
|
||||||
return Derived::IsRowMajor ? outerStride() : innerStride();
|
return Derived::IsRowMajor ? outerStride() : innerStride();
|
||||||
@ -532,7 +532,7 @@ class DenseCoeffsBase<Derived, DirectAccessors> : public DenseCoeffsBase<Derived
|
|||||||
*
|
*
|
||||||
* \sa innerStride(), outerStride(), rowStride()
|
* \sa innerStride(), outerStride(), rowStride()
|
||||||
*/
|
*/
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC
|
||||||
inline Index colStride() const
|
inline Index colStride() const
|
||||||
{
|
{
|
||||||
return Derived::IsRowMajor ? innerStride() : outerStride();
|
return Derived::IsRowMajor ? innerStride() : outerStride();
|
||||||
@ -570,8 +570,8 @@ class DenseCoeffsBase<Derived, DirectWriteAccessors>
|
|||||||
*
|
*
|
||||||
* \sa outerStride(), rowStride(), colStride()
|
* \sa outerStride(), rowStride(), colStride()
|
||||||
*/
|
*/
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC
|
||||||
inline Index innerStride() const EIGEN_NOEXCEPT
|
inline Index innerStride() const
|
||||||
{
|
{
|
||||||
return derived().innerStride();
|
return derived().innerStride();
|
||||||
}
|
}
|
||||||
@ -581,14 +581,14 @@ class DenseCoeffsBase<Derived, DirectWriteAccessors>
|
|||||||
*
|
*
|
||||||
* \sa innerStride(), rowStride(), colStride()
|
* \sa innerStride(), rowStride(), colStride()
|
||||||
*/
|
*/
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC
|
||||||
inline Index outerStride() const EIGEN_NOEXCEPT
|
inline Index outerStride() const
|
||||||
{
|
{
|
||||||
return derived().outerStride();
|
return derived().outerStride();
|
||||||
}
|
}
|
||||||
|
|
||||||
// FIXME shall we remove it ?
|
// FIXME shall we remove it ?
|
||||||
EIGEN_CONSTEXPR inline Index stride() const EIGEN_NOEXCEPT
|
inline Index stride() const
|
||||||
{
|
{
|
||||||
return Derived::IsVectorAtCompileTime ? innerStride() : outerStride();
|
return Derived::IsVectorAtCompileTime ? innerStride() : outerStride();
|
||||||
}
|
}
|
||||||
@ -597,8 +597,8 @@ class DenseCoeffsBase<Derived, DirectWriteAccessors>
|
|||||||
*
|
*
|
||||||
* \sa innerStride(), outerStride(), colStride()
|
* \sa innerStride(), outerStride(), colStride()
|
||||||
*/
|
*/
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC
|
||||||
inline Index rowStride() const EIGEN_NOEXCEPT
|
inline Index rowStride() const
|
||||||
{
|
{
|
||||||
return Derived::IsRowMajor ? outerStride() : innerStride();
|
return Derived::IsRowMajor ? outerStride() : innerStride();
|
||||||
}
|
}
|
||||||
@ -607,8 +607,8 @@ class DenseCoeffsBase<Derived, DirectWriteAccessors>
|
|||||||
*
|
*
|
||||||
* \sa innerStride(), outerStride(), rowStride()
|
* \sa innerStride(), outerStride(), rowStride()
|
||||||
*/
|
*/
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC
|
||||||
inline Index colStride() const EIGEN_NOEXCEPT
|
inline Index colStride() const
|
||||||
{
|
{
|
||||||
return Derived::IsRowMajor ? innerStride() : outerStride();
|
return Derived::IsRowMajor ? innerStride() : outerStride();
|
||||||
}
|
}
|
||||||
@ -619,7 +619,7 @@ namespace internal {
|
|||||||
template<int Alignment, typename Derived, bool JustReturnZero>
|
template<int Alignment, typename Derived, bool JustReturnZero>
|
||||||
struct first_aligned_impl
|
struct first_aligned_impl
|
||||||
{
|
{
|
||||||
static EIGEN_CONSTEXPR inline Index run(const Derived&) EIGEN_NOEXCEPT
|
static inline Index run(const Derived&)
|
||||||
{ return 0; }
|
{ return 0; }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -222,8 +222,8 @@ template<typename T, int Size, int _Rows, int _Cols, int _Options> class DenseSt
|
|||||||
EIGEN_DEVICE_FUNC void swap(DenseStorage& other) {
|
EIGEN_DEVICE_FUNC void swap(DenseStorage& other) {
|
||||||
numext::swap(m_data, other.m_data);
|
numext::swap(m_data, other.m_data);
|
||||||
}
|
}
|
||||||
EIGEN_DEVICE_FUNC static EIGEN_CONSTEXPR Index rows(void) EIGEN_NOEXCEPT {return _Rows;}
|
EIGEN_DEVICE_FUNC static Index rows(void) {return _Rows;}
|
||||||
EIGEN_DEVICE_FUNC static EIGEN_CONSTEXPR Index cols(void) EIGEN_NOEXCEPT {return _Cols;}
|
EIGEN_DEVICE_FUNC static Index cols(void) {return _Cols;}
|
||||||
EIGEN_DEVICE_FUNC void conservativeResize(Index,Index,Index) {}
|
EIGEN_DEVICE_FUNC void conservativeResize(Index,Index,Index) {}
|
||||||
EIGEN_DEVICE_FUNC void resize(Index,Index,Index) {}
|
EIGEN_DEVICE_FUNC void resize(Index,Index,Index) {}
|
||||||
EIGEN_DEVICE_FUNC const T *data() const { return m_data.array; }
|
EIGEN_DEVICE_FUNC const T *data() const { return m_data.array; }
|
||||||
@ -240,8 +240,8 @@ template<typename T, int _Rows, int _Cols, int _Options> class DenseStorage<T, 0
|
|||||||
EIGEN_DEVICE_FUNC DenseStorage& operator=(const DenseStorage&) { return *this; }
|
EIGEN_DEVICE_FUNC DenseStorage& operator=(const DenseStorage&) { return *this; }
|
||||||
EIGEN_DEVICE_FUNC DenseStorage(Index,Index,Index) {}
|
EIGEN_DEVICE_FUNC DenseStorage(Index,Index,Index) {}
|
||||||
EIGEN_DEVICE_FUNC void swap(DenseStorage& ) {}
|
EIGEN_DEVICE_FUNC void swap(DenseStorage& ) {}
|
||||||
EIGEN_DEVICE_FUNC static EIGEN_CONSTEXPR Index rows(void) EIGEN_NOEXCEPT {return _Rows;}
|
EIGEN_DEVICE_FUNC static Index rows(void) {return _Rows;}
|
||||||
EIGEN_DEVICE_FUNC static EIGEN_CONSTEXPR Index cols(void) EIGEN_NOEXCEPT {return _Cols;}
|
EIGEN_DEVICE_FUNC static Index cols(void) {return _Cols;}
|
||||||
EIGEN_DEVICE_FUNC void conservativeResize(Index,Index,Index) {}
|
EIGEN_DEVICE_FUNC void conservativeResize(Index,Index,Index) {}
|
||||||
EIGEN_DEVICE_FUNC void resize(Index,Index,Index) {}
|
EIGEN_DEVICE_FUNC void resize(Index,Index,Index) {}
|
||||||
EIGEN_DEVICE_FUNC const T *data() const { return 0; }
|
EIGEN_DEVICE_FUNC const T *data() const { return 0; }
|
||||||
@ -319,8 +319,8 @@ template<typename T, int Size, int _Cols, int _Options> class DenseStorage<T, Si
|
|||||||
numext::swap(m_data,other.m_data);
|
numext::swap(m_data,other.m_data);
|
||||||
numext::swap(m_rows,other.m_rows);
|
numext::swap(m_rows,other.m_rows);
|
||||||
}
|
}
|
||||||
EIGEN_DEVICE_FUNC Index rows(void) const EIGEN_NOEXCEPT {return m_rows;}
|
EIGEN_DEVICE_FUNC Index rows(void) const {return m_rows;}
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR Index cols(void) const EIGEN_NOEXCEPT {return _Cols;}
|
EIGEN_DEVICE_FUNC Index cols(void) const {return _Cols;}
|
||||||
EIGEN_DEVICE_FUNC void conservativeResize(Index, Index rows, Index) { m_rows = rows; }
|
EIGEN_DEVICE_FUNC void conservativeResize(Index, Index rows, Index) { m_rows = rows; }
|
||||||
EIGEN_DEVICE_FUNC void resize(Index, Index rows, Index) { m_rows = rows; }
|
EIGEN_DEVICE_FUNC void resize(Index, Index rows, Index) { m_rows = rows; }
|
||||||
EIGEN_DEVICE_FUNC const T *data() const { return m_data.array; }
|
EIGEN_DEVICE_FUNC const T *data() const { return m_data.array; }
|
||||||
@ -351,8 +351,8 @@ template<typename T, int Size, int _Rows, int _Options> class DenseStorage<T, Si
|
|||||||
numext::swap(m_data,other.m_data);
|
numext::swap(m_data,other.m_data);
|
||||||
numext::swap(m_cols,other.m_cols);
|
numext::swap(m_cols,other.m_cols);
|
||||||
}
|
}
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR Index rows(void) const EIGEN_NOEXCEPT {return _Rows;}
|
EIGEN_DEVICE_FUNC Index rows(void) const {return _Rows;}
|
||||||
EIGEN_DEVICE_FUNC Index cols(void) const EIGEN_NOEXCEPT {return m_cols;}
|
EIGEN_DEVICE_FUNC Index cols(void) const {return m_cols;}
|
||||||
EIGEN_DEVICE_FUNC void conservativeResize(Index, Index, Index cols) { m_cols = cols; }
|
EIGEN_DEVICE_FUNC void conservativeResize(Index, Index, Index cols) { m_cols = cols; }
|
||||||
EIGEN_DEVICE_FUNC void resize(Index, Index, Index cols) { m_cols = cols; }
|
EIGEN_DEVICE_FUNC void resize(Index, Index, Index cols) { m_cols = cols; }
|
||||||
EIGEN_DEVICE_FUNC const T *data() const { return m_data.array; }
|
EIGEN_DEVICE_FUNC const T *data() const { return m_data.array; }
|
||||||
@ -419,8 +419,8 @@ template<typename T, int _Options> class DenseStorage<T, Dynamic, Dynamic, Dynam
|
|||||||
numext::swap(m_rows,other.m_rows);
|
numext::swap(m_rows,other.m_rows);
|
||||||
numext::swap(m_cols,other.m_cols);
|
numext::swap(m_cols,other.m_cols);
|
||||||
}
|
}
|
||||||
EIGEN_DEVICE_FUNC Index rows(void) const EIGEN_NOEXCEPT {return m_rows;}
|
EIGEN_DEVICE_FUNC Index rows(void) const {return m_rows;}
|
||||||
EIGEN_DEVICE_FUNC Index cols(void) const EIGEN_NOEXCEPT {return m_cols;}
|
EIGEN_DEVICE_FUNC Index cols(void) const {return m_cols;}
|
||||||
void conservativeResize(Index size, Index rows, Index cols)
|
void conservativeResize(Index size, Index rows, Index cols)
|
||||||
{
|
{
|
||||||
m_data = internal::conditional_aligned_realloc_new_auto<T,(_Options&DontAlign)==0>(m_data, size, m_rows*m_cols);
|
m_data = internal::conditional_aligned_realloc_new_auto<T,(_Options&DontAlign)==0>(m_data, size, m_rows*m_cols);
|
||||||
@ -497,8 +497,8 @@ template<typename T, int _Rows, int _Options> class DenseStorage<T, Dynamic, _Ro
|
|||||||
numext::swap(m_data,other.m_data);
|
numext::swap(m_data,other.m_data);
|
||||||
numext::swap(m_cols,other.m_cols);
|
numext::swap(m_cols,other.m_cols);
|
||||||
}
|
}
|
||||||
EIGEN_DEVICE_FUNC static EIGEN_CONSTEXPR Index rows(void) EIGEN_NOEXCEPT {return _Rows;}
|
EIGEN_DEVICE_FUNC static Index rows(void) {return _Rows;}
|
||||||
EIGEN_DEVICE_FUNC Index cols(void) const EIGEN_NOEXCEPT {return m_cols;}
|
EIGEN_DEVICE_FUNC Index cols(void) const {return m_cols;}
|
||||||
EIGEN_DEVICE_FUNC void conservativeResize(Index size, Index, Index cols)
|
EIGEN_DEVICE_FUNC void conservativeResize(Index size, Index, Index cols)
|
||||||
{
|
{
|
||||||
m_data = internal::conditional_aligned_realloc_new_auto<T,(_Options&DontAlign)==0>(m_data, size, _Rows*m_cols);
|
m_data = internal::conditional_aligned_realloc_new_auto<T,(_Options&DontAlign)==0>(m_data, size, _Rows*m_cols);
|
||||||
@ -573,8 +573,8 @@ template<typename T, int _Cols, int _Options> class DenseStorage<T, Dynamic, Dyn
|
|||||||
numext::swap(m_data,other.m_data);
|
numext::swap(m_data,other.m_data);
|
||||||
numext::swap(m_rows,other.m_rows);
|
numext::swap(m_rows,other.m_rows);
|
||||||
}
|
}
|
||||||
EIGEN_DEVICE_FUNC Index rows(void) const EIGEN_NOEXCEPT {return m_rows;}
|
EIGEN_DEVICE_FUNC Index rows(void) const {return m_rows;}
|
||||||
EIGEN_DEVICE_FUNC static EIGEN_CONSTEXPR Index cols(void) {return _Cols;}
|
EIGEN_DEVICE_FUNC static Index cols(void) {return _Cols;}
|
||||||
void conservativeResize(Index size, Index rows, Index)
|
void conservativeResize(Index size, Index rows, Index)
|
||||||
{
|
{
|
||||||
m_data = internal::conditional_aligned_realloc_new_auto<T,(_Options&DontAlign)==0>(m_data, size, m_rows*_Cols);
|
m_data = internal::conditional_aligned_realloc_new_auto<T,(_Options&DontAlign)==0>(m_data, size, m_rows*_Cols);
|
||||||
|
@ -84,16 +84,20 @@ template<typename MatrixType, int _DiagIndex> class Diagonal
|
|||||||
: numext::mini<Index>(m_matrix.rows(),m_matrix.cols()-m_index.value());
|
: numext::mini<Index>(m_matrix.rows(),m_matrix.cols()-m_index.value());
|
||||||
}
|
}
|
||||||
|
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC
|
||||||
inline Index cols() const EIGEN_NOEXCEPT { return 1; }
|
inline Index cols() const { return 1; }
|
||||||
|
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC
|
||||||
inline Index innerStride() const EIGEN_NOEXCEPT {
|
inline Index innerStride() const
|
||||||
|
{
|
||||||
return m_matrix.outerStride() + 1;
|
return m_matrix.outerStride() + 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC
|
||||||
inline Index outerStride() const EIGEN_NOEXCEPT { return 0; }
|
inline Index outerStride() const
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
typedef typename internal::conditional<
|
typedef typename internal::conditional<
|
||||||
internal::is_lvalue<MatrixType>::value,
|
internal::is_lvalue<MatrixType>::value,
|
||||||
@ -163,12 +167,12 @@ template<typename MatrixType, int _DiagIndex> class Diagonal
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
// some compilers may fail to optimize std::max etc in case of compile-time constants...
|
// some compilers may fail to optimize std::max etc in case of compile-time constants...
|
||||||
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC
|
||||||
Index absDiagIndex() const EIGEN_NOEXCEPT { return m_index.value()>0 ? m_index.value() : -m_index.value(); }
|
EIGEN_STRONG_INLINE Index absDiagIndex() const { return m_index.value()>0 ? m_index.value() : -m_index.value(); }
|
||||||
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC
|
||||||
Index rowOffset() const EIGEN_NOEXCEPT { return m_index.value()>0 ? 0 : -m_index.value(); }
|
EIGEN_STRONG_INLINE Index rowOffset() const { return m_index.value()>0 ? 0 : -m_index.value(); }
|
||||||
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC
|
||||||
Index colOffset() const EIGEN_NOEXCEPT { return m_index.value()>0 ? m_index.value() : 0; }
|
EIGEN_STRONG_INLINE Index colOffset() const { return m_index.value()>0 ? m_index.value() : 0; }
|
||||||
// trigger a compile-time error if someone try to call packet
|
// trigger a compile-time error if someone try to call packet
|
||||||
template<int LoadMode> typename MatrixType::PacketReturnType packet(Index) const;
|
template<int LoadMode> typename MatrixType::PacketReturnType packet(Index) const;
|
||||||
template<int LoadMode> typename MatrixType::PacketReturnType packet(Index,Index) const;
|
template<int LoadMode> typename MatrixType::PacketReturnType packet(Index,Index) const;
|
||||||
|
@ -56,15 +56,15 @@ template<typename Derived> struct EigenBase
|
|||||||
{ return *static_cast<const Derived*>(this); }
|
{ return *static_cast<const Derived*>(this); }
|
||||||
|
|
||||||
/** \returns the number of rows. \sa cols(), RowsAtCompileTime */
|
/** \returns the number of rows. \sa cols(), RowsAtCompileTime */
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC
|
||||||
inline Index rows() const EIGEN_NOEXCEPT { return derived().rows(); }
|
inline Index rows() const { return derived().rows(); }
|
||||||
/** \returns the number of columns. \sa rows(), ColsAtCompileTime*/
|
/** \returns the number of columns. \sa rows(), ColsAtCompileTime*/
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC
|
||||||
inline Index cols() const EIGEN_NOEXCEPT { return derived().cols(); }
|
inline Index cols() const { return derived().cols(); }
|
||||||
/** \returns the number of coefficients, which is rows()*cols().
|
/** \returns the number of coefficients, which is rows()*cols().
|
||||||
* \sa rows(), cols(), SizeAtCompileTime. */
|
* \sa rows(), cols(), SizeAtCompileTime. */
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC
|
||||||
inline Index size() const EIGEN_NOEXCEPT { return rows() * cols(); }
|
inline Index size() const { return rows() * cols(); }
|
||||||
|
|
||||||
/** \internal Don't use it, but do the equivalent: \code dst = *this; \endcode */
|
/** \internal Don't use it, but do the equivalent: \code dst = *this; \endcode */
|
||||||
template<typename Dest>
|
template<typename Dest>
|
||||||
|
@ -41,14 +41,10 @@ template<typename ExpressionType> class ForceAlignedAccess
|
|||||||
|
|
||||||
EIGEN_DEVICE_FUNC explicit inline ForceAlignedAccess(const ExpressionType& matrix) : m_expression(matrix) {}
|
EIGEN_DEVICE_FUNC explicit inline ForceAlignedAccess(const ExpressionType& matrix) : m_expression(matrix) {}
|
||||||
|
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC inline Index rows() const { return m_expression.rows(); }
|
||||||
inline Index rows() const EIGEN_NOEXCEPT { return m_expression.rows(); }
|
EIGEN_DEVICE_FUNC inline Index cols() const { return m_expression.cols(); }
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC inline Index outerStride() const { return m_expression.outerStride(); }
|
||||||
inline Index cols() const EIGEN_NOEXCEPT { return m_expression.cols(); }
|
EIGEN_DEVICE_FUNC inline Index innerStride() const { return m_expression.innerStride(); }
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
|
||||||
inline Index outerStride() const EIGEN_NOEXCEPT { return m_expression.outerStride(); }
|
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
|
||||||
inline Index innerStride() const EIGEN_NOEXCEPT { return m_expression.innerStride(); }
|
|
||||||
|
|
||||||
EIGEN_DEVICE_FUNC inline const CoeffReturnType coeff(Index row, Index col) const
|
EIGEN_DEVICE_FUNC inline const CoeffReturnType coeff(Index row, Index col) const
|
||||||
{
|
{
|
||||||
|
@ -54,8 +54,8 @@ public:
|
|||||||
: m_xpr(xpr)
|
: m_xpr(xpr)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR Index rows() const EIGEN_NOEXCEPT { return m_xpr.cols(); }
|
EIGEN_DEVICE_FUNC Index rows() const { return m_xpr.cols(); }
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR Index cols() const EIGEN_NOEXCEPT { return m_xpr.rows(); }
|
EIGEN_DEVICE_FUNC Index cols() const { return m_xpr.rows(); }
|
||||||
|
|
||||||
EIGEN_DEVICE_FUNC const XprTypeNestedCleaned& nestedExpression() const { return m_xpr; }
|
EIGEN_DEVICE_FUNC const XprTypeNestedCleaned& nestedExpression() const { return m_xpr; }
|
||||||
|
|
||||||
|
@ -104,13 +104,13 @@ template<typename PlainObjectType, int MapOptions, typename StrideType> class Ma
|
|||||||
EIGEN_DEVICE_FUNC
|
EIGEN_DEVICE_FUNC
|
||||||
inline PointerType cast_to_pointer_type(PointerArgType ptr) { return ptr; }
|
inline PointerType cast_to_pointer_type(PointerArgType ptr) { return ptr; }
|
||||||
|
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC
|
||||||
inline Index innerStride() const
|
inline Index innerStride() const
|
||||||
{
|
{
|
||||||
return StrideType::InnerStrideAtCompileTime != 0 ? m_stride.inner() : 1;
|
return StrideType::InnerStrideAtCompileTime != 0 ? m_stride.inner() : 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC
|
||||||
inline Index outerStride() const
|
inline Index outerStride() const
|
||||||
{
|
{
|
||||||
return StrideType::OuterStrideAtCompileTime != 0 ? m_stride.outer()
|
return StrideType::OuterStrideAtCompileTime != 0 ? m_stride.outer()
|
||||||
|
@ -87,11 +87,9 @@ template<typename Derived> class MapBase<Derived, ReadOnlyAccessors>
|
|||||||
typedef typename Base::CoeffReturnType CoeffReturnType;
|
typedef typename Base::CoeffReturnType CoeffReturnType;
|
||||||
|
|
||||||
/** \copydoc DenseBase::rows() */
|
/** \copydoc DenseBase::rows() */
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC inline Index rows() const { return m_rows.value(); }
|
||||||
inline Index rows() const EIGEN_NOEXCEPT { return m_rows.value(); }
|
|
||||||
/** \copydoc DenseBase::cols() */
|
/** \copydoc DenseBase::cols() */
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC inline Index cols() const { return m_cols.value(); }
|
||||||
inline Index cols() const EIGEN_NOEXCEPT { return m_cols.value(); }
|
|
||||||
|
|
||||||
/** Returns a pointer to the first coefficient of the matrix or vector.
|
/** Returns a pointer to the first coefficient of the matrix or vector.
|
||||||
*
|
*
|
||||||
|
@ -214,12 +214,12 @@ struct imag_ref_default_impl
|
|||||||
template<typename Scalar>
|
template<typename Scalar>
|
||||||
struct imag_ref_default_impl<Scalar, false>
|
struct imag_ref_default_impl<Scalar, false>
|
||||||
{
|
{
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC
|
||||||
static inline Scalar run(Scalar&)
|
static inline Scalar run(Scalar&)
|
||||||
{
|
{
|
||||||
return Scalar(0);
|
return Scalar(0);
|
||||||
}
|
}
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC
|
||||||
static inline const Scalar run(const Scalar&)
|
static inline const Scalar run(const Scalar&)
|
||||||
{
|
{
|
||||||
return Scalar(0);
|
return Scalar(0);
|
||||||
|
@ -423,10 +423,8 @@ class Matrix
|
|||||||
: Base(other.derived())
|
: Base(other.derived())
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC inline Index innerStride() const { return 1; }
|
||||||
inline Index innerStride() const EIGEN_NOEXCEPT { return 1; }
|
EIGEN_DEVICE_FUNC inline Index outerStride() const { return this->innerSize(); }
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
|
||||||
inline Index outerStride() const EIGEN_NOEXCEPT { return this->innerSize(); }
|
|
||||||
|
|
||||||
/////////// Geometry module ///////////
|
/////////// Geometry module ///////////
|
||||||
|
|
||||||
|
@ -45,8 +45,8 @@ template<typename ExpressionType> class NestByValue
|
|||||||
|
|
||||||
EIGEN_DEVICE_FUNC explicit inline NestByValue(const ExpressionType& matrix) : m_expression(matrix) {}
|
EIGEN_DEVICE_FUNC explicit inline NestByValue(const ExpressionType& matrix) : m_expression(matrix) {}
|
||||||
|
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR inline Index rows() const EIGEN_NOEXCEPT { return m_expression.rows(); }
|
EIGEN_DEVICE_FUNC inline Index rows() const { return m_expression.rows(); }
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR inline Index cols() const EIGEN_NOEXCEPT { return m_expression.cols(); }
|
EIGEN_DEVICE_FUNC inline Index cols() const { return m_expression.cols(); }
|
||||||
|
|
||||||
EIGEN_DEVICE_FUNC operator const ExpressionType&() const { return m_expression; }
|
EIGEN_DEVICE_FUNC operator const ExpressionType&() const { return m_expression; }
|
||||||
|
|
||||||
|
@ -147,10 +147,10 @@ class PlainObjectBase : public internal::dense_xpr_base<Derived>::type
|
|||||||
EIGEN_DEVICE_FUNC
|
EIGEN_DEVICE_FUNC
|
||||||
const Base& base() const { return *static_cast<const Base*>(this); }
|
const Base& base() const { return *static_cast<const Base*>(this); }
|
||||||
|
|
||||||
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC
|
||||||
Index rows() const EIGEN_NOEXCEPT { return m_storage.rows(); }
|
EIGEN_STRONG_INLINE Index rows() const { return m_storage.rows(); }
|
||||||
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC
|
||||||
Index cols() const EIGEN_NOEXCEPT { return m_storage.cols(); }
|
EIGEN_STRONG_INLINE Index cols() const { return m_storage.cols(); }
|
||||||
|
|
||||||
/** This is an overloaded version of DenseCoeffsBase<Derived,ReadOnlyAccessors>::coeff(Index,Index) const
|
/** This is an overloaded version of DenseCoeffsBase<Derived,ReadOnlyAccessors>::coeff(Index,Index) const
|
||||||
* provided to by-pass the creation of an evaluator of the expression, thus saving compilation efforts.
|
* provided to by-pass the creation of an evaluator of the expression, thus saving compilation efforts.
|
||||||
|
@ -98,10 +98,10 @@ class Product : public ProductImpl<_Lhs,_Rhs,Option,
|
|||||||
&& "if you wanted a coeff-wise or a dot product use the respective explicit functions");
|
&& "if you wanted a coeff-wise or a dot product use the respective explicit functions");
|
||||||
}
|
}
|
||||||
|
|
||||||
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
||||||
Index rows() const EIGEN_NOEXCEPT { return m_lhs.rows(); }
|
Index rows() const { return m_lhs.rows(); }
|
||||||
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
||||||
Index cols() const EIGEN_NOEXCEPT { return m_rhs.cols(); }
|
Index cols() const { return m_rhs.cols(); }
|
||||||
|
|
||||||
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
||||||
const LhsNestedCleaned& lhs() const { return m_lhs; }
|
const LhsNestedCleaned& lhs() const { return m_lhs; }
|
||||||
|
@ -67,12 +67,12 @@ public:
|
|||||||
typedef MapBase<Derived> Base;
|
typedef MapBase<Derived> Base;
|
||||||
EIGEN_DENSE_PUBLIC_INTERFACE(RefBase)
|
EIGEN_DENSE_PUBLIC_INTERFACE(RefBase)
|
||||||
|
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR inline Index innerStride() const
|
EIGEN_DEVICE_FUNC inline Index innerStride() const
|
||||||
{
|
{
|
||||||
return StrideType::InnerStrideAtCompileTime != 0 ? m_stride.inner() : 1;
|
return StrideType::InnerStrideAtCompileTime != 0 ? m_stride.inner() : 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR inline Index outerStride() const
|
EIGEN_DEVICE_FUNC inline Index outerStride() const
|
||||||
{
|
{
|
||||||
return StrideType::OuterStrideAtCompileTime != 0 ? m_stride.outer()
|
return StrideType::OuterStrideAtCompileTime != 0 ? m_stride.outer()
|
||||||
: IsVectorAtCompileTime ? this->size()
|
: IsVectorAtCompileTime ? this->size()
|
||||||
@ -94,13 +94,25 @@ protected:
|
|||||||
typedef Stride<StrideType::OuterStrideAtCompileTime,StrideType::InnerStrideAtCompileTime> StrideBase;
|
typedef Stride<StrideType::OuterStrideAtCompileTime,StrideType::InnerStrideAtCompileTime> StrideBase;
|
||||||
|
|
||||||
// Resolves inner stride if default 0.
|
// Resolves inner stride if default 0.
|
||||||
static EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR Index resolveInnerStride(Index inner) {
|
static EIGEN_DEVICE_FUNC Index resolveInnerStride(Index inner) {
|
||||||
return inner == 0 ? 1 : inner;
|
if (inner == 0) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
return inner;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Resolves outer stride if default 0.
|
// Resolves outer stride if default 0.
|
||||||
static EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR Index resolveOuterStride(Index inner, Index outer, Index rows, Index cols, bool isVectorAtCompileTime, bool isRowMajor) {
|
static EIGEN_DEVICE_FUNC Index resolveOuterStride(Index inner, Index outer, Index rows, Index cols, bool isVectorAtCompileTime, bool isRowMajor) {
|
||||||
return outer == 0 ? isVectorAtCompileTime ? inner * rows * cols : isRowMajor ? inner * cols : inner * rows : outer;
|
if (outer == 0) {
|
||||||
|
if (isVectorAtCompileTime) {
|
||||||
|
outer = inner * rows * cols;
|
||||||
|
} else if (isRowMajor) {
|
||||||
|
outer = inner * cols;
|
||||||
|
} else {
|
||||||
|
outer = inner * rows;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return outer;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Returns true if construction is valid, false if there is a stride mismatch,
|
// Returns true if construction is valid, false if there is a stride mismatch,
|
||||||
|
@ -88,9 +88,9 @@ template<typename MatrixType,int RowFactor,int ColFactor> class Replicate
|
|||||||
THE_MATRIX_OR_EXPRESSION_THAT_YOU_PASSED_DOES_NOT_HAVE_THE_EXPECTED_TYPE)
|
THE_MATRIX_OR_EXPRESSION_THAT_YOU_PASSED_DOES_NOT_HAVE_THE_EXPECTED_TYPE)
|
||||||
}
|
}
|
||||||
|
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC
|
||||||
inline Index rows() const { return m_matrix.rows() * m_rowFactor.value(); }
|
inline Index rows() const { return m_matrix.rows() * m_rowFactor.value(); }
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC
|
||||||
inline Index cols() const { return m_matrix.cols() * m_colFactor.value(); }
|
inline Index cols() const { return m_matrix.cols() * m_colFactor.value(); }
|
||||||
|
|
||||||
EIGEN_DEVICE_FUNC
|
EIGEN_DEVICE_FUNC
|
||||||
|
@ -240,14 +240,14 @@ class ReshapedImpl_dense<XprType, Rows, Cols, Order, true>
|
|||||||
XprType& nestedExpression() { return m_xpr; }
|
XprType& nestedExpression() { return m_xpr; }
|
||||||
|
|
||||||
/** \sa MapBase::innerStride() */
|
/** \sa MapBase::innerStride() */
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC
|
||||||
inline Index innerStride() const
|
inline Index innerStride() const
|
||||||
{
|
{
|
||||||
return m_xpr.innerStride();
|
return m_xpr.innerStride();
|
||||||
}
|
}
|
||||||
|
|
||||||
/** \sa MapBase::outerStride() */
|
/** \sa MapBase::outerStride() */
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC
|
||||||
inline Index outerStride() const
|
inline Index outerStride() const
|
||||||
{
|
{
|
||||||
return ((Flags&RowMajorBit)==RowMajorBit) ? this->cols() : this->rows();
|
return ((Flags&RowMajorBit)==RowMajorBit) ? this->cols() : this->rows();
|
||||||
|
@ -60,10 +60,8 @@ template<typename Derived> class ReturnByValue
|
|||||||
EIGEN_DEVICE_FUNC
|
EIGEN_DEVICE_FUNC
|
||||||
inline void evalTo(Dest& dst) const
|
inline void evalTo(Dest& dst) const
|
||||||
{ static_cast<const Derived*>(this)->evalTo(dst); }
|
{ static_cast<const Derived*>(this)->evalTo(dst); }
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC inline Index rows() const { return static_cast<const Derived*>(this)->rows(); }
|
||||||
inline Index rows() const EIGEN_NOEXCEPT { return static_cast<const Derived*>(this)->rows(); }
|
EIGEN_DEVICE_FUNC inline Index cols() const { return static_cast<const Derived*>(this)->cols(); }
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
|
||||||
inline Index cols() const EIGEN_NOEXCEPT { return static_cast<const Derived*>(this)->cols(); }
|
|
||||||
|
|
||||||
#ifndef EIGEN_PARSED_BY_DOXYGEN
|
#ifndef EIGEN_PARSED_BY_DOXYGEN
|
||||||
#define Unusable YOU_ARE_TRYING_TO_ACCESS_A_SINGLE_COEFFICIENT_IN_A_SPECIAL_EXPRESSION_WHERE_THAT_IS_NOT_ALLOWED_BECAUSE_THAT_WOULD_BE_INEFFICIENT
|
#define Unusable YOU_ARE_TRYING_TO_ACCESS_A_SINGLE_COEFFICIENT_IN_A_SPECIAL_EXPRESSION_WHERE_THAT_IS_NOT_ALLOWED_BECAUSE_THAT_WOULD_BE_INEFFICIENT
|
||||||
|
@ -89,10 +89,8 @@ template<typename MatrixType, int Direction> class Reverse
|
|||||||
|
|
||||||
EIGEN_INHERIT_ASSIGNMENT_OPERATORS(Reverse)
|
EIGEN_INHERIT_ASSIGNMENT_OPERATORS(Reverse)
|
||||||
|
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC inline Index rows() const { return m_matrix.rows(); }
|
||||||
inline Index rows() const EIGEN_NOEXCEPT { return m_matrix.rows(); }
|
EIGEN_DEVICE_FUNC inline Index cols() const { return m_matrix.cols(); }
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
|
||||||
inline Index cols() const EIGEN_NOEXCEPT { return m_matrix.cols(); }
|
|
||||||
|
|
||||||
EIGEN_DEVICE_FUNC inline Index innerStride() const
|
EIGEN_DEVICE_FUNC inline Index innerStride() const
|
||||||
{
|
{
|
||||||
|
@ -67,10 +67,8 @@ class Select : public internal::dense_xpr_base< Select<ConditionMatrixType, Then
|
|||||||
eigen_assert(m_condition.cols() == m_then.cols() && m_condition.cols() == m_else.cols());
|
eigen_assert(m_condition.cols() == m_then.cols() && m_condition.cols() == m_else.cols());
|
||||||
}
|
}
|
||||||
|
|
||||||
inline EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
inline EIGEN_DEVICE_FUNC Index rows() const { return m_condition.rows(); }
|
||||||
Index rows() const EIGEN_NOEXCEPT { return m_condition.rows(); }
|
inline EIGEN_DEVICE_FUNC Index cols() const { return m_condition.cols(); }
|
||||||
inline EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
|
||||||
Index cols() const EIGEN_NOEXCEPT { return m_condition.cols(); }
|
|
||||||
|
|
||||||
inline EIGEN_DEVICE_FUNC
|
inline EIGEN_DEVICE_FUNC
|
||||||
const Scalar coeff(Index i, Index j) const
|
const Scalar coeff(Index i, Index j) const
|
||||||
|
@ -76,14 +76,14 @@ template<typename _MatrixType, unsigned int UpLo> class SelfAdjointView
|
|||||||
EIGEN_STATIC_ASSERT(UpLo==Lower || UpLo==Upper,SELFADJOINTVIEW_ACCEPTS_UPPER_AND_LOWER_MODE_ONLY);
|
EIGEN_STATIC_ASSERT(UpLo==Lower || UpLo==Upper,SELFADJOINTVIEW_ACCEPTS_UPPER_AND_LOWER_MODE_ONLY);
|
||||||
}
|
}
|
||||||
|
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC
|
||||||
inline Index rows() const EIGEN_NOEXCEPT { return m_matrix.rows(); }
|
inline Index rows() const { return m_matrix.rows(); }
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC
|
||||||
inline Index cols() const EIGEN_NOEXCEPT { return m_matrix.cols(); }
|
inline Index cols() const { return m_matrix.cols(); }
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC
|
||||||
inline Index outerStride() const EIGEN_NOEXCEPT { return m_matrix.outerStride(); }
|
inline Index outerStride() const { return m_matrix.outerStride(); }
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC
|
||||||
inline Index innerStride() const EIGEN_NOEXCEPT { return m_matrix.innerStride(); }
|
inline Index innerStride() const { return m_matrix.innerStride(); }
|
||||||
|
|
||||||
/** \sa MatrixBase::coeff()
|
/** \sa MatrixBase::coeff()
|
||||||
* \warning the coordinates must fit into the referenced triangular part
|
* \warning the coordinates must fit into the referenced triangular part
|
||||||
|
@ -69,8 +69,8 @@ public:
|
|||||||
: m_dec(dec), m_rhs(rhs)
|
: m_dec(dec), m_rhs(rhs)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR Index rows() const EIGEN_NOEXCEPT { return m_dec.cols(); }
|
EIGEN_DEVICE_FUNC Index rows() const { return m_dec.cols(); }
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR Index cols() const EIGEN_NOEXCEPT { return m_rhs.cols(); }
|
EIGEN_DEVICE_FUNC Index cols() const { return m_rhs.cols(); }
|
||||||
|
|
||||||
EIGEN_DEVICE_FUNC const Decomposition& dec() const { return m_dec; }
|
EIGEN_DEVICE_FUNC const Decomposition& dec() const { return m_dec; }
|
||||||
EIGEN_DEVICE_FUNC const RhsType& rhs() const { return m_rhs; }
|
EIGEN_DEVICE_FUNC const RhsType& rhs() const { return m_rhs; }
|
||||||
|
@ -213,8 +213,8 @@ template<int Side, typename TriangularType, typename Rhs> struct triangular_solv
|
|||||||
: m_triangularMatrix(tri), m_rhs(rhs)
|
: m_triangularMatrix(tri), m_rhs(rhs)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
inline EIGEN_CONSTEXPR Index rows() const EIGEN_NOEXCEPT { return m_rhs.rows(); }
|
inline Index rows() const { return m_rhs.rows(); }
|
||||||
inline EIGEN_CONSTEXPR Index cols() const EIGEN_NOEXCEPT { return m_rhs.cols(); }
|
inline Index cols() const { return m_rhs.cols(); }
|
||||||
|
|
||||||
template<typename Dest> inline void evalTo(Dest& dst) const
|
template<typename Dest> inline void evalTo(Dest& dst) const
|
||||||
{
|
{
|
||||||
|
@ -78,10 +78,10 @@ class Stride
|
|||||||
{}
|
{}
|
||||||
|
|
||||||
/** \returns the outer stride */
|
/** \returns the outer stride */
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC
|
||||||
inline Index outer() const { return m_outer.value(); }
|
inline Index outer() const { return m_outer.value(); }
|
||||||
/** \returns the inner stride */
|
/** \returns the inner stride */
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC
|
||||||
inline Index inner() const { return m_inner.value(); }
|
inline Index inner() const { return m_inner.value(); }
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
@ -65,10 +65,10 @@ template<typename MatrixType> class Transpose
|
|||||||
|
|
||||||
EIGEN_INHERIT_ASSIGNMENT_OPERATORS(Transpose)
|
EIGEN_INHERIT_ASSIGNMENT_OPERATORS(Transpose)
|
||||||
|
|
||||||
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
||||||
Index rows() const EIGEN_NOEXCEPT { return m_matrix.cols(); }
|
Index rows() const { return m_matrix.cols(); }
|
||||||
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
||||||
Index cols() const EIGEN_NOEXCEPT { return m_matrix.rows(); }
|
Index cols() const { return m_matrix.rows(); }
|
||||||
|
|
||||||
/** \returns the nested expression */
|
/** \returns the nested expression */
|
||||||
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
||||||
|
@ -349,12 +349,12 @@ class Transpose<TranspositionsBase<TranspositionsDerived> >
|
|||||||
|
|
||||||
explicit Transpose(const TranspositionType& t) : m_transpositions(t) {}
|
explicit Transpose(const TranspositionType& t) : m_transpositions(t) {}
|
||||||
|
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC
|
||||||
Index size() const EIGEN_NOEXCEPT { return m_transpositions.size(); }
|
Index size() const { return m_transpositions.size(); }
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC
|
||||||
Index rows() const EIGEN_NOEXCEPT { return m_transpositions.size(); }
|
Index rows() const { return m_transpositions.size(); }
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC
|
||||||
Index cols() const EIGEN_NOEXCEPT { return m_transpositions.size(); }
|
Index cols() const { return m_transpositions.size(); }
|
||||||
|
|
||||||
/** \returns the \a matrix with the inverse transpositions applied to the columns.
|
/** \returns the \a matrix with the inverse transpositions applied to the columns.
|
||||||
*/
|
*/
|
||||||
|
@ -55,14 +55,14 @@ template<typename Derived> class TriangularBase : public EigenBase<Derived>
|
|||||||
EIGEN_DEVICE_FUNC
|
EIGEN_DEVICE_FUNC
|
||||||
inline TriangularBase() { eigen_assert(!((Mode&UnitDiag) && (Mode&ZeroDiag))); }
|
inline TriangularBase() { eigen_assert(!((Mode&UnitDiag) && (Mode&ZeroDiag))); }
|
||||||
|
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC
|
||||||
inline Index rows() const EIGEN_NOEXCEPT { return derived().rows(); }
|
inline Index rows() const { return derived().rows(); }
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC
|
||||||
inline Index cols() const EIGEN_NOEXCEPT { return derived().cols(); }
|
inline Index cols() const { return derived().cols(); }
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC
|
||||||
inline Index outerStride() const EIGEN_NOEXCEPT { return derived().outerStride(); }
|
inline Index outerStride() const { return derived().outerStride(); }
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC
|
||||||
inline Index innerStride() const EIGEN_NOEXCEPT { return derived().innerStride(); }
|
inline Index innerStride() const { return derived().innerStride(); }
|
||||||
|
|
||||||
// dummy resize function
|
// dummy resize function
|
||||||
EIGEN_DEVICE_FUNC
|
EIGEN_DEVICE_FUNC
|
||||||
@ -222,11 +222,11 @@ template<typename _MatrixType, unsigned int _Mode> class TriangularView
|
|||||||
EIGEN_INHERIT_ASSIGNMENT_OPERATORS(TriangularView)
|
EIGEN_INHERIT_ASSIGNMENT_OPERATORS(TriangularView)
|
||||||
|
|
||||||
/** \copydoc EigenBase::rows() */
|
/** \copydoc EigenBase::rows() */
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC
|
||||||
inline Index rows() const EIGEN_NOEXCEPT { return m_matrix.rows(); }
|
inline Index rows() const { return m_matrix.rows(); }
|
||||||
/** \copydoc EigenBase::cols() */
|
/** \copydoc EigenBase::cols() */
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC
|
||||||
inline Index cols() const EIGEN_NOEXCEPT { return m_matrix.cols(); }
|
inline Index cols() const { return m_matrix.cols(); }
|
||||||
|
|
||||||
/** \returns a const reference to the nested expression */
|
/** \returns a const reference to the nested expression */
|
||||||
EIGEN_DEVICE_FUNC
|
EIGEN_DEVICE_FUNC
|
||||||
|
@ -65,10 +65,10 @@ class PartialReduxExpr : public internal::dense_xpr_base< PartialReduxExpr<Matri
|
|||||||
explicit PartialReduxExpr(const MatrixType& mat, const MemberOp& func = MemberOp())
|
explicit PartialReduxExpr(const MatrixType& mat, const MemberOp& func = MemberOp())
|
||||||
: m_matrix(mat), m_functor(func) {}
|
: m_matrix(mat), m_functor(func) {}
|
||||||
|
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC
|
||||||
Index rows() const EIGEN_NOEXCEPT { return (Direction==Vertical ? 1 : m_matrix.rows()); }
|
Index rows() const { return (Direction==Vertical ? 1 : m_matrix.rows()); }
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC
|
||||||
Index cols() const EIGEN_NOEXCEPT { return (Direction==Horizontal ? 1 : m_matrix.cols()); }
|
Index cols() const { return (Direction==Horizontal ? 1 : m_matrix.cols()); }
|
||||||
|
|
||||||
EIGEN_DEVICE_FUNC
|
EIGEN_DEVICE_FUNC
|
||||||
typename MatrixType::Nested nestedExpression() const { return m_matrix; }
|
typename MatrixType::Nested nestedExpression() const { return m_matrix; }
|
||||||
|
@ -79,9 +79,9 @@ public:
|
|||||||
CoeffReadCost = internal::evaluator<XprType>::CoeffReadCost
|
CoeffReadCost = internal::evaluator<XprType>::CoeffReadCost
|
||||||
};
|
};
|
||||||
|
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR Index rows() const EIGEN_NOEXCEPT { return m_xpr.rows(); }
|
EIGEN_DEVICE_FUNC Index rows() const { return m_xpr.rows(); }
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR Index cols() const EIGEN_NOEXCEPT { return m_xpr.cols(); }
|
EIGEN_DEVICE_FUNC Index cols() const { return m_xpr.cols(); }
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR Index size() const EIGEN_NOEXCEPT { return m_xpr.size(); }
|
EIGEN_DEVICE_FUNC Index size() const { return m_xpr.size(); }
|
||||||
|
|
||||||
EIGEN_DEVICE_FUNC CoeffReturnType coeff(Index row, Index col) const
|
EIGEN_DEVICE_FUNC CoeffReturnType coeff(Index row, Index col) const
|
||||||
{ return m_evaluator.coeff(row, col); }
|
{ return m_evaluator.coeff(row, col); }
|
||||||
|
@ -78,7 +78,7 @@ template<typename T, typename EnableIf = void> struct get_compile_time_incr {
|
|||||||
|
|
||||||
// Analogue of std::get<0>(x), but tailored for our needs.
|
// Analogue of std::get<0>(x), but tailored for our needs.
|
||||||
template<typename T>
|
template<typename T>
|
||||||
EIGEN_CONSTEXPR Index first(const T& x) EIGEN_NOEXCEPT { return x.first(); }
|
Index first(const T& x) { return x.first(); }
|
||||||
|
|
||||||
// IndexedViewCompatibleType/makeIndexedViewCompatible turn an arbitrary object of type T into something usable by MatrixSlice
|
// IndexedViewCompatibleType/makeIndexedViewCompatible turn an arbitrary object of type T into something usable by MatrixSlice
|
||||||
// The generic implementation is a no-op
|
// The generic implementation is a no-op
|
||||||
@ -100,8 +100,8 @@ struct SingleRange {
|
|||||||
};
|
};
|
||||||
SingleRange(Index val) : m_value(val) {}
|
SingleRange(Index val) : m_value(val) {}
|
||||||
Index operator[](Index) const { return m_value; }
|
Index operator[](Index) const { return m_value; }
|
||||||
static EIGEN_CONSTEXPR Index size() EIGEN_NOEXCEPT { return 1; }
|
Index size() const { return 1; }
|
||||||
Index first() const EIGEN_NOEXCEPT { return m_value; }
|
Index first() const { return m_value; }
|
||||||
Index m_value;
|
Index m_value;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -141,9 +141,9 @@ template<int XprSize>
|
|||||||
struct AllRange {
|
struct AllRange {
|
||||||
enum { SizeAtCompileTime = XprSize };
|
enum { SizeAtCompileTime = XprSize };
|
||||||
AllRange(Index size = XprSize) : m_size(size) {}
|
AllRange(Index size = XprSize) : m_size(size) {}
|
||||||
EIGEN_CONSTEXPR Index operator[](Index i) const EIGEN_NOEXCEPT { return i; }
|
Index operator[](Index i) const { return i; }
|
||||||
EIGEN_CONSTEXPR Index size() const EIGEN_NOEXCEPT { return m_size.value(); }
|
Index size() const { return m_size.value(); }
|
||||||
EIGEN_CONSTEXPR Index first() const EIGEN_NOEXCEPT { return 0; }
|
Index first() const { return 0; }
|
||||||
variable_if_dynamic<Index,XprSize> m_size;
|
variable_if_dynamic<Index,XprSize> m_size;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -52,7 +52,7 @@ template<int N> class FixedInt
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
static const int value = N;
|
static const int value = N;
|
||||||
EIGEN_CONSTEXPR operator int() const { return value; }
|
operator int() const { return value; }
|
||||||
FixedInt() {}
|
FixedInt() {}
|
||||||
FixedInt( VariableAndFixedInt<N> other) {
|
FixedInt( VariableAndFixedInt<N> other) {
|
||||||
#ifndef EIGEN_INTERNAL_DEBUGGING
|
#ifndef EIGEN_INTERNAL_DEBUGGING
|
||||||
|
@ -286,7 +286,7 @@ namespace device {
|
|||||||
template<typename T> struct numeric_limits
|
template<typename T> struct numeric_limits
|
||||||
{
|
{
|
||||||
EIGEN_DEVICE_FUNC
|
EIGEN_DEVICE_FUNC
|
||||||
static EIGEN_CONSTEXPR T epsilon() { return 0; }
|
static T epsilon() { return 0; }
|
||||||
static T (max)() { assert(false && "Highest not supported for this type"); }
|
static T (max)() { assert(false && "Highest not supported for this type"); }
|
||||||
static T (min)() { assert(false && "Lowest not supported for this type"); }
|
static T (min)() { assert(false && "Lowest not supported for this type"); }
|
||||||
static T infinity() { assert(false && "Infinity not supported for this type"); }
|
static T infinity() { assert(false && "Infinity not supported for this type"); }
|
||||||
@ -294,9 +294,9 @@ template<typename T> struct numeric_limits
|
|||||||
};
|
};
|
||||||
template<> struct numeric_limits<float>
|
template<> struct numeric_limits<float>
|
||||||
{
|
{
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC
|
||||||
static float epsilon() { return __FLT_EPSILON__; }
|
static float epsilon() { return __FLT_EPSILON__; }
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC
|
||||||
static float (max)() {
|
static float (max)() {
|
||||||
#if defined(EIGEN_CUDA_ARCH)
|
#if defined(EIGEN_CUDA_ARCH)
|
||||||
return CUDART_MAX_NORMAL_F;
|
return CUDART_MAX_NORMAL_F;
|
||||||
@ -304,9 +304,9 @@ template<> struct numeric_limits<float>
|
|||||||
return HIPRT_MAX_NORMAL_F;
|
return HIPRT_MAX_NORMAL_F;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC
|
||||||
static float (min)() { return FLT_MIN; }
|
static float (min)() { return FLT_MIN; }
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC
|
||||||
static float infinity() {
|
static float infinity() {
|
||||||
#if defined(EIGEN_CUDA_ARCH)
|
#if defined(EIGEN_CUDA_ARCH)
|
||||||
return CUDART_INF_F;
|
return CUDART_INF_F;
|
||||||
@ -314,7 +314,7 @@ template<> struct numeric_limits<float>
|
|||||||
return HIPRT_INF_F;
|
return HIPRT_INF_F;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC
|
||||||
static float quiet_NaN() {
|
static float quiet_NaN() {
|
||||||
#if defined(EIGEN_CUDA_ARCH)
|
#if defined(EIGEN_CUDA_ARCH)
|
||||||
return CUDART_NAN_F;
|
return CUDART_NAN_F;
|
||||||
@ -325,13 +325,13 @@ template<> struct numeric_limits<float>
|
|||||||
};
|
};
|
||||||
template<> struct numeric_limits<double>
|
template<> struct numeric_limits<double>
|
||||||
{
|
{
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC
|
||||||
static double epsilon() { return __DBL_EPSILON__; }
|
static double epsilon() { return __DBL_EPSILON__; }
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC
|
||||||
static double (max)() { return DBL_MAX; }
|
static double (max)() { return DBL_MAX; }
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC
|
||||||
static double (min)() { return DBL_MIN; }
|
static double (min)() { return DBL_MIN; }
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC
|
||||||
static double infinity() {
|
static double infinity() {
|
||||||
#if defined(EIGEN_CUDA_ARCH)
|
#if defined(EIGEN_CUDA_ARCH)
|
||||||
return CUDART_INF;
|
return CUDART_INF;
|
||||||
@ -339,7 +339,7 @@ template<> struct numeric_limits<double>
|
|||||||
return HIPRT_INF;
|
return HIPRT_INF;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC
|
||||||
static double quiet_NaN() {
|
static double quiet_NaN() {
|
||||||
#if defined(EIGEN_CUDA_ARCH)
|
#if defined(EIGEN_CUDA_ARCH)
|
||||||
return CUDART_NAN;
|
return CUDART_NAN;
|
||||||
@ -350,65 +350,65 @@ template<> struct numeric_limits<double>
|
|||||||
};
|
};
|
||||||
template<> struct numeric_limits<int>
|
template<> struct numeric_limits<int>
|
||||||
{
|
{
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC
|
||||||
static int epsilon() { return 0; }
|
static int epsilon() { return 0; }
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC
|
||||||
static int (max)() { return INT_MAX; }
|
static int (max)() { return INT_MAX; }
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC
|
||||||
static int (min)() { return INT_MIN; }
|
static int (min)() { return INT_MIN; }
|
||||||
};
|
};
|
||||||
template<> struct numeric_limits<unsigned int>
|
template<> struct numeric_limits<unsigned int>
|
||||||
{
|
{
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC
|
||||||
static unsigned int epsilon() { return 0; }
|
static unsigned int epsilon() { return 0; }
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC
|
||||||
static unsigned int (max)() { return UINT_MAX; }
|
static unsigned int (max)() { return UINT_MAX; }
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC
|
||||||
static unsigned int (min)() { return 0; }
|
static unsigned int (min)() { return 0; }
|
||||||
};
|
};
|
||||||
template<> struct numeric_limits<long>
|
template<> struct numeric_limits<long>
|
||||||
{
|
{
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC
|
||||||
static long epsilon() { return 0; }
|
static long epsilon() { return 0; }
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC
|
||||||
static long (max)() { return LONG_MAX; }
|
static long (max)() { return LONG_MAX; }
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC
|
||||||
static long (min)() { return LONG_MIN; }
|
static long (min)() { return LONG_MIN; }
|
||||||
};
|
};
|
||||||
template<> struct numeric_limits<unsigned long>
|
template<> struct numeric_limits<unsigned long>
|
||||||
{
|
{
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC
|
||||||
static unsigned long epsilon() { return 0; }
|
static unsigned long epsilon() { return 0; }
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC
|
||||||
static unsigned long (max)() { return ULONG_MAX; }
|
static unsigned long (max)() { return ULONG_MAX; }
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC
|
||||||
static unsigned long (min)() { return 0; }
|
static unsigned long (min)() { return 0; }
|
||||||
};
|
};
|
||||||
template<> struct numeric_limits<long long>
|
template<> struct numeric_limits<long long>
|
||||||
{
|
{
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC
|
||||||
static long long epsilon() { return 0; }
|
static long long epsilon() { return 0; }
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC
|
||||||
static long long (max)() { return LLONG_MAX; }
|
static long long (max)() { return LLONG_MAX; }
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC
|
||||||
static long long (min)() { return LLONG_MIN; }
|
static long long (min)() { return LLONG_MIN; }
|
||||||
};
|
};
|
||||||
template<> struct numeric_limits<unsigned long long>
|
template<> struct numeric_limits<unsigned long long>
|
||||||
{
|
{
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC
|
||||||
static unsigned long long epsilon() { return 0; }
|
static unsigned long long epsilon() { return 0; }
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC
|
||||||
static unsigned long long (max)() { return ULLONG_MAX; }
|
static unsigned long long (max)() { return ULLONG_MAX; }
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC
|
||||||
static unsigned long long (min)() { return 0; }
|
static unsigned long long (min)() { return 0; }
|
||||||
};
|
};
|
||||||
template<> struct numeric_limits<bool>
|
template<> struct numeric_limits<bool>
|
||||||
{
|
{
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC
|
||||||
static bool epsilon() { return false; }
|
static bool epsilon() { return false; }
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC
|
||||||
static bool (max)() { return true; }
|
static bool (max)() { return true; }
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC
|
||||||
static bool (min)() { return false; }
|
static bool (min)() { return false; }
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -476,10 +476,10 @@ template<typename T, std::size_t N> struct array_size<std::array<T,N> > {
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
template<typename T>
|
template<typename T>
|
||||||
EIGEN_CONSTEXPR Index size(const T& x) { return x.size(); }
|
Index size(const T& x) { return x.size(); }
|
||||||
|
|
||||||
template<typename T,std::size_t N>
|
template<typename T,std::size_t N>
|
||||||
EIGEN_CONSTEXPR Index size(const T (&) [N]) { return N; }
|
Index size(const T (&) [N]) { return N; }
|
||||||
|
|
||||||
/** \internal
|
/** \internal
|
||||||
* Convenient struct to get the result type of a nullary, unary, binary, or
|
* Convenient struct to get the result type of a nullary, unary, binary, or
|
||||||
|
@ -65,7 +65,7 @@ class ValueExpr<internal::FixedInt<N> > {
|
|||||||
public:
|
public:
|
||||||
ValueExpr() {}
|
ValueExpr() {}
|
||||||
template<typename T>
|
template<typename T>
|
||||||
EIGEN_CONSTEXPR Index eval_impl(const T&) const { return N; }
|
Index eval_impl(const T&) const { return N; }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -131,12 +131,9 @@ template<typename T, int Value> class variable_if_dynamic
|
|||||||
public:
|
public:
|
||||||
EIGEN_DEFAULT_EMPTY_CONSTRUCTOR_AND_DESTRUCTOR(variable_if_dynamic)
|
EIGEN_DEFAULT_EMPTY_CONSTRUCTOR_AND_DESTRUCTOR(variable_if_dynamic)
|
||||||
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE explicit variable_if_dynamic(T v) { EIGEN_ONLY_USED_FOR_DEBUG(v); eigen_assert(v == T(Value)); }
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE explicit variable_if_dynamic(T v) { EIGEN_ONLY_USED_FOR_DEBUG(v); eigen_assert(v == T(Value)); }
|
||||||
EIGEN_DEVICE_FUNC static EIGEN_STRONG_INLINE EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC static EIGEN_STRONG_INLINE T value() { return T(Value); }
|
||||||
T value() { return T(Value); }
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE operator T() const { return T(Value); }
|
||||||
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE void setValue(T) {}
|
||||||
operator T() const { return T(Value); }
|
|
||||||
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE EIGEN_CONSTEXPR
|
|
||||||
void setValue(T) {}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
template<typename T> class variable_if_dynamic<T, Dynamic>
|
template<typename T> class variable_if_dynamic<T, Dynamic>
|
||||||
@ -157,10 +154,8 @@ template<typename T, int Value> class variable_if_dynamicindex
|
|||||||
public:
|
public:
|
||||||
EIGEN_EMPTY_STRUCT_CTOR(variable_if_dynamicindex)
|
EIGEN_EMPTY_STRUCT_CTOR(variable_if_dynamicindex)
|
||||||
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE explicit variable_if_dynamicindex(T v) { EIGEN_ONLY_USED_FOR_DEBUG(v); eigen_assert(v == T(Value)); }
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE explicit variable_if_dynamicindex(T v) { EIGEN_ONLY_USED_FOR_DEBUG(v); eigen_assert(v == T(Value)); }
|
||||||
EIGEN_DEVICE_FUNC static EIGEN_STRONG_INLINE EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC static EIGEN_STRONG_INLINE T value() { return T(Value); }
|
||||||
T value() { return T(Value); }
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE void setValue(T) {}
|
||||||
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE EIGEN_CONSTEXPR
|
|
||||||
void setValue(T) {}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
template<typename T> class variable_if_dynamicindex<T, DynamicIndex>
|
template<typename T> class variable_if_dynamicindex<T, DynamicIndex>
|
||||||
|
@ -547,8 +547,8 @@ template<typename MatrixType> struct TridiagonalizationMatrixTReturnType
|
|||||||
result.template diagonal<-1>() = m_matrix.template diagonal<-1>();
|
result.template diagonal<-1>() = m_matrix.template diagonal<-1>();
|
||||||
}
|
}
|
||||||
|
|
||||||
EIGEN_CONSTEXPR Index rows() const EIGEN_NOEXCEPT { return m_matrix.rows(); }
|
Index rows() const { return m_matrix.rows(); }
|
||||||
EIGEN_CONSTEXPR Index cols() const EIGEN_NOEXCEPT { return m_matrix.cols(); }
|
Index cols() const { return m_matrix.cols(); }
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
typename MatrixType::Nested m_matrix;
|
typename MatrixType::Nested m_matrix;
|
||||||
|
@ -72,10 +72,8 @@ template<typename MatrixType,int _Direction> class Homogeneous
|
|||||||
: m_matrix(matrix)
|
: m_matrix(matrix)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC inline Index rows() const { return m_matrix.rows() + (int(Direction)==Vertical ? 1 : 0); }
|
||||||
inline Index rows() const EIGEN_NOEXCEPT { return m_matrix.rows() + (int(Direction)==Vertical ? 1 : 0); }
|
EIGEN_DEVICE_FUNC inline Index cols() const { return m_matrix.cols() + (int(Direction)==Horizontal ? 1 : 0); }
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
|
||||||
inline Index cols() const EIGEN_NOEXCEPT { return m_matrix.cols() + (int(Direction)==Horizontal ? 1 : 0); }
|
|
||||||
|
|
||||||
EIGEN_DEVICE_FUNC const NestedExpression& nestedExpression() const { return m_matrix; }
|
EIGEN_DEVICE_FUNC const NestedExpression& nestedExpression() const { return m_matrix; }
|
||||||
|
|
||||||
@ -264,10 +262,8 @@ struct homogeneous_left_product_impl<Homogeneous<MatrixType,Vertical>,Lhs>
|
|||||||
m_rhs(rhs)
|
m_rhs(rhs)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC inline Index rows() const { return m_lhs.rows(); }
|
||||||
inline Index rows() const EIGEN_NOEXCEPT { return m_lhs.rows(); }
|
EIGEN_DEVICE_FUNC inline Index cols() const { return m_rhs.cols(); }
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
|
||||||
inline Index cols() const EIGEN_NOEXCEPT { return m_rhs.cols(); }
|
|
||||||
|
|
||||||
template<typename Dest> EIGEN_DEVICE_FUNC void evalTo(Dest& dst) const
|
template<typename Dest> EIGEN_DEVICE_FUNC void evalTo(Dest& dst) const
|
||||||
{
|
{
|
||||||
@ -304,8 +300,8 @@ struct homogeneous_right_product_impl<Homogeneous<MatrixType,Horizontal>,Rhs>
|
|||||||
: m_lhs(lhs), m_rhs(rhs)
|
: m_lhs(lhs), m_rhs(rhs)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR inline Index rows() const EIGEN_NOEXCEPT { return m_lhs.rows(); }
|
EIGEN_DEVICE_FUNC inline Index rows() const { return m_lhs.rows(); }
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR inline Index cols() const EIGEN_NOEXCEPT { return m_rhs.cols(); }
|
EIGEN_DEVICE_FUNC inline Index cols() const { return m_rhs.cols(); }
|
||||||
|
|
||||||
template<typename Dest> EIGEN_DEVICE_FUNC void evalTo(Dest& dst) const
|
template<typename Dest> EIGEN_DEVICE_FUNC void evalTo(Dest& dst) const
|
||||||
{
|
{
|
||||||
|
@ -375,8 +375,8 @@ public:
|
|||||||
inline QTransform toQTransform(void) const;
|
inline QTransform toQTransform(void) const;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR Index rows() const EIGEN_NOEXCEPT { return int(Mode)==int(Projective) ? m_matrix.cols() : (m_matrix.cols()-1); }
|
EIGEN_DEVICE_FUNC Index rows() const { return int(Mode)==int(Projective) ? m_matrix.cols() : (m_matrix.cols()-1); }
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR Index cols() const EIGEN_NOEXCEPT { return m_matrix.cols(); }
|
EIGEN_DEVICE_FUNC Index cols() const { return m_matrix.cols(); }
|
||||||
|
|
||||||
/** shortcut for m_matrix(row,col);
|
/** shortcut for m_matrix(row,col);
|
||||||
* \sa MatrixBase::operator(Index,Index) const */
|
* \sa MatrixBase::operator(Index,Index) const */
|
||||||
|
@ -201,15 +201,15 @@ template<typename VectorsType, typename CoeffsType, int Side> class HouseholderS
|
|||||||
* \returns Number of rows
|
* \returns Number of rows
|
||||||
* \details This equals the dimension of the space that the transformation acts on.
|
* \details This equals the dimension of the space that the transformation acts on.
|
||||||
*/
|
*/
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC
|
||||||
Index rows() const EIGEN_NOEXCEPT { return Side==OnTheLeft ? m_vectors.rows() : m_vectors.cols(); }
|
Index rows() const { return Side==OnTheLeft ? m_vectors.rows() : m_vectors.cols(); }
|
||||||
|
|
||||||
/** \brief Number of columns of transformation viewed as a matrix.
|
/** \brief Number of columns of transformation viewed as a matrix.
|
||||||
* \returns Number of columns
|
* \returns Number of columns
|
||||||
* \details This equals the dimension of the space that the transformation acts on.
|
* \details This equals the dimension of the space that the transformation acts on.
|
||||||
*/
|
*/
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC
|
||||||
Index cols() const EIGEN_NOEXCEPT { return rows(); }
|
Index cols() const { return rows(); }
|
||||||
|
|
||||||
/** \brief Essential part of a Householder vector.
|
/** \brief Essential part of a Householder vector.
|
||||||
* \param[in] k Index of Householder reflection
|
* \param[in] k Index of Householder reflection
|
||||||
|
@ -52,8 +52,8 @@ class DiagonalPreconditioner
|
|||||||
compute(mat);
|
compute(mat);
|
||||||
}
|
}
|
||||||
|
|
||||||
EIGEN_CONSTEXPR Index rows() const EIGEN_NOEXCEPT { return m_invdiag.size(); }
|
Index rows() const { return m_invdiag.size(); }
|
||||||
EIGEN_CONSTEXPR Index cols() const EIGEN_NOEXCEPT { return m_invdiag.size(); }
|
Index cols() const { return m_invdiag.size(); }
|
||||||
|
|
||||||
template<typename MatType>
|
template<typename MatType>
|
||||||
DiagonalPreconditioner& analyzePattern(const MatType& )
|
DiagonalPreconditioner& analyzePattern(const MatType& )
|
||||||
|
@ -81,10 +81,10 @@ class IncompleteCholesky : public SparseSolverBase<IncompleteCholesky<Scalar,_Up
|
|||||||
}
|
}
|
||||||
|
|
||||||
/** \returns number of rows of the factored matrix */
|
/** \returns number of rows of the factored matrix */
|
||||||
EIGEN_CONSTEXPR Index rows() const EIGEN_NOEXCEPT { return m_L.rows(); }
|
Index rows() const { return m_L.rows(); }
|
||||||
|
|
||||||
/** \returns number of columns of the factored matrix */
|
/** \returns number of columns of the factored matrix */
|
||||||
EIGEN_CONSTEXPR Index cols() const EIGEN_NOEXCEPT { return m_L.cols(); }
|
Index cols() const { return m_L.cols(); }
|
||||||
|
|
||||||
|
|
||||||
/** \brief Reports whether previous computation was successful.
|
/** \brief Reports whether previous computation was successful.
|
||||||
|
@ -130,9 +130,9 @@ class IncompleteLUT : public SparseSolverBase<IncompleteLUT<_Scalar, _StorageInd
|
|||||||
compute(mat);
|
compute(mat);
|
||||||
}
|
}
|
||||||
|
|
||||||
EIGEN_CONSTEXPR Index rows() const EIGEN_NOEXCEPT { return m_lu.rows(); }
|
Index rows() const { return m_lu.rows(); }
|
||||||
|
|
||||||
EIGEN_CONSTEXPR Index cols() const EIGEN_NOEXCEPT { return m_lu.cols(); }
|
Index cols() const { return m_lu.cols(); }
|
||||||
|
|
||||||
/** \brief Reports whether previous computation was successful.
|
/** \brief Reports whether previous computation was successful.
|
||||||
*
|
*
|
||||||
|
@ -247,10 +247,10 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
/** \internal */
|
/** \internal */
|
||||||
EIGEN_CONSTEXPR Index rows() const EIGEN_NOEXCEPT { return matrix().rows(); }
|
Index rows() const { return matrix().rows(); }
|
||||||
|
|
||||||
/** \internal */
|
/** \internal */
|
||||||
EIGEN_CONSTEXPR Index cols() const EIGEN_NOEXCEPT { return matrix().cols(); }
|
Index cols() const { return matrix().cols(); }
|
||||||
|
|
||||||
/** \returns the tolerance threshold used by the stopping criteria.
|
/** \returns the tolerance threshold used by the stopping criteria.
|
||||||
* \sa setTolerance()
|
* \sa setTolerance()
|
||||||
|
@ -50,10 +50,8 @@ public:
|
|||||||
: m_dec(dec), m_rhs(rhs), m_guess(guess)
|
: m_dec(dec), m_rhs(rhs), m_guess(guess)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC Index rows() const { return m_dec.cols(); }
|
||||||
Index rows() const EIGEN_NOEXCEPT { return m_dec.cols(); }
|
EIGEN_DEVICE_FUNC Index cols() const { return m_rhs.cols(); }
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
|
||||||
Index cols() const EIGEN_NOEXCEPT { return m_rhs.cols(); }
|
|
||||||
|
|
||||||
EIGEN_DEVICE_FUNC const Decomposition& dec() const { return m_dec; }
|
EIGEN_DEVICE_FUNC const Decomposition& dec() const { return m_dec; }
|
||||||
EIGEN_DEVICE_FUNC const RhsType& rhs() const { return m_rhs; }
|
EIGEN_DEVICE_FUNC const RhsType& rhs() const { return m_rhs; }
|
||||||
|
@ -101,8 +101,8 @@ class KLU : public SparseSolverBase<KLU<_MatrixType> >
|
|||||||
if(m_numeric) klu_free_numeric(&m_numeric,&m_common);
|
if(m_numeric) klu_free_numeric(&m_numeric,&m_common);
|
||||||
}
|
}
|
||||||
|
|
||||||
EIGEN_CONSTEXPR inline Index rows() const EIGEN_NOEXCEPT { return mp_matrix.rows(); }
|
inline Index rows() const { return mp_matrix.rows(); }
|
||||||
EIGEN_CONSTEXPR inline Index cols() const EIGEN_NOEXCEPT { return mp_matrix.cols(); }
|
inline Index cols() const { return mp_matrix.cols(); }
|
||||||
|
|
||||||
/** \brief Reports whether previous computation was successful.
|
/** \brief Reports whether previous computation was successful.
|
||||||
*
|
*
|
||||||
|
@ -404,10 +404,8 @@ template<typename _MatrixType> class FullPivLU
|
|||||||
|
|
||||||
MatrixType reconstructedMatrix() const;
|
MatrixType reconstructedMatrix() const;
|
||||||
|
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC inline Index rows() const { return m_lu.rows(); }
|
||||||
inline Index rows() const EIGEN_NOEXCEPT { return m_lu.rows(); }
|
EIGEN_DEVICE_FUNC inline Index cols() const { return m_lu.cols(); }
|
||||||
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
|
||||||
inline Index cols() const EIGEN_NOEXCEPT { return m_lu.cols(); }
|
|
||||||
|
|
||||||
#ifndef EIGEN_PARSED_BY_DOXYGEN
|
#ifndef EIGEN_PARSED_BY_DOXYGEN
|
||||||
template<typename RhsType, typename DstType>
|
template<typename RhsType, typename DstType>
|
||||||
|
@ -216,8 +216,8 @@ template<typename _MatrixType> class PartialPivLU
|
|||||||
|
|
||||||
MatrixType reconstructedMatrix() const;
|
MatrixType reconstructedMatrix() const;
|
||||||
|
|
||||||
EIGEN_CONSTEXPR inline Index rows() const EIGEN_NOEXCEPT { return m_lu.rows(); }
|
inline Index rows() const { return m_lu.rows(); }
|
||||||
EIGEN_CONSTEXPR inline Index cols() const EIGEN_NOEXCEPT { return m_lu.cols(); }
|
inline Index cols() const { return m_lu.cols(); }
|
||||||
|
|
||||||
#ifndef EIGEN_PARSED_BY_DOXYGEN
|
#ifndef EIGEN_PARSED_BY_DOXYGEN
|
||||||
template<typename RhsType, typename DstType>
|
template<typename RhsType, typename DstType>
|
||||||
|
@ -1437,6 +1437,7 @@ subVector(Index i) const
|
|||||||
* \sa subVector(Index)
|
* \sa subVector(Index)
|
||||||
*/
|
*/
|
||||||
template<DirectionType Direction>
|
template<DirectionType Direction>
|
||||||
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE EIGEN_CONSTEXPR
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
||||||
Index subVectors() const
|
Index subVectors() const
|
||||||
{ return (Direction==Vertical)?cols():rows(); }
|
{ return (Direction==Vertical)?cols():rows(); }
|
||||||
|
|
||||||
|
@ -102,18 +102,18 @@ public:
|
|||||||
#endif // not EIGEN_PARSED_BY_DOXYGEN
|
#endif // not EIGEN_PARSED_BY_DOXYGEN
|
||||||
|
|
||||||
/** \returns the number of rows. \sa cols(), RowsAtCompileTime */
|
/** \returns the number of rows. \sa cols(), RowsAtCompileTime */
|
||||||
inline EIGEN_CONSTEXPR Index rows() const EIGEN_NOEXCEPT {
|
inline Index rows() const {
|
||||||
return derived().rows();
|
return derived().rows();
|
||||||
}
|
}
|
||||||
|
|
||||||
/** \returns the number of columns. \sa rows(), ColsAtCompileTime*/
|
/** \returns the number of columns. \sa rows(), ColsAtCompileTime*/
|
||||||
inline EIGEN_CONSTEXPR Index cols() const EIGEN_NOEXCEPT {
|
inline Index cols() const {
|
||||||
return derived().cols();
|
return derived().cols();
|
||||||
}
|
}
|
||||||
|
|
||||||
/** \returns the number of coefficients, which is \a rows()*cols().
|
/** \returns the number of coefficients, which is \a rows()*cols().
|
||||||
* \sa rows(), cols(), SizeAtCompileTime. */
|
* \sa rows(), cols(), SizeAtCompileTime. */
|
||||||
inline EIGEN_CONSTEXPR Index size() const EIGEN_NOEXCEPT {
|
inline Index size() const {
|
||||||
return rows() * cols();
|
return rows() * cols();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user