• Main Page
  • Namespaces
  • Classes
  • Files
  • File List
  • File Members

/build/buildd/coinor-ipopt-3.8.3/Ipopt/contrib/AsNMPC/src/AsIndexSchurData.hpp

Go to the documentation of this file.
00001 // Copyright 2009 Hans Pirnay
00002 // All Rights Reserved.
00003 // This code is published under the Common Public License.
00004 //
00005 // Date   : 2009-05-08
00006 
00007 #ifndef __ASINDEXSCHURDATA_HPP__
00008 #define __ASINDEXSCHURDATA_HPP__
00009 
00010 #include "AsSchurData.hpp"
00011 
00012 namespace Ipopt
00013 {
00014 
00015   class IndexSchurData : public SchurData
00016   {
00020   public:
00021 
00022     IndexSchurData();
00023 
00024     IndexSchurData(const std::vector<Index> idx, const std::vector<Index> val);
00025     
00026     virtual ~IndexSchurData();
00027 
00028     virtual SmartPtr<SchurData> MakeNewSchurDataCopy() const;
00029 
00030     virtual Index GetNRowsAdded() const;
00031 
00032     virtual void SetData_Flag(Index dim, const Index* flags, Number v=1.0);
00033 
00034     virtual void SetData_Flag(Index dim, const Index* flags, const Number* values);
00035 
00036     virtual Index SetData_Index(Index dim, const Index* index, Number v=1.0);
00037     
00038     virtual void SetData_List(const std::vector<Index>& list, Number v=1.0);
00039 
00040     virtual void GetRow(Index i, IteratesVector& v) const;
00041 
00042     virtual void GetMultiplyingVectors(Index i, std::vector<Index>& indices, std::vector<Number>& factors) const;
00043 
00044     virtual void Multiply(const IteratesVector& v, Vector& u) const;
00045 
00046     virtual void TransMultiply(const Vector& u, IteratesVector& v) const;
00047 
00048     virtual void PrintImpl(const Journalist& jnlst,
00049                            EJournalLevel level,
00050                            EJournalCategory category,
00051                            const std::string& name,
00052                            Index indent,
00053                            const std::string& prefix) const;
00054 
00064     void AddData_Flag(Index dim, Index* flags, std::vector<Index>& delta_u_sort, Index v);
00065 
00066     void AddData_List(std::vector<Index> cols, std::vector<Index>& delta_u_sort, Index& new_du_size, Index v);
00067 
00068     const std::vector<Index>* GetColIndices() const;
00069 
00070   private:
00071 
00075     Index* GetVectorLengths(const IteratesVector& v) const;
00076 
00077     std::vector<Index> idx_;
00078     std::vector<Index> val_;
00079   };
00080 
00081 }
00082 
00083 #endif

Generated on Sat Oct 16 2010 02:54:49 by  doxygen 1.7.1