2013-04-01 1 views
1

는 다음과 같은 이름으로 예약했다 : 나는 그들이의 기초이기 때문에 (표준 C의 일환으로 복잡한 감마 기능을보고 매우 좋아하는 것처럼cerf, cerfc, ctgamma 및 clgamma 기능 상태? 우리는 C11의 초안을 보면

7.31 Future library directions 
The following names are grouped under individual headers for convenience. All external 
names described below are reserved no matter what headers are included by the program. 
7.31.1 Complex arithmetic <complex.h> 
The function names 
cerf cerfc cexp2 cexpm1 clog10 clog1p clog2 clgamma ctgamma 
and the same names suffixed with f or l may be added to the declarations in the 
<complex.h> header. 

다른 많은 복잡한 기능들), 7.31.1 조항의 진정한 의미가 무엇인지 궁금합니다.

선언을 추가하고 정의를 추가하지 않는 이유는 무엇입니까?

다음 C 표준 또는 부 릴리스 용으로 사용할 수 있습니까? (대답이 '예'라면 다음 표준이 필요할 때)

컴파일러의 비표준 확장으로 사용할 수있는 구현이 있습니까?

답변

3

몇 달 전, Steven G. Johnson의 숫자 코드를 기준으로 cerf 및 cerfc 기능이없는 라이브러리 libcerf을 게시했습니다. 우리의 구현은 13-14 자리까지 정확합니다. 이는 거의 모든 실제적인 사용에 충분합니다. 그러나이를 달성하기 위해서는 수용 가능한 표준을 작성하기 위해 얼마나 많은 작업을해야 하는지를 이해해야합니다. 이것이 수행 될 가능성은 없습니다. 누구든지 곧.

그래서 clgamma 및 ctgamma에 관한 질문에 대해 : 표준을 기다리지 마십시오. 방금 작동하는 코드를 검색하십시오. 이상적으로이 코드를 랩핑하고 표준 구현과 거의 비슷한 libcerf와 같은 라이브러리를 제공하십시오.

0

glibc 관리자는 어떤 식으로도 표준화되지 않은 새로운 기능을 추가하기를 거의 원하지 않으며 cerf는 C99 표준의 일부가 아닙니다. 이는 향후의 사용을 위해 예약 된 것이기 때문에 특히 그럴 가능성이 희박합니다 glibc는 함수의 필수 동작이 표준화 될 때까지 구현을 수락합니다.

C++ 코드에서 "erf()"와 같지만 "cerf()"와 같이 통합하면 확실히 좋을 것입니다. | 제공 경우 complex.h이 선언되어야 C99 선택적 복잡한 에러 함수

서프의 [리터 F] : 수동으로 당

.

위의 진술과 마찬가지로, 함수는 (제공되는 경우)으로 선언됩니다.

관련 문제