We are PolyMath
Clone or download
Latest commit c0f892c Nov 10, 2018



Project Status: Active – The project has reached a stable, usable state and is being actively developed. Build Status Build status License

You can load the code in a fresh Pharo 6.1 image with:

Metacello new
        repository: 'github://PolyMathOrg/PolyMath:master/src';
        baseline: 'PolyMath';

We have 767 green tests !

PolyMath is a Smalltalk project, similar to existing scientific libraries like NumPy, SciPy for Python or SciRuby for Ruby. PolyMath already provide the following basic functionalities:

  • complex and quaternions extensions,
  • random number generators,
  • fuzzy algorithms,
  • KDE-trees,
  • Didier Besset's numerical methods,
  • Ordinary Differential Equation (ODE) solvers.

Lorentz attractor with PolyMath and GraphET

A book about PolyMath called "Numerical Methods" is available online: https://github.com/SquareBracketAssociates/NumericalMethods/releases/tag/snapshot-2016-01-17

Some documentation (to be cleaned and reorganized) about PolyMath is available on the Wiki here: https://github.com/PolyMathOrg/PolyMath/wiki

Natalia wrote some explanation about benchmarking PolyMath in the Pharo For Enterprise Book: https://github.com/SquareBracketAssociates/PharoForTheEnterprise-english/blob/ae40e7ab6f7651f6e7c271869eb1efc4e531e774/ComparingSolutions/ComparingSolutions.pier

Install PolyMath

To install PolyMath on your Pharo image you can just execute the following script:

    Metacello new
        githubUser: 'PolyMathOrg' project: 'PolyMath' commitish: 'master' path: 'src';
        baseline: 'PolyMath';

To add PolyMath to your baseline just add this:

    	baseline: 'PolyMath'
    	with: [ spec repository: 'github://PolyMathOrg/PolyMath:master/src' ]

Note that you can replace the #master by another branch as #development or a tag as #v1.0.0, #v1.? or #v1.2.? .

How to contribute to PolyMath

We welcome submissions! A google group exists for this project at http://groups.google.com/group/polymath-project