14

는 표준 하스켈의 Doublethe standard double-precision arithmetic 사용GHC/Haskell에서 확장 된 정밀도 (80 비트) 부동 소수점 연산을 사용할 수 있습니까?

data Double 배정 밀도 부동 소수점 숫자를. 이 유형은 적어도 IEEE 배정도 유형과 범위 및 정밀도가 동일해야합니다.

GHC/Haskell은 어쩌면 어떤 외부 라이브러리를 사용하여 extended precision (80 비트) 부동 소수점을 제공합니까?

+4

참고 : [GHC# 3353 :'CLDouble 지원 추가] (http://hackage.haskell.org/trac/ghc/ticket/3353) – hammar

+0

[** this **] (http : // hackage.haskell.org/package/numbers-3000.0.0.0) – chuff

답변

10

chuff가 지적했듯이, hackage에서 numbers 패키지를 살펴볼 수 있습니다. cabal install numbers으로 설치할 수 있습니다. 다음 예는 다음 documentation 상태로

import Data.Number.CReal -- from numbers 

main :: IO() 
main = putStrLn (showCReal 100 (sqrt 2)) 

-- output: 1.4142135623730950488016887242096980785696718753769480731766797379907324784621070388503875343276415727 

, showCReal 소수의 소정 개수 형 CReal의 주어진 번호를 나타내는 문자열을 반환한다.

+1

나는 내가 초심자와 대화하고 있었다고 생각하고 있었다. 어쨌든. ;) –

+6

그가 임의의 정밀도를 찾고 있다고 생각하지 않습니다. 가장 널리 사용되는 프로세서의 80 비트 부동 소수점 기능을 활용하는 방법 일뿐입니다. – hammar

+1

네, _numbers_에 대한 포인터 주셔서 감사합니다, 그것은 편리하게 올 수도 있지만, 지금은 80 비트 부동 소수점 산수를 찾고 있어요. –