Arbitrary-precision multiple-precision floats in Python: mpmath, gmpy,
sympy .evalf() / N()

https://en.wikipedia.org/wiki/Arbitrary-precision_arithmetic

- https://github.com/fredrik-johansson/mpmath
  > Python library for arbitrary-precision floating-point arithmetic
  - docs: http://mpmath.org/doc/current/
  - mpmath is used by SymPy and Sage
  - mpmath uses gmpy if it's installed (otherwise Python ints)

- https://github.com/aleaxit/gmpy
  > General Multi-Precision arithmetic for Python 2.6+/3+ (GMP, MPIR, MPFR,
MPC)
  - docs: https://gmpy2.readthedocs.io/en/latest/
  - Integers, Rationals, Reals, Complex

https://docs.sympy.org/latest/modules/evalf.html :

> Exact SymPy expressions can be converted to floating-point approximations
(decimal numbers) using either the .evalf() method or the N() function.
> [...]
> By default, numerical evaluation is performed to an accuracy of 15
decimal digits. You can optionally pass a desired accuracy (which should be
a positive integer) as an argument to evalf or N:
>>> N(sqrt(2)*pi, 5)
4.4429
>>> N(sqrt(2)*pi, 50)
4.4428829381583662470158809900606936986146216893757

On Sat, Oct 10, 2020 at 3:34 PM Marco Sulla <marco.sulla.pyt...@gmail.com>
wrote:

> On Sat, 10 Oct 2020 at 19:28, Tim Peters <tim.pet...@gmail.com> wrote:
> > Try to spell out what you mean - precisely! - by "this". I can't do
> > that for you. For any plausible way of fleshing it out I've thought
> > of, the answer is "no".
>
> Well, please, don't be so harsh. I'm trying to discuss to someone that
> co-created Python itself, it's not simple to me :-P
>
> > The closest you can get to BigDecimal's behavior "by magic" in Python
> > is to set the context precision to its maximum allowed value.
>
> I think there's another "trick" to get the BigDecimal behaviour.
> If you read the Javadoc, it says that each operation has a default
> precision. For example, multiplication a*b has precision = a_scale +
> b_scale. So, in reality, also BigDecimal has a context with finite
> precision. The difference is that the default context has a variable
> precision, depending on the operation.
>
> Could Python decimal have something similar, maybe by setting prec = -1?
> _______________________________________________
> Python-ideas mailing list -- python-ideas@python.org
> To unsubscribe send an email to python-ideas-le...@python.org
> https://mail.python.org/mailman3/lists/python-ideas.python.org/
> Message archived at
> https://mail.python.org/archives/list/python-ideas@python.org/message/O7KUARDPTMJ36FEYJTKGEUPHFG3A5BOG/
> Code of Conduct: http://python.org/psf/codeofconduct/
>
_______________________________________________
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@python.org
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at 
https://mail.python.org/archives/list/python-ideas@python.org/message/LLM3LGO2CPAMLY3XS6NDI3LJMQCTNB7J/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to