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: IpEqMultCalculator.hpp 759 2006-07-07 03:07:08Z andreasw $ 00006 // 00007 // Authors: Carl Laird, Andreas Waechter IBM 2004-09-23 00008 00009 #ifndef __IPEQMULTCALCULATOR_HPP__ 00010 #define __IPEQMULTCALCULATOR_HPP__ 00011 00012 #include "IpUtils.hpp" 00013 #include "IpAlgStrategy.hpp" 00014 00015 namespace Ipopt 00016 { 00021 class EqMultiplierCalculator: public AlgorithmStrategyObject 00022 { 00023 public: 00027 EqMultiplierCalculator() 00028 {} 00030 virtual ~EqMultiplierCalculator() 00031 {} 00033 00035 virtual bool InitializeImpl(const OptionsList& options, 00036 const std::string& prefix) = 0; 00037 00042 virtual bool CalculateMultipliers(Vector& y_c, 00043 Vector& y_d) = 0; 00044 00045 private: 00055 EqMultiplierCalculator(const EqMultiplierCalculator&); 00056 00058 void operator=(const EqMultiplierCalculator&); 00060 }; 00061 00062 } // namespace Ipopt 00063 00064 #endif