summaryrefslogtreecommitdiff
path: root/newstructure/thirdparty/linux/include/coin/IpExpansionMatrix.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'newstructure/thirdparty/linux/include/coin/IpExpansionMatrix.hpp')
-rw-r--r--newstructure/thirdparty/linux/include/coin/IpExpansionMatrix.hpp212
1 files changed, 0 insertions, 212 deletions
diff --git a/newstructure/thirdparty/linux/include/coin/IpExpansionMatrix.hpp b/newstructure/thirdparty/linux/include/coin/IpExpansionMatrix.hpp
deleted file mode 100644
index cbb9a99..0000000
--- a/newstructure/thirdparty/linux/include/coin/IpExpansionMatrix.hpp
+++ /dev/null
@@ -1,212 +0,0 @@
-// Copyright (C) 2004, 2009 International Business Machines and others.
-// All Rights Reserved.
-// This code is published under the Eclipse Public License.
-//
-// $Id: IpExpansionMatrix.hpp 2269 2013-05-05 11:32:40Z stefan $
-//
-// Authors: Carl Laird, Andreas Waechter IBM 2004-08-13
-
-#ifndef __IPEXPANSIONMATRIX_HPP__
-#define __IPEXPANSIONMATRIX_HPP__
-
-#include "IpUtils.hpp"
-#include "IpMatrix.hpp"
-
-namespace Ipopt
-{
-
- /** forward declarations */
- class ExpansionMatrixSpace;
-
- /** Class for expansion/projection matrices. These matrices allow
- * to lift a vector to a vector with larger dimension, keeping
- * some elements of the larger vector zero. This operation is achieved
- * by the MultVector operation. The transpose operation then
- * filters some elements from a large vector into a smaller vector.
- */
- class ExpansionMatrix : public Matrix
- {
- public:
-
- /**@name Constructors / Destructors */
- //@{
-
- /** Constructor, taking the owner_space.
- */
- ExpansionMatrix(const ExpansionMatrixSpace* owner_space);
-
- /** Destructor */
- ~ExpansionMatrix();
- //@}
-
- /** Return the vector of indices marking the expanded position.
- * The result is the Index array (of length NSmallVec=NCols())
- * that stores the mapping from the small vector to the large
- * vector. For each element i=0,..,NSmallVec in the small
- * vector, ExpandedPosIndices()[i] give the corresponding index
- * in the large vector.
- */
- const Index* ExpandedPosIndices() const;
-
- /** Return the vector of indices marking the compressed position.
- * The result is the Index array (of length NLargeVec=NRows())
- * that stores the mapping from the large vector to the small
- * vector. For each element i=0,..,NLargeVec in the large
- * vector, CompressedPosIndices()[i] gives the corresponding
- * index in the small vector, unless CompressedPosIndices()[i] is
- * negative.
- */
- const Index* CompressedPosIndices() const;
-
- protected:
- /**@name Overloaded methods from Matrix base class*/
- //@{
- virtual void MultVectorImpl(Number alpha, const Vector &x, Number beta,
- Vector &y) const;
-
- virtual void TransMultVectorImpl(Number alpha, const Vector& x,
- Number beta, Vector& y) const;
-
- /** X = beta*X + alpha*(Matrix S^{-1} Z). Specialized implementation.
- */
- virtual void AddMSinvZImpl(Number alpha, const Vector& S, const Vector& Z,
- Vector& X) const;
-
- /** X = S^{-1} (r + alpha*Z*M^Td). Specialized implementation.
- */
- virtual void SinvBlrmZMTdBrImpl(Number alpha, const Vector& S,
- const Vector& R, const Vector& Z,
- const Vector& D, Vector& X) const;
-
- virtual void ComputeRowAMaxImpl(Vector& rows_norms, bool init) const;
-
- virtual void ComputeColAMaxImpl(Vector& cols_norms, bool init) const;
-
- virtual void PrintImpl(const Journalist& jnlst,
- EJournalLevel level,
- EJournalCategory category,
- const std::string& name,
- Index indent,
- const std::string& prefix) const
- {
- PrintImplOffset(jnlst, level, category, name, indent, prefix, 1, 1);
- }
- //@}
-
- void PrintImplOffset(const Journalist& jnlst,
- EJournalLevel level,
- EJournalCategory category,
- const std::string& name,
- Index indent,
- const std::string& prefix,
- Index row_offset,
- Index col_offset) const;
-
- friend class ParExpansionMatrix;
-
- private:
- /**@name Default Compiler Generated Methods
- * (Hidden to avoid implicit creation/calling).
- * These methods are not implemented and
- * we do not want the compiler to implement
- * them for us, so we declare them private
- * and do not define them. This ensures that
- * they will not be implicitly created/called. */
- //@{
- /** Default Constructor */
- ExpansionMatrix();
-
- /** Copy Constructor */
- ExpansionMatrix(const ExpansionMatrix&);
-
- /** Overloaded Equals Operator */
- void operator=(const ExpansionMatrix&);
- //@}
-
- const ExpansionMatrixSpace* owner_space_;
-
- };
-
- /** This is the matrix space for ExpansionMatrix.
- */
- class ExpansionMatrixSpace : public MatrixSpace
- {
- public:
- /** @name Constructors / Destructors */
- //@{
- /** Constructor, given the list of elements of the large vector
- * (of size NLargeVec) to be filtered into the small vector (of
- * size NSmallVec). For each i=0..NSmallVec-1 the i-th element
- * of the small vector will be put into the ExpPos[i] position of
- * the large vector. The position counting in the vector is
- * assumed to start at 0 (C-like array notation).
- */
- ExpansionMatrixSpace(Index NLargeVec,
- Index NSmallVec,
- const Index *ExpPos,
- const int offset = 0);
-
- /** Destructor */
- ~ExpansionMatrixSpace()
- {
- delete [] compressed_pos_;
- delete [] expanded_pos_;
- }
- //@}
-
- /** Method for creating a new matrix of this specific type. */
- ExpansionMatrix* MakeNewExpansionMatrix() const
- {
- return new ExpansionMatrix(this);
- }
-
- /** Overloaded MakeNew method for the MatrixSpace base class.
- */
- virtual Matrix* MakeNew() const
- {
- return MakeNewExpansionMatrix();
- }
-
- /** Accessor Method to obtain the Index array (of length
- * NSmallVec=NCols()) that stores the mapping from the small
- * vector to the large vector. For each element i=0,..,NSmallVec
- * in the small vector, ExpandedPosIndices()[i] give the
- * corresponding index in the large vector.
- */
- const Index* ExpandedPosIndices() const
- {
- return expanded_pos_;
- }
-
- /** Accessor Method to obtain the Index array (of length
- * NLargeVec=NRows()) that stores the mapping from the large
- * vector to the small vector. For each element i=0,..,NLargeVec
- * in the large vector, CompressedPosIndices()[i] gives the
- * corresponding index in the small vector, unless
- * CompressedPosIndices()[i] is negative.
- */
- const Index* CompressedPosIndices() const
- {
- return compressed_pos_;
- }
-
- private:
- Index *expanded_pos_;
- Index *compressed_pos_;
- };
-
- /* inline methods */
- inline
- const Index* ExpansionMatrix::ExpandedPosIndices() const
- {
- return owner_space_->ExpandedPosIndices();
- }
-
- inline
- const Index* ExpansionMatrix::CompressedPosIndices() const
- {
- return owner_space_->CompressedPosIndices();
- }
-
-} // namespace Ipopt
-#endif