- Main Page
- Classes
- Files

- File List
- File Members

# src/LinAlg/IpZeroSymMatrix.hpp

Go to the documentation of this file.

    00001 // Copyright (C) 2004, 2008 International Business Machines and others.
    00002 // All Rights Reserved.
    00003 // This code is published under the Eclipse Public License.
    00004 //
    00005 // $Id: IpZeroSymMatrix.hpp 2269 2013-05-05 11:32:40Z stefan $
    00006 //
    00007 // Authors:  Carl Laird, Andreas Waechter     IBM    2004-08-13
    00008
    00009 #ifndef __IPZEROSYMMATRIX_HPP__
    00010 #define __IPZEROSYMMATRIX_HPP__
    00011
    00012 #include "IpUtils.hpp"
    00013 #include "IpSymMatrix.hpp"
    00014
    00015 namespace Ipopt
    00016 {
    00017
    00020   class ZeroSymMatrix : public SymMatrix
    00021   {
    00022   public:
    00023
    00026
    00029     ZeroSymMatrix(const SymMatrixSpace* owner_space);
    00030
    00032     ~ZeroSymMatrix();
    00034
    00035   protected:
    00038     virtual void MultVectorImpl(Number alpha, const Vector& x,
    00039                                 Number beta, Vector& y) const;
    00040
    00041     virtual void TransMultVectorImpl(Number alpha, const Vector& x,
    00042                                      Number beta, Vector& y) const;
    00043
    00044     virtual void ComputeRowAMaxImpl(Vector& rows_norms, bool init) const
    00045       {}
    00046
    00047     virtual void ComputeColAMaxImpl(Vector& cols_norms, bool init) const
    00048       {}
    00049
    00050     virtual void PrintImpl(const Journalist& jnlst,
    00051                            EJournalLevel level,
    00052                            EJournalCategory category,
    00053                            const std::string& name,
    00054                            Index indent,
    00055                            const std::string& prefix) const;
    00057
    00058   private:
    00068     ZeroSymMatrix();
    00069
    00071     ZeroSymMatrix(const ZeroSymMatrix&);
    00072
    00074     void operator=(const ZeroSymMatrix&);
    00076   };
    00077
    00079   class ZeroSymMatrixSpace : public SymMatrixSpace
    00080   {
    00081   public:
    00086     ZeroSymMatrixSpace(Index dim)
    00087         :
    00088         SymMatrixSpace(dim)
    00089     {}
    00090
    00092     virtual ~ZeroSymMatrixSpace()
    00093     {}
    00095
    00098     virtual Matrix* MakeNew() const
    00099     {
    00100       return MakeNewZeroSymMatrix();
    00101     }
    00102
    00105     virtual SymMatrix* MakeNewSymMatrix() const
    00106     {
    00107       return MakeNewZeroSymMatrix();
    00108     }
    00109
    00111     ZeroSymMatrix* MakeNewZeroSymMatrix() const
    00112     {
    00113       return new ZeroSymMatrix(this);
    00114     }
    00115   private:
    00125     ZeroSymMatrixSpace();
    00126
    00128     ZeroSymMatrixSpace(const ZeroSymMatrixSpace&);
    00129
    00131     void operator=(const ZeroSymMatrixSpace&);
    00133   };
    00134 } // namespace Ipopt
    00135 #endif

All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Defines