Add 'rand

trunk
alexis 2022-07-28 08:52:31 -06:00 committed by Alexis Lockwood
parent 56d3bf7273
commit 82231ce71f
1 changed files with 13 additions and 0 deletions

View File

@ -29,6 +29,7 @@ import subprocess
import sys
import time
import traceback
import random
from decimal import Decimal
from fractions import Fraction
import decimal
@ -261,6 +262,17 @@ def _now(stack, arg):
))
env.AUTO_FORMAT = nums.TimeDurationMode()
def _rand(stack, arg):
"""random number 0-1 or arg-arg"""
if not arg:
minb, maxb = DecimalScalar(0.0), DecimalScalar(1.0)
else:
arg1, arg2 = arg.split()
minb, maxb = nums.num_parser(arg1), nums.num_parser(arg2, set_auto=True)
val = random.uniform(minb, maxb)
stack.append(val)
###############################################################################
# TAG COMMANDS
@ -675,6 +687,7 @@ COMMANDS = collections.OrderedDict([
("'signed", _signed),
("'floor", UNARY(lambda x: DecimalScalar(x.to_decimal_scalar().v.to_integral_value(decimal.ROUND_FLOOR)), "floor")),
("'ceil", UNARY(lambda x: DecimalScalar(x.to_decimal_scalar().v.to_integral_value(decimal.ROUND_CEILING)), "floor")),
("'rand", _rand),
(50, "==COMPLEX=="),
("'re", UNARY(lambda x: x.real, "real part")),
("'im", UNARY(lambda x: x.imag, "imaginary part")),