std::cos(std::valarray) - cppreference.com (original) (raw)

| | | | | --------------------------------------------------------------- | | | | template< class T >valarray<T> cos( const valarray<T>& va ); | | |

For each element in va computes cosine of the value of the element.

Contents

[edit] Parameters

va - value array to apply the operation to

[edit] Return value

Value array containing cosines of the values in va.

[edit] Notes

Unqualified function (cos) is used to perform the computation. If such function is not available, std::cos 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:

[edit] Possible implementation

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

[edit] Example

#include #include #include #include   void show(const char* title, const std::valarray& data) { const int w{9}; std::cout << std::setw(w) << title << " | "; for (float x : data) std::cout << std::setw(w) << x << " | "; std::cout << '\n'; }   int main() { const std::valarray x{.1, .2, .3, .4}; const auto sin = std::sin(x); const auto cos = std::cos(x); const auto z = (sin * sin) + (cos * cos);   show("x", x); show("sin(x)", sin); show("cos(x)", cos); show("z", z); }

Output:

    x |       0.1 |       0.2 |       0.3 |       0.4 | 

sin(x) | 0.0998334 | 0.198669 | 0.29552 | 0.389418 | cos(x) | 0.995004 | 0.980067 | 0.955337 | 0.921061 | z | 1 | 1 | 1 | 1 |

[edit] See also