std::acos(std::valarray)
Min standard notice:
Header: <valarray>
For each element in va computes arc cosine of the value of the element.
# Declarations
template< class T >
valarray<T> acos( const valarray<T>& va );
# Parameters
va: value array to apply the operation to
# Return value
Value array containing arc cosines of the values in va.
# Notes
Unqualified function (acos) is used to perform the computation. If such function is not available, std::acos is used due to argument-dependent lookup.
The function can be implemented with the return type different from std::valarray. In this case, the replacement type has the following properties:
# Example
#include <cmath>
#include <iostream>
#include <numbers>
#include <valarray>
int main()
{
// take common x-values from unit circle
const double s32 = std::sqrt(3.0) / 2.0;
const double s22 = std::sqrt(2.0) / 2.0;
std::valarray<double> v1 = {-1.0, -s32, -s22, -0.5, 0.0, 0.5, s22, s32, 1.0};
std::valarray<double> v2 = std::acos(v1) * 180.0 / std::numbers::pi;
for (double n : v2)
std::cout << n << "° ";
std::cout << '\n';
}