Main Page | Alphabetical List | Class List | File List | Class Members | File Members

SpecialFunctions Documentation

1.4

This version of SpecialFunctions is based on the GNU Scientific Library, gsl, release 1.4 of August 5, 2003. Release 1.4 is the fourth major update to the first official release. The full gsl is much larger than what has been considered here. Here, we provided wrappers for only the Special Functions portion.

The gsl is distributed under the terms of the GNU General Public License (GPL). Full details and implications of the GPL are found at

http://www.fsf.org/copyleft/gpl.html

In contrast to earlier releases of the Zoom SpecialFunctions package, this release does not imbed the underlying gsl code within the package. Rather, we simply assume that the gsl library exists somewhere on your system and that you will list it among the other required libraries on your link command. In general, it is only necessary for the environment variable $GSL_DIR to be defined a la ups/upd. Note that gsl 1.4 is available from fnkits via upd for all supported flavors.

Note also that the gsl 1.4 in kits was built with gcc v3.2.1 and hence is almost certainly not compatible with user code compiled with any of the gcc 2.x.y.

Relative to previous releases of this package, there is one addition to the user interface that needs to be mentioned. The gsl contains a default error handler and code to report and react to various internal error conditions that may arise. On the other hand, we want to use the standard Zoom Exception handling and reporting mechanism. To allow that to work, it is necessary for the user to tell gsl to report but otherwise not attempt to handle errors. That is done by inserting

#include "SpecialFunctions/SFInitialize.h"

and calling SFInitialize::Initialize(); once somewhere early in your code.

Special warning to RedHat 7 Linux users

As of release 7 of RedHat Linux, there is a version of the gsl library in /usr/lib as well as in the products area. The two are not compatible, since the one in /usr/lib is from an earlier release of the gsl, before the public interface was finalized. If you inadvertently link against that library, the link will fail with obscure messages about missing functions whose names you won't recognize since the references come from RedHat's gsl rather than than from ours. To avoid this, be sure to put the fields

-L$GSL_DIR/lib -lgsl

or, perhaps safer in this context

$GSL_DIR/lib/liblgsl.a

ahead of any direct or indirect references to system libraries.

Generated on Wed Feb 25 15:03:16 2004 for SpecialFunctions by doxygen 1.3.4