ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/OpenMD/branches/development/src/optimization/ConjugateGradient.hpp
Revision: 1741
Committed: Tue Jun 5 18:02:44 2012 UTC (12 years, 10 months ago) by gezelter
File size: 2081 byte(s)
Log Message:
Adding initial import of optimization library

File Contents

# User Rev Content
1 gezelter 1741 /* -*- mode: c++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2    
3     /*
4     Copyright (C) 2006 Ferdinando Ametrano
5     Copyright (C) 2001, 2002, 2003 Nicolas Di Césaré
6     Copyright (C) 2009 Frédéric Degraeve
7    
8     This file is part of QuantLib, a free-software/open-source library
9     for financial quantitative analysts and developers - http://quantlib.org/
10    
11     QuantLib is free software: you can redistribute it and/or modify it
12     under the terms of the QuantLib license. You should have received a
13     copy of the license along with this program; if not, please email
14     <quantlib-dev@lists.sf.net>. The license is also available online at
15     <http://quantlib.org/license.shtml>.
16    
17     This program is distributed in the hope that it will be useful, but WITHOUT
18     ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
19     FOR A PARTICULAR PURPOSE. See the license for more details.
20     */
21    
22     /*! \file conjugategradient.hpp
23     \brief Conjugate gradient optimization method
24     */
25    
26     #ifndef quantlib_optimization_conjugate_gradient_h
27     #define quantlib_optimization_conjugate_gradient_h
28    
29     #include "optimization/LineSearchBasedMethod.hpp"
30    
31     namespace QuantLib {
32    
33     //! Multi-dimensional Conjugate Gradient class.
34     /*! Fletcher-Reeves-Polak-Ribiere algorithm
35     adapted from Numerical Recipes in C, 2nd edition.
36    
37     User has to provide line-search method and optimization end criteria.
38     Search direction \f$ d_i = - f'(x_i) + c_i*d_{i-1} \f$
39     where \f$ c_i = ||f'(x_i)||^2/||f'(x_{i-1})||^2 \f$
40     and \f$ d_1 = - f'(x_1) \f$
41     */
42     class ConjugateGradient: public LineSearchBasedMethod {
43     public:
44     ConjugateGradient(LineSearch* lineSearch = NULL)
45     : LineSearchBasedMethod(lineSearch) {}
46     private:
47     //! \name LineSearchBasedMethod interface
48     //@{
49     DynamicVector<RealType> getUpdatedDirection(const Problem &P,
50     RealType gold2,
51     const DynamicVector<RealType>& oldGradient);
52     //@}
53     };
54    
55     }
56    
57     #endif

Properties

Name Value
svn:eol-style native