aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen/src/Core/util/Meta.h
diff options
context:
space:
mode:
authorGravatar Gael Guennebaud <g.gael@free.fr>2009-07-04 11:16:27 +0200
committerGravatar Gael Guennebaud <g.gael@free.fr>2009-07-04 11:16:27 +0200
commit08e419dcb151da41f169304f751e5467cf0c7b4a (patch)
treea034ebfc0ee08790f5c7b52919733ba7b2ea9840 /Eigen/src/Core/util/Meta.h
parent2de9b7f537057101f9684370004156425a24032e (diff)
* update sparse module wrt new diagonal matrix impl
* fix a bug is SparseMatrix
Diffstat (limited to 'Eigen/src/Core/util/Meta.h')
-rw-r--r--Eigen/src/Core/util/Meta.h12
1 files changed, 11 insertions, 1 deletions
diff --git a/Eigen/src/Core/util/Meta.h b/Eigen/src/Core/util/Meta.h
index 7552dd70c..2f5363275 100644
--- a/Eigen/src/Core/util/Meta.h
+++ b/Eigen/src/Core/util/Meta.h
@@ -1,7 +1,7 @@
// This file is part of Eigen, a lightweight C++ template library
// for linear algebra.
//
-// Copyright (C) 2008 Gael Guennebaud <g.gael@free.fr>
+// Copyright (C) 2008-2009 Gael Guennebaud <g.gael@free.fr>
// Copyright (C) 2006-2008 Benoit Jacob <jacob.benoit.1@gmail.com>
//
// Eigen is free software; you can redistribute it and/or
@@ -186,6 +186,16 @@ struct ei_result_of<ei_scalar_product_op<Scalar>(ArgType0,ArgType1)> {
typedef typename ei_scalar_product_traits<typename ei_cleantype<ArgType0>::type, typename ei_cleantype<ArgType1>::type>::ReturnType type;
};
+template<typename T> struct ei_is_diagonal
+{ enum { ret = false }; };
+template<typename T> struct ei_is_diagonal<DiagonalBase<T> >
+{ enum { ret = true }; };
+
+template<typename T> struct ei_is_diagonal<DiagonalWrapper<T> >
+{ enum { ret = true }; };
+
+template<typename T, int S> struct ei_is_diagonal<DiagonalMatrix<T,S> >
+{ enum { ret = true }; };
#endif // EIGEN_META_H