RastriginFunction.h

Go to the documentation of this file.
00001 /******************************************************************************/
00002 /*                                                                            */
00003 /*   R A S T R I G I N   F U N C T I O N   C L A S S   H E A D E R            */
00004 /*                                                                            */
00005 /*   Roberto Lopez                                                            */
00006 /*   International Center for Numerical Methods in Engineering (CIMNE)        */
00007 /*   Technical University of Catalonia (UPC)                                  */
00008 /*   Barcelona, Spain                                                         */
00009 /*   E-mail: rlopez@cimne.upc.edu                                             */
00010 /*                                                                            */
00011 /******************************************************************************/
00012 
00013 
00014 #ifndef __RASTRIGINFUNCTION_H__
00015 #define __RASTRIGINFUNCTION_H__
00016 
00017 #include "ObjectiveFunction.h"
00018 
00019 namespace Purple
00020 {
00021 
00022 /// This class represents the Rastrigin's objective function.
00023 ///
00024 /// @see ObjectiveFunction.
00025 
00026 class RastriginFunction : public ObjectiveFunction
00027 {
00028 
00029 public:
00030 
00031    // GENERAL CONSTRUCTOR
00032 
00033    RastriginFunction(void);
00034 
00035 
00036    // DESTRUCTOR
00037 
00038    virtual ~RastriginFunction(void);
00039 
00040 
00041    // METHODS
00042 
00043    // Objective function methods
00044 
00045    double getEvaluation(Vector<double>);
00046 
00047    // Objective function gradient vector methods
00048 
00049    Vector<double> getGradient(Vector<double>);
00050 
00051    // Objective function Hessian matrix methods
00052 
00053    Matrix<double> getHessian(Vector<double>);
00054    
00055    Matrix<double> getInverseHessian(Vector<double>);
00056 };
00057 
00058 }
00059 
00060 #endif
00061 
00062 
00063 // Purple: An Open Source Numerical Optimization C++ Library.
00064 // Copyright (C) 2006 Roberto Lopez
00065 //
00066 // This library is free software; you can redistribute it and/or
00067 // modify it under the terms of the GNU Lesser General Public
00068 // License as published by the Free Software Foundation; either
00069 // version 2.1 of the License, or any later version.
00070 //
00071 // This library is distributed in the hope that it will be useful,
00072 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00073 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00074 // Lesser General Public License for more details.
00075 
00076 // You should have received a copy of the GNU Lesser General Public
00077 // License along with this library; if not, write to the Free Software
00078 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA

Generated on Wed Jun 21 13:10:38 2006 for Purple by  doxygen 1.4.7