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

/tmp/buildd/coinor-ipopt-3.8.3/Ipopt/contrib/AsNMPC/src/AsStdSchurData.hpp

Go to the documentation of this file.
00001 // Copyright 2009, 2010 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 __ASSTDSCHURDATA_HPP__
00008 #define __ASSTDSCHURDATA_HPP__
00009 
00010 #include "AsSchurData.hpp"
00011 
00012 namespace Ipopt
00013 {
00014 
00015   class StdSchurData : public SchurData
00016   {
00025   public:
00026 
00027     StdSchurData();
00028     
00029     virtual ~StdSchurData();
00030 
00031     virtual SmartPtr<SchurData> MakeNewSchurDataCopy() const;
00032 
00033     virtual void SetData_Flag(Index dim, const Index* flags, Number v=1.0);
00034 
00035     virtual void SetData_Flag(Index dim, const Index* flags, const Number* values);
00036 
00037     virtual Index SetData_Index(Index dim, const Index* index, Number v=1.0);
00038 
00039     virtual void SetData_List(const std::vector<Index>& list, Number v=1.0);
00040 
00041     virtual void AddData_List(std::vector<Index> cols, std::vector<Index>& delta_u_sort, Index& new_du_size, Index v);
00042 
00043     virtual void GetRow(Index i, IteratesVector& v) const;
00044 
00045     virtual void GetMultiplyingVectors(Index i, std::vector<Index>& indices, std::vector<Number>& factors) const;
00046 
00047     virtual void Multiply(const IteratesVector& v, Vector& u) const;
00048 
00049     virtual void TransMultiply(const Vector& u, IteratesVector& v) const;
00050 
00051     virtual void PrintImpl(const Journalist& jnlst,
00052                            EJournalLevel level,
00053                            EJournalCategory category,
00054                            const std::string& name,
00055                            Index indent,
00056                            const std::string& prefix) const;
00057   private:
00058 
00062     Index* GetVectorLengths(const IteratesVector& v) const;
00063 
00065     std::vector<Index> idx1_;
00067     std::vector<Index> idx2_;
00069     std::vector<Number> val_;
00070   };
00071 
00072 }
00073 
00074 #endif

Generated on Thu Jul 29 2010 19:56:08 by  doxygen 1.7.1