MATH(3M)

명칭
math - 수학 프로그램 라이브러리 함수의 도입

해설
이 함수는, C 의 수학 프로그램 라이브러리 libm (을)를 구성합니다. 링크 에디터는,“-lm” 옵션이 지정되면(자), 이 프로그램 라이브러리를 검색합니다. 이 함수의 선언은, 인클루드 파일 그리고 입수할 수 있습니다.

함수 리스트
이하의 각각의 배정밀도 부동 소수점수(실수) 함수는, 단정밀도 함수로 대가 되어 있어, 이름이 f 로 끝나는 함수는 단제도 부동 소수점수(실수)를 취급합니다. 예를 들어 acos(double x) (은)는, 부동 소수를 취급한다 acosf(float x) (이)라고 대가 되어 있습니다.

명칭 	페이지 	해설 	에러 구속 (ULP)

acos	sin. 3m	역삼각함수	3
acosh	asinh. 3m	역쌍곡선 함수	3
asin	sin. 3m	역삼각함수	3
asinh	asinh. 3m	역쌍곡선 함수	3
atan	sin. 3m	역삼각함수	1
atanh	asinh. 3m	역쌍곡선 함수	3
atan2	sin. 3m	역삼각함수	2
cabs	hypot. 3m	복소절대치	1
cbrt	sqrt. 3m	입방근	1
ceil	floor. 3m	이상의 정수	0
copysign	ieee. 3m	부호 비트의 카피	0
cos	sin. 3m	삼각함수	1
cosh	sinh. 3m	쌍곡선 함수	3
erf	erf. 3m	오차 함수	???
erfc	erf. 3m	보충 오차 함수	???
exp	exp. 3m	지수	1
expm1	exp. 3m	exp(x)-1	1
fabs	floor. 3m	절대치	0
floor	floor. 3m	이하의 정수	0
hypot	hypot. 3m	Euclid 거리	1
ilogb	ieee. 3m	지수 추출	0
j0	j0. 3m	벳셀 함수	???
j1	j0. 3m	벳셀 함수	???
jn	j0. 3m	벳셀 함수	???
lgamma	lgamma. 3m	대수 감마 함수( 구 gamma. 3m)
log	exp. 3m	자연대수	1
log10	exp. 3m	바닥이 10의 대수	3
log1p	exp. 3m	log(1+x)	1
pow	exp. 3m	지수 x**y	60-500
remainder	ieee. 3m	나머지	0
rint	floor. 3m	가장 가까운 정수에 마는	0
scalbn	ieee. 3m	지수 조정	0
sin	sin. 3m	삼각함수	1
sinh	sinh. 3m	쌍곡선 함수	3
sqrt	sqrt. 3m	평방근	1
tan	sin. 3m	삼각함수	3
tanh	sinh. 3m	쌍곡선 함수	3
y0	j0. 3m	벳셀 함수	???
y1	j0. 3m	벳셀 함수	???
yn	j0. 3m	벳셀 함수	???

주
캘리포니아 대학으로부터 1985 년말에 배포된 4.3 BSD 에서는, 상기의 함수에 2 개의 버젼이 준비되어 있습니다. 1 개(살)은 DEC VAX-11 패밀리의 컴퓨터의 배정밀도 "D" 포맷으로, 이제(벌써) 1 개(살)은 IEEE 754 표준의 바이너리 부동 소수점수(실수) 연산에 준거한 배정밀도 연산입니다. UNIX 가 탄생했을 때의 것보다, 다른 프로그램이 정확하고 튼튼하게 된 것 (으)로부터 예상할 수 있도록(듯이), 이 2 개의 버젼도, 매우 비슷한 거동을 나타냅니다. 예를 들어, 이러한 프로그램은, 위의 겉(표)의 ulps 의 수이내에서 정확합니다. ulp 는, 최종자리수의 단위입니다. 이러한 프로그램은, 한 때의 수학 프로그램 라이브러리 libm 로 발생하고 있던 이상 상태를 수정했습니다. 이 이상 상태가 발생하면(자), 이하와 같은 결과를 얻을 수 있고 있었습니다.
    sqrt(-1. 0) = 0.0 이며 log(-1. 0)= -1. 7e38
    cos(1.0e-11) > cos(0.0) > 1.0
    x = 2.0, 3.0, 4.0, ..., 9.0 때에, pow(x, 1.0) ! = x
    pow(-1. 0,1.0e10)가 정수 오버플로우 예외를 일으키고 있었다 sqrt(1.0e30)와 sqrt(1.0e-30)의 계산이 매우 늦었다
