2017-02-22 11 views
0

C++에서 double보다 소수점 이하 자릿수를 더 많이 저장하는 부동 소수점 유형이 있습니까 (double에 더 많은 숫자가 저장되는 다른 방법)?C++ 정확도/정밀도가 두 배 이상임

나는 long double이 아마도 더 정확할 것이라고 읽었습니다.

내 프로그램에서는 만델 브로 세트를 확대 할 수 있지만 일부 확대/축소 후에는 픽셀 화됩니다. 두 개의 인접한 픽셀과 관련된 두 개의 복소수 사이의 길이가 두 개의 연속 된 double 값 사이의 차이보다 작기 때문이라고 생각합니다. 프로그램에서 나는 long double을 사용했다.

내 컴퓨터의 프로세서가 인텔 ® 코어 ™ i3 CPU M 380 @ 2.53GHz x 4, 컴퓨터가 64 비트, 운영 체제가 우분투이고 컴파일러가 gcc 인 경우 중요합니다.

the pixelated Mandelbrot set

+1

Fractals에 대한이 사람의 블로그 게시물을 읽으십시오. https://randomascii.wordpress.com/category/fractals/ –

+0

'double double'이 'double'보다 길면 정확합니다. 켜져 있지 않습니다. 많은 플랫폼. 'sizeof'로 확인하십시오. Intel FPU는 80 비트 단위로 계산됩니다. – EJP

+0

만델 브로 세트는 계산할 수 없습니다. 어떤 줌에서는 컴퓨터가 반복이나 정밀도에 관계없이 포기할 것입니다. 하지만 80 비트 복식으로 가거나 심지어 소프트웨어로 자신 만의 루틴을 쓸 수도 있습니다. –

답변

1

당신은 boost.multiprecision 또는 GMP 같은 타사 라이브러리를 살펴 보셔야합니다.

"손으로"수행 할 수도 있지만 많은 작업이 필요합니다. 숫자를 문자열 표현으로 유지하고 수동으로 직접 산술 연산을 수행해야합니다.

+0

답변 해 주셔서 감사합니다! 나는 그들을 점검 할 것이다. 문자열 표현은 흥미로운 것 같습니다. 나는 덧셈과 뺄셈이 어떻게 작동하는지 알지만, 곱셈과 나눗셈은 알려지지 않았습니다. 그리고 내가 그것들을 안다면 Taylor 시리즈와 함께 다른 기능을 만들 수 있습니다. sin, cos, x^y ... (나는 내 ​​프로그램에서 이러한 함수가 필요 없다는 것을 알고있다). 로그는 시리즈가 1 개의 반경 내에 수렴하기 때문에 저를위한 질문입니다. – csekri

+0

손으로 직접하고 싶다면 계속 배우십시오. – Telokis