acos() function in C++ STL - GeeksforGeeks

10 May, 2021
acos() is an inbuilt function in C++ STL and it’s the same as the inverse of cosine in maths. The acos() function returns the values in the range of [0, ?] that is an angle in radian.
Syntax :
acos(data_type x)
Parameters : This function accepts one mandatory parameter x which specifies the value whose inverse of cosine should be computed. x must be in the range of [-1, 1] to find valid output as [0, ?], else acos(x) function returns NaN(Not a Number) . The parameter x can be of double, float or long double datatype.
Return : The function returns angles in radians in the range of  [0,?]. It is the counterclockwise angle which is measured in radian.
Program 1:
C++
// C++ program to demonstrate// the acos() function#include <bits/stdc++.h>using namespace std; int main(){    double x = 1.0;     // Function call to calculate acos(x) value    double result = acos(x);     cout << "acos(1.0) = " << result <<                               " radians" << endl;    cout << "acos(1.0) = " << result * 180 / 3.141592         << " degrees" << endl;     return 0;}
acos(1.0) = 0 radians
acos(1.0) = 0 degrees
Program 2:
C++
// C++ program to demonstrate// the acos() function#include <bits/stdc++.h>using namespace std; int main(){    double result;    int x = -1;     // Function call to calculate acos(x) value    result = acos(x);     cout << "acos(-1) = " << result        << " radians" << endl;    cout << "acos(-1) = " << result * 180 / 3.141592        << " degrees" << endl;     return 0;}
acos(-1) = 3.14159 radians
acos(-1) = 180 degrees
Errors and Exceptions:
The function returns no matching function for call to error when a string or character is passed as an argument.
The function returns nan when a out of domain(domain [-1,1]) number is passed as an argument.
Below programs illustrate the errors and exceptions of the above method:
Program 3:
C++
// C++ program to demonstrate the acos()// function errors and exceptions#include <bits/stdc++.h>using namespace std; int main(){    double result;    string x = "gfg";    result = acos(x);     cout << "acos(x) = " << result        << " radians" << endl;    cout << "acos(x) = " << result * 180 / 3.141592        << " degrees" << endl;     return 0;}
Output:
prog.cpp:10:17: error: no matching function for call to 'acos(std::__cxx11::string&)'
  result = acos(x);
When argument x >1 or x<-1 it will give nan(not a number).
Program 4:
C++
// C++ program to demonstrate the// acos() function errors and exceptions#include <bits/stdc++.h>using namespace std; int main(){    double x = 3.7, result;     // Function call to calculate acos(x) value    result = acos(x);     cout << "acos(3.7) = " << result        << " radians" << endl;    cout << "acos(3.7) = " << result * 180 / 3.141592        << " degrees" << endl;     return 0;}
Output:
acos(3.7) = nan radians
acos(3.7) = nan degrees
badger_666
Code_Mech
CPP-Functions
STL
C++
STL
CPP
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Comments
Old Comments
Socket Programming in C/C++
Operator Overloading in C++
Multidimensional Arrays in C / C++
Copy Constructor in C++
Templates in C++ with Examples
rand() and srand() in C/C++
vector erase() and clear() in C++
unordered_map in C++ STL
Left Shift and Right Shift Operators in C/C++
Command line arguments in C/C++