그러나 이 2 개의 버젼에는, 설명해야 한다 차이가 있습니다. 이하에 주의해 주세요.

DEC VAX-11 D_floating-point:

이것은, 오리지날의 수학 프로그램 라이브러리 libm 가 개발된 포맷 (이어)여, 이 메뉴얼이 원칙적으로 의는 서는 포맷입니다. 이것은, PDP-11 및 초기의 VAX-11 머신의 배정밀도 포맷입니다. 1983 년 이후의 VAX-11 는, IEEE 배정밀도 포맷에 의해 가까운, 옵션의 "G" 포맷을 갖추고 있습니다. 초기의 DEC MiroVAX 에는 D 포맷이 없고, G 배정밀도만이 갖춰지고 있습니다.

D_floating-point 의 프로퍼티:
    워드 사이즈: 64 비트, 8 바이트. 기수: 바이너리.
    정밀도: 56 비트, 10 진수로 약 17 자리수.
        x 와 x'가 연속한 정의 D_floating-point 부동 소수점수(실수) (1 ulp 두개 다르다)인 경우는,
        1.3e-17 < 0.5**56 < (x'-x) /x ≤ 0.5**55 < 2.8e-17
        된다.
    범위:	오버플로우 해 귀의치	= 2.0**127	= 1.7e38
    	안다후로 해 귀의치	= 0.5**128	= 2.9e-39
    	주의: 이 범위는 상대적으로 좁아지고 있습니다.
        오버플로우가 발생하면(자), 계산은 항상 중단됩니다.
        안다후로가 발생하면(자), 0 이 됩니다.
        경고:
            안다후로에 의해, x ! = y 로 x-y = 0 이 될 가능성이 있습니다. 똑같이, x > y > 0 이어도, x*y = 0 혹은 y/x = 0 이라고 하는 것이 경고없이 발생해 버립니다.
    0 은 애매하게 표현됩니다.
        하드웨어에서는,2**55 대로의 0 의 표현을 수리합니다만, 생성되는 것은 분명한 표현 뿐입니다. VAX 에는 -0 이 없습니다.
    VAX 아키텍쳐에는 무한 ( )도 없습니다.
    예약 오퍼랜드:
        하드웨어는 2**55 대로를 인식합니다만, 생성되는 것은 1 개(살) 뿐입니다. 예약 오퍼랜드에 대한 부동 소수 연산은, MOVF 나 MOVD 조차 계산을 중단한다 의로, 그다지 사용되지 않습니다.
    예외:
        0 제산과 오버플로우 하는 오퍼레이션은 부정한 오퍼레이션으로, 계산은 중단됩니다. 낡은 머신에서는 예약 오퍼랜드가 작성되어 계산이 중단됩니다.
    둥근:
         (PDP-11 에서는 반드시 그렇다고는 말할 수 없습니다만) VAX에서의 모든 유리수 연산 (+, -, *, /)는, 오버플로우, 안다후로, 0 제산이 발생하지 않는 경우,ulp 의 반이내에 말 수 있습니다. 둥근 오차가 ulp 의 정확히 반인 경우, 둥근은 0 으로부터 멀어집니다.

범위가 좁은 일을 따로 하면(자), D_floating-point 는, 1960 년대에 설계되었다 것으로 해 뛰어난 컴퓨터 산술 연산의 하나입니다. D_floating-point 의 프로퍼티는, 4.3 BSD 로 배포된 VAX 의 기본적인 함수에 충실히 반영되고 있습니다. 오버플로우나 안다후로가 발생하는 것은, 결과가 범위외가 될까 범위외에 매우 가깝다 경우만으로, 그 경우는 오버플로우나 안다후로를 일으키는 유리 산술 오퍼레이션과 같은 동작을 합니다. 똑같이, log(0)와 atanh(1) (와)과 같은 식은 1/0 과 같이 동작해, sqrt(-3)와 acos(3)는 0/0 (와)과 같이 동작합니다. 이것들은 모두 예약 오퍼랜드를 작성해, 계산은 중단됩니다. 이 상황에 대해서는, 각각의 메뉴얼 페이지로 자세하게 설명합니다.
    이 리스폰스는 너무 어려우므로, 모든 부동 소수 연산의 예외를 적절히 처리하도록(듯이) 개발된, 유연해 통일된 스킴으로 가까운 장래에 옮겨놓을 수 있을 예정입니다.

UNIX 용 4.3 BSD 의 새로운 libm 의 함수를 DEC 의 VAX/VMS 프로그램 라이브러리와 비교하면(자), 일부의 VMS 함수는 다소 빠르고, 일부는 다소 정밀도가 높고, 일부는 꽤 예외에 엄격해져(pow(0.0, 0.0)와 atan2(0.0, 0.0)등) 내려 대부분은, libm 보다 많은 메모리를 사용합니다. VMS 코드는, 큰 테이블로 보간 해 속도와 정밀도를 달성하고 있습니다. libm 코드는, 장래는 모든 것이 ROM 에 들어갈 것 같을 만큼(정도) 소형이어 상당히 궁리를 집중시킨 식을 사용하고 있습니다.

그것보다 중요한 (일)것은, DEC 가 VMS 코드를 특허로 간주해, 허가없이 사용하는 것을 엄격하게 금지하고 있는데 대해, 4.3 BSD 의 libm 코드는 public domain 를 의도하고 있다고 하는 것입니다. 즉, 출처(소)를 항상 분명히 해, 유저가 코드를 사용한 감상을 보고해 코드의 저자의 연구에 협력하는 한에 두어, libm 코드는 자 사정에 카피할 수 있습니다. 그러므로, 산술 처리가 VAX D_floating-point (을)를 닮아 있는 머신의 UNIX 유저여도, 새로운 libm 보다 뒤떨어지는 것을 사용할 필요가 없다고 하는 것입니다.

IEEE STANDARD 754 부동 소수점수(실수) 산술 연산 :

이 표준은, 다른 컴퓨터 산술 연산 방식보다 넓고 채용되어 오고 있습니다. 이하와 같이 많은 메이커가, 이 표준의 일부의 버젼에 준거한 VLSI 칩을 제조하고 있습니다.
	Intel i8087, i80287	National Semiconductor  32081
	Motorola 68881	Weitek WTL-1032, ... , -1165
	Zilog Z8070	Western Electric (AT&T) WE32106.
이 그 밖에도, 소프트웨어에 의한 실장 (Apple Macintosh 는 완벽하게 그것)으로부터, Hewlett-Packard 9000 시리즈의 VLSI 에 의한 실장이나, 끝은 ECL 를 구사해, 3 Megaflop 를 달성한 ELXSI 6400 까지 지극히 넓은 실장의 폭을 자랑합니다. 다른 기업안에는, 둥근, 오버플로우, 안다후로 등의 예외의 처리로 이 표준의 방법에 따르지 않고 , IEEE 754 의 포맷 만을 채용하고 있습니다. DEC VAX G_floating-point 포맷은, IEEE 754 Double 포맷에 매우 비슷하므로, 우에에 둔 대부분의 초등 관수의 IEEE 버젼의 C 프로그램은, MicroVAX 로 실행하도록(듯이) 간단하게 변환할 수 있습니다만, 일부러 변환해 주려는 사람은 없는 것 같습니다.

4.3 BSD libm 의 코드 가운데, IEEE 754 준거 머신용의 것은, National Semi. 32081 으로 WTL 1164/65 용으로 되어 있습니다. Intel 칩이나 Zilog 칩, 또는 Apple Macintosh 나 ELXSI 6400 그리고 이 코드를 사용하는 경우는, 이러한 기업이 제공하는 것보다 좋은 코드 (무료가 된다고 생각된다)인가, 위의 코드의 저자가 설계했다 코드를 사용하게 됩니다. atan, cabs, cbrt, erf, erfc, hypot, j0-jn, lgamma, pow, y0-yn 를 제외하면, Motorola 68881 은 libm 의 모든 함수를 칩에 탑재해, 게다가보다 빠르고 정확하게 되어 있습니다. Motorola, Apple, i8087, z8070, WE32106 에서는, 유효 자리수 64 비트를 사용하고 있습니다. 4.3 BSD 의 libm 코드에는, public domain 를 의도하고 있다고 하는 장점이 있습니다. 출처(소)를 항상 분명히 해, 유저가 코드를 사용한 감상을 보고해 저자의 연구에 협력하면, libm 코드는 자유롭게 카피할 수 있습니다. 산술 연산이 IEEE 754 를 닮아 있는 머신의 UNIX 유저는, 새로운 libm 에 뒤떨어지는 것을 사용할 필요가 없다고 하는 것입니다.

IEEE 754 Double-Precision 의 프로퍼티:
    워드 사이즈: 64 비트, 8 바이트, 기수: 바이너리
    정밀도: 53 비트, (10 진수로) 약 16 자리수.
        x 와 x'가 연속한 정의 배정밀도 부동 소수점수(실수)이다 (1 ulp 두개 다르다) 경우는,
        1.1e-16 < 0.5**53 < (x'-x) /x ≤ 0.5**52 < 2.3e-16 된다.
    범위:	오버플로우 해 귀의치	= 2.0**1024	= 1.8e308
    	안다후로 해 귀의치	= 0.5**1022	= 2.2e-308
        오버플로우가 발생하면(자), 디폴트로 부호 첨부의 무한하게 됩니다. 안다후로는 0.5**1074 = 4.9e-324 의 배수의 정수의 쳐 가장 가까운 것에 단계적으로 말 수 있습니다.
    0 은,+0 인가 -0 와 같이 애매하게 표현됩니다.
        부호는 곱셈이나 제산으로 올바르게 변환되어 부호 첨부 0 의 가산으로 유지됩니다. 그러나 x 가 유한의 경우, x-x 는 +0 이 됩니다. 0 의 부호가 문제가 되는 연산은, 0 제산과 copysign(x,±0) 뿐입니다. 특히 비교 (x > y, x ≥ y 등)는 0 의 부호로부터 영향을 받지 않습니다만, 유한한 값 x = y 인 경우는, = 1/(x-y) ! = -1/(y-x) = (이)가 됩니다.
    (은)는 부호 첨부입니다.
        (을)를 그것 자신이나 유한의 수치에 가산해도 무한은 유지됩니다. 의 부호는 곱셈과 제산으로 올바르게 변환되어 (비 0 치))/0 = (이)가 됩니다. 그러나, 무한-무한, 무한*0, 무한/무한 (은)는,0/0 이나 sqrt(-3)와 같게 부정한 연산이며,NaN 가 생성됩니다.
    예약 오퍼랜드:
        2**53-2 대로의 예약 오퍼랜드가 있어, 모두 NaN (Not a Number)로 불립니다. 일부는 발신 NaN (으)로 불려 그에 대한 부동 소수점 연산을 실행하면(자) 트랩이 발생합니다. 값의 결핍이나 미초기화, 또는 배열의 존재하지 않는 요소를 마크 하기 위해서 사용됩니다. 그 외는 무발신 NaN 로 불립니다. 이것은 부정 연산의 결과의 기본값로, 그것 이후의 산술 연산에 영향이 파급합니다. x ! = x 인 경우, x 는 NaN 입니다. 그 외 모든 논리 연산 (x > y, x = y, x < y 등)(은)는,NaN 가 관계하는 경우는 가짜가 됩니다.
        주의: NaN 는 3 분법을 방해합니다.
            NaN 가 관계하는 경우, 순수한 (불) 등치 연산은 아니고 순서부 비교를 수반하는 논리 연산은 가짜가 될 뿐만 아니라, 부정 연산이 됩니다.
    둥근:
        디폴트에서는, 모든 대수 연산 (+, -, *, /, sqrt) (은)는,ulp 의 반이내에 말 수 있습니다. 둥근 오차가 ulp 의 정확히 반인 경우, 만 값의 최하정도 유효 비트는 0 이 됩니다. 통상은 이러한 둥근이 최적이어, 예를 들어 x = 1.0, 2.0, 3.0, 4.0, ..., 2.0**52 인 경우, 상과적의 양쪽 모두를 말 수 있는 것에도 불구하고, (x/3. 0)*3. 0 == x, (x/10. 0)*10. 0 == x, ... (이)가 됩니다. 이러한 결과가 되는 것은, IEEE 754 와 같이 둥근 보고입니다. 그러나 1 개(살)의 둥근이 어느 상황에서도 최적이다라고는 한정되지 않기 때문에, IEEE 754 에서는, 0 에의 둥근, 에의 둥근, 에의 둥근을 프로그래머가 선택할 수 있게 되어 있습니다. 최악이어도 1.0e-10 에서 1.0e37 정도까지에서는, 바이너리와 소수의 변환에 같은 종류의 둥근을 지정할 수 있습니다.
    예외:
        IEEE 754 에서는, 5 종류의 부동 소수 예외가 인식됩니다. 이하에서는, 중요한 순서에 그 5 종류를 듭니다.
            예외 디폴트의 결과
            부정 연산	NaN, 또는 가짜
            오버플로우	±무한
            0 제산	±무한
            안다후로 단계적 안다후로
            게으름밀 만 값
        주의: 예외는, 적절히 처리되면 에러가 아닙니다. 예외를 예외적인 물건으로 해 버리는 것은, 모든 예를 채운다 디폴트 리스폰스가 없는 경우입니다. 반대로, 디폴트 리스폰스가 대부분의 예를 채우는 경우, 그런데도 채워지지 않은 예를, 예외가 발생할 때마다 연산을 중단한다고 하는 손으로 정당화 하는 것은 할 수 없습니다.

    IEEE 754 에서는, 각각의 부동 소수 예외를 위해서(때문에) 플래그를 준비해 있습니다. 이 플래그는 예외가 발생할 때마다 올라, 프로그램으로 리셋트 할 때까지, 오른 상태로 남습니다. 프로그램에서는, 플래그의 테스트, 보존, 복원도 할 수 있습니다. IEEE 754 에는, 디폴트의 결과가 만족이 가는 것이 아니다 예외에 프로그램으로 대처하는 방법으로서 이하의 3 개가 있습니다.

    1)  다음에 예외의 원인이 될 가능성이 있는 조건을 테스트해, 그 테스트 결과에 따라 처리를 바꾸어 예외를 피한다.

    2)  플래그를 테스트해, 프로그램으로 마지막에 플래그를 리셋트 하고 나서 예외가 발생했는지 어떠했는지를 확인한다.

    3)  결과를 테스트해, 1 개의 예외만이 발생하는 값인지 어떤지를 확인한다.
        경고: 안다후로가 발생했는지 어떠했는지를 확실히 발견하려면 , 적이나 상이 안다후로 해 귀의치보다 0 에 가까운지 어떤지를 테스트 하는지, 안다후로후라그를 테스트할 수 밖에 없습니다. (IEEE 754 에서는, 화와 차이가 안다후로를 일으킬 것은 없습니다. x ! = y 인 경우, x-y 는 완전하고 정확해서, 값이 작아도 0 이 아닙니다. ) 단계적으로 안다후로를 일으키는 적과 상은, 서서히 정밀도를 잃어도 0 은 되지 않기 때문에, 0 과 비교해도 (VAX 로 실행할 가능성이 있다), 로스는 밝혀지지 않습니다. 단계적으로 안다후로를 일으킨 값을 안다후로 해 귀의치보다 큰 값과 가산하는 경우, 단계적인 안다후로로 없어지는 자리수는 잘라 버릴 수 있으므로 없어지지 않습니다. 이 때문에, 통상의 경우, 단계적인 안다후로는 무시할 수 있는 일이 있습니다. 0 에 플래시 되는 안다후로에서는, 같은 것이 올바르다고는 할 수 없습니다.

    IEEE 754 에 준거하는 시스템에서는, 이하와 같은 방법에서도 예외에 대처할 수 있습니다.

    4)  이상종료(ABEND) (ABORT). 이 메카니즘에서는, 「ON ERROR GO TO」와 같은 에러 처리 스테이트먼트에 관련하는 방법으로 처리하는 것이들로서 예외를 미리 분류합니다. 언어가 다르면, 이 스테이트먼트의 형식은 바뀝니다만, 다음과 같은 공통된 특징이 있습니다.

    —   예외를 일으킨 연산 결과의 값을 대용해, 식의 도중부터 계산을 재개할 방법이 없어집니다. 예외의 결과는 방폐됩니다.

    —   에러 처리 스테이트먼트가 없는 서브 프로그램에서는, 어느 프로그램이 호출해도 그 서브 프로그램은 예외를 위해서(때문에) 이상종료(ABEND) 해, 에러 처리 스테이트먼트가 발견될 때까지 서브 프로그램이 차례차례로 불러 나오는지, 태스크 전체가 이상종료(ABEND) 해 메모리의 덤프가 놓칩니다.

    5)  정지(STOP). 대화형의 디버그 환경이 필요하게 되는 이 메카니즘은, 프로그래머용이며 프로그램 방향이 아닙니다. 예외는 프로그래머의 실수의 징조로서 미리 분류됩니다. 예외가 발생하면(자), 예외를 일으켰다 오퍼레이션의 근처에서 실행이 정지되므로, 프로그래머는, 예외가 어떻게 발생했는지를 확인할 수 있습니다. 많은 경우는, 최초의 몇 개의 예외는 큰 문제가 아니고, 프로그래머는 각각의 예외가 발생할 때마다, 실행이 정지되지 않았는지와 같이 실행을 재개할 수 있습니다.

    6)  ... 그 외의 방법에 대해서는, 이 문서에서는 설명하지 않습니다.

