Added stackrotatereverse function to VVS stdlib to complement stackrotate.
[vvhitespace] / stdlib / math.pvvs
CommitLineData
3625ff3a
AT
1#ifndef VVS_STDLIB_MATH
2#define VVS_STDLIB_MATH
3
2612f47f 4@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
bb21580a
AT
5@ Name:
6@ random (10000)
2612f47f 7@ Description:
bb21580a 8@ Returns a random IEEE-vetted number per RFC 1149.5.
2612f47f
AT
9@ Call Stack:
10@ empty
11@ Return Stack:
12@ random number <-- TOS
13@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
14NSSVTSSSSN | Mark: 10000 (random)
15SSSTSSN | PUSH +4
16NTN | RTS
17
3625ff3a 18@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
bb21580a
AT
19@ Name:
20@ abs (10001)
3625ff3a 21@ Description:
bb21580a 22@ Returns the absolute value of its argument
3625ff3a
AT
23@ Call Stack:
24@ signed number <-- TOS
25@ Return Stack:
26@ abs(signed number) <-- TOS
27@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
28NSSVTSSSTN | Mark: 10001 (absolute value)
29SNS | DUP
30NTTSSSTSSSTSSSSSSSSN | BMI > 00010001 00000000
31NSNSSSTSSSTSSSSSSSTN | JMP > 00010001 00000001
32NSSVSSSTSSSTSSSSSSSSN | Mark: 00010001 00000000
33SSTTN | PUSH -1
34TSSN | MULTIPLY
35NSSVSSSTSSSTSSSSSSSTN | Mark: 00010001 00000001
36NTN | RTS
37
38#endif