summaryrefslogtreecommitdiffhomepage
path: root/eigen/unsupported/Eigen/src/Skyline/SkylineMatrixBase.h
diff options
context:
space:
mode:
Diffstat (limited to 'eigen/unsupported/Eigen/src/Skyline/SkylineMatrixBase.h')
-rw-r--r--eigen/unsupported/Eigen/src/Skyline/SkylineMatrixBase.h212
1 files changed, 0 insertions, 212 deletions
diff --git a/eigen/unsupported/Eigen/src/Skyline/SkylineMatrixBase.h b/eigen/unsupported/Eigen/src/Skyline/SkylineMatrixBase.h
deleted file mode 100644
index b3a2372..0000000
--- a/eigen/unsupported/Eigen/src/Skyline/SkylineMatrixBase.h
+++ /dev/null
@@ -1,212 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2008-2009 Guillaume Saupin <guillaume.saupin@cea.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_SKYLINEMATRIXBASE_H
-#define EIGEN_SKYLINEMATRIXBASE_H
-
-#include "SkylineUtil.h"
-
-namespace Eigen {
-
-/** \ingroup Skyline_Module
- *
- * \class SkylineMatrixBase
- *
- * \brief Base class of any skyline matrices or skyline expressions
- *
- * \param Derived
- *
- */
-template<typename Derived> class SkylineMatrixBase : public EigenBase<Derived> {
-public:
-
- typedef typename internal::traits<Derived>::Scalar Scalar;
- typedef typename internal::traits<Derived>::StorageKind StorageKind;
- typedef typename internal::index<StorageKind>::type Index;
-
- enum {
- RowsAtCompileTime = internal::traits<Derived>::RowsAtCompileTime,
- /**< The number of rows at compile-time. This is just a copy of the value provided
- * by the \a Derived type. If a value is not known at compile-time,
- * it is set to the \a Dynamic constant.
- * \sa MatrixBase::rows(), MatrixBase::cols(), ColsAtCompileTime, SizeAtCompileTime */
-
- ColsAtCompileTime = internal::traits<Derived>::ColsAtCompileTime,
- /**< The number of columns at compile-time. This is just a copy of the value provided
- * by the \a Derived type. If a value is not known at compile-time,
- * it is set to the \a Dynamic constant.
- * \sa MatrixBase::rows(), MatrixBase::cols(), RowsAtCompileTime, SizeAtCompileTime */
-
-
- SizeAtCompileTime = (internal::size_at_compile_time<internal::traits<Derived>::RowsAtCompileTime,
- internal::traits<Derived>::ColsAtCompileTime>::ret),
- /**< This is equal to the number of coefficients, i.e. the number of
- * rows times the number of columns, or to \a Dynamic if this is not
- * known at compile-time. \sa RowsAtCompileTime, ColsAtCompileTime */
-
- MaxRowsAtCompileTime = RowsAtCompileTime,
- MaxColsAtCompileTime = ColsAtCompileTime,
-
- MaxSizeAtCompileTime = (internal::size_at_compile_time<MaxRowsAtCompileTime,
- MaxColsAtCompileTime>::ret),
-
- IsVectorAtCompileTime = RowsAtCompileTime == 1 || ColsAtCompileTime == 1,
- /**< This is set to true if either the number of rows or the number of
- * columns is known at compile-time to be equal to 1. Indeed, in that case,
- * we are dealing with a column-vector (if there is only one column) or with
- * a row-vector (if there is only one row). */
-
- Flags = internal::traits<Derived>::Flags,
- /**< This stores expression \ref flags flags which may or may not be inherited by new expressions
- * constructed from this one. See the \ref flags "list of flags".
- */
-
- CoeffReadCost = internal::traits<Derived>::CoeffReadCost,
- /**< This is a rough measure of how expensive it is to read one coefficient from
- * this expression.
- */
-
- IsRowMajor = Flags & RowMajorBit ? 1 : 0
- };
-
-#ifndef EIGEN_PARSED_BY_DOXYGEN
- /** This is the "real scalar" type; if the \a Scalar type is already real numbers
- * (e.g. int, float or double) then \a RealScalar is just the same as \a Scalar. If
- * \a Scalar is \a std::complex<T> then RealScalar is \a T.
- *
- * \sa class NumTraits
- */
- typedef typename NumTraits<Scalar>::Real RealScalar;
-
- /** type of the equivalent square matrix */
- typedef Matrix<Scalar, EIGEN_SIZE_MAX(RowsAtCompileTime, ColsAtCompileTime),
- EIGEN_SIZE_MAX(RowsAtCompileTime, ColsAtCompileTime) > SquareMatrixType;
-
- inline const Derived& derived() const {
- return *static_cast<const Derived*> (this);
- }
-
- inline Derived& derived() {
- return *static_cast<Derived*> (this);
- }
-
- inline Derived& const_cast_derived() const {
- return *static_cast<Derived*> (const_cast<SkylineMatrixBase*> (this));
- }
-#endif // not EIGEN_PARSED_BY_DOXYGEN
-
- /** \returns the number of rows. \sa cols(), RowsAtCompileTime */
- inline Index rows() const {
- return derived().rows();
- }
-
- /** \returns the number of columns. \sa rows(), ColsAtCompileTime*/
- inline Index cols() const {
- return derived().cols();
- }
-
- /** \returns the number of coefficients, which is \a rows()*cols().
- * \sa rows(), cols(), SizeAtCompileTime. */
- inline Index size() const {
- return rows() * cols();
- }
-
- /** \returns the number of nonzero coefficients which is in practice the number
- * of stored coefficients. */
- inline Index nonZeros() const {
- return derived().nonZeros();
- }
-
- /** \returns the size of the storage major dimension,
- * i.e., the number of columns for a columns major matrix, and the number of rows otherwise */
- Index outerSize() const {
- return (int(Flags) & RowMajorBit) ? this->rows() : this->cols();
- }
-
- /** \returns the size of the inner dimension according to the storage order,
- * i.e., the number of rows for a columns major matrix, and the number of cols otherwise */
- Index innerSize() const {
- return (int(Flags) & RowMajorBit) ? this->cols() : this->rows();
- }
-
- bool isRValue() const {
- return m_isRValue;
- }
-
- Derived& markAsRValue() {
- m_isRValue = true;
- return derived();
- }
-
- SkylineMatrixBase() : m_isRValue(false) {
- /* TODO check flags */
- }
-
- inline Derived & operator=(const Derived& other) {
- this->operator=<Derived > (other);
- return derived();
- }
-
- template<typename OtherDerived>
- inline void assignGeneric(const OtherDerived& other) {
- derived().resize(other.rows(), other.cols());
- for (Index row = 0; row < rows(); row++)
- for (Index col = 0; col < cols(); col++) {
- if (other.coeff(row, col) != Scalar(0))
- derived().insert(row, col) = other.coeff(row, col);
- }
- derived().finalize();
- }
-
- template<typename OtherDerived>
- inline Derived & operator=(const SkylineMatrixBase<OtherDerived>& other) {
- //TODO
- }
-
- template<typename Lhs, typename Rhs>
- inline Derived & operator=(const SkylineProduct<Lhs, Rhs, SkylineTimeSkylineProduct>& product);
-
- friend std::ostream & operator <<(std::ostream & s, const SkylineMatrixBase& m) {
- s << m.derived();
- return s;
- }
-
- template<typename OtherDerived>
- const typename SkylineProductReturnType<Derived, OtherDerived>::Type
- operator*(const MatrixBase<OtherDerived> &other) const;
-
- /** \internal use operator= */
- template<typename DenseDerived>
- void evalTo(MatrixBase<DenseDerived>& dst) const {
- dst.setZero();
- for (Index i = 0; i < rows(); i++)
- for (Index j = 0; j < rows(); j++)
- dst(i, j) = derived().coeff(i, j);
- }
-
- Matrix<Scalar, RowsAtCompileTime, ColsAtCompileTime> toDense() const {
- return derived();
- }
-
- /** \returns the matrix or vector obtained by evaluating this expression.
- *
- * Notice that in the case of a plain matrix or vector (not an expression) this function just returns
- * a const reference, in order to avoid a useless copy.
- */
- EIGEN_STRONG_INLINE const typename internal::eval<Derived, IsSkyline>::type eval() const {
- return typename internal::eval<Derived>::type(derived());
- }
-
-protected:
- bool m_isRValue;
-};
-
-} // end namespace Eigen
-
-#endif // EIGEN_SkylineMatrixBase_H