맨위로가기

NaN

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

NaN(Not a Number)은 IEEE 754 부동소수점 산술 표준에서 숫자가 아님을 나타내는 특수한 값이다. NaN은 지수부가 모두 1이고 가수부가 0이 아닌 비트 패턴으로 표현되며, 무한대와 구별된다. NaN에는 대부분의 연산에서 예외를 발생시키지 않고 전파되는 quiet NaN(qNaN)과 부동소수점 연산에 사용될 때 부정 예외를 발생시키는 signaling NaN(sNaN)이 있다. NaN과의 크기 비교는 항상 "크기 불명 결과"를 반환하며, 자기 자신과의 비교도 마찬가지이다. NaN을 생성하는 연산에는 부정형, 허수 결과 연산 등이 있으며, 프로그래밍 언어 및 환경에 따라 다양한 텍스트 표현이 사용된다.

더 읽어볼만한 페이지

  • 소프트웨어 이상 - 예외 처리
    예외 처리는 프로그램 실행 중 예외 발생 시 정상적인 실행 흐름을 유지하거나 안전하게 종료하기 위한 메커니즘으로, 많은 프로그래밍 언어에서 제공하며 예외 안전성을 목표로 한다.
  • 소프트웨어 이상 - 충돌 (컴퓨팅)
    충돌은 프로그램 설계 결함, 운영체제 결함, CPU/GPU 과열, 메모리 오류 등으로 인해 소프트웨어가 비정상적으로 종료되거나 작동이 멈추는 현상으로, 데이터 손실, 시스템 불안정 등의 영향을 초래하여 자동 복구, 운영을 통한 완화, 충돌 보고 등의 기술이 사용된다.
  • 컴퓨터 산술 - IEEE 754
    IEEE 754는 부동소수점 숫자를 표현하고 처리하기 위한 국제 표준으로, 다양한 형식과 연산, 반올림 규칙, 예외 처리 등을 정의한다.
  • 컴퓨터 산술 - 1의 보수
    1의 보수는 이진수에서 양수는 일반적인 이진수로, 음수는 양수의 각 비트를 반전시켜 표현하며, 덧셈 시 자리올림수가 발생하면 결과값에 더해야 하고, 0을 중복 표현하는 단점으로 현대에는 2의 보수가 주로 사용된다.
NaN
정의
정의컴퓨터 프로그래밍에서, 숫자가 아님(Not a Number, NaN)은 유효하지 않거나 표현할 수 없는 값을 나타내는 부동 소수점 숫자 데이터 유형의 값이다.
기원일부 부동 소수점 연산에서, 특히 결과가 정의되지 않았을 때 발생한다. 0/0과 같은 경우이다.
상세
특징NaN 값은 일반적인 숫자 값과는 구별되는 특징을 가진다.
비교 불가NaN은 자기 자신을 포함한 어떠한 값과도 같지 않다. 즉, NaN == NaN은 거짓이다.
전염성NaN과 함께 수행되는 거의 모든 산술 연산의 결과는 NaN이다.
표준
IEEE 754NaN의 동작은 IEEE 754 부동 소수점 표준에 의해 정의되어 있다.
구현대부분의 프로그래밍 언어와 시스템에서 NaN 값을 지원한다.
발생 원인
정의되지 않은 연산0/0
음수의 제곱근
"무한대의 부정확한 형태 (예: ∞ - ∞, ∞ / ∞)"
이전 연산 오류하나 이상의 입력이 NaN인 경우
사용
결측값 처리데이터 세트에서 누락된 값을 나타내는 데 사용될 수 있다.
오류 표시계산 과정에서 오류가 발생했음을 알리는 데 사용될 수 있다.
프로그래밍 언어에서의 NaN
C/C++CC++에서는 `` 헤더 파일에 `NAN`이라는 매크로로 정의되어 있다.
자바자바에서는 `Double.NaN`과 `Float.NaN`으로 표현된다.
파이썬파이썬에서는 `float('nan')` 또는 `math.nan`으로 표현된다.
주의사항
NaN 판별NaN은 자기 자신과 비교하여 같지 않음을 이용하여 판별할 수 있다 (예: `x != x`는 x가 NaN일 경우 참).
함수 사용대부분의 언어에서 NaN을 판별하는 함수 (`isnan()`)를 제공한다.

