std::asin(std::valarray)
Min standard notice:
Header: <valarray>
For each element in va computes arc sine of the value of the element.
# Declarations
template< class T >
valarray<T> asin( const valarray<T>& va );
# Parameters
va: value array to apply the operation to
# Return value
Value array containing arc sines of the values in va.
# Notes
Unqualified function (asin) is used to perform the computation. If such function is not available, std::asin 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 y-values from unit circle
const double s22 = std::sqrt(2.0) / 2.0;
const double s32 = std::sqrt(3.0) / 2.0;
const std::valarray<double> v1 =
{-1.0, -s32, -s22, -0.5, 0.0, 0.5, s22, s32, 1.0};
// fill with results of radians to degrees conversion
const std::valarray<double> v2 =
std::asin(v1) * 180.0 / std::numbers::pi;
for (std::cout << std::showpos; double n : v2)
std::cout << n << "° ";
std::cout << '\n';
}