Gaudi Framework, version v21r7p1

Home   Generated: 15 Feb 2010

FuncMinimum.cpp File Reference

Implementation file for class : FuncMinimum. More...

#include <stdlib.h>
#include <stdio.h>
#include "GaudiKernel/ToolFactory.h"
#include "GaudiKernel/MsgStream.h"
#include "gsl/gsl_vector.h"
#include "gsl/gsl_multimin.h"
#include "gsl/gsl_math.h"
#include "gsl/gsl_matrix.h"
#include "gsl/gsl_linalg.h"
#include "gsl/gsl_blas.h"
#include "gsl/gsl_errno.h"
#include "FuncMinimum.h"

Include dependency graph for FuncMinimum.cpp:

Go to the source code of this file.

Functions

double fun_gsl (const gsl_vector *v, void *params)
 The function which we minimize.
void dfun_gsl (const gsl_vector *v, void *params, gsl_vector *df)
 The gradient of the function "fun_gsl".
void fdfun_gsl (const gsl_vector *v, void *params, double *f, gsl_vector *df)
 Compute both the function "fun_gsl" and gradient of this function "dfun_gsl" together.


Detailed Description

Implementation file for class : FuncMinimum.

See also:
FuncMinimum.h
Author:
Kirill Miklyaev kirillm@iris1.itep.ru
Date:
2002-09-14

Definition in file FuncMinimum.cpp.


Function Documentation

void @122::dfun_gsl ( const gsl_vector *  v,
void *  params,
gsl_vector *  df 
) [static]

The gradient of the function "fun_gsl".

Definition at line 106 of file FuncMinimum.cpp.

00108   {
00109     FuncMinimum::FuncMinimumMisc * local =
00110       static_cast <FuncMinimum::FuncMinimumMisc*> (params);
00111     const FuncMinimum::Gradient& grad  = local->gradient();
00112     Argument&                    arg   = local->argument()  ;
00113 
00114     {for ( unsigned int i = 0; i < v->size; ++i)
00115       {
00116         arg[i] = gsl_vector_get (v, i);
00117       }
00118     }
00119 
00120     {for( unsigned int i = 0 ; i < df->size ; ++i )
00121 
00122       {
00123         Genfun::GENFUNCTION f = *(grad[i]);
00124         gsl_vector_set ( df, i, f(arg) );
00125       }
00126     }
00127 
00128   }

void @122::fdfun_gsl ( const gsl_vector *  v,
void *  params,
double *  f,
gsl_vector *  df 
) [static]

Compute both the function "fun_gsl" and gradient of this function "dfun_gsl" together.

Definition at line 132 of file FuncMinimum.cpp.

00136   {
00137     *f = fun_gsl( v , params );
00138     dfun_gsl ( v , params, df);
00139   }

double @122::fun_gsl ( const gsl_vector *  v,
void *  params 
) [static]

The function which we minimize.

Definition at line 88 of file FuncMinimum.cpp.

00090   {
00091     FuncMinimum::FuncMinimumMisc * local =
00092       static_cast <FuncMinimum::FuncMinimumMisc*> (params);
00093     const FuncMinimum::GenFunc& eq  = *(local->equation());
00094     Argument&                   arg = local->argument()   ;
00095 
00096     {for (unsigned int i = 0; i < v->size; ++i)
00097       {
00098         arg[i] = gsl_vector_get (v, i);
00099       }
00100     }
00101 
00102     return eq(arg);
00103   }


Generated at Mon Feb 15 17:29:01 2010 for Gaudi Framework, version v21r7p1 by Doxygen version 1.5.6 written by Dimitri van Heesch, © 1997-2004