예외 처리에는, 범위 (scope)라고 하는 중대한 문제가 있습니다. 문제의 해결책은 알고 있습니다만, 일손부족이기 때문에, 4.3 BSD 의 libm 로 배포할 때 까지 완전하게 실현될 수 없었습니다. 이상적이게는, 각각의 초등 관수를, 다음과 같은 의미로 분할하지 않고 자동적으로 동작시킬 필요가 있습니다.

i)  함수에 제공한 데이터가 상당하지 않는 예외를 발생시키지 않는다.

ii) 발생한 모든 예외를 그 함수로 식별해, 써브루틴에서는 식별하지 않는다.

iii)
    함수의 정의가 예외 처리와 관련하고 있는 것에도 불구하고, 상기 5 개(살)의 예외 처리 방법에 따라 소환측 프로그램을 변경해, 작은 함수의 내부 처리를 중단하지 않는다.

프로그래머가, 디버그가 끝난 서브 프로그램을 유저가 깨닫지 않는 것 같은 작은 것에 간단하게 할 수 있게 되면 이상적입니다. 그러나, 작은 함수의 3 개(살) 모든 특징을 시뮬레이트 하는 것은, 많은 테스트, 보존, 복원이 따르기 (위해)때문에, 귀찮은 작업이 되어 있습니다. 현재, 이 불편함을 개선하는 작업이 진행되고 있습니다.

