The following source files contain both the Ada specification part and body part. These can either be separated manually, or automatically using a tool such as gnatchop.
Each function implementation is a generic package so the programmer can choose which floating point type to use. For example, to instantiate the
Gamma package using
package My_Gamma is new Gamma(Long_Float);
Implementations by function: