Note: This website is archived. For up-to-date information about D projects and development, please visit

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.

Project Status

Development halted with changeset 190 on 02-06-2009.

From a 01-30-2007 forum post:

Subject: This project has been abandoned _in its current form_

...but most of it has already been incorporated into Tango. <g>

See also:


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



bit manipulation