2012-10-27 1 views
2

마운틴 라이온의 libmath 구현 (/usr/lib/system/libsystem_m.dylib에 있음)에는 모든 표준 libmath 함수가 있으며 각각에 대해 $fenv_access_off 변형이 추가되었습니다. 예를 들어, acosacos$fenv_access_off이 있습니다. (Mac OS의 다른 버전은 10.8 이전의 버전인지 확인하기 위해 설치되어 있지 않습니다.)

$fenv_access_off의 의미는 무엇입니까?

나는 이것들 중 어느 것도 직접적으로 부르지 않을 것이라는 것을 이해하지만 나는 그들에 대해 아직도 궁금하다.

답변

4

fenv_access_off에 대한 토론이 포함 된 Apple 기술자 간에는 mailing list thread이 있습니다. 스티븐 캐논, 애플 엔지니어는 설명 :

C99 당신이 fenv.h을 포함 의 #pragma STDC FENV_ACCESS 한 적이 있는지 여부에 따라 변경 모드를 반올림 여부를 /는 IEEE 플래그를 찾고 있는지 알고 표준에 따라 필요에 따라 원칙적으로 두 개의 병렬 수학 라이브러리가 있습니다. 은 플래그를 부지런하게 설정하고 반올림 모드 변경에 대해 방어하고 그렇지 않은 경우보다 빠르게 방어하는 라이브러리입니다. 실제로 은 수학 라이브러리에있는 모든 내용에 대해 $ fenv_access_off로 장식 된 심볼 집합 을 별도로 사용하여 구현할 수 있습니다. 에서

man pagefenv의 : 헤더는 어떤 부동 소수점 상태 플래그 및 제어 모드로 구성, 부동 소수점 환경에 액세스를 제공하는 유형, 매크로 및 기능을 선언

구현시 에서 지원됩니다.

...

FENV_ACCESS의 pragma는 프로그램이 상태 플래그를 테스트하거나 제어 모드를 변경할 수있는 부동 소수점 환경에 액세스 할 수 컴파일러에 알려 할 수있는 방법을 제공합니다.

+0

이것은 내가 가장 많이 찾던 것입니다. 고맙습니다! – zneak

+1

나는 찬사를 보냈지 만 이안 올만은 실제로이 설명을 썼다. –

1

$....의 기호 변형은 이전 버전과의 호환성을 위해 Symbol Variants Release Notes으로되어 있습니다. 이 특별한 하나 인 $fenv_access_off은 새로운 C 표준과의 호환성을 위해 도입 된 것 같습니다. 공개 그룹 웹 페이지의 fenv.h을 참조하십시오.

이제 OS X 컴퓨터에서 man fenv을 실행하십시오. 맨 페이지의 날짜는 2011 년 5 월 9 일입니다. OS X Lion에서 처음 소개되었습니다. (그러나 Mountain Lion 기계 만 가지고 있기 때문에 확인할 수는 없습니다.)