// Copyright (C) 2005, 2007 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // Authors: Andreas Waechter IBM 2005-10-13 #ifndef __IPSEARCHDIRCALCULATOR_HPP__ #define __IPSEARCHDIRCALCULATOR_HPP__ #include "IpAlgStrategy.hpp" namespace Ipopt { /** Base class for computing the search direction for the line * search. */ class IPOPTLIB_EXPORT SearchDirectionCalculator: public AlgorithmStrategyObject { public: /**@name Constructors/Destructors */ ///@{ /** Constructor */ SearchDirectionCalculator() { } /** Destructor */ virtual ~SearchDirectionCalculator() { } ///@} virtual bool InitializeImpl( const OptionsList& options, const std::string& prefix ) = 0; /** Pure virtual method for computing the search direction. * * The computed direction is stored in IpData().delta(). */ virtual bool ComputeSearchDirection() = 0; private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ ///@{ /** Default Constructor */ // SearchDirectionCalculator(); /** Copy Constructor */ SearchDirectionCalculator( const SearchDirectionCalculator& ); /** Default Assignment Operator */ void operator=( const SearchDirectionCalculator& ); ///@} }; } // namespace Ipopt #endif