aboutsummaryrefslogtreecommitdiffhomepage
path: root/third_party/eigen3/Eigen/src/Core/Select.h
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/eigen3/Eigen/src/Core/Select.h')
-rw-r--r--third_party/eigen3/Eigen/src/Core/Select.h162
1 files changed, 0 insertions, 162 deletions
diff --git a/third_party/eigen3/Eigen/src/Core/Select.h b/third_party/eigen3/Eigen/src/Core/Select.h
deleted file mode 100644
index 87993bbb55..0000000000
--- a/third_party/eigen3/Eigen/src/Core/Select.h
+++ /dev/null
@@ -1,162 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2008-2010 Gael Guennebaud <gael.guennebaud@inria.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_SELECT_H
-#define EIGEN_SELECT_H
-
-namespace Eigen {
-
-/** \class Select
- * \ingroup Core_Module
- *
- * \brief Expression of a coefficient wise version of the C++ ternary operator ?:
- *
- * \param ConditionMatrixType the type of the \em condition expression which must be a boolean matrix
- * \param ThenMatrixType the type of the \em then expression
- * \param ElseMatrixType the type of the \em else expression
- *
- * This class represents an expression of a coefficient wise version of the C++ ternary operator ?:.
- * It is the return type of DenseBase::select() and most of the time this is the only way it is used.
- *
- * \sa DenseBase::select(const DenseBase<ThenDerived>&, const DenseBase<ElseDerived>&) const
- */
-
-namespace internal {
-template<typename ConditionMatrixType, typename ThenMatrixType, typename ElseMatrixType>
-struct traits<Select<ConditionMatrixType, ThenMatrixType, ElseMatrixType> >
- : traits<ThenMatrixType>
-{
- typedef typename traits<ThenMatrixType>::Scalar Scalar;
- typedef Dense StorageKind;
- typedef typename traits<ThenMatrixType>::XprKind XprKind;
- typedef typename ConditionMatrixType::Nested ConditionMatrixNested;
- typedef typename ThenMatrixType::Nested ThenMatrixNested;
- typedef typename ElseMatrixType::Nested ElseMatrixNested;
- enum {
- RowsAtCompileTime = ConditionMatrixType::RowsAtCompileTime,
- ColsAtCompileTime = ConditionMatrixType::ColsAtCompileTime,
- MaxRowsAtCompileTime = ConditionMatrixType::MaxRowsAtCompileTime,
- MaxColsAtCompileTime = ConditionMatrixType::MaxColsAtCompileTime,
- Flags = (unsigned int)ThenMatrixType::Flags & ElseMatrixType::Flags & HereditaryBits,
- CoeffReadCost = traits<typename remove_all<ConditionMatrixNested>::type>::CoeffReadCost
- + EIGEN_SIZE_MAX(traits<typename remove_all<ThenMatrixNested>::type>::CoeffReadCost,
- traits<typename remove_all<ElseMatrixNested>::type>::CoeffReadCost)
- };
-};
-}
-
-template<typename ConditionMatrixType, typename ThenMatrixType, typename ElseMatrixType>
-class Select : internal::no_assignment_operator,
- public internal::dense_xpr_base< Select<ConditionMatrixType, ThenMatrixType, ElseMatrixType> >::type
-{
- public:
-
- typedef typename internal::dense_xpr_base<Select>::type Base;
- EIGEN_DENSE_PUBLIC_INTERFACE(Select)
-
- Select(const ConditionMatrixType& a_conditionMatrix,
- const ThenMatrixType& a_thenMatrix,
- const ElseMatrixType& a_elseMatrix)
- : m_condition(a_conditionMatrix), m_then(a_thenMatrix), m_else(a_elseMatrix)
- {
- eigen_assert(m_condition.rows() == m_then.rows() && m_condition.rows() == m_else.rows());
- eigen_assert(m_condition.cols() == m_then.cols() && m_condition.cols() == m_else.cols());
- }
-
- Index rows() const { return m_condition.rows(); }
- Index cols() const { return m_condition.cols(); }
-
- const Scalar coeff(Index i, Index j) const
- {
- if (m_condition.coeff(i,j))
- return m_then.coeff(i,j);
- else
- return m_else.coeff(i,j);
- }
-
- const Scalar coeff(Index i) const
- {
- if (m_condition.coeff(i))
- return m_then.coeff(i);
- else
- return m_else.coeff(i);
- }
-
- const ConditionMatrixType& conditionMatrix() const
- {
- return m_condition;
- }
-
- const ThenMatrixType& thenMatrix() const
- {
- return m_then;
- }
-
- const ElseMatrixType& elseMatrix() const
- {
- return m_else;
- }
-
- protected:
- typename ConditionMatrixType::Nested m_condition;
- typename ThenMatrixType::Nested m_then;
- typename ElseMatrixType::Nested m_else;
-};
-
-
-/** \returns a matrix where each coefficient (i,j) is equal to \a thenMatrix(i,j)
- * if \c *this(i,j), and \a elseMatrix(i,j) otherwise.
- *
- * Example: \include MatrixBase_select.cpp
- * Output: \verbinclude MatrixBase_select.out
- *
- * \sa class Select
- */
-template<typename Derived>
-template<typename ThenDerived,typename ElseDerived>
-inline const Select<Derived,ThenDerived,ElseDerived>
-DenseBase<Derived>::select(const DenseBase<ThenDerived>& thenMatrix,
- const DenseBase<ElseDerived>& elseMatrix) const
-{
- return Select<Derived,ThenDerived,ElseDerived>(derived(), thenMatrix.derived(), elseMatrix.derived());
-}
-
-/** Version of DenseBase::select(const DenseBase&, const DenseBase&) with
- * the \em else expression being a scalar value.
- *
- * \sa DenseBase::select(const DenseBase<ThenDerived>&, const DenseBase<ElseDerived>&) const, class Select
- */
-template<typename Derived>
-template<typename ThenDerived>
-inline const Select<Derived,ThenDerived, typename ThenDerived::ConstantReturnType>
-DenseBase<Derived>::select(const DenseBase<ThenDerived>& thenMatrix,
- const typename ThenDerived::Scalar& elseScalar) const
-{
- return Select<Derived,ThenDerived,typename ThenDerived::ConstantReturnType>(
- derived(), thenMatrix.derived(), ThenDerived::Constant(rows(),cols(),elseScalar));
-}
-
-/** Version of DenseBase::select(const DenseBase&, const DenseBase&) with
- * the \em then expression being a scalar value.
- *
- * \sa DenseBase::select(const DenseBase<ThenDerived>&, const DenseBase<ElseDerived>&) const, class Select
- */
-template<typename Derived>
-template<typename ElseDerived>
-inline const Select<Derived, typename ElseDerived::ConstantReturnType, ElseDerived >
-DenseBase<Derived>::select(const typename ElseDerived::Scalar& thenScalar,
- const DenseBase<ElseDerived>& elseMatrix) const
-{
- return Select<Derived,typename ElseDerived::ConstantReturnType,ElseDerived>(
- derived(), ElseDerived::Constant(rows(),cols(),thenScalar), elseMatrix.derived());
-}
-
-} // end namespace Eigen
-
-#endif // EIGEN_SELECT_H