Last update March 7, 2012

Scientific Libraries



Scientific and Mathematical Libraries in D    

This list only includes libraries which are in a usable state. All libraries use a liberal license (eg, BSD, Academic Free) unless otherwise stated.

Table of contents of this page
Scientific and Mathematical Libraries in D   
tango.math (D1.x)   
MultiArray   
dstats (D2.x)   
blip (D1.x)   
Openmesh   
Onp   
Lyla   
SciD   
Scrapple/backmath   
Scrapple/units   
Bindings   
Plotting libraries   
Dplot   
PLplot library   
Plot2Kill   
Wishlist   
Abandoned / Proof-of-Concept libraries   

tango.math (D1.x)    

VersionD1.xD2.x
LibraryTango 
License 

DsourceProject:tango/browser/trunk/tango/math

  • Mathematical Special Functions (80-bit)
  • Cumulative distribution functions (80-bit).
  • Random number generation for several elementary probability distributions.
  • BigInt.
  • 1-D root finding and minimisation via bracketing.

MultiArray    

VersionD1.xD2.x
LibraryPhobos 
LicenseZLIB

DsourceProject:multiarray

  • Wrappers: wrappers for various high-performance linear algebra libraries: BLAS, LAPACK, UMFPACK, SuperLU, TAUCS, and ARPACK.
  • Murray: an N-dimensional array class that emulates a multidimensional-array. BLAS/LAPACK are used to implement maxtrix-vector and matrix-matrix multiplication, linear solver, and a least squares solver.
  • DFlat: a Vector/Matrix library implementing various storage formats of dense and sparse matrices (dense: strided,banded,packed; sparse:compressed row, compressed column, triplet). This additionally includes a simple, unified interface to the linear solvers in the LAPACK, UMFPACK, SuperLU and TAUCS libraries.

dstats (D2.x)    

VersionD1.xD2.x
Library Phobos
LicenseMostly Boosta couple borrowed modules are under BSD

DsourceProject:dstats

  • D2 port of parts of tango.math
  • correlation: Pearson, Spearman, and Kendall correlation, and covariance.
  • Entropy, mutual information, conditional mutual information.
  • Random number generation for several elementary probability distributions.
  • Sorting algorithms with some added features that are useful for non-parametric statistics calculations.
  • Summary statistics such as: mean, median, standard deviation, skewness, kurtosis.
  • Hypothesis testing, such as T-tests, Wilcoxon tests, Chi-square and Kolmogorov-Smirnov tests.
  • Linear regression with statistical inference capabilities.

blip (D1.x)    

VersionD1.xD2.x
LibraryTango 
License 

DsourceProject:blip

  • SMP parallelization
  • serialization
  • random testing framework
  • N dimensional arrays with a nice interface to several lapack functions.

Openmesh    

VersionD1.xD2.x
LibraryPhobos 
LicenseLGPL v2.1

DsourceProject:openmeshd

  • OpenMesh is a library for manipulating polygonal meshes.

Onp    

VersionD1.xD2.x
LibraryPhobosPhobos
LicenseBSD

  • Hompage: http://tsk.ch.uj.edu.pl/wiki/onp
  • Many ODE solvers
  • Matrix (dense, sparse, band), lanczos, eigenvalue functions.
  • Newton, Broyden solvers
  • Wrappers for GMP
  • Interval arithmetic
http://smp.if.uj.edu.pl/~baryluk/d/onpd/onp/ddoc/general.html

Lyla    

VersionD1.xD2.x
Library  
License 

DsourceProject:lyla Template-class library for matrices and vectors, dense and sparse.

SciD    

VersionD1.xD2.x
Library Phobos
LicenseBoost Software License

https://github.com/kyllingstad/scid/wiki

SciD is a collection of numerical routines and bindings written in and for the D programming language. Currently, the collection is rather small but expanding.

For the time being, SciD simply aims to be a freely usable repository of numerical algorithms. The long-term goal is to ultimately produce a full-fledged, general-purpose scientific library la the GNU Scientific Library or SciPy?.

Components:

  • scid.calculus: Numerical integration (quadrature) and differentiation.
  • scid.constants: Fundamental constants of mathematics and Nature.
  • scid.exception: Functions and classes used by SciD? for exception handling, also useful for client code. (Similar to std.exception.)
  • scid.functions: Mathematical special functions.
  • scid.linalg: Linear algebra functions, i.e. user-friendly interfaces to LAPACK.
  • scid.matrix: Contains the MatrixView? type, which is a LAPACK-compatible matrix view of ordinary D arrays, as well as some utility functions.
  • scid.nonlinear: Methods for nonlinear equation solving.
  • scid.types: Various useful types.
  • scid.util: Various odds and ends that don't fit anywhere else.

Scrapple/backmath    

VersionD1.xD2.x
LibraryPhobos 
License 

DsourceProject:scrapple/browser/trunk/backmath

Scrapple/units    

VersionD1.xD2.x
LibraryPhobos 
License 

DsourceProject:scrapple/browser/trunk/units

Bindings    

Plotting libraries    

Dplot    

VersionD1.xD2.x
LibraryPhobos 
LicenseLGPL

DsourceProject:dplot

  • A wrapper for gnuplot

PLplot library    

VersionD1.xD2.x
Library  
LicenseLGPL

  • PLplot is a library of functions that are useful for making scientific plots. The latest svn repository as of 28th of March 2008 has D bindings for this library and also some examples ported.
  • PLplot homepage: http://plplot.sourceforge.net

Plot2Kill    

VersionD1.xD2.x
Library Phobos
LicenseBoost Software License

DsourceProject:plot2kill

Wishlist    

  • A graphing package
    • Basic 2-D x-y plots, linear/log/user-defined(eg, statistical distribution), support for infinity and nan. -> see PLplot library above.

Abandoned / Proof-of-Concept libraries    

These libraries contain functionality which may be useful for further library development.

  • Deimos (Arse Licence, D0): BigInt, including Montgomery multiply, sqrt, etc, prime tests, BigRational.
  • MathExtra: Special functions (most now in Tango), linear algebra proof of concept. Do not use.
  • Helix: Now in Openmesh.
  • Mathematics: Vector & matrix classes. Abandoned.

FrontPage | News | TestPage | MessageBoard | Search | Contributors | Folders | Index | Help | Preferences | Edit

Edit text of this page (date of last change: March 7, 2012 20:37 (diff))