Библиотеки произвольной точности JVM

Я работаю над проектом (на Scala ), где мне нужно манипулировать некоторыми очень большими числами; слишком велик, чтобы быть представленным целочисленными типами. Java предоставляет классы BigInteger и BigDecimal (, а scala обеспечивает хорошую тонкую оболочку для них ). Однако я заметил, что эти библиотеки значительно медленнее, чем другие библиотеки произвольной точности, которые я использовал в прошлом (т.е.http://www.ginac.de/CLN/), и разница в скорости кажется больше, чем то, что можно отнести только к языку.

Я профилировал свою программу и обнаружил, что 44% времени выполнения тратится на метод умножения BigInteger. Я хотел бы немного ускорить свою программу, поэтому я ищу более быстрый и эффективный вариант, чем класс BigInteger (и его Scala-оболочка ). Я просмотрел LargeInteger (от JScience )и Aint (от Afloat ). Однако оба они работают медленнее, чем стандартный класс BigInteger.

Кто-нибудь знает Java (или доступную на JVM )математическую библиотеку произвольной точности с упором на высокопроизводительное целочисленное умножение и сложение?

10
задан nomad 26 April 2012 в 03:03
поделиться