23 if maxparam != 0
and random.randint(0, 1) != 0:
24 return 'p%02d' % random.randint(0, maxparam-1)
25 return random.choice([
'%e',
'%f',
'%g' ]) % random.uniform(-2, +2)
26 if random.randint(0, 4) == 0:
27 return recursion() + random.choice([
' < ',
' <= ',
' == ',
' != ',
' >= ',
' > ' ]) + recursion() +
' ? ' + recursion() +
' : ' + recursion()
28 op_prefix = [
'+(',
'-(' ]
29 op_infix = [
' + ',
' - ',
' * ',
' / ' ]
30 op_func1 = [
'$ln',
'$log10',
'$exp',
'$sqrt',
'$floor',
'$ceil',
'$sin',
'$cos',
'$tan',
'$asin',
'$acos',
'$atan',
'$sinh',
'$cosh',
'$tanh',
'$asinh',
'$acosh',
'$atanh' ]
31 op_func2 = [
'$pow',
'$atan2',
'$hypot' ]
32 op = random.choice(op_prefix + op_infix + op_func1 + op_func2)
34 return op + recursion() +
')'
36 return '(' + recursion() + op + recursion() +
')'
38 return op +
'(' + recursion() +
')'
40 return op +
'(' + recursion() +
', ' + recursion() +
')'