Skip to content
Rafael Vuijk edited this page Aug 12, 2026 · 9 revisions

Welcome to the AngouriMath wiki. These pages are the guide; the almanac is the per-member reference.

Getting started Parsing an expression from string · Expressions · Basic operations · Evaluation

Doing mathematics Simplification · Solvers · Differentiation · Integration · Limits · Matrices

Using it in a program Compilation · Settings · Multithreading · Exceptions

Other surfaces AngouriMath in F# · Jupyter notebooks · Terminal

The pages describe 2.1.0. Answers changed in both 2.0.0 and 2.1.0 because the old ones were wrong, and every one of them is listed with both values, under a heading per release, in BREAKING-CHANGES.md. 2.1.0 is a drop-in replacement for 2.0.0.


For anyone editing these pages

Every ```cs and ```fs block here is compiled against a build of the library, run, and its stated output compared with the one produced, by a harness that reports a page and line for anything that does not hold. So a sample that names a member the library no longer has is caught here rather than by a reader.

Two conventions make that work, and both are worth keeping for the reader's sake anyway:

  • using AngouriMath;, using static AngouriMath.MathS; and using static AngouriMath.Entity; are implied in every sample, along with using System;. Anything else a sample needs, it states — using System.Numerics; for Complex, using AngouriMath.Extensions; for the string extensions.
  • What a sample prints goes in a bare fence introduced by Output:, on its own line. Not ```cs, which marks code. Short outputs may instead be trailing comments on the Console.WriteLine lines, and then every printing line needs one.

A block that cannot be a whole program — a fragment, pseudo-code, something written against a UI, something that throws on purpose — says so in an HTML comment before the fence, which does not render:

<!-- amcheck:skip a fragment, not a whole sample -->
<!-- amcheck:compile throws on purpose -->
<!-- amcheck:continues -->
<!-- amcheck:nooutput the printed set is abbreviated on purpose -->

continues appends the block to the sample before it, which is how a page can build a value in one block and print it in the next.

Clone this wiki locally