Python Родная Произвольная Точность - PullRequest
3 голосов
/ 20 июля 2011

Есть ли способ скомпилировать интерпретатор Python таким образом, чтобы он мог использовать встроенную (c) библиотеку произвольной точности, чтобы Python мог использовать произвольную точность, как если бы это было обычное число вместо необходимости использовать десятичный класс?

EG.

>>0.00000001 + 1
1.00000001

1 Ответ

3 голосов
/ 20 июля 2011

Если вы недовольны встроенным decimal, вы можете попробовать несколько библиотек, которые реализуют числа с плавающей запятой более высокой точности. Большинство из них, однако, не совсем «родные» - вы можете уточнить, что вы подразумеваете под этим и зачем вам это нужно.

  1. mpmath - он обеспечивает реализацию высокоточных чисел с плавающей запятой на чистом Python, но может автоматически переключаться на GNU MP, если его поддержка доступна в системе, он имеет обширный набор особенности
  2. gmpy - предоставляет оболочку для библиотеки GNU MP
  3. bigfloat - предоставляет оболочку для библиотеки GNU MPFR (которая основана на GNU MP; оболочка выглядит не очень многообещающе, поскольку использует ctypes)
  4. Вы можете использовать Cython и напрямую использовать любую из вышеупомянутых библиотек (например, GNU MP), если это требуется для данного раздела, критичного к производительности. Вы также можете создать специальную оболочку Cython для вашего случая использования.
...