https://github.com/bigbuildbench/asc-community_angourimath
Science Score: 23.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
○.zenodo.json file
-
○DOI references
-
✓Academic publication links
Links to: zenodo.org -
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (10.6%) to scientific vocabulary
Repository
Basic Info
- Host: GitHub
- Owner: BigBuildBench
- License: mit
- Language: C#
- Default Branch: master
- Size: 20.4 MB
Statistics
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
- Releases: 0
Metadata Files
README.md
[!WARNING] AngouriMath is deprecated. You can still use it, but it's unlikely it will go forward. Full story at wbg.gg
AngouriMath
New open-source cross-platform symbolic algebra library for C# · F# · Jupyter · C++ (WIP)
Get started
·
Examples
·
Contributions
·
What's new
·
Website
Status board
 #### Builds and tests | | Kernel/C# | F# | Interactive | C++ | |-------|-----------|----|-------------|-----| | Build |  |  |  |  | | Test |  |  |  |  | Note, that all tests and builds are tested for the following three operating systems: Windows, Ubuntu, Mac OS. #### Coverage | Kernel/C# | F# | C++ | |-----------|----|-----| |What is it about?
AngouriMath is an open source symbolic algebra library. That is, via AngouriMath, you can automatically solve equations, systems of equations, differentiate, parse from string, compile expressions, work with matrices, find limits, convert an expression to LaTeX, and many other things.
Where can be used?
The two areas of use:
🧪 Research / Data Science [click 🖱️]
## AngouriMath for research As F#, great first-functional language, skyrocketing in the area of data analysis and interactive research, AngouriMath offers a few ways to conveniently work with symbolic expressions. ### Notebooks  Notebooks provide amazing experience working with function visualization, for functions over one and two variables. With [dotnet/interactive](https://github.com/dotnet/interactive), it can be used in Visual Studio Code notebooks as well as Jupyter notebooks. To install the package, simply run this in the notebook: ``` #r "nuget:AngouriMath.Interactive,*-*" ``` ### Terminal [](./Sources/Terminal) As both a demonstration sample and a convenient tool, this repository includes tool called AngouriMath.Terminal. It is a CLI-based program to interact with AngouriMath (as opposed to API-based interaction, that is, consuming it as a lib). [**[ Download ]**](https://github.com/asc-community/AngouriMathLab/releases) Or build from sources: ``` git clone https://github.com/asc-community/AngouriMath cd AngouriMath/Sources/Terminal/AngouriMath.Terminal dotnet run -c release ``` See the online [Jupyter notebook](https://mybinder.org/v2/gh/asc-community/AngouriMathLab/try?filepath=HelloBook.AngouriMath.Interactive.ipynb) on how to use the F# API of AngouriMath. Note, that the C# API is still available via `open AngouriMath` command, then you can call the main library's methods. See its [source folder](./Sources/Terminal). ### More Read more about using AngouriMath for research on [the website](https://am.angouri.org/research).💻 Software Development [click 🖱️]
It is installed from [nuget](https://am.angouri.org/quickstart/#dotnet) for both C# and F# and can be used by Web/Desktop/Mobile development. ## Installing the library 1. Install AngouriMath from [NuGet](https://www.nuget.org/packages/AngouriMath). 2. Write the following code: ```cs using AngouriMath; using System; Entity expr = "x + sin(y)"; Console.WriteLine(expr); ``` 3. Run. More detailed Quick Start. If you are new to AM, we suggest you checking out some samples instead of reading boring documentation. If you want to contribute, we would be happy to welcome you in our community. For any questions, feel free to contact us via Discord. Official website: [am.angouri.org](https://am.angouri.org/). ## Examples Expand any section to see. Examples with live shell are on the [website](https://am.angouri.org/).
Computations
Use as a simple calculator: ```cs Entity expr = "1 + 2 * log(3, 9)"; Console.WriteLine(expr.EvalNumerical()); ```Algebra
Start with boolean algebra: ```cs Entity expr1 = "a and b or c"; // Those are the same Entity expr3 = "a -> b"; Entity expr3 = "a implies b"; ``` ```cs Entity expr = "a -> true"; Console.WriteLine(MathS.SolveBooleanTable(expr, "a")); ``` ``` >>> Matrix[2 x 1] >>> False >>> True ``` Next, solve some equations: ```cs Console.WriteLine("x^2 + x + a".SolveEquation("x")); ```Calculus
Find derivatives: ```cs Entity func = "x^2 + ln(cos(x) + 3) + 4x"; Entity derivative = func.Differentiate("x"); Console.WriteLine(derivative.Simplify()); ```Sets
There are four types of sets: ```cs WriteLine("{ 1, 2 }".Latexise()); WriteLine("[3; +oo)".Latexise()); WriteLine("RR".Latexise()); WriteLine("{ x : x^8 + a x < 0 }".Latexise()); ```Syntax
You can build LaTeX with AngouriMath: ```cs var expr = "x ^ y + sqrt(x) + integral(sqrt(x) / a, x, 1) + derive(sqrt(x) / a, x, 1) + limit(sqrt(x) / a, x, +oo)"; Console.WriteLine(expr.Latexise()); >>> {x}^{y}+\sqrt{x}+\int \left[\frac{\sqrt{x}}{a}\right] dx+\frac{d\left[\frac{\sqrt{x}}{a}\right]}{dx}+\lim_{x\to \infty } \left[\frac{\sqrt{x}}{a}\right] ```Compilation
Now you can compile expressions with pritimives into native lambdas. They will be at least as fast as if you wrote them in line in code, or faster if you have same subexpressions in your expression. ```cs Entity expr = "a and x > 3"; var func = expr.CompileMultithreading
You are guaranteed that all functions in AM run in one thread. It is also guaranteed that you can safely run multiple functions from AM in different threads, that is, all static variables and lazy properties are thread-safe. There is also support of cancellation a task. However, to avoid injecting the cancellation token argument into all methods, we use `AsyncLocalF#
Download Not everything is supported directly from F#, so if something missing, you will need to call the necessary methods from AngouriMath. ```fs open Functions open Operators open Shortcuts printfn "%O" (solutions "x" "x + 2 = 0") printfn "%O" (simplified (solutions "x" "x^2 + 2 a x + a^2 = 0")) printfn "%O" (``dy/dx`` "x^2 + a x") printfn "%O" (integral "x" "x2 + e") printfn "%O" (``lim x->0`` "sin(a x) / x") printfn "%O" (latex "x / e + alpha + sqrt(x) + integral(y + 3, y, 1)") ```C++ (Experimental)
At the moment, AngouriMath.CPP is in the experimental phase. See how to get AngouriMath for C++. ```cpp #includeContribution
AngouriMath is a free open-source project, there is no big company backing us. That is why we warmly welcome any contributors to the project. Aside from volunteer donations, you can help developing the project: check the guide for developers.
License & citation
The project is open source, but can be used in closed commercial projects. There is no restriction on it with the only requirement to keep the MIT license with all distributives of AngouriMath.
Owner
- Name: BigBuildBench
- Login: BigBuildBench
- Kind: organization
- Repositories: 1
- Profile: https://github.com/BigBuildBench
abbr. B3, benchmarking the repo-level understanding capability of your LLMs by reconstructing project build-file.
GitHub Events
Total
- Create event: 4
Last Year
- Create event: 4
Dependencies
- actions/checkout v2 composite
- actions/setup-dotnet v1 composite
- actions/checkout v2 composite
- actions/setup-dotnet v1 composite
- actions/upload-artifact v2 composite
- actions/checkout v2 composite
- actions/setup-dotnet v1 composite
- actions/upload-artifact v2 composite
- actions/checkout v2 composite
- actions/setup-dotnet v1 composite
- actions/checkout v2 composite
- actions/setup-dotnet v1 composite
- actions/upload-artifact v2 composite
- codecov/codecov-action v1 composite
- actions/checkout v2 composite
- actions/setup-dotnet v1 composite
- actions/checkout v2 composite
- actions/setup-dotnet v1 composite
- actions/checkout v2 composite
- actions/setup-dotnet v1 composite
- actions/checkout v2 composite
- actions/setup-dotnet v1 composite
- actions/checkout v2 composite
- actions/setup-dotnet v1 composite
- actions/checkout v2 composite
- actions/setup-dotnet v1 composite
- actions/checkout v2 composite
- actions/setup-dotnet v1 composite
- actions/checkout v2 composite
- actions/setup-dotnet v1 composite