2. 부동소수점과 NaN

IEEE 754 부동소수점 연산에서 NaN(Not a Number, 숫자가 아님)은 무한대와는 다른 개념이지만, 둘 다 특수한 경우로 처리된다. NaN은 산술 오버플로, 산술 언더플로 또는 잘못된 연산과는 구별된다.

IEEE 754 NaN은 지수 필드가 1로 채워져 있고 (무한대 값과 유사), 가수의 일부 비트가 0이 아닌 값으로 인코딩되어 무한대 값과 구별된다.[3] 이를 통해 가수 필드에서 설정된 비트뿐만 아니라 선두 부호 비트의 값에 따라 여러 개의 개별 NaN 값을 정의할 수 있다.

IEEE 754 단정밀도 (32비트) NaN은 다음과 같이 표현된다.

''s''111 1111 1''xxx xxxx xxxx xxxx xxxx xxxx''

여기서 ''s''는 부호 (대부분 무시됨)이고 ''x'' 시퀀스는 0이 아닌 숫자를 나타낸다 (값 0은 무한대를 인코딩한다).[3] 실제로 ''x''의 가장 중요한 비트는 NaN의 유형, 즉 조용한 NaN (qNaN) 또는 시그널링 NaN (sNaN) 인지를 나타낸다. 나머지 비트는 ''페이로드''를 인코딩한다 (대부분 무시됨).[3]

순서 비교를 제외한 부동 소수점 연산은 일반적으로 조용한 NaN (qNaN)을 전파한다. 시그널링 NaN (sNaN)에 대한 대부분의 부동 소수점 연산은 잘못된 연산 예외를 발생시킨다. 기본 예외 동작은 qNaN 피연산자와 동일하며, 부동 소수점 결과를 생성하는 경우 qNaN을 생성한다.

조용한 NaN의 산술 연산을 통한 전파는 중간 단계에서 광범위한 테스트 없이 연산 시퀀스의 끝에서 오류를 감지할 수 있게 한다. 예를 들어 NaN으로 시작하여 5번 연속 1을 더하면 각 더하기는 NaN이 되지만, 최종 결과가 NaN임을 알면 각 계산을 확인할 필요가 없다. 그러나 ''x''0 계산은 ''x''가 NaN인 경우에도 1을 생성할 수 있으므로, 최종 결과만 확인하면 ''x''0 앞에 계산이 NaN을 생성했는지 알 수 없다.

2. 1. IEEE 754 표준

IEEE 754 표준은 부동소수점 수 체계에서 NaN (Not a Number, 숫자가 아님)을 정의하고 처리하는 방식을 규정한다. NaN은 지수부가 모두 1이고, 가수부가 0이 아닌 비트 패턴으로 표현된다.[3]

IEEE 754 NaN은 지수 필드가 1로 채워져 있고 (무한대 값과 유사), 가수의 일부 비트가 0이 아닌 값으로 인코딩되어 무한대 값과 구별된다. 이를 통해 가수 필드에서 설정된 비트뿐만 아니라 선두 부호 비트의 값에 따라 여러 개의 개별 NaN 값을 정의할 수 있다 (하지만 애플리케이션은 이러한 개별 NaN 값에 대해 별도의 의미를 제공할 필요가 없다).[3]

예를 들어 IEEE 754 단정밀도 (32비트) NaN은 다음과 같이 표현된다.

''s''111 1111 1''xxx xxxx xxxx xxxx xxxx xxxx''

여기서 ''s''는 부호 (대부분의 애플리케이션에서 무시됨)이고 ''x'' 시퀀스는 0이 아닌 숫자를 나타낸다 (값 0은 무한대를 인코딩한다).[3] 실제로 ''x''의 가장 중요한 비트는 NaN의 유형을 결정하는 데 사용된다. 즉, 조용한 NaN (quiet NaN, qNaN) 또는 시그널링 NaN (signaling NaN, sNaN) 인지를 나타낸다 (자세한 내용은 인코딩 참조). 나머지 비트는 ''페이로드''를 인코딩한다 (대부분의 애플리케이션에서 무시됨).[3]

