Information for Distributors

The information given here is intended for people distributing pygsl as well as for people who are not afraid to run code generation tools in case pygsl generates trouble.

Preferable array module

The numpy array module should be the first choice these days.

Wrapper generated modules

The following modules are generated by the SWIG wrappers: In case on of these modules shows a compilation error, just delete the corresponding file in the swig_src directory (e.g. swig_src/poly_wrap.c if for the poly module.). Set the variable USE_SWIG to 1 in the setup.py file. Run the build process again. Now setup.py should call swig and rebuild the module wrappers.

Dedicated wrappers

Some modules come with their own wrapping tools which are implemented in python.

The const module

Change into the src directory. Define the shell variable PYGSL_GSLCVS variable, so that it either points to the GSL CVS repository or to the include directory of your GSL installation (typically /usr/include on a linux installation). Then type python ../tools/constants_tool.py This will generate the files const_m_array.c const_num_array.c const_cgsm_array.c const_mksa_array.c

The special function module

PyGSL comes with two implementations for the special functions. The sf and the testing.sf module. The first one was the first implementation, while the later one wraps the special functions as Numeric or numpy UFuncs. The UFunc module will eventually replace the sf module.

Generating the wrapper has not been automatized yet. First swig is used to parse the header files and dump them into xml and then a specialized wrapper reads this tree and writes the wrappers.

This involves the following steps:

The functions not wrapped automatically are defined in the list exclude_list in the file sf_functions.py.