1 """Provides low-level evalf function.
2 """
3
4 __all__ = ['evalf']
5
6 from .numbers import Float, Complex
7
8 import math
9 import cmath
10 import re
11 import mpmath
12
13 int_pattern = re.compile('\d+([.]\d+)?')
14
16 return int_pattern.sub(lambda m: (format % m.group()), s)
17
19 for name, new in names.items():
20 s = s.replace(name, new)
21 return s
22
24 if isinstance(symbols, (tuple, list)):
25 return "lambda %s: " % ",".join(map(str, symbols))
26 if not symbols:
27 return "lambda: "
28 return "lambda %s: " % symbols
29
31 s = str(expr)
32 s = quote_numbers(s, "mpf(%s)")
33 s = replace_names(s, { 'I':'j', 'E':'e', 'oo':'inf','undefined':'nan'})
34 return s
35
40
49
50 -def evalf(expr, digits=15):
54