# std::asin(std::valarray)

< cpp‎ | numeric‎ | valarray
 Defined in header  template< class T > valarray asin( const valarray& va );

For each element in va computes arc sine of the value of the element.

## Contents

### 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:

### Possible implementation

 template valarray asin(const valarray& va) { valarray other = va; for (T& i : other) i = asin(i);   return other; // proxy object may be returned }

### 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';
}

Output:

-90° -60° -45° -30° +0° +30° +45° +60° +90°