mirror of
https://github.com/louisrubet/rpn
synced 2024-12-30 10:23:32 +01:00
305 lines
3.1 KiB
Text
305 lines
3.1 KiB
Text
## REAL representation
|
|
|
|
default erase
|
|
|
|
# real decimal
|
|
1
|
|
-> stack size should be 1
|
|
-> stack should be 1
|
|
drop
|
|
|
|
# real decimal (2)
|
|
2.345
|
|
-> stack should be 2.345
|
|
erase
|
|
|
|
# real decimal (3)
|
|
1 2.345 3 4.9
|
|
-> stack size should be 4
|
|
-> stack should be 1, 2.345, 3, 4.9
|
|
erase
|
|
|
|
# real hex
|
|
0x1234 0x10.10
|
|
-> stack should be 0x1.234p+12, 0x1.01p+4
|
|
|
|
# real hex (2)
|
|
dec swap dec swap
|
|
-> stack should be 4660, 16.0625
|
|
erase
|
|
|
|
# real binary
|
|
0b11001100
|
|
-> stack should be 204
|
|
erase
|
|
|
|
# real binary (2)
|
|
0b11001100.1101
|
|
-> stack should be 204.8125
|
|
erase
|
|
|
|
# real inf, nan
|
|
inf
|
|
@inf@
|
|
+inf
|
|
+@inf@
|
|
-inf
|
|
-@inf@
|
|
nan
|
|
@nan@
|
|
-> stack should be inf, inf, inf, inf, -inf, -inf, nan, nan
|
|
erase
|
|
|
|
# prec (1)
|
|
default
|
|
2 prec pi
|
|
-> stack should be 3
|
|
drop
|
|
|
|
# prec (2)
|
|
10 prec pi
|
|
-> stack should be 3.140625
|
|
drop
|
|
|
|
# prec error (1)
|
|
1 prec
|
|
-> error should be 4
|
|
|
|
# prec error (2)
|
|
0x8000000000000000 prec
|
|
-> error should be 4
|
|
erase default
|
|
|
|
# add (1)
|
|
1.2 2.3 +
|
|
-> stack should be 3.5
|
|
drop
|
|
|
|
# add (2)
|
|
1.2 2.3+
|
|
-> stack should be 3.5
|
|
drop
|
|
|
|
# add (3)
|
|
2.3 +
|
|
-> error should be 2
|
|
-> stack size should be 1
|
|
drop
|
|
|
|
# add (4)
|
|
+
|
|
-> error should be 2
|
|
drop
|
|
|
|
# sub (1)
|
|
1.2 2.3 -
|
|
-> stack should be -1.1
|
|
drop
|
|
|
|
# sub (2)
|
|
1.2 2.3-
|
|
-> stack should be -1.1
|
|
drop
|
|
|
|
# sub (3)
|
|
2.3 -
|
|
-> error should be 2
|
|
-> stack size should be 1
|
|
drop
|
|
|
|
# sub (4)
|
|
-
|
|
-> error should be 2
|
|
drop
|
|
|
|
# mul (1)
|
|
1.2 2.3 *
|
|
-> stack should be 2.76
|
|
drop
|
|
|
|
# mul (2)
|
|
1.2 2.3*
|
|
-> stack should be 2.76
|
|
drop
|
|
|
|
# mul (3)
|
|
2.3 *
|
|
-> error should be 2
|
|
-> stack size should be 1
|
|
drop
|
|
|
|
# mul (4)
|
|
*
|
|
-> error should be 2
|
|
drop
|
|
|
|
# div (1)
|
|
1.2 2.3 /
|
|
-> stack should be 0.5217391304347826087
|
|
drop
|
|
|
|
# div (2)
|
|
1.2 2.3/
|
|
-> stack should be 0.5217391304347826087
|
|
drop
|
|
|
|
# div (3)
|
|
2.3 /
|
|
-> error should be 2
|
|
-> stack size should be 1
|
|
drop
|
|
|
|
# div (4)
|
|
/
|
|
-> error should be 2
|
|
drop
|
|
|
|
# chs (1)
|
|
3.14 chs
|
|
-> stack should be -3.14
|
|
drop
|
|
|
|
# chs (2)
|
|
chs
|
|
-> error should be 2
|
|
|
|
# neg (1)
|
|
3.14 neg
|
|
-> stack should be -3.14
|
|
drop
|
|
|
|
# neg (2)
|
|
neg
|
|
-> error should be 2
|
|
|
|
# inv (1)
|
|
2 inv
|
|
-> stack should be 0.5
|
|
drop
|
|
|
|
# inv (2)
|
|
inv
|
|
-> error should be 2
|
|
|
|
# % (1)
|
|
2 30 %
|
|
-> stack should be 0.6
|
|
erase
|
|
|
|
# % (2)
|
|
2 30%
|
|
-> stack should be 0.6
|
|
erase
|
|
|
|
# % (3)
|
|
2 %
|
|
-> error should be 2
|
|
-> stack size should be 1
|
|
drop
|
|
|
|
# % (4)
|
|
%
|
|
-> error should be 2
|
|
drop
|
|
|
|
# %CH (1)
|
|
2 0.6 %CH
|
|
-> stack should be 30
|
|
erase
|
|
|
|
# %CH (2)
|
|
2 0.6%CH
|
|
-> stack should be 30
|
|
erase
|
|
|
|
# %CH (3)
|
|
2 %CH
|
|
-> error should be 2
|
|
-> stack size should be 1
|
|
drop
|
|
|
|
# %CH (4)
|
|
%CH
|
|
-> error should be 2
|
|
drop
|
|
|
|
# ^ (1)
|
|
2 10 ^
|
|
-> stack should be 1024
|
|
erase
|
|
|
|
# ^ (2)
|
|
2 10^
|
|
-> stack should be 1024
|
|
erase
|
|
|
|
# ^ (3)
|
|
2 ^
|
|
-> error should be 2
|
|
-> stack size should be 1
|
|
erase
|
|
|
|
# ^ (4)
|
|
^
|
|
-> error should be 2
|
|
erase
|
|
|
|
# sqrt (1)
|
|
9 sqrt
|
|
-> stack should be 3
|
|
drop
|
|
|
|
# sqrt (2)
|
|
sqrt
|
|
-> error should be 2
|
|
|
|
# sq (1)
|
|
12 sq
|
|
-> stack should be 144
|
|
drop
|
|
|
|
# sq (2)
|
|
sq
|
|
-> error should be 2
|
|
|
|
# sqr (1)
|
|
12 sqr
|
|
-> stack should be 144
|
|
drop
|
|
|
|
# sqr (2)
|
|
sqr
|
|
-> error should be 2
|
|
|
|
# mod (1)
|
|
9 4 mod
|
|
-> stack should be 1
|
|
erase
|
|
|
|
# mod (2)
|
|
9 mod
|
|
-> error should be 2
|
|
-> stack size should be 1
|
|
erase
|
|
|
|
# mod (3)
|
|
mod
|
|
-> error should be 2
|
|
erase
|
|
|
|
# abs (1)
|
|
-9 abs
|
|
-> stack should be 9
|
|
erase
|
|
|
|
# abs (2)
|
|
9 abs
|
|
-> stack should be 9
|
|
erase
|
|
|
|
# abs (3)
|
|
abs
|
|
-> error should be 2
|
|
erase
|
|
|
|
default
|