*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 of`x`

onto the Riemann sphere.

Effects:Remarks:Behaves the same as the C function`cproj`

, 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 of`x`

.

Effects:Remarks:Behaves the same as the C function`cacos`

, 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 of`x`

.

Effects:Remarks:Behaves the same as the C function`casin`

, 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 of`x`

.

Effects:Remarks:Behaves the same as the C function`catan`

, 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 of`x`

.

Effects:Remarks:Behaves the same as the C function`cacosh`

, 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 of`x`

.

Effects:Remarks:Behaves the same as the C function`casinh`

, 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 of`x`

.

Effects:Remarks:Behaves the same as the C function`catanh`

, defined in 7.3.6.2.