IEEE 754-2008의 6.2절에는 두 개의 피연산자 중 최대값과 최소값을 반환하는 함수가 있었는데, 피연산자 중 하나만 NaN인 경우 다른 피연산자의 값이 반환되었다. 그러나 IEEE 754-2019 개정에서는 이러한 함수가 결합적이지 않기 때문에 (시그널링 NaN이 피연산자에 나타날 때) 대체되었다.[4][5]

2. 2. NaN의 종류

IEEE 754에서 정의된 NaN (Not a Number)은 부동소수점 연산에서 정의되지 않거나 표현할 수 없는 결과를 나타내는 특별한 값이다. NaN은 크게 조용한 NaN (Quiet NaN, qNaN)과 시그널링 NaN (Signaling NaN, sNaN) 두 가지로 나뉜다.

  • 조용한 NaN (qNaN): 대부분의 연산에서 예외를 발생시키지 않고 전파된다. 즉, qNaN이 연산에 포함되어도 프로그램 실행이 중단되지 않고, 결과 값으로 qNaN이 반환된다.[1]
  • 시그널링 NaN (sNaN): 연산에 사용될 때 잘못된 연산 예외를 발생시킨다. 이는 주로 초기화되지 않은 변수를 사용하거나, 특수한 상황을 나타내기 위해 사용된다.[3]


qNaN과 sNaN은 IEEE 754 표준에 따라 비트 패턴으로 구분된다. 예를 들어, 단정밀도(32비트) 부동소수점 형식에서 NaN은 `s111 1111 1xxx xxxx xxxx xxxx xxxx xxxx`와 같은 형태로 표현된다. 여기서 `s`는 부호 비트, `x`는 0이 아닌 비트 패턴을 나타낸다. `x`의 가장 중요한 비트가 qNaN과 sNaN을 구분하는 데 사용되며, 나머지 비트는 추가적인 정보(페이로드)를 담을 수 있다.

일반적으로 qNaN은 연산을 통해 전파되므로, 중간 결과값을 일일이 확인하지 않고 최종 결과만 확인해도 오류를 감지할 수 있다. 그러나 sNaN은 예외를 발생시키므로, 초기화되지 않은 변수 사용 등의 문제를 조기에 발견하는 데 유용하며, qNaN으로 변환되어 전파될 수 있다.

2. 2. 1. 조용한 NaN (qNaN)

qNaN은 오류를 나타내지만, 일반적으로 프로그램 실행을 중단시키지 않는다. 대부분의 연산에서 조용한 NaN (qNaN)은 추가적인 예외를 발생시키지 않고 전파된다. 그러나 형식 변환이나 특정 비교 연산과 같이 부동 소수점 값을 반환하지 않는 일부 연산에서는 무효 연산 예외가 발생한다.[1]

IEEE 754의 단정밀도 (32비트)에서 NaN을 비트 열로 표현하면 s111 1111 1xxx xxxx xxxx xxxx xxxx xxxx가 되며, 여기서 's'는 양/음 부호 (대부분의 애플리케이션에서는 무시), 'x'는 특수 페이로드 (대부분의 애플리케이션에서는 무시)이다.

크기 비교 이외의 부동 소수점 수 연산은 일반적으로 quiet NaN을 그대로 전파한다. signaling NaN에 대한 부동 소수점 수 연산은 부정 예외를 발생시키며, 기본 예외 처리에서는 qNaN을 피연산자로 했을 때와 마찬가지로 연산 결과로 qNaN을 생성할 뿐이다.

quiet NaN이 연산을 통해 전파되기 때문에, 계산 도중에 여러 번 확인할 필요는 없으며, 최종적으로 얻어진 값을 조사하면 된다. 다만, 언어 또는 함수에 따라 NaN을 전달해도 그것이 계산 결과에 영향을 미치지 않는 경우에 아무 말 없이 일반 부동 소수점 수치를 반환하는 경우가 있다. 예를 들어 어떤 수라도 0제곱하면 1이 되므로, NaN^0은 1로 정의할 수도 있다. 따라서 일반적으로 최종 값을 얻기까지의 과정에서 NaN이 들어 있었는지를 나타내는 INVALID 플래그를 조사할 필요가 있다.[30]

