Learn how easy it is to sync an existing GitHub or Google Code repo to a SourceForge project! See Demo

Close

Tree [025bb5] default tip / src /
History



File Date Author Commit
DDDD_to_D.cc.template 2013-06-16 carandraug carandraug [f0bceb] gsl: remove duplicated content (thanks to Thoma...
DDD_to_D.cc.template 2008-06-20 rrogers rrogers [58acde]
Makeconf.in 2014-01-30 Nir Krakauer Nir Krakauer [77cf38] maint: remove unused Makefile, add Makeconf.in
Makefile 2014-01-28 Nir Krakauer Nir Krakauer [049c58] Perform GSL detection on Makefile.
README 2006-08-23 adb014 adb014 [b1d8e1] working gsl package. Clean-up print_usage warnings
bootstrap 2013-06-21 Carnë Draug Carnë Draug [554519] maint: rename autogen.sh as bootstrap
buildgsl_sf.sh 2012-05-28 carandraug carandraug [162b93] bessel_zero_Jnu: add binding for the bessel_zer...
configure.base 2013-06-21 Carnë Draug Carnë Draug [554519] maint: rename autogen.sh as bootstrap
coupling_3j.cc 2008-02-04 adb014 adb014 [45c1b0] More copyright updates
coupling_6j.cc 2008-02-04 adb014 adb014 [45c1b0] More copyright updates
coupling_9j.cc 2008-02-04 adb014 adb014 [45c1b0] More copyright updates
double_double_to_double.cc.template 2006-10-06 adb014 adb014 [b69f5d] escape {} in help.
double_int_to_double.cc.template 2012-05-28 carandraug carandraug [162b93] bessel_zero_Jnu: add binding for the bessel_zer...
double_mode_to_double.cc.template 2006-10-08 adb014 adb014 [e16ca7] Add missing \\n\\ in texinfo strings. my fault
double_to_double.cc.template 2006-10-06 adb014 adb014 [b69f5d] escape {} in help.
int_double_to_double.cc.template 2006-10-06 adb014 adb014 [b69f5d] escape {} in help.
int_int_double_to_double.cc.template 2006-10-06 adb014 adb014 [b69f5d] escape {} in help.
int_to_double.cc.template 2006-10-06 adb014 adb014 [b69f5d] escape {} in help.
legendre_sphPlm_array.cc 2008-06-20 rrogers rrogers [58acde]
precode.cc.template 2008-02-04 adb014 adb014 [45c1b0] More copyright updates
replace_template.sh 2006-08-20 hauberg hauberg [bad47e] Changed the directory structure to match the pa...

Read Me

Wrapper for the GNU Scientific Library special functions.

GSL special functions are automatically generated.

When a new version of GSL comes out with new functions,
add the octave name, the GSL name and the documentation
string to buildgsl_sf.sh.  

To protect against users having an older version of GSL
installed, you will also need to test for these new 
functions in configure.add, listing as missing any that 
are not available.  If several functions are added by one 
release of GSL you only need to test for one and list the rest.
Trim gsl_sf_ from the name when listing it as missing.

Each new definition will look like the following:

   if test -n "${missing##* FN *}"; then
   export octave_name=FN
   export funcname=gsl_sf_FN
   cat <<EOF > docstring.txt
   FN_DESCRIPTION
   EOF
   ./replace_template.sh INPUTS_to_double.template >> gsl_sf.cc
   fi

Replace FN, gsl_sf_FN, FN_DESCRIPTION and INPUTS as appropriate.

There are several different templates to use depending
on the inputs to the special function.  For example, if 
the function takes two doubles and returns a double, use 
the double_double_to_double.cc template.

To see the available templates, use:

	ls *template

As of this writing there are:

	double fn(double)
	double fn(double,double)
	double fn(int)
	double fn(int,double)
	double fn(int,int,double)
	double fn(double,mode)

mode is a precision mode accepting a gsl_mode_t value.

If there is not appropriate template, you will have
to write your own, or write a specialized C++ function
for the new form.

Note that GSL special functions have an _e form which
returns an estimate of the absolute error of the
returned value.  These are handled automatically by
the templates.  If there is no _e form available you
will need to write a specialized template for the
function.