몇 가지 매우 큰 숫자를 조작해야하는 프로젝트 (스칼라에서 작업)를하고 있습니다. 정수형으로 표현하기에는 너무 커서 Java는 BigInteger 및 BigDecimal 클래스를 제공합니다 (그리고 scala는 멋진 래퍼를 제공합니다). 그러나이 라이브러리는 과거에 사용한 다른 임의 정밀 라이브러리 (즉, http://www.ginac.de/CLN/)보다 느리며 속도 차이가 언어 단독으로 인한 것보다 더 큰 것으로 나타났습니다.JVM 임의 정밀도 라이브러리
내 프로그램의 프로파일 링을 수행했으며 실행 시간의 44 %가 BigInteger 곱하기 메소드에서 사용되었습니다. 내 프로그램을 조금 빠르게하고 싶습니다. 그래서 BigInteger 클래스 (및 스칼라 래퍼)보다 빠르고 효율적인 옵션을 찾고 있습니다. LargeInteger (JScience 출신)와 Aint (Afloat 출신)를 살펴 봤습니다. 그러나 둘 다 표준 BigInteger 클래스보다 느리게 수행되는 것으로 보입니다.
누구든지 고성능 정수 곱셈과 덧셈에 중점을 둔 임의 정밀도 수학 라이브러리를 알고 있습니까?
좋은 경험이있는 것 같습니다. http://stackoverflow.com/questions/277309/java-floating-point-high-precision-library – thoredge
감사합니다. 그러나, 나는이 질문을 보았고, JScience와 AFloat 라이브러리 (BigInteger보다 느리다)를 시도했다. 내 숫자가 크기면에서 황혼 지역에 있기 때문에 (~ 1500 자리) 이것은있을 수 있습니다. 어쨌든, 나는 C++ 코드가 이것을 달성함으로써 작업이 훨씬 빨라질 수 있음을 안다. 언어의 차이와 더불어, 변경 가능 성 (불변의 Java impls에 비해) 또한 작용할 수 있습니다. – nomad