std::acos,s...f,std::acosl(3)
π NAME π
okay bestie, welcome to the C++ Standard Libary manual, section 3 β this is the std::acos,s...f,std::acosl(3) page, and lowkey we're about to make arc cosine make sense, no cap. The NAME line is literally:
std::acos,std::acosf,std::acoslβstd::acos,std::acosf,std::acosl.
β¨ Synopsis β¨
The synopsis is giving βdefined in header <cmath>β and a whole overload family, so here it is exactly, no edits β periodt:
Defined in header <cmath>
float acos ( float num );
double acos ( double num ); (until C++23)
long double acos ( long double num );
/* floating-point-type */ (since C++23)
acos ( /* floating-point-type */ num );
(constexpr since C++26)
float acosf( float num ); (1) (2) (since C++11)
(constexpr since C++26)
long double acosl( long double num ); (3) (since C++11)
(constexpr since C++26)
Additional overloads (since C++11)
Defined in header <cmath>
template< class Integer > (A)
(constexpr since C++26)
double acos ( Integer num );
1-3) Computes the principal value of the arc cosine of num. slay.
The library provides overloads of std::acos for all cv-unqualified floating-point types as the type of the parameter. (since C++23) β highkey iconic.
A) Additional overloads are provided for all integer types, which are treated as double. (since C++11)
π Parameters π
Just one parameter, and she's flexible:
numβ floating-point or integer value.
πΈ Return value πΈ
bestie, if no errors occur, the arc cosine of num (arccos(num)) in the range [0, Ο], is returned.
If a domain error occurs, an implementation-defined value is returned (NaN where supported).
If a range error occurs due to underflow, the correct result (after rounding) is returned.
π Error handling π
this is the error-handling corner, so keep your eyes here, fr fr. Errors are reported as specified in math_errhandling.
Domain error occurs if num is outside the range [-1.0, 1.0].
If the implementation supports IEEE floating-point arithmetic (IEC 60559), then:
- If the argument is
+1, the value+0is returned. - If
|num| > 1, a domain error occurs andNaNis returned. - if the argument is
NaN,NaNis returned.
π¦ Notes π¦
ngl, this note is short but important: the additional overloads are not required to be provided exactly as (A). They only need to be sufficient to ensure that for their argument num of integer type, std::acos(num) has the same effect as std::acos(static_cast<double>(num)).
π Example π
The example ate, fr fr β here it is exactly:
// Run this code
#include <cerrno>
#include <cfenv>
#include <cmath>
#include <cstring>
#include <iostream>
// #pragma STDC FENV_ACCESS ON
int main()
{
std::cout << "acos(-1) = " << std::acos(-1) << '\n'
<< "acos(0.0) = " << std::acos(0.0) << '\n'
<< "2*acos(0.0) = " << 2 * std::acos(0) << '\n'
<< "acos(0.5) = " << std::acos(0.5) << '\n'
<< "3*acos(0.5) = " << 3 * std::acos(0.5) << '\n'
<< "acos(1) = " << std::acos(1) << '\n';
// error handling
errno = 0;
std::feclearexcept(FE_ALL_EXCEPT);
std::cout << "acos(1.1) = " << std::acos(1.1) << '\n';
if (errno == EDOM)
std::cout << " errno == EDOM: " << std::strerror(errno) << '\n';
if (std::fetestexcept(FE_INVALID))
std::cout << " FE_INVALID raised" << '\n';
}
Output:
acos(-1) = 3.14159
acos(0.0) = 1.5708
2*acos(0.0) = 3.14159
acos(0.5) = 1.0472
3*acos(0.5) = 3.14159
acos(1) = 0
acos(1.1) = nan
errno == EDOM: Numerical argument out of domain
FE_INVALID raised
β See also β
The see-also section is a whole friend group:
asin,asinf,asinlβ computes arc sine (\({\small\arcsin{x}}\)arcsin(x)) (function) (C++11) (C++11)atan,atanf,atanlβ computes arc tangent (\({\small\arctan{x}}\)arctan(x)) (function) (C++11) (C++11)atan2,atan2f,atan2lβ arc tangent, using signs to determine quadrants (function) (C++11) (C++11)cos,cosf,coslβ computes cosine (\({\small\cos{x}}\)cos(x)) (function) (C++11) (C++11)acos(std::complex)β computes arc cosine of a complex number (\({\small\arccos{z}}\)arccos(z)) (C++11) (function template)acos(std::valarray)β applies the functionstd::acosto each element ofvalarray(function template)- C documentation for
acos
source/version check: http://cppreference.com, dated 2024.06.10, footer title std::acos,s...f,std::acosl(3) β mwah, bye bestie! π
π¦ where this page comes from
- nixpkgs unstable: stdman 2024.07.05
- opensuse-leap 16.0: stdman 2024.07.05-bp160.1.9 Β· MIT
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms