source: branches/dev/Algorithm/IpLineSearch.hpp @ 501

Last change on this file since 501 was 501, checked in by claird, 14 years ago

Cleaned up all the Copyright comments.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 2.5 KB
Line 
1// Copyright (C) 2004, 2005 International Business Machines and others.
2// All Rights Reserved.
3// This code is published under the Common Public License.
4//
5// $Id: IpLineSearch.hpp 501 2005-08-26 15:43:07Z claird $
6//
7// Authors:  Carl Laird, Andreas Waechter     IBM    2004-08-13
8
9#ifndef __IPLINESEARCH_HPP__
10#define __IPLINESEARCH_HPP__
11
12#include "IpAlgStrategy.hpp"
13#include "IpIpoptCalculatedQuantities.hpp"
14
15namespace Ipopt
16{
17
18  /** Base class for line search objects.
19   */
20  class LineSearch : public AlgorithmStrategyObject
21  {
22  public:
23    /**@name Constructors/Destructors */
24    //@{
25    /** Default Constructor */
26    LineSearch()
27    {}
28    ;
29
30    /** Default destructor */
31    virtual ~LineSearch()
32    {}
33    ;
34    //@}
35
36    /** Perform the line search.  As search direction the delta
37     *  in the data object is used
38     */
39    virtual void FindAcceptableTrialPoint() = 0;
40
41    /** Reset the line search.
42     *  This function should be called if all previous information
43     *  should be discarded when the line search is performed the
44     *  next time.  For example, this method should be called after
45     *  the barrier parameter is changed.
46     */
47    virtual void Reset() = 0;
48
49    /** Set flag indicating whether a very rigorous line search should
50     *  be performed.  If this flag is set to true, the line search
51     *  algorithm might decide to abort the line search and not to
52     *  accept a new iterate.  If the line search decided not to
53     *  accept a new iterate, the return value of
54     *  CheckSkippedLineSearch() is true at the next call.  For
55     *  example, in the non-monotone barrier parameter update
56     *  procedure, the filter algorithm should not switch to the
57     *  restoration phase in the free mode; instead, the algorithm
58     *  should swtich to the fixed mode.
59     */
60    virtual void SetRigorousLineSearch(bool rigorous) = 0;
61
62    /** Check if the line search procedure didn't accept a new iterate
63     *  during the last call of FindAcceptableTrialPoint().
64     * 
65     */
66    virtual bool CheckSkippedLineSearch() = 0;
67
68  private:
69    /**@name Default Compiler Generated Methods
70     * (Hidden to avoid implicit creation/calling).
71     * These methods are not implemented and
72     * we do not want the compiler to implement
73     * them for us, so we declare them private
74     * and do not define them. This ensures that
75     * they will not be implicitly created/called. */
76    //@{
77    /** Copy Constructor */
78    LineSearch(const LineSearch&);
79
80    /** Overloaded Equals Operator */
81    void operator=(const LineSearch&);
82    //@}
83
84  };
85
86} // namespace Ipopt
87
88#endif
Note: See TracBrowser for help on using the repository browser.