AngouriMath
Navigation
Home
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
Two conventions make that work, and both are worth keeping for the reader's sake anyway:
using AngouriMath; ,using static AngouriMath.MathS; andusing static AngouriMath.Entity; are implied in every sample, along withusing System; . Anything else a sample needs, it states —using System.Numerics; forComplex ,using AngouriMath.Extensions; for thestring 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 theConsole.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 -->
Angouri © 2019-2026 · Project's repo · Site's repo · Octicons · Transparency · 5057 pages online