aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen/src/Core/DiagonalMatrix.h
diff options
context:
space:
mode:
Diffstat (limited to 'Eigen/src/Core/DiagonalMatrix.h')
-rw-r--r--Eigen/src/Core/DiagonalMatrix.h27
1 files changed, 14 insertions, 13 deletions
diff --git a/Eigen/src/Core/DiagonalMatrix.h b/Eigen/src/Core/DiagonalMatrix.h
index 6b4e0b17a..e27d2c366 100644
--- a/Eigen/src/Core/DiagonalMatrix.h
+++ b/Eigen/src/Core/DiagonalMatrix.h
@@ -39,33 +39,34 @@
* \sa MatrixBase::diagonal(const OtherDerived&)
*/
template<typename CoeffsVectorType>
-struct Scalar<DiagonalMatrix<CoeffsVectorType> >
-{ typedef typename Scalar<CoeffsVectorType>::Type Type; };
+struct ei_traits<DiagonalMatrix<CoeffsVectorType> >
+{
+ typedef typename CoeffsVectorType::Scalar Scalar;
+ enum {
+ RowsAtCompileTime = CoeffsVectorType::SizeAtCompileTime,
+ ColsAtCompileTime = CoeffsVectorType::SizeAtCompileTime,
+ MaxRowsAtCompileTime = CoeffsVectorType::MaxSizeAtCompileTime,
+ MaxColsAtCompileTime = CoeffsVectorType::MaxSizeAtCompileTime
+ };
+};
template<typename CoeffsVectorType>
class DiagonalMatrix : NoOperatorEquals,
public MatrixBase<DiagonalMatrix<CoeffsVectorType> >
{
public:
- typedef typename Scalar<CoeffsVectorType>::Type Scalar;
+
+ EIGEN_BASIC_PUBLIC_INTERFACE(DiagonalMatrix)
+
typedef typename CoeffsVectorType::AsArg CoeffsVecRef;
- friend class MatrixBase<DiagonalMatrix>;
- friend class MatrixBase<DiagonalMatrix>::Traits;
- typedef MatrixBase<DiagonalMatrix> Base;
DiagonalMatrix(const CoeffsVecRef& coeffs) : m_coeffs(coeffs)
{
- assert(CoeffsVectorType::Traits::IsVectorAtCompileTime
+ assert(CoeffsVectorType::IsVectorAtCompileTime
&& coeffs.size() > 0);
}
private:
- enum {
- RowsAtCompileTime = CoeffsVectorType::Traits::SizeAtCompileTime,
- ColsAtCompileTime = CoeffsVectorType::Traits::SizeAtCompileTime,
- MaxRowsAtCompileTime = CoeffsVectorType::Traits::MaxSizeAtCompileTime,
- MaxColsAtCompileTime = CoeffsVectorType::Traits::MaxSizeAtCompileTime
- };
const DiagonalMatrix& _asArg() const { return *this; }
int _rows() const { return m_coeffs.size(); }