Go to the documentation of this file.00001
00002
00003
00004
00005
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