2017-06-16 19:00:48 +02:00
|
|
|
# **rpn** - **R**everse **P**olish **N**otation language [![License: LGPLv3](https://www.gnu.org/graphics/lgplv3-88x31.png)](https://www.gnu.org/licenses/lgpl-3.0.en.html)
|
2016-10-03 10:39:32 +02:00
|
|
|
|
2018-07-28 13:13:57 +02:00
|
|
|
### a math functional language using reverse polish notation
|
2016-10-03 10:39:32 +02:00
|
|
|
|
2017-05-27 22:30:58 +02:00
|
|
|
```
|
2017-06-12 19:32:26 +02:00
|
|
|
rpn> 1 2 + 2 sqrt
|
2017-05-31 14:28:31 +02:00
|
|
|
2> 3
|
2017-05-27 22:30:58 +02:00
|
|
|
1> 1.4142135623730950488
|
|
|
|
```
|
|
|
|
|
2017-07-01 17:32:19 +02:00
|
|
|
### arbitrary precision provided by GNU MPFR
|
2017-05-27 22:30:58 +02:00
|
|
|
```
|
2017-06-26 17:45:18 +02:00
|
|
|
rpn> 256 prec
|
|
|
|
rpn> pi
|
|
|
|
3.1415926535897932384626433832795028841971693993751058209749445923078164062862
|
2018-05-06 13:46:34 +02:00
|
|
|
rpn>
|
2017-05-27 22:30:58 +02:00
|
|
|
```
|
2016-10-03 10:39:32 +02:00
|
|
|
|
2017-07-01 17:32:19 +02:00
|
|
|
### variables, programs
|
2017-05-27 22:30:58 +02:00
|
|
|
```
|
2017-06-12 19:32:26 +02:00
|
|
|
rpn> << rot * swap 2 / chs dup sq rot - sqrt >> 'quad' sto
|
|
|
|
rpn> << -> x y << x y + ln >> >> 'P' sto
|
2017-05-27 22:30:58 +02:00
|
|
|
```
|
2016-10-03 10:39:32 +02:00
|
|
|
|
2017-06-12 19:32:26 +02:00
|
|
|
### and a bunch of functions
|
2017-06-11 01:23:18 +02:00
|
|
|
```
|
2018-08-15 00:29:42 +02:00
|
|
|
rpn>
|
2018-08-15 18:04:55 +02:00
|
|
|
Display all 150 possibilities? (y or n)
|
|
|
|
nop pow fp >= dupn next sto* exp
|
|
|
|
help sqrt min < pick step sto/ expm
|
|
|
|
h sq max <= depth ift sneg log10
|
|
|
|
? sqr re != roll ifte sinv alog10
|
|
|
|
quit abs im == rolld do eval exp10
|
|
|
|
q dec conj and over until -> log2
|
|
|
|
exit hex arg or ->str unti pi alog2
|
|
|
|
test bin c->r xor str-> while sin exp2
|
|
|
|
version base r->c not chr whil asin sinh
|
|
|
|
uname sign p->r same num repeat cos asinh
|
|
|
|
history % r->p swap size repea acos cosh
|
|
|
|
+ %CH std drop pos sto tan acosh
|
|
|
|
- mod fix drop2 sub rcl atan tanh
|
|
|
|
chs fact sci dropn if purge d->r atanh
|
|
|
|
neg mant prec del then vars r->d time
|
|
|
|
* xpon round erase else clusr e date
|
|
|
|
/ floor default rot end edit ln ticks
|
|
|
|
inv ceil type dup start sto+ log
|
|
|
|
^ ip > dup2 for sto- lnp1
|
2017-06-11 01:23:18 +02:00
|
|
|
```
|
|
|
|
|
2017-06-18 23:41:57 +02:00
|
|
|
## Download
|
2017-06-11 13:07:37 +02:00
|
|
|
|
2018-08-15 18:04:55 +02:00
|
|
|
deb, rpm and tgz files can be found [there](liv/)
|
2017-06-18 23:45:38 +02:00
|
|
|
|
|
|
|
## Manual
|
2017-06-11 13:07:37 +02:00
|
|
|
|
2017-06-18 23:45:38 +02:00
|
|
|
A reference manual is provided [here](MANUAL.md)
|
2017-05-28 02:15:22 +02:00
|
|
|
|
2018-05-06 13:46:34 +02:00
|
|
|
## Methods
|
|
|
|
|
|
|
|
Development methods are set at [this page](METHODS.md)
|
|
|
|
|
2017-06-12 19:32:26 +02:00
|
|
|
## Generation
|
2017-05-28 02:15:22 +02:00
|
|
|
|
2017-06-12 19:32:26 +02:00
|
|
|
Generation instructions can be found [here](GENERATION.md)
|
2017-05-28 02:15:22 +02:00
|
|
|
|
2017-07-05 18:11:55 +02:00
|
|
|
## Contact, contribution, bug report
|
2017-06-10 18:55:45 +02:00
|
|
|
|
2017-06-12 19:32:26 +02:00
|
|
|
Please email me at [louis@rubet.fr](mailto:louis@rubet.fr)
|
2017-06-10 18:55:45 +02:00
|
|
|
|
2017-07-05 18:11:55 +02:00
|
|
|
You can also use [github issues](https://github.com/louisrubet/rpn/issues) and [pull requests](https://github.com/louisrubet/rpn/pulls)
|