aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen/src/Core/Zero.h
diff options
context:
space:
mode:
Diffstat (limited to 'Eigen/src/Core/Zero.h')
-rw-r--r--Eigen/src/Core/Zero.h31
1 files changed, 16 insertions, 15 deletions
diff --git a/Eigen/src/Core/Zero.h b/Eigen/src/Core/Zero.h
index 92fb36edd..7848bb048 100644
--- a/Eigen/src/Core/Zero.h
+++ b/Eigen/src/Core/Zero.h
@@ -33,25 +33,25 @@
* MatrixBase::setZero(), MatrixBase::isZero()
*/
template<typename MatrixType>
-struct Scalar<Zero<MatrixType> >
-{ typedef typename Scalar<MatrixType>::Type Type; };
+struct ei_traits<Zero<MatrixType> >
+{
+ typedef typename MatrixType::Scalar Scalar;
+ enum {
+ RowsAtCompileTime = MatrixType::RowsAtCompileTime,
+ ColsAtCompileTime = MatrixType::ColsAtCompileTime,
+ MaxRowsAtCompileTime = MatrixType::MaxRowsAtCompileTime,
+ MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime
+ };
+};
template<typename MatrixType> class Zero : NoOperatorEquals,
public MatrixBase<Zero<MatrixType> >
{
public:
- typedef typename Scalar<MatrixType>::Type Scalar;
- friend class MatrixBase<Zero>;
- friend class MatrixBase<Zero>::Traits;
- typedef MatrixBase<Zero> Base;
+
+ EIGEN_BASIC_PUBLIC_INTERFACE(Zero)
private:
- enum {
- RowsAtCompileTime = MatrixType::Traits::RowsAtCompileTime,
- ColsAtCompileTime = MatrixType::Traits::ColsAtCompileTime,
- MaxRowsAtCompileTime = MatrixType::Traits::MaxRowsAtCompileTime,
- MaxColsAtCompileTime = MatrixType::Traits::MaxColsAtCompileTime
- };
const Zero& _asArg() const { return *this; }
int _rows() const { return m_rows.value(); }
@@ -63,6 +63,7 @@ template<typename MatrixType> class Zero : NoOperatorEquals,
}
public:
+
Zero(int rows, int cols) : m_rows(rows), m_cols(cols)
{
assert(rows > 0
@@ -115,8 +116,8 @@ const Zero<Derived> MatrixBase<Derived>::zero(int rows, int cols)
template<typename Derived>
const Zero<Derived> MatrixBase<Derived>::zero(int size)
{
- assert(Traits::IsVectorAtCompileTime);
- if(Traits::RowsAtCompileTime == 1) return Zero<Derived>(1, size);
+ assert(IsVectorAtCompileTime);
+ if(RowsAtCompileTime == 1) return Zero<Derived>(1, size);
else return Zero<Derived>(size, 1);
}
@@ -133,7 +134,7 @@ const Zero<Derived> MatrixBase<Derived>::zero(int size)
template<typename Derived>
const Zero<Derived> MatrixBase<Derived>::zero()
{
- return Zero<Derived>(Traits::RowsAtCompileTime, Traits::ColsAtCompileTime);
+ return Zero<Derived>(RowsAtCompileTime, ColsAtCompileTime);
}
/** \returns true if *this is approximately equal to the zero matrix,