String Calculator
A small package containing eval methods to compute formulas inside strings.
How to use
Simply import the eval you need and use it.
use eval_f64;
Operators
Since there's a lot of things that could be simplified visually, here's the full list of operators implemented.
- Add (x+y)
This operator handle the addition between two number.
Example:
1 + 2
= 3
- Subtract (x-y)
This operator handle the subtraction between two number.
Example:
2 - 1
= 1
- Multiply (x*y)
This operator handle the multiplication between two number.
Example:
3 * 2
= 6
- Divide (x/y)
This operator handle the division between two number.
Example:
4 / 2
= 2
- Modulo (x%y)
This operator handle the rest of the euclidian division between two number.
Example:
4 % 2
= 0
- Left Shift (x<<y) (only in
eval_i64
) This operator shift the bits ofx
toy
positions to the left (it's the same as multiplying by2^y
). Example:1 << 2
= 4
- Right Shift (x>>y) (only in
eval_i64
) This operator shift the bits ofx
toy
positions to the right (it's the same as dividing by2^y
). Example:4 >> 2
= 1
- PowerOf (x^y) (only in
eval_f64
andeval_i64
) This operator handle the power ofx
byy
,x
andy
being both numbers. Example:3^3
= 27
- Subscript support (x²) (only in
eval_f64
andeval_i64
) This operator handle the power ofx
by using the superscript notation (such as²
) for integers,x
being a number. Example:5²
= 25
- Factorial (x!) (only in
eval_f64
andeval_i64
) This operator handle the factorial of a realx
. Example:5!
= 120
- DegToRad (x°) (only in
eval_f64
) This operator handle the conversion from degree to radian. You should note that it's priority is the same as multiplication. Example:3°
= 0.05235987755982989
- RadToDeg (x rad) (only in
eval_f64
) This operator handle the conversion from radian to degree. You should note that it's priority is the same as multiplication. Example:3 rad
= 171.8873385393
Function notation
Some function can be written purely using their original mathematical notation if wanted.
- Floor (⌊x⌋) (only in
eval_f64
andeval_decimal
) This function gives the greatest integer less than or equal tox
. Example:⌊2.4⌋
= 2
- Ceiling (⌈x⌉) (only in
eval_f64
andeval_decimal
) This function gives the smallest integer greater or equal tox
. Example:⌈2.4⌉
= 3
Functions
- Absolute value (abs(x))
- Signum (sgn(x), sign(x), signum(x))
- Power (pow(x,y)) (only in
eval_f64
andeval_i64
) - Square root (sqrt(x)) (only in
eval_f64
andeval_i64
) - Root (root(x)) (only in
eval_f64
andeval_i64
) - Modulo (mod(x,y))
- Exponential (exp(x), exp2(x)) (only in
eval_f64
andeval_i64
) - Logarithm (ln(x), log(x, b)) (only in
eval_f64
andeval_i64
) - Extremum (min(...X), max(...X))
- Avg (avg(...X))
- Median (median(...X), med(...X))
- Truncate (trunc(x), truncate(x)) (only in
eval_f64
andeval_decimal
) - Floor (floor(x)) (only in
eval_f64
andeval_decimal
) - Ceil (ceil(x)) (only in
eval_f64
andeval_decimal
) - Round (round(x)) (only in
eval_f64
andeval_decimal
) - Sin (sin(θ)) (only in
eval_f64
) - Asin (asin(x)) (only in
eval_f64
) - cos (cos(θ)) (only in
eval_f64
) - Acos (acos(x)) (only in
eval_f64
) - Tan (tan(θ)) (only in
eval_f64
) - Atan (atan(x)) (only in
eval_f64
) - Sinh (sinh(θ)) (only in
eval_f64
) - Asinh (asinh(x), arsinh(x)) (only in
eval_f64
) - Cosh (cosh(θ)) (only in
eval_f64
) - Acosh (acosh(x), arcosh(x)) (only in
eval_f64
) - Tanh (tanh(θ)) (only in
eval_f64
) - Atanh (atanh(x), artanh(x)) (only in
eval_f64
) - Atan 2 (atan2(y, x)) (only in
eval_f64
)
Placeholder Getter
In the case you're writting a calculator, it might be useful to use your previous answer for example.
The @
symbol is used here as a placeholder for the value you want to put into the eval_f64
, eval_i64
or eval_decimal
.