Powerful mathematics and statistics library for JavaScript.

Usage no npm install needed!

<script type="module">
  import mathigonFermat from 'https://cdn.skypack.dev/@mathigon/fermat';



Build Status npm npm

Fermat.ts is a powerful mathematics and statistics library for TypeScript. It contains everything from number theory to random numbers, expression parsing and linear algebra classes. It was developed for Mathigon.org, an award-winning mathematics education project.


Note: in version 0.6.0, all geometry classes and functions were moved to @mathigon/euclid!

  • Arithmetic: nearlyEquals(), toWord(), toFraction(), …
  • Combinatorics: factorial(), binomial(), permutations(), subsets()
  • Complex numbers: Complex()
  • Cryptography: caesarCipher(), vigenereCipher(), letterFrequency()
  • Matrices: Matrix.product(), Matrix.determinant(), Matrix.inverse(), …
  • Number theory: gcd(), isPrime(), generatePrime(), goldbach(), …
  • Numeric: bisect(), integrate()
  • Random: Random.shuffle(), Random.binomial(), Random.normalPDF(), …
  • Regression: Regression.linear(), Regression.coefficient(), …
  • Statistics: mean(), variance(), linearRegression(), …
  • Vector: Vector()


First, install Fermat.ts from NPM using

npm install @mathigon/fermat

Now, simply import all functions and classes you need, using

import {Complex, gcd} from '@mathigon/fermat'


We welcome community contributions: please file any bugs you find or send us pull requests with improvements. You can find out more on Mathigon.io.

Before submitting a pull request, you will need to sign the Mathigon Individual Contributor License Agreement.

Copyright and License

Copyright © Mathigon (dev@mathigon.org)
Released under the MIT license