이 작업이 진행될 때까지, libm 의 함수는 그만큼 작아지지 않습니다만, 이하의 경우를 제외해, 부적절한 예외를 발생시키지 않습니다.
    오버플로우/안다후로
        올바르게 계산한 결과가, 범위내에 들어가고 있는 경우.
    cabs, cbrt, hypot, log10, pow 의 부정.
        에러의 우발적인 취소에 의해 정확하게 되었을 경우.
그 외의 경우
    부정 연산은, 이하와 같은 경우에게만 발생합니다.
        NaN 이외의 결과가 잘못하고 있다고 생각되는 경우.
    오버플로우는, 이하와 같은 경우에게만 발생합니다.
        올바른 결과가 유한하지만, 오버플로우 해 귀의치를 넘고 있는 경우.
    0 제산은, 이하와 같은 경우에게만 발생합니다.
        유한 연산으로, 함수가 무한의 값을 받았을 경우.
    안다후로는, 이하와 같은 경우에게만 발생합니다.
        올바른 결과가 0 은 아니지만, 안다후로 해 귀의치보다 작은 경우.
    부정확은, 이하와 같은 경우에게만 발생합니다.
        올바른 결과의 표현에, 보다 넓은 범위인가 보다 높은 정밀도가 필요한 경우.

버그
신호가 적절한 경우, 그 신호는 코드의 특정 오퍼레이션으로부터 발신되고 있으므로, 상기의 수법 5)를 사용하고 있는 경우는, 써브루틴을 트레이스 해 그 신호를 발하고 있는 함수를 특정한다 필요가 있습니다. 모든 코드는, IEEE 754 의 디폴트를 사용합니다. 즉, 모든 0 제산을 트랩 하려고 하면(자), 트랩 하지 않는 경우에 0 제산에서도 올바른 결과를 내는 코드가 중단되면(자) 말하는 것입니다.

관련 항목
fpgetround(3), fpsetround(3), fpgetprec(3), fpsetprec(3), fpgetmask(3), fpsetmask(3), fpgetsticky(3), fpresetsticky(3) - IEEE 부동 소수 인터페이스

주
IEEE 754 로 extension p854 에 대해서는, 1984 년 8 월에 발행된, IEEE 의 잡지 「MICRO」를 참조해 주세요. W. J. Cody 등이 「A Proposed Radix- and Word-length-independent Standard for Floating-point Arithmetic」라고 하는 기사 중(안)에서 설명하고 있습니다. Apple Macintosh 의 Pascal, C, BASIC 의 메뉴얼 에는, IEEE 754 의 기능에 관한 알기 쉬운 설명이 있습니다. IEEE 의 잡지 「COMPUTER vol. 14 no. 3」(1981 년 3 월)과 1979 년 10 월의 「ACM SIGNUM Newsletter Special Issue」의 기사도 도움이 됩니다만, 이 기사는 후로 변경된 표준 사양안에 관계하고 있습니다.