00001 // Copyright (C) 2004, 2006 International Business Machines and others. 00002 // All Rights Reserved. 00003 // This code is published under the Common Public License. 00004 // 00005 // $Id: IpLeastSquareMults.hpp 759 2006-07-07 03:07:08Z andreasw $ 00006 // 00007 // Authors: Carl Laird, Andreas Waechter IBM 2004-09-23 00008 00009 #ifndef __IPLEASTSQUAREMULTS_HPP__ 00010 #define __IPLEASTSQUAREMULTS_HPP__ 00011 00012 #include "IpAugSystemSolver.hpp" 00013 #include "IpEqMultCalculator.hpp" 00014 00015 namespace Ipopt 00016 { 00017 00023 class LeastSquareMultipliers: public EqMultiplierCalculator 00024 { 00025 public: 00030 LeastSquareMultipliers(AugSystemSolver& augSysSolver); 00032 virtual ~LeastSquareMultipliers() 00033 {} 00035 00036 /* overloaded from AlgorithmStrategyObject */ 00037 virtual bool InitializeImpl(const OptionsList& options, 00038 const std::string& prefix); 00039 00044 virtual bool CalculateMultipliers(Vector& y_c, 00045 Vector& y_d); 00046 00047 private: 00057 LeastSquareMultipliers(); 00058 00060 LeastSquareMultipliers(const LeastSquareMultipliers&); 00061 00063 void operator=(const LeastSquareMultipliers&); 00065 00068 SmartPtr<AugSystemSolver> augsyssolver_; 00069 }; 00070 00071 } // namespace Ipopt 00072 00073 #endif