std::cos(std::valarray)(3)
π std::cos(std::valarray)(3) π
Okay bestie, welcome to the C++ Standard Libary manual page for std::cos(std::valarray)(3). Itβs giving element-wise cosine energy, and weβre gonna get through every detail together. β¨
πΈ NAME πΈ
std::cos(std::valarray) β std::cos(std::valarray). Thatβs the whole name, no cap. π
β¨ Synopsis β¨
Defined in header <valarray>
template< class T >
valarray<T> cos( const valarray<T>& va );
For each element in va computes cosine of the value of the element. Literally every element gets the cosine treatment. π
π§‘ Parameters π§‘
vaβ value array to apply the operation to
π Return value π
Value array containing cosines of the values in va. Slay. π
π¦ 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. iykyk. π¦
The function can be implemented with the return type different from std::valarray. In this case, the replacement type has the following properties:
- All
constmember functions ofstd::valarrayare provided. std::valarray,std::slice_array,std::gslice_array,std::mask_arrayandstd::indirect_arraycan be constructed from the replacement type.- For every function taking a
const std::valarray<T>&exceptbegin()andend()(since C++11), identical functions taking the replacement types shall be added; - For every function taking two
const std::valarray<T>&arguments, identical functions taking every combination ofconst std::valarray<T>&and replacement types shall be added. - The return type does not add more than two levels of template nesting over the most deeply-nested argument type.
π₯ Possible implementation π₯
This is the possible-implementation vibe check, bestie β code is exactly this:
template<class T>
valarray<T> cos(const valarray<T>& va)
{
valarray<T> other = va;
for (T& i : other)
i = cos(i);
return other; // proxy object may be returned
}
π Example π
// Run this code
#include <cmath>
#include <iomanip>
#include <iostream>
#include <valarray>
void show(const char* title, const std::valarray<float>& 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<float> 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 π€
And the output is serving consistency, periodt:
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 |
π See also π
Related-function glow-up list:
sin(std::valarray)β applies the functionstd::sinto each element of valarray (function template)tan(std::valarray)β applies the functionstd::tanto each element of valarray (function template)acos(std::valarray)β applies the functionstd::acosto each element of valarray (function template)coscosfβ computes cosine (({\small\cos{x}})cos(x))coslβ (function)(C++11)(C++11)cos(std::complex)β computes cosine of a complex number (({\small\cos{z}})cos(z)) (function template)
Yes, the source really hascossitting there all mysterious and then two floating(C++11)markers. We keep every detail in this group chat. π
π Hidden category π
- Pages with unreviewed LWG DR marker
mwah π β source: http://cppreference.com, version/date: 2024.06.10, manual page: std::cos(std::valarray)(3). periodt. π«Ά
π¦ where this page comes from
- nixpkgs unstable: stdman 2024.07.05
- opensuse-leap 16.0: stdman 2024.07.05-bp160.1.9 Β· MIT
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms