From 98eb831d52472bc0c92cfb417fb7029a5804c05e Mon Sep 17 00:00:00 2001 From: Jürgen Knödlseder Date: Tue, 7 Jan 2014 16:35:31 +0100 Subject: [PATCH] Add optimizer function Python interface. --- pyext/GOptimizerFunction.i | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ pyext/gammalib/opt.i | 2 +- 2 files changed, 58 insertions(+), 1 deletion(-) create mode 100644 pyext/GOptimizerFunction.i diff --git a/pyext/GOptimizerFunction.i b/pyext/GOptimizerFunction.i new file mode 100644 index 0000000..ff26240 --- /dev/null +++ b/pyext/GOptimizerFunction.i @@ -0,0 +1,57 @@ +/*************************************************************************** + * GOptimizerFunction.i - Optimizer function abstract base class * + * ----------------------------------------------------------------------- * + * copyright (C) 2014 by Juergen Knoedlseder * + * ----------------------------------------------------------------------- * + * * + * This program is free software: you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation, either version 3 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program. If not, see . * + * * + ***************************************************************************/ +/** + * @file GOptimizerFunction.i + * @brief Optimizer function abstract base class + * @author Juergen Knoedlseder + */ +%{ +/* Put headers and other declarations here that are needed for compilation */ +#include "GOptimizerFunction.hpp" +#include "GTools.hpp" +%} + + +/***********************************************************************//** + * @class GOptimizerFunction + * + * @brief Optimizer function abstract base class + ***************************************************************************/ +class GOptimizerFunction { +public: + // Constructors and destructors + GOptimizerFunction(void); + GOptimizerFunction(const GOptimizerFunction& fct); + virtual ~GOptimizerFunction(void); + + // Virtual methods + virtual void eval(const GOptimizerPars& pars) = 0; + virtual double value(void) = 0; + virtual GVector* gradient(void) = 0; + virtual GMatrixSparse* curvature(void) = 0; +}; + + +/***********************************************************************//** + * @brief GOptimizerFunction class extension + ***************************************************************************/ +%extend GOptimizerFunction { +}; diff --git a/pyext/gammalib/opt.i b/pyext/gammalib/opt.i index cceabb1..8da4784 100644 --- a/pyext/gammalib/opt.i +++ b/pyext/gammalib/opt.i @@ -51,4 +51,4 @@ %include "GOptimizerLM.i" %include "GOptimizerPar.i" %include "GOptimizerPars.i" -//%include "GOptimizerFunction.i" +%include "GOptimizerFunction.i" -- libgit2 0.21.4