diff --git a/Eigen/src/Core/CoreEvaluators.h b/Eigen/src/Core/CoreEvaluators.h index 850877079..a1193019f 100644 --- a/Eigen/src/Core/CoreEvaluators.h +++ b/Eigen/src/Core/CoreEvaluators.h @@ -28,13 +28,9 @@ struct storage_kind_to_evaluator_kind { // It can be Dense, Sparse, Triangular, Diagonal, SelfAdjoint, Band, etc. template struct storage_kind_to_shape; - -template<> struct storage_kind_to_shape { typedef DenseShape Shape; }; - - -// FIXME Is this necessary? And why was it not before refactoring??? -template<> struct storage_kind_to_shape { typedef PermutationShape Shape; }; - +template<> struct storage_kind_to_shape { typedef DenseShape Shape; }; +template<> struct storage_kind_to_shape { typedef PermutationShape Shape; }; +template<> struct storage_kind_to_shape { typedef TranspositionsShape Shape; }; // Evaluators have to be specialized with respect to various criteria such as: // - storage/structure/shape diff --git a/Eigen/src/Core/PermutationMatrix.h b/Eigen/src/Core/PermutationMatrix.h index e8236cbd7..8cf989f2c 100644 --- a/Eigen/src/Core/PermutationMatrix.h +++ b/Eigen/src/Core/PermutationMatrix.h @@ -648,32 +648,6 @@ const PermutationWrapper MatrixBase::asPermutation() con } namespace internal { - -// TODO currently a permutation matrix expression has the form PermutationMatrix or PermutationWrapper -// or their transpose; in the future shape should be defined by the expression traits -template -struct evaluator_traits > -{ - typedef typename storage_kind_to_evaluator_kind::Kind Kind; - typedef PermutationShape Shape; - static const int AssumeAliasing = 0; -}; - -template -struct evaluator_traits > -{ - typedef typename storage_kind_to_evaluator_kind::Kind Kind; - typedef PermutationShape Shape; - static const int AssumeAliasing = 0; -}; - -template -struct evaluator_traits > > -{ - typedef typename storage_kind_to_evaluator_kind::Kind Kind; - typedef PermutationShape Shape; - static const int AssumeAliasing = 0; -}; template<> struct AssignmentKind { typedef EigenBase2EigenBase Kind; }; diff --git a/Eigen/src/Core/Transpositions.h b/Eigen/src/Core/Transpositions.h index 65447745f..0296882f6 100644 --- a/Eigen/src/Core/Transpositions.h +++ b/Eigen/src/Core/Transpositions.h @@ -402,36 +402,6 @@ class Transpose > const TranspositionType& m_transpositions; }; -namespace internal { - -// TODO currently a Transpositions expression has the form Transpositions or TranspositionsWrapper -// or their transpose; in the future shape should be defined by the expression traits -template -struct evaluator_traits > -{ - typedef typename storage_kind_to_evaluator_kind::Kind Kind; - typedef TranspositionsShape Shape; - static const int AssumeAliasing = 0; -}; - -template -struct evaluator_traits > -{ - typedef typename storage_kind_to_evaluator_kind::Kind Kind; - typedef TranspositionsShape Shape; - static const int AssumeAliasing = 0; -}; - -template -struct evaluator_traits > > -{ - typedef typename storage_kind_to_evaluator_kind::Kind Kind; - typedef TranspositionsShape Shape; - static const int AssumeAliasing = 0; -}; - -} // end namespace internal - } // end namespace Eigen #endif // EIGEN_TRANSPOSITIONS_H