double형을 찍을 때 "1.#INF00e+000"값이 나오는 것은

이한길의 이미지

학교 숙제로 Linear Equations을 Jacobi 방법으로
푸는 프로그램을 병렬 프로그램으로 만들고 있습니다..
대충 마쳐가는데...

결과를 찍어보니까...
저 위에 제목처럼.. "1.#INF00e+000" 이렇게 나옵니다..
이게 무슨 의미인가요? 보통은 "1.255781e+306"이런식으로..
표시되는데.. 저기에 "#INF"가 의미하는게 뭔지 모르겠습니다..

doldori의 이미지

infinite란 뜻이죠. 보통 0으로 나누거나 오버플로우가 발생하면 그렇게 됩니다.
1.255781e+306처럼 큰 숫자가 나온다면 알고리듬에 뭔가 문제가 있어 보입니다.

ps. Jacobi법이면 linear equation이 아니라 고유치를 구하는 방법 아니던가요?

cppig1995의 이미지

Infinite는 모든 비트가 1입니다.

Real programmers /* don't */ comment their code.
If it was hard to write, it should be /* hard to */ read.

doldori의 이미지

cppig1995 wrote:
Infinite는 모든 비트가 1입니다.

많이 쓰이고 있는 IEEE 754에서는 그렇지 않군요.