aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen/src/Array/ArrayWrapper.h
diff options
context:
space:
mode:
authorGravatar Gael Guennebaud <g.gael@free.fr>2010-06-19 23:36:38 +0200
committerGravatar Gael Guennebaud <g.gael@free.fr>2010-06-19 23:36:38 +0200
commit7fd8418b199cda8b7facb37fccbe871375c5b6d2 (patch)
tree215d97917637683c78efb23dfa604687fb037f5e /Eigen/src/Array/ArrayWrapper.h
parent575ac5409c6f6a9af219cdff3374c40e8a2a120d (diff)
finish to merge Array into Core:
- mv Array/* into Core/ - merge Functors.h files, and move Norms.h into Dot.h
Diffstat (limited to 'Eigen/src/Array/ArrayWrapper.h')
-rw-r--r--Eigen/src/Array/ArrayWrapper.h194
1 files changed, 0 insertions, 194 deletions
diff --git a/Eigen/src/Array/ArrayWrapper.h b/Eigen/src/Array/ArrayWrapper.h
deleted file mode 100644
index 98d388d67..000000000
--- a/Eigen/src/Array/ArrayWrapper.h
+++ /dev/null
@@ -1,194 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2009-2010 Gael Guennebaud <g.gael@free.fr>
-//
-// Eigen is free software; you can redistribute it and/or
-// modify it under the terms of the GNU Lesser General Public
-// License as published by the Free Software Foundation; either
-// version 3 of the License, or (at your option) any later version.
-//
-// Alternatively, you can redistribute it and/or
-// modify it under the terms of the GNU General Public License as
-// published by the Free Software Foundation; either version 2 of
-// the License, or (at your option) any later version.
-//
-// Eigen is distributed in the hope that it will be useful, but WITHOUT ANY
-// WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-// FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License or the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU Lesser General Public
-// License and a copy of the GNU General Public License along with
-// Eigen. If not, see <http://www.gnu.org/licenses/>.
-
-#ifndef EIGEN_ARRAYWRAPPER_H
-#define EIGEN_ARRAYWRAPPER_H
-
-/** \class ArrayWrapper
- *
- * \brief Expression of a mathematical vector or matrix as an array object
- *
- * This class is the return type of MatrixBase::array(), and most of the time
- * this is the only way it is use.
- *
- * \sa MatrixBase::array(), class MatrixWrapper
- */
-template<typename ExpressionType>
-struct ei_traits<ArrayWrapper<ExpressionType> >
- : public ei_traits<typename ei_cleantype<typename ExpressionType::Nested>::type >
-{
- typedef ArrayXpr XprKind;
-};
-
-template<typename ExpressionType>
-class ArrayWrapper : public ArrayBase<ArrayWrapper<ExpressionType> >
-{
- public:
- typedef ArrayBase<ArrayWrapper> Base;
- EIGEN_DENSE_PUBLIC_INTERFACE(ArrayWrapper)
- EIGEN_INHERIT_ASSIGNMENT_OPERATORS(ArrayWrapper)
-
- typedef typename ei_nested<ExpressionType>::type NestedExpressionType;
-
- inline ArrayWrapper(const ExpressionType& matrix) : m_expression(matrix) {}
-
- inline Index rows() const { return m_expression.rows(); }
- inline Index cols() const { return m_expression.cols(); }
- inline Index outerStride() const { return m_expression.outerStride(); }
- inline Index innerStride() const { return m_expression.innerStride(); }
-
- inline const CoeffReturnType coeff(Index row, Index col) const
- {
- return m_expression.coeff(row, col);
- }
-
- inline Scalar& coeffRef(Index row, Index col)
- {
- return m_expression.const_cast_derived().coeffRef(row, col);
- }
-
- inline const CoeffReturnType coeff(Index index) const
- {
- return m_expression.coeff(index);
- }
-
- inline Scalar& coeffRef(Index index)
- {
- return m_expression.const_cast_derived().coeffRef(index);
- }
-
- template<int LoadMode>
- inline const PacketScalar packet(Index row, Index col) const
- {
- return m_expression.template packet<LoadMode>(row, col);
- }
-
- template<int LoadMode>
- inline void writePacket(Index row, Index col, const PacketScalar& x)
- {
- m_expression.const_cast_derived().template writePacket<LoadMode>(row, col, x);
- }
-
- template<int LoadMode>
- inline const PacketScalar packet(Index index) const
- {
- return m_expression.template packet<LoadMode>(index);
- }
-
- template<int LoadMode>
- inline void writePacket(Index index, const PacketScalar& x)
- {
- m_expression.const_cast_derived().template writePacket<LoadMode>(index, x);
- }
-
- template<typename Dest>
- inline void evalTo(Dest& dst) const { dst = m_expression; }
-
- protected:
- const NestedExpressionType m_expression;
-};
-
-/** \class MatrixWrapper
- *
- * \brief Expression of an array as a mathematical vector or matrix
- *
- * This class is the return type of ArrayBase::matrix(), and most of the time
- * this is the only way it is use.
- *
- * \sa MatrixBase::matrix(), class ArrayWrapper
- */
-
-template<typename ExpressionType>
-struct ei_traits<MatrixWrapper<ExpressionType> >
- : public ei_traits<typename ei_cleantype<typename ExpressionType::Nested>::type >
-{
- typedef MatrixXpr XprKind;
-};
-
-template<typename ExpressionType>
-class MatrixWrapper : public MatrixBase<MatrixWrapper<ExpressionType> >
-{
- public:
- typedef MatrixBase<MatrixWrapper<ExpressionType> > Base;
- EIGEN_DENSE_PUBLIC_INTERFACE(MatrixWrapper)
- EIGEN_INHERIT_ASSIGNMENT_OPERATORS(MatrixWrapper)
-
- typedef typename ei_nested<ExpressionType>::type NestedExpressionType;
-
- inline MatrixWrapper(const ExpressionType& matrix) : m_expression(matrix) {}
-
- inline Index rows() const { return m_expression.rows(); }
- inline Index cols() const { return m_expression.cols(); }
- inline Index outerStride() const { return m_expression.outerStride(); }
- inline Index innerStride() const { return m_expression.innerStride(); }
-
- inline const CoeffReturnType coeff(Index row, Index col) const
- {
- return m_expression.coeff(row, col);
- }
-
- inline Scalar& coeffRef(Index row, Index col)
- {
- return m_expression.const_cast_derived().coeffRef(row, col);
- }
-
- inline const CoeffReturnType coeff(Index index) const
- {
- return m_expression.coeff(index);
- }
-
- inline Scalar& coeffRef(Index index)
- {
- return m_expression.const_cast_derived().coeffRef(index);
- }
-
- template<int LoadMode>
- inline const PacketScalar packet(Index row, Index col) const
- {
- return m_expression.template packet<LoadMode>(row, col);
- }
-
- template<int LoadMode>
- inline void writePacket(Index row, Index col, const PacketScalar& x)
- {
- m_expression.const_cast_derived().template writePacket<LoadMode>(row, col, x);
- }
-
- template<int LoadMode>
- inline const PacketScalar packet(Index index) const
- {
- return m_expression.template packet<LoadMode>(index);
- }
-
- template<int LoadMode>
- inline void writePacket(Index index, const PacketScalar& x)
- {
- m_expression.const_cast_derived().template writePacket<LoadMode>(index, x);
- }
-
- protected:
- const NestedExpressionType m_expression;
-};
-
-#endif // EIGEN_ARRAYWRAPPER_H