#RPN Calc

How to use:

Requires rust to be installed.

Clone the repo:

git clone git@github.com:davidsenk/rpn.git

Build and run:

# cd rpn

# cargo run
This is an RPN (Reverse Polish Notation) calculator program. This works by pushing numbers to a stack, and then completing operations on the pushed numbers in the order that they were added to the stack.

Example: 4 [enter] 3 [enter] * [enter]
Will display 12 on the Current Stack (i.e. 4 * 3 = 12)

Many more math functions are available:

[Command]            [Function]
q                    quit calculator (ctrl-c also works)
+                    add the last two numbers on the stack
-                    subtract the last two numbers on the stack
* or x               multiply the last two numbers on the stack
/                    divide the last two numbers on the stack
%                    output the remainder of the division of the last two numbers on the stack (modulus)
clear or c           clear the stack of all values
del or d             remove the last number pushed to the stack (this can be repeated multiple times)
floor                take the last two numbers from the stack, and push the lower number back onto the stack
ceil                 take the last two numbers from the stack, and push the higher number back onto the stack
round                round the last number on the stack (follows conventional rules, 0.5 rounds up)
abs                  change the last number on the stack to it's absolute value
pow                  raise the number on the stack prior to the last input to the power of the last number input
                         Example: 3 [enter] 2 [enter] pow [enter] Output: 9
sqrt or v            change the last number on the stack to it's square root
cbrt or v3           change the last number on the stack to it's cube root
ln                   change the last number on the stack to it's natural log
log                  change the last number on the stack to it's base10 log
sin                  change the last number on the stack to it's sine value (radians)
asin, sinh               the same thing, but arc and hyperbolic instead
cos                  change the last number on the stack to it's cosine value (radians)
acos, cosh               the same thing, but arc and hyperbolic instead
tan                  change the last number on the stack to it's tangent value (radians)
atan, tanh               the same thing, but arc and hyperbolic instead
me                   pushes the machine epsilon value onto the stack
pi                   pushes pi onto the stack
tau                  pushes tau on to the stack
help or ?            print this help text
Description
No description provided
Readme 42 KiB
Version 2 Latest
2023-10-09 02:26:19 +00:00
Languages
Rust 97.3%
Shell 2.7%