*This page is a snapshot from the LWG issues list, see the Library Active Issues List for more information and the meaning of C++11 status.*

**Section:** 28.4.7 [complex.value.ops] **Status:** C++11
**Submitter:** BSI **Opened:** 2010-08-25 **Last modified:** 2016-01-28

**Priority: **Not Prioritized

**View all other** issues in [complex.value.ops].

**View all issues with** C++11 status.

**Discussion:**

**Addresses GB-120**

The complex number functions added for compatibility with the C99 standard library are defined purely as a cross-reference, with no hint of what they should return. This is distinct from the style of documentation for the functions in the earlier standard. In the case of the inverse-trigonometric and hyperbolic functions, a reasonable guess of the functionality may be made from the name, this is not true of the cproj function, which apparently returns the projection on the Reimann Sphere. A single line description of each function, associated with the cross-reference, will greatly improve clarity.

*[2010-11-06 Beman provides proposed resolution wording.]*

*[
2010 Batavia: The working group concurred with the issue's Proposed Resolution
]*

*[
Adopted at 2010-11 Batavia
]*

**Proposed resolution:**

*Change 26.4.7 complex value operations [complex.value.ops] as indicated:*

template<class T> complex<T> proj(const complex<T>& x);

Returns:the projection ofxonto the Riemann sphere.

Effects:Remarks:Behaves the same as the C functioncproj, defined in 7.3.9.4.

*Change 26.4.8 complex transcendentals [complex.transcendentals] as indicated:*

template<class T> complex<T> acos(const complex<T>& x);

Returns:the complex arc cosine ofx.

Effects:Remarks:Behaves the same as the C functioncacos, defined in 7.3.5.1.

*Change 26.4.8 complex transcendentals [complex.transcendentals] as indicated:*

template<class T> complex<T> asin(const complex<T>& x);

Returns:the complex arc sine ofx.

Effects:Remarks:Behaves the same as the C functioncasin, defined in 7.3.5.2.

*Change 26.4.8 complex transcendentals [complex.transcendentals] as indicated:*

template<class T> complex<T> atan(const complex<T>& x);

Returns:the complex arc tangent ofx.

Effects:Remarks:Behaves the same as the C functioncatan, defined in 7.3.5.3.

*Change 26.4.8 complex transcendentals [complex.transcendentals] as indicated:*

template<class T> complex<T> acosh(const complex<T>& x);

Returns:the complex arc hyperbolic cosine ofx.

Effects:Remarks:Behaves the same as the C functioncacosh, defined in 7.3.6.1.

*Change 26.4.8 complex transcendentals [complex.transcendentals] as indicated:*

template<class T> complex<T> asinh(const complex<T>& x);

Returns:the complex arc hyperbolic sine ofx.

Effects:Remarks:Behaves the same as the C functioncasinh, defined in 7.3.6.2.

*Change 26.4.8 complex transcendentals [complex.transcendentals] as indicated:*

template<class T> complex<T> atanh(const complex<T>& x);

Returns:the complex arc hyperbolic tangent ofx.

Effects:Remarks:Behaves the same as the C functioncatanh, defined in 7.3.6.2.