2. 2. 2. 시그널링 NaN (sNaN)

sNaN은 NaN의 특수한 형태로, 대부분의 연산에서 사용될 때 무효 연산 예외를 발생시킨다. 그 후, sNaN은 qNaN으로 변환되어 전파될 수 있다. 이는 IEEE 754에서 도입되었다. sNaN은 다음과 같이 활용될 수 있다.

  • 초기화되지 않은 메모리를 시그널링 NaN으로 채우면, 데이터가 초기화되기 전에 사용될 경우 무효 연산 예외가 발생한다.
  • sNaN을 더 복잡한 객체의 자리 표시자로 사용할 수 있다.[3] 예를 들면 다음과 같다.
  • 언더플로우된 숫자의 표현
  • 오버플로우된 숫자의 표현
  • 더 높은 정밀도 형식의 숫자
  • 복소수


sNaN이 발견되면 트랩 처리기가 sNaN을 디코딩하고 계산된 결과에 대한 인덱스를 반환할 수 있다. 실제로는 이 접근 방식에는 많은 복잡성이 따른다. 일부 간단한 연산(예: 절댓값)에 대한 NaN의 부호 비트 처리는 산술 연산의 처리와 다르다. 트랩은 표준에서 요구되지 않는다.[30]

2. 3. NaN의 인코딩

NaN영어의 인코딩은 이진 부동소수점 형식에서 지수 필드가 모두 1이고, 유효 숫자 필드에 0이 아닌 숫자가 있는 형태로 표현된다.[3] 유효 숫자 필드의 최상위 비트는 일반적으로 NaN영어의 유형 (조용한 NaN영어 또는 시그널링 NaN영어)을 결정한다.

2008 및 2019 개정판 IEEE 754 표준에서는 신호/정숙 상태의 인코딩에 대한 공식 요구 사항 및 권장 사항을 제시한다.

  • 이진 교환 형식의 경우, 유효 숫자 필드의 최상위 비트는 정숙 NaN영어과 신호 NaN영어을 구별하는 데 독점적으로 사용된다. 또한, 이는 플래그여야 한다. 즉, 이 비트는 NaN영어이 정숙이면 0이 아닌 값이고, NaN영어이 신호이면 0이다.
  • 이진 또는 십진 인코딩 여부에 관계없이 십진 교환 형식의 경우, NaN영어은 부호 비트 다음에 조합 필드의 상위 5비트가 1로 설정되어 식별된다. 이 필드의 여섯 번째 비트는 플래그이다. 즉, 이 비트는 NaN영어이 정숙이면 0이고, NaN영어이 신호이면 0이 아닌 값이다.


IEEE 754-1985에서는 이진 부동 소수점 형식만 설명했으며, 신호/정숙 상태를 태깅하는 방법을 지정하지 않았다. 실제로, 유효 숫자 필드의 최상위 비트는 NaN영어이 신호인지 정숙인지를 결정했다. 의미가 반전된 두 가지 구현이 있었다.

프로세서신호/정숙 비트의 의미
Intel 및 AMD의 x86 제품군, Motorola 68000 제품군, AIM PowerPC 제품군, ARM 제품군, Sun SPARC 제품군, 그리고 선택적으로 새로운 MIPS 프로세서NaN영어이 정숙이면 0이 아닌 값, 신호이면 0 ( 플래그)
PA-RISC 및 구형 MIPS 프로세서NaN영어이 정숙이면 0, 신호이면 0이 아닌 값 ( 플래그)



전자의 선택이 선호되었는데, 이는 구현 시 신호/정숙 비트를 1로 설정하기만 하면 신호 NaN영어을 정숙하게 만들 수 있기 때문이다.

유효 숫자 필드의 나머지 비트의 상태/값은 표준에 의해 정의되지 않는다. 이 값을 NaN영어의 '페이로드'라고 한다.

3. NaN을 생성하는 연산

