mirror of
https://github.com/louisrubet/rpn
synced 2024-12-28 09:58:52 +01:00
365 lines
5.7 KiB
Markdown
365 lines
5.7 KiB
Markdown
# REAL AND COMPLEX NUMERICAL ENTRIES
|
|
|
|
`default del`
|
|
|
|
## table for fixed entry, 4 fix output >= 0
|
|
|
|
```
|
|
4 fix
|
|
1 0.01 0.0001 0.00006 0.00004 0 0.012 0.001256 100 100.001 100.00006 100.00004 12345678910111213.12355
|
|
```
|
|
|
|
-> stack should be 1.0000, 0.0100, 0.0001, 0.0001, 0.0000, 0.0000, 0.0120, 0.0013, 100.0000, 100.0010, 100.0001, 100.0000, 12345678910111213.1236
|
|
|
|
`del default`
|
|
|
|
## table for fixed entry, 4 fix output <= 0
|
|
|
|
```
|
|
4 fix
|
|
-1 -0.01 -0.0001 -0.00006 -0.00004 -0 -0.012 -0.001256 -100 -100.001 -100.00006 -100.00004 -12345678910111213.12355
|
|
```
|
|
|
|
-> stack should be -1.0000, -0.0100, -0.0001, -0.0001, -0.0000, -0.0000, -0.0120, -0.0013, -100.0000, -100.0010, -100.0001, -100.0000, -12345678910111213.1236
|
|
|
|
`del default`
|
|
|
|
## table for sci entry, 4 fix output >= 0
|
|
|
|
```
|
|
4 fix
|
|
0e100 1e0 1.e0 1.001e0 1.e-3 1.e-4 6.e-5 4.e-5 1.00001e2 1.0000006e2 1.0000004e2 1234.5678917e2
|
|
```
|
|
|
|
-> stack should be 0.0000, 1.0000, 1.0000, 1.0010, 0.0010, 0.0001, 0.0001, 0.0000, 100.0010, 100.0001, 100.0000, 123456.7892
|
|
|
|
`del default`
|
|
|
|
## table for sci entry, 4 fix output <= 0
|
|
|
|
```
|
|
4 fix
|
|
-0e100 -1e0 -1.e0 -1.001e0 -1.e-3 -1.e-4 -6.e-5 -4.e-5 -1.00001e2 -1.0000006e2 -1.0000004e2 -1234.5678917e2
|
|
```
|
|
|
|
-> stack should be -0.0000, -1.0000, -1.0000, -1.0010, -0.0010, -0.0001, -0.0001, -0.0000, -100.0010, -100.0001, -100.0000, -123456.7892
|
|
|
|
`del default`
|
|
|
|
## table for singularity
|
|
|
|
```
|
|
4 fix
|
|
nan @nan@ -nan inf -inf @inf@ -@inf@
|
|
```
|
|
|
|
-> stack should be nan, nan, nan, inf, -inf, inf, -inf
|
|
|
|
`del default`
|
|
|
|
## some strange behaviour (1)
|
|
|
|
```
|
|
0 fix
|
|
1 2 / dup +
|
|
```
|
|
|
|
-> stack should be 1
|
|
|
|
`del default`
|
|
|
|
## some strange behaviour (2)
|
|
|
|
```
|
|
1 fix
|
|
0.6
|
|
```
|
|
|
|
-> stack should be 0.6
|
|
|
|
`del default`
|
|
|
|
## some strange behaviour (3)
|
|
|
|
```
|
|
0 fix
|
|
110.6 0.6
|
|
```
|
|
|
|
-> stack should be 111, 1
|
|
|
|
`del default`
|
|
|
|
## hex (1)
|
|
|
|
`0x4000000000000`
|
|
|
|
-> stack should be 0x4000000000000
|
|
|
|
`del default`
|
|
|
|
## hex (2)
|
|
|
|
`2 50 ^ hex`
|
|
|
|
-> stack should be 0x4000000000000
|
|
|
|
`del default`
|
|
|
|
## hex (3)
|
|
|
|
`12.34 hex`
|
|
|
|
-> stack should be 0xc
|
|
|
|
`del default`
|
|
|
|
## dec (1)
|
|
|
|
`2 50 ^`
|
|
|
|
-> stack should be 1125899906842624
|
|
|
|
`del default`
|
|
|
|
## dec (2)
|
|
|
|
`0x4000000000000 dec`
|
|
|
|
-> stack should be 1125899906842624
|
|
|
|
`del default`
|
|
|
|
## dec (3)
|
|
|
|
`12.34 dec`
|
|
|
|
-> stack should be 12.34
|
|
|
|
`del default`
|
|
|
|
## bin (1)
|
|
|
|
`0b100000000000000000000000000000000000000000000000000 bin`
|
|
|
|
-> stack should be 0b100000000000000000000000000000000000000000000000000
|
|
|
|
`del default`
|
|
|
|
## bin (2)
|
|
|
|
`2 50 ^ bin`
|
|
|
|
-> stack should be 0b100000000000000000000000000000000000000000000000000
|
|
|
|
`del default`
|
|
|
|
## bin (3)
|
|
|
|
`0x4000000000000 bin`
|
|
|
|
-> stack should be 0b100000000000000000000000000000000000000000000000000
|
|
|
|
`del default`
|
|
|
|
## bin (4)
|
|
|
|
`12.34 bin`
|
|
|
|
-> stack should be 0b1100
|
|
|
|
`del default`
|
|
|
|
## base entry (1)
|
|
|
|
`3b111 dup dec`
|
|
|
|
-> stack should be 3b111, 13
|
|
|
|
`del default`
|
|
|
|
## base entry (2)
|
|
|
|
`3b114`
|
|
|
|
-> stack should be '3b114'
|
|
|
|
`del default`
|
|
|
|
## base entry (3)
|
|
|
|
`1b0`
|
|
|
|
-> stack should be '1b0'
|
|
|
|
`del default`
|
|
|
|
## base entry (4)
|
|
|
|
`62b20 dup dec`
|
|
|
|
-> stack should be 62b20, 124
|
|
|
|
`del default`
|
|
|
|
## base entry (5)
|
|
|
|
`63b20`
|
|
|
|
-> stack should be '63b20'
|
|
|
|
`del default`
|
|
|
|
## base entry (6)
|
|
|
|
`2b11001100 0b11001100 ==`
|
|
|
|
-> stack should be 1
|
|
|
|
`del default`
|
|
|
|
## base entry (7)
|
|
|
|
`10b1234 1234 ==`
|
|
|
|
-> stack should be 1
|
|
|
|
`del default`
|
|
|
|
## base entry (8)
|
|
|
|
`16b1234 0x1234 ==`
|
|
|
|
-> stack should be 1
|
|
|
|
`del default`
|
|
|
|
## base display (1)
|
|
|
|
`2 62 for i 62 i base next`
|
|
|
|
-> stack should be 0b111110, 3b2022, 4b332, 5b222, 6b142, 7b116, 8b76, 9b68, 62, 11b57, 12b52, 13b4a, 14b46, 15b42, 0x3e, 17b3b, 18b38, 19b35, 20b32, 21b2k, 22b2i, 23b2g, 24b2e, 25b2c, 26b2a, 27b28, 28b26, 29b24, 30b22, 31b20, 32b1u, 33b1t, 34b1s, 35b1r, 36b1q, 37b1P, 38b1O, 39b1N, 40b1M, 41b1L, 42b1K, 43b1J, 44b1I, 45b1H, 46b1G, 47b1F, 48b1E, 49b1D, 50b1C, 51b1B, 52b1A, 53b19, 54b18, 55b17, 56b16, 57b15, 58b14, 59b13, 60b12, 61b11, 62b10
|
|
|
|
`del default`
|
|
|
|
## base display (2)
|
|
|
|
`2 62 for i i 62 base next`
|
|
|
|
-> stack should be 62b2, 62b3, 62b4, 62b5, 62b6, 62b7, 62b8, 62b9, 62bA, 62bB, 62bC, 62bD, 62bE, 62bF, 62bG, 62bH, 62bI, 62bJ, 62bK, 62bL, 62bM, 62bN, 62bO, 62bP, 62bQ, 62bR, 62bS, 62bT, 62bU, 62bV, 62bW, 62bX, 62bY, 62bZ, 62ba, 62bb, 62bc, 62bd, 62be, 62bf, 62bg, 62bh, 62bi, 62bj, 62bk, 62bl, 62bm, 62bn, 62bo, 62bp, 62bq, 62br, 62bs, 62bt, 62bu, 62bv, 62bw, 62bx, 62by, 62bz, 62b10
|
|
|
|
`del default`
|
|
|
|
## base display (3)
|
|
|
|
```
|
|
100 dup 3 base ==
|
|
13455600 dup 5 base ==
|
|
55756 dup 17 base ==
|
|
2345321 dup 62 base ==
|
|
```
|
|
|
|
-> stack should be 1, 1, 1, 1
|
|
|
|
`del default`
|
|
|
|
## base display (4)
|
|
|
|
```
|
|
100 18 base dup 3 base == dec
|
|
13455600 55 base dup 5 base == dec
|
|
55756 9 base dup 17 base == dec
|
|
2345321 57 base dup 62 base == dec
|
|
```
|
|
|
|
-> stack should be 1, 1, 1, 1
|
|
|
|
`del default`
|
|
|
|
## negative base numbers (1)
|
|
|
|
`1000 hex neg`
|
|
|
|
-> stack should be -0x3e8
|
|
|
|
`del default`
|
|
|
|
## negative base numbers (2)
|
|
|
|
`1000 7 base neg`
|
|
|
|
-> stack should be -7b2626
|
|
|
|
`del default`
|
|
|
|
## negative base numbers (3)
|
|
|
|
`1000 bin neg`
|
|
|
|
-> stack should be -0b1111101000
|
|
|
|
`del default`
|
|
|
|
## negative base numbers (4)
|
|
|
|
`-0b1111101000 3 base`
|
|
|
|
-> stack should be -3b1101001
|
|
|
|
`del default`
|
|
|
|
## base on complexes
|
|
|
|
```
|
|
(0b110,0x102) dup bin swap dup hex dup 5 base
|
|
```
|
|
|
|
-> stack should be (0b110,0b100000010), (0b110,0x102), (0x6,0x102), (5b11,5b2013)
|
|
|
|
`del default`
|
|
|
|
## inf should not be based-represented
|
|
|
|
`-1 bin 0 bin / 1 3 base 0 3 base /`
|
|
|
|
-> stack should be -inf, inf
|
|
|
|
`del default`
|
|
|
|
## nan should not be based-represented
|
|
|
|
`-0 bin 0 bin / 0 3 base 0 3 base /`
|
|
|
|
-> stack should be nan, nan
|
|
|
|
`del default`
|
|
|
|
## complex base 16
|
|
|
|
`(0x10,0x20)`
|
|
|
|
-> stack should be (0x10,0x20)
|
|
|
|
## complex base 16 (2)
|
|
|
|
`del (16,32) hex`
|
|
|
|
-> stack should be (0x10,0x20)
|
|
|
|
## complex base 2
|
|
|
|
`del (0b111,0b110)`
|
|
|
|
-> stack should be (0b111,0b110)
|
|
|
|
## complex base 2 (2)
|
|
|
|
`del (7,6) bin`
|
|
|
|
-> stack should be (0b111,0b110)
|
|
|
|
## complex multiple bases re / im
|
|
|
|
`del (0x10,0b111) dup dup hex swap dec`
|
|
|
|
-> stack should be (0x10,0b111), (0x10,0x7), (16,7)
|