Files to compute some special functions (source codes in C/C++), free for download and with no warranty. 

error_function.zip (5 kB)
   The error function erf and its complementary erfc, the version which can be found in Sun's library (Cody's solution and thus
   only for Reals), but ready to use. For its cousin - the cumulative normal distribution - see the main page (and the VBA code)
   or use
cdfN(x) = ( 1 + erf(x/sqrt(2)) ) / 2, but be aware that this always will introduce some relative errors.

MillsRatio.zip (3 kB)
   Mills' ratio (or the inverse of the hazard function) and defined as
(1 - cdfN(x))/pdfN(x)and thus also can by used to
   compute the cumulative normal distribution. The absolute and relative errors are
~ 2 * DBL_EPSILON and the test report
   regards the
IEEE representation for doubles, Mills_IEEE.pdf (459 kB).

LambertW.cpp (1 kB)
   Lambert's W function solves the equation
x = y * exp(y) = y + y^2 + y^3/2 + y^4/6 + y^5/24 + ...
   y = LambertW(x)
is a kind of log for that. Over the positive Reals it can be computed by Newton's method, which converges
   quickly (~ 3 steps) with relative error below
2 * DBL_EPSILON (absolute error below DBL_EPSILON for x= 0 .. 1).

gamma_lanzos.zip (4 kB)
   Gamma function for complex inputs, which also works very close the the poles in negative integers. Basically it uses Godfrey's
   method (which however seems to have problems in those regions). The tests for accuracy are done with Maple (using high
   precision and regarding IEEE representation for doubles), here are some test results: gamma_lanczos_NP_test.pdf (20 kB).

hypergeometric function 2F1 function (internal link)
   For
Gauss' function, complex case for parameters and variable, has its own URL. Note it is the function, not merely the series
   in the unit disk.


   up 


feedback is welcome & if you want to drop me any comment ... 


07 Jun 2010: uploaded
 

This software is provided "as is" and any express or implied warranties, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose are disclaimed. In no event shall the author be liable for any direct, indirect, incidental, special, exemplary, or consequential damages (including, but not limited to, procurement of substitute goods or services; loss of use, data, or profits; or business interruption) however caused and on any theory of liability, whether in contract, strict liability, or tort (including negligence or otherwise) arising in any way out of the use of this software, even if advised of the possibility of such damage.