IEEE 754 부동 소수점 계산에서 NaN (Not a Number)은 숫자가 아님을 나타내는 특별한 값이다. NaN은 주로 정의되지 않거나 표현할 수 없는 연산 결과를 나타내는 데 사용된다.

NaN을 생성하는 연산은 크게 세 가지 종류로 나눌 수 있다.


  • NaN을 피연산자로 하는 대부분의 연산: 피연산자 중 하나 이상이 NaN이면, 대부분의 연산 결과는 NaN이 된다.
  • 부정형:
  • 나눗셈: ,
  • 곱셈: ,
  • 나머지: 가 무한대이거나 가 0일 때
  • 덧셈: ,
  • 뺄셈: ,
  • 거듭제곱:
  • 표준 함수와 정수 지수 함수는 , , 을 로 정의한다.
  • 함수는 위 세 가지 부정형 모두를 유효하지 않은 연산으로 정의하여 NaN을 반환한다.
  • 실수 연산에서 복소수 결과가 발생하는 경우:
  • 음수의 제곱근
  • 음수의 로그
  • -1보다 작거나 1보다 큰 숫자의 역삼각 함수 (역사인 또는 역코사인)


NaN은 누락된 값을 나타내기 위해 변수에 명시적으로 할당될 수도 있다.[32] 예를 들어, 설문 조사에서 응답하지 않은 항목이나 실험 데이터에서 측정하지 못한 값을 NaN으로 표현할 수 있다. IEEE 표준 이전에는 프로그래머가 정의되지 않거나 누락된 값을 나타내기 위해 특수 값(예: −99999999)을 사용했지만, 일관되거나 올바르게 처리될 것이라는 보장은 없었다.[28]

하지만 위의 모든 경우에 NaN이 반드시 생성되는 것은 아니다. 연산이 예외 조건을 생성할 수 있고 트랩이 마스킹되지 않은 경우, 해당 연산은 대신 트랩을 발생시킨다.[33] 피연산자가 정규 NaN이고 신호 NaN 피연산자도 없는 경우 예외 조건이 없으며 결과는 정규 NaN이다. 명시적 할당은 신호 NaN의 경우에도 예외를 발생시키지 않는다.

4. NaN과의 비교

IEEE 754 표준은 NaN과의 비교를 특별하게 정의한다. NaN과의 비교는 항상 "정렬되지 않음(unordered)" 결과를 반환하는데, 이는 NaN이 자기 자신을 포함한 다른 어떤 값과도 크기를 비교할 수 없음을 의미한다.[6]

NaN과 임의의 부동 소수점 값 ''x'' 간의 비교
(NaN 및 ±∞ 포함)
비교NaN ≥ xNaN ≤ xNaN > xNaN < xNaN = xNaN ≠ x
결과거짓거짓거짓거짓거짓



`==` 및 `!=` 연산자는 NaN에 대해 non-signaling 방식으로 동작한다. 즉, ''x''가 NaN이면 `''x'' ≠ ''x''`는 참을, `''x'' = ''x''`는 거짓을 반환하여 ''x''가 NaN인지 아닌지를 판별할 수 있다. 다른 비교 연산자는 signaling 방식으로 동작하여, NaN 피연산자를 받으면 무효 연산 예외를 발생시킨다.[6] 이 표준은 이러한 다른 술어의 비 시그널링 버전도 제공한다. `isNaN(''x'')` 함수는 값이 NaN인지 여부를 확인하며, ''x''가 시그널링 NaN(sNaN)인 경우에도 예외를 발생시키지 않는다.[6]

IEEE 부동 소수점 표준은 ''NaN ≠ NaN''이 성립해야 한다고 요구한다.

5. 함수 정의에서의 NaN

수치 함수가 NaN(Not a Number)을 입력으로 받았을 때 처리 방법에 대해서는 두 가지 주요 견해가 있다. 하나는 NaN을 오류로 보고 항상 출력으로 전파하는 것이고, 다른 하나는 NaN이 아닌 입력값만으로 출력값을 정할 수 있으면 그 값을 반환하는 것이다. IEEE 754는 주로 후자의 견해를 따른다. 예를 들어 `hypot(±∞, qNaN)`나 `hypot(qNaN, ±∞)`는 +∞를 반환한다.[30]

