Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/asc-community/AngouriMathCLI
Command-line interface based on AngouriMath
https://github.com/asc-community/AngouriMathCLI
Last synced: about 2 months ago
JSON representation
Command-line interface based on AngouriMath
- Host: GitHub
- URL: https://github.com/asc-community/AngouriMathCLI
- Owner: asc-community
- License: gpl-3.0
- Created: 2022-11-14T11:51:46.000Z (about 2 years ago)
- Default Branch: master
- Last Pushed: 2023-06-15T23:54:11.000Z (over 1 year ago)
- Last Synced: 2024-07-31T20:31:52.777Z (4 months ago)
- Language: C#
- Size: 94.7 KB
- Stars: 16
- Watchers: 2
- Forks: 0
- Open Issues: 5
-
Metadata Files:
- Readme: README
- License: LICENSE
Awesome Lists containing this project
- awesome-cli-apps - AngouriMathCLI - CLI calculator based on AngouriMath. (<a name="calc"></a>Calculators)
- awesome-cli-apps-in-a-csv - AngouriMathCLI - CLI calculator based on AngouriMath. (<a name="calc"></a>Calculators)
README
.TH amcli 1 "amcli"
.SH DESCRIPTION
Why use it?
- Free and cross-platform
- CLI interface for script automations
- Piping for complex operations
- Fast and small
.SH SUBCOMMANDS
.TP
\fBeval\fR
to evaluate into a single number, boolean, or a+bi form at for complex numbers. Expects one argument.Example:
$ amcli eval "1 / 2"
0.5
$ amcli eval "e ^ pi > pi ^ e"
true.TP
\fBdiff\fR
to differentiate the expression over the given variable (the first argument). Expects two arguments.Example:
$ amcli diff "x" "sin(x)"
cos(x)
$ amcli diff "x" "1 + x^2"
2 * x
$ echo "1 + x^2" | amcli diff "x"
2 * x.TP
\fBsimp\fR
to simplify the expression. Expects one argument.Example:
$ amcli simp "sin(x)^2 + cos(x)^2"
1.TP
\fBfsimp\fR
to simplify the expression "faster". This one works closer to eval than to simp, but unlike eval, it won't try to collapse to a single number or boolean (e. g. sqrt(3) will stay as it is). Expects one argument.Example:
$ amcli fsimp "sin(x)^2 + cos(x)^2"
1.TP
\fBsolve\fR
to solve a *statement* over the given variable. A *statement* is an expression, otherwise evaluable to true or false (e. g. "x > 3" is a statement, but "x ^ 2" is not).When the solution set is a finite solution, all solutions are written line-by-line. Otherwise, it's written as one line.
Example:
$ amcli solve "x" "x2 - 1 = 0"
1
-1
$ amcli solve x "x2 > 1"
(-oo; -1) \/ (1; +oo).TP
\fBlatex\fR
to convert an expression into LaTeX format. Expects one argument.Example:
$ amcli latex "1/2"
\frac{1}{2}
$ amcli latex "(sqrt(3) + x) / limit(sin(x) / x, x, 0)"
\\frac{\\sqrt{3}+x}{\\lim_{x\\to 0} \\left[\\frac{\\sin\\left(x\\right)}{x}\\right]}.TP
\fBsub\fR
to substitute an expression instead of a variable. Expects three arguments (variable to substitute, expression to be substituted instead of the variable, expression).Example:
$ amcli sub x pi "sin(x / 3)"
sin(pi / 3)
$ amcli sub x "pi / 3" "sin(x)"
sin(pi / 3).SH PIPING
.TPAny argument can be received either as a CLI argument or through standard input.
For example,amcli eval "1 + 1"
is equivalent to
echo "1 + 1" | amcli eval
This allows to pipe complex evaluations:
echo "sin(x) * cos(y)" \ # 0. initial expression
| amcli diff x \ # 1. differentiate over x
| amcli sub x y \ # 2. substitute y instead of x
| amcli diff y \ # 3. differentiate over y
| amcli sub y "pi/3" \ # 4. substitute pi/3 instead of y
| amcli simplify # 5. simplifyPrints
-1/2 * sqrt(3)
Special symbol "_" (underscore) can be used to use stdinput instead of an argument. For instance, if you want to substitute the result of an operation into another expression:
echo "e^x" \
| amcli sub u _ "u / (1 + u)" \
| amcli sub x 10 \
| amcli evalHere the result of `echo` is substituted instead of the second argument of `amcli sub`, not the last one.
.SH OTHER
You can bind amcli to @ using aliases. On Unix-like operating systems, add
alias @=amcli(or specify the full path)