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