지수 함수에서 특히 문제가 된다. 00, ∞0, 1 같은 표현은 부정형이지만, 0의 0제곱을 1로 정의해야 하는지에 대해서는 의견이 갈린다.

일반적으로 수학 라이브러리는 모든 실수 ''y''에 대해 1을 반환하며, ''y''가 무한대여도 마찬가지이다. 마찬가지로 ''x''가 0이나 무한대여도 1을 생성한다. IEEE 754-2008은 `pow(1, qNaN)` 및 `pow(qNaN, 0)` 모두 1을 반환해야 한다고 규정한다.[30]

더 엄격한 해석을 위해 IEEE 754-2008은 두 가지 추가 함수를 정의했다. `pown(x, n)`은 지수가 정수여야 하고, `powr(x, y)`는 NaN이거나 부정형일 때 NaN을 반환한다.

6. 정수 NaN

대부분의 고정 크기 정수 형식은 NaN을 명시적으로 나타낼 수 없다. 이러한 경우 NaN을 정수 형식으로 변환하려고 하면 IEEE 754 표준에 따라 유효하지 않은 연산 예외가 발생해야 한다.[25] 예를 들어 자바에서는 이러한 연산이 `java.lang.ArithmeticException` 인스턴스를 발생시킨다.[25] C에서는 정의되지 않은 동작을 초래하지만, 부록 F를 지원하는 경우 "유효하지 않음" 부동 소수점 예외와 지정되지 않은 값을 생성한다.

Perl의 `Math::BigInt` 패키지는 유효한 정수를 나타내지 않는 문자열의 결과로 "NaN"을 사용한다.[26]

7. 한국에서의 NaN 활용

대한민국에서 사용되는 프로그래밍 언어와 통계 소프트웨어는 IEEE 754 표준을 따르는 경우가 많기 때문에, 위에서 설명된 내용 대부분이 한국의 개발 환경에도 적용된다. R 언어 등 통계 분석 소프트웨어에서는 NaN 외에 결측값을 표현하기 위해 NA (Not Available)를 사용하기도 한다. NA는 NaN과는 약간 다른 의미와 동작을 가진다.[1] R 언어에서 NaN==NaN은 거짓이지만, NA==NA는 NA이다.[1]

8. 텍스트 표현

운영 체제 및 프로그래밍 언어에 따라 NaN의 문자열 표현은 다를 수 있다. 몇 가지 예는 다음과 같다.

표현설명
`nan`C, C++, 파이썬
`NaN`ECMAScript, Rust, C#, Julia. Julia는 정밀도에 따라 `NaN32`, `NaN16` 등 다른 NaN을 표시할 수 있다. `NaN`은 `Float64` 유형에 사용된다.
`NaN%`
`NAN`C, C++, Rust
`NaNQ`IBM XL 및 AIX: 포트란, C++ 제안 n2290
`NaNS`IBM XL 및 AIX
`qNaN`
`sNaN`
`1.#SNAN`Excel
`1.#QNAN`Excel
`-1.#IND`Excel
`+nan.0`Scheme



실제로 인코딩된 NaN에는 부호, 조용/신호 비트 및 선택적 '진단 정보'(때로는 ''페이로드''라고도 함)가 있으므로 NaN의 문자열 표현에서도 이러한 값을 찾을 수 있다.

C 및 C++ 언어의 경우 표준 라이브러리 함수는 부호 비트가 있는 경우 항상 이를 표시한다. 페이로드나 신호 상태에 대한 표준 표시는 없지만, 특정 페이로드의 조용한 NaN 값은 숫자 구문 분석 함수에 문자열 `nan(''char-sequence'')`를 제공하여 구성할 수 있다.

GCC 및 LLVM은 `nan()` 및 `nans()`의 내장 구현을 제공한다. GNU C 라이브러리의 부동 소수점 파서는 "일부 지정되지 않은 방식"으로 ''char-sequence'' 문자열을 사용한다.[27]

모든 언어가 여러 NaN의 존재를 허용하는 것은 아니다. 예를 들어, ECMAScript는 하나의 NaN 값만 사용한다.

