I'm using jupyter notebook with anaconda on windows (reinstalled to the current version after several attempts). Somehow the mpmath library stopped working. Consider the following code
import mpmath as mp
mp.dps=530
mp.mpf(1) / mp.mpf(6)
But the result I got was
mpf('0.16666666666666666')
I also tried
mp.mpf("1") / mp.mpf("6")
which returned the same thing, and
mp.nprint(mp.mpf(1) / mp.mpf(6),50)
returned
0.16666666666666665741480812812369549646973609924316
which indicated the module malfunctioned.
What went wrong with the code?
You're not changing the context - you're adding a (useless) dps
attribute to the mpmath
module itself.
Let's do it without renaming gimmicks to make it clearer:
>>> import mpmath
>>> mpmath.dps = 530
>>> mpmath.mpf(1) / mpmath.mpf(6)
mpf('0.16666666666666666')
What you wanted instead is to set dps
on the mp
context attribute of the mpmath
module:
>>> import mpmath
>>> mpmath.mp.dps = 530 # note that this is different!
>>> mpmath.mpf(1) / mpmath.mpf(6)
mpf('0.16666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666675')
For this reason, you should never do import mpmath as mp
- it's just begging to confuse (as happened to you) the module with the module's context object.