Welcome to mathextra

Functions from Mathematical Statistics, Special Functions, and miscellaneous functions useful in science and engineering. Also the home of BLADE, the Basic Linear Algebra D Expressions library. For 3D applications developers, there another D library: Helix.

For discussion information, visit the mathextra forum.

License

All source code is under the MIT license, and free for commercial and non-commercial use.

Design Principles

The first priority is accuracy, followed by performance. There is no value in providing results quickly if they are wrong.

* As far as possible, all functions attempt to provide full machine precision (80-bits on Intel/AMD CPUs).

* All functions return correct results for infinity, and for signed zero.

* Unit tests are provided for all functions, with >90% test coverage.

Functions are named with descriptive names, rather than traditional mathematical names. Mathematica was used as a reference for many of the names. camelCase is used, to be consistent with the D standard library.

List of included functions

Mathematical Special Functions

gamma, logGamma. beta. productLog elliptical functions Bessel functions

Mathematical Statistics

Distributions and inverse distributions for the most common probability distributions. Complementary distributions (ie, 1-p) are provided to ensure high relative accuracy for near-unity probablities. Currently, the following distributions are supported:

normal, poisson, studentsT, fisher, chiSquare, beta, gamma, incomplete gamma, binomial and negative binomial distributions. Inverse distributions are provided for all of the above.

Curve fitting and function analysis

findRoot minimizeFunc leastSquaresFit

Discrete Mathematics

Signal Processing

fastFourierTransform

Miscellaneous

bit manipulation