This is the mail archive of the gsl-discuss@sources.redhat.com mailing list for the GSL project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: GSL-0.9 -> Standard interface to functions/pakages


Nicolai Hanssing writes:
 > First of, it should be suffcient for the solvers, and minimizers with one
 > interface to usersupplied functions and derivatives:
 > .....
 > gsl_(???)_function_f: 
 > int (* f) (const gsl_vector * X, void * PARAMS, gsl_vector* F)
 > gsl_(???)_function_df:
 > int (* df) (const gsl_vector * X, void * PARAMS, gsl_matrix * J)
 > gsl_(???)_function_fdf:
 > int (* fdf) (const gsl_vector * X, void * PARAMS, gsl_vector * F,gsl_matrix * J)
 > 
 > Currently each optimizing-pakage has it own similar definition, when the
 > interface above clearly should be sufficient.
 >
 > Next up, using the above definition GSL should be able to provide the
 > users with a simplified interface to both solvers, minimizers and
 > maximizers. I.e. use of the interface should only be 3-4 steps:
 >
 > My point is that little enhancements, and the ability to try functions
 > implemented in gsl, without the need of a big program to setup *all*
 > options, and allocations would greatly improve upon
 > development-time, allthough the pakage might give a performancehit. It can
 > be seen as a higherlevel interface to lowerlevel functions. If users want
 > more direct control, they can offcourse use the lower-level pakages
 > directly.

The library is oriented towards interfacing to scripting languages, so
the routines are low-level and broken down into fundamental
components.  The structs for gsl_multifit_.., gsl_multiroots_.., etc
should be regarded as part of the interface, as a way to pass in a
collection of arguments, rather than a mathematical object. The
functions correspond to a library, rather than an 'environment'. So
from this point of view its natural that the multiroots, multifit and
multimin modules use different structs.  If you'd like to make a
separate higher-level interface for C/C++ programming feel free to do
that.




Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]