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: IpLineSearch.hpp 735 2006-06-04 06:10:05Z andreasw $ 00006 // 00007 // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 00008 00009 #ifndef __IPLINESEARCH_HPP__ 00010 #define __IPLINESEARCH_HPP__ 00011 00012 #include "IpAlgStrategy.hpp" 00013 #include "IpIpoptCalculatedQuantities.hpp" 00014 00015 namespace Ipopt 00016 { 00017 00020 class LineSearch : public AlgorithmStrategyObject 00021 { 00022 public: 00026 LineSearch() 00027 {} 00028 00030 virtual ~LineSearch() 00031 {} 00033 00037 virtual void FindAcceptableTrialPoint() = 0; 00038 00045 virtual void Reset() = 0; 00046 00058 virtual void SetRigorousLineSearch(bool rigorous) = 0; 00059 00064 virtual bool CheckSkippedLineSearch() = 0; 00065 00074 virtual bool ActivateFallbackMechanism() = 0; 00075 00076 private: 00086 LineSearch(const LineSearch&); 00087 00089 void operator=(const LineSearch&); 00091 00092 }; 00093 00094 } // namespace Ipopt 00095 00096 #endif