다음은 부호와 진단용 정보(페이로드)를 포함하는 경우의 예이다.


  • `-NaN`
  • `NaN12345`
  • `-sNaN12300`
  • `-NaN(s1234)`

참조

[1] 서적 An Introduction to Programming with IDL: Interactive Data Language https://archive.org/[...] Academic Press 2006
[2] 서적 Numerical Recipes: The Art of Scientific Computing https://archive.org/[...] Cambridge University Press 2007
[3] 웹사이트 Lecture Notes on the Status of IEEE Standard 754 for Binary Floating-Point Arithmetic http://www.cs.berkel[...] 1997-10-01
[4] 웹사이트 The Removal/Demotion of MinNum and MaxNum Operations from IEEE 754-2018 https://grouper.ieee[...] 2019-05-06
[5] 웹사이트 754R Minutes http://754r.ucbtest.[...] 2017-06-25
[6] 간행물 2019
[7] 문서 Standard for Posit Arithmetic (2022) https://posithub.org[...]
[8] 웹사이트 What Every Computer Scientist Should Know About Floating-Point http://citeseer.ist.[...]
[9] 웹사이트 Intel 64 and IA-32 Architectures Software Developer's Manual Volume 1: Basic Architecture http://www.intel.com[...] 2008-04
[10] 간행물 2019
[11] 웹사이트 Background discussion for the new Payload functions https://grouper.ieee[...]
[12] 웹사이트 IEEE Standard for Floating-Point Arithmetic revision due in 2019 https://grouper.ieee[...]
[13] 웹사이트 Re: (long) sNaNs not what they could be... https://grouper.ieee[...] 2020-11-05
[14] 간행물 2019
[15] 간행물 2019
[16] 간행물 2019
[17] 웹사이트 MIPS Architecture For Programmers – Volume I-A: Introduction to the MIPS64 Architecture http://cdn2.imgtec.c[...] MIPS Technologies, Inc. 2017-09-27
[18] 웹사이트 "F" Standard Extension for Single-Precision Floating-Point, Version 2.2 / RISC-V Instruction Set Manual, Volume I: RISC-V User-Level ISA https://five-embedde[...]
[19] 웹사이트 NaN payload propagation - unresolved issues https://grouper.ieee[...] 2018-04-11
[20] 웹사이트 NaN handling and the Default NaN (ARM Architecture Reference Manual ARMv7-A and ARMv7-R edition) https://developer.ar[...]
[21] 웹사이트 What is the motivation for 'NaN' canonicalization? · Issue #1463 · WebAssembly/design https://github.com/W[...]
[22] 웹사이트 Chapter 4. Types, Values, and Variables https://docs.oracle.[...]
[23] 서적 Crafting Interpreters https://craftinginte[...] Genever Benning 2021-07-28
[24] 웹사이트 Rationale for International Standard—Programming Languages—C, Revision 5.10 https://www.open-std[...] 2003-04
[25] 웹사이트 ArithmeticException (Java Platform SE 8) http://docs.oracle.c[...]
[26] 웹사이트 Math::BigInt http://perldoc.perl.[...] 2015-06-12
[27] 웹사이트 Parsing of Floats (The GNU C Library) https://www.gnu.org/[...] 2021-09-09
[28] 서적 An introduction to programming with IDL: Interactive Data Language Academic Press 2006
[29] 서적 Numerical recipes: the art of scientific computing Cambridge University Press 2007
[30] 웹사이트 Lecture Notes on the Status of IEEE Standard 754 for Binary Floating-Point Arithmetic http://www.cs.berkel[...] 2012-03-31
[31] 문서 NaN 'toolbox' http://pub.ist.ac.at[...]
[32] 웹사이트 What Every Computer Scientist Should Know About Floating-Point http://citeseer.ist.[...] 2012-03-31
[33] 웹사이트 Intel 64 and IA-32 Architectures Software Developer's Manual Volume 1: Basic Architecture http://www.intel.com[...] 2012-03-31
[34] 서적 An Introduction to Programming with IDL: Interactive Data Language https://archive.org/[...] Academic Press 2006
[35] 서적 Numerical Recipes: The Art of Scientific Computing https://archive.org/[...] Cambridge University Press 2007



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com