Skip to content

Instantly share code, notes, and snippets.

@WhiteBlackGoose
Last active December 4, 2020 08:29
Show Gist options
  • Save WhiteBlackGoose/13c78f15eaa250bc8b02202554690e00 to your computer and use it in GitHub Desktop.
Save WhiteBlackGoose/13c78f15eaa250bc8b02202554690e00 to your computer and use it in GitHub Desktop.
A small note on what is AngouriMath and why we need it

What is AngouriMath?

Well, first of all, it's a computer/symbolic algebra library. Say, are you familiar with SymPy? If so, think of AngouriMath as of something similar, but for .NET. It's .NET, after all, which is going to rule the programming world, not python.

If you don't know SymPy, AngouriMath can be similar to Wolfram|Alpha in some way. You can manipulate so-called symbolic expressions, that is, mathematical expressions written within a normal human notation (aka with functions, operators, etc.), and variables.

Nuget (with prereleases)

How can it be used?

Unlike Computer Algebra Systems (CAS), AM is a library. That is, you may embed it in any your project without learning a web-api, having to pay money for machine loads, etc. You press the button "Install", and there you go, unlimited use of it.

Now, how about where? I'd say that you may want to use it in:

  1. Modelling. Yes, it's convenient when a user puts an expression into an input box, and thanks to compilation, you can quickly run the function hundreds of times to render the plot or model something more complicated.

  2. LaTeX. The text from which you parse the expression is very similar to human notation (say, { x : x > 0 } - that's how you create a set in set-builder notation). Not only that, after having parsed one, you can run the Latexise() method to get a string of LaTeX code. And then just pass this string to your renderer!

  3. Math applications. Say, you're developing an app to solve some equations. Sometimes you may want to solve an equation requested by the user, or check the answer, or simplify it, etc. You can use AM for it. Not only that, if the request appears to be too long, you can cancel it thanks to cancellation token injected checks.

  4. School applications. Obviously, via AM you can build an app for students to help them to develop their skills. The Step recorder, although rather a feature of the future, will show the detailed solution with no constraints (unlike any other computer algebra library).

  5. Many others. It's hard to estimate from now where one can use it. It's a math library, and math is euber alles!

Is there a better solution?

Although it depends, if you are looking for a supported and powerful symbolic algebra library in .NET, we're afraid it's the only possible choice. There are a few which can perform some basic operations, even those that can, they mostly don't have any solvers, limits, and other features with which AM stands out.

Nonetheless, we're constantly developing the library. Any issue will be answered within a day or sooner. If you even don't have a day, ask us directly.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment