std:: valarray
|
Défini dans l'en-tête
<valarray>
|
||
|
template
<
class
T
>
class valarray ; |
||
std::valarray
est la classe pour représenter et manipuler des tableaux de valeurs. Elle prend en charge les opérations mathématiques élément par élément et diverses formes d'opérateurs d'indice généralisés, le découpage et l'accès indirect.
Table des matières |
Notes
std::valarray
et les classes auxiliaires sont définis pour être exempts de certaines formes d'aliasing, permettant ainsi aux opérations sur ces classes d'être optimisées de manière similaire à l'effet du mot-clé
restrict
dans le langage de programmation C. De plus, les fonctions et opérateurs prenant des arguments
valarray
sont autorisés à renvoyer des objets proxy pour permettre au compilateur d'optimiser une expression telle que
v1
=
a
*
v2
+
v3
;
comme une boucle unique exécutant
v1
[
i
]
=
a
*
v2
[
i
]
+
v3
[
i
]
;
évitant ainsi tout temporaire ou passages multiples. Cependant,
les modèles d'expression
rendent la même technique d'optimisation disponible pour tout conteneur C++, et la majorité des bibliothèques numériques préfèrent les modèles d'expression aux valarrays pour leur flexibilité. Certaines implémentations de la bibliothèque standard C++ utilisent des modèles d'expression pour implémenter des opérations efficaces sur
std::valarray
(par exemple GNU libstdc++ et LLVM libc++). Les valarrays sont rarement optimisés davantage, comme dans
Intel Integrated Performance Primitives
.
Paramètres du modèle
| T | - | le type des éléments. Le type doit satisfaire aux NumericType exigences |
Types membres
| Type de membre | Définition |
value_type
|
T
|
Fonctions membres
|
construit un nouveau tableau numérique
(fonction membre publique) |
|
|
détruit le tableau numérique
(fonction membre publique) |
|
|
assigne le contenu
(fonction membre publique) |
|
|
obtient/définit un élément, une tranche ou un masque du valarray
(fonction membre publique) |
|
|
applique un opérateur arithmétique unaire à chaque élément du valarray
(fonction membre publique) |
|
|
applique un opérateur d'affectation composée à chaque élément du valarray
(fonction membre publique) |
|
|
échange avec un autre valarray
(fonction membre publique) |
|
|
retourne la taille du valarray
(fonction membre publique) |
|
|
modifie la taille du valarray
(fonction membre publique) |
|
|
calcule la somme de tous les éléments
(fonction membre publique) |
|
|
retourne le plus petit élément
(fonction membre publique) |
|
|
retourne le plus grand élément
(fonction membre publique) |
|
|
décale les éléments du valarray avec remplissage par des zéros
(fonction membre publique) |
|
|
décalage circulaire des éléments du valarray
(fonction membre publique) |
|
|
applique une fonction à chaque élément d'un valarray
(fonction membre publique) |
Fonctions non membres
|
(C++11)
|
spécialise l'algorithme
std::swap
(modèle de fonction) |
|
(C++11)
|
surcharge
std::begin
(modèle de fonction) |
|
(C++11)
|
spécialise
std::end
(modèle de fonction) |
|
applique des opérateurs binaires à chaque élément de deux valarrays, ou d'un valarray et d'une valeur
(modèle de fonction) |
|
|
compare deux valarrays ou un valarray avec une valeur
(modèle de fonction) |
|
|
applique la fonction
abs
à chaque élément du valarray
(modèle de fonction) |
|
Fonctions exponentielles |
|
|
applique la fonction
std::exp
à chaque élément du valarray
(fonction template) |
|
|
applique la fonction
std::log
à chaque élément du valarray
(modèle de fonction) |
|
|
applique la fonction
std::log10
à chaque élément du valarray
(modèle de fonction) |
|
Fonctions de puissance |
|
|
applique la fonction
std::pow
à deux valarrays ou à un valarray et une valeur
(modèle de fonction) |
|
|
applique la fonction
std::sqrt
à chaque élément du valarray
(fonction template) |
|
Fonctions trigonométriques |
|
|
applique la fonction
std::sin
à chaque élément du valarray
(modèle de fonction) |
|
|
applique la fonction
std::cos
à chaque élément du valarray
(modèle de fonction) |
|
|
applique la fonction
std::tan
à chaque élément du valarray
(modèle de fonction) |
|
|
applique la fonction
std::asin
à chaque élément du valarray
(modèle de fonction) |
|
|
applique la fonction
std::acos
à chaque élément du valarray
(modèle de fonction) |
|
|
applique la fonction
std::atan
à chaque élément du valarray
(modèle de fonction) |
|
|
applique la fonction
std::atan2
à un valarray et une valeur
(modèle de fonction) |
|
Fonctions hyperboliques |
|
|
applique la fonction
std::sinh
à chaque élément du valarray
(modèle de fonction) |
|
|
applique la fonction
std::cosh
à chaque élément du valarray
(modèle de fonction) |
|
|
applique la fonction
std::tanh
à chaque élément du valarray
(modèle de fonction) |
|
Classes d'assistance
|
Tranche de type BLAS d'un valarray : index de départ, longueur, pas
(classe) |
|
|
proxy vers un sous-ensemble d'un valarray après application d'un slice
(modèle de classe) |
|
|
slice généralisé d'un valarray : index de départ, ensemble de longueurs, ensemble de pas
(classe) |
|
|
proxy vers un sous-ensemble d'un valarray après application d'un gslice
(modèle de classe) |
|
proxy vers un sous-ensemble d'un valarray après application d'un masque booléen
operator[]
(modèle de classe) |
|
proxy vers un sous-ensemble d'un valarray après application indirecte
operator[]
(modèle de classe) |
Guides de déduction (depuis C++17)
Voir aussi
|
(C++26)
|
alias de commodité pour
basic_simd
qui peut spécifier sa largeur
(alias de modèle) |
|
(C++26)
|
alias de commodité pour
basic_simd_mask
qui peut spécifier sa largeur
(alias de modèle) |
|
(parallelism TS v2)
|
type vectoriel parallèle aux données
(modèle de classe) |
|
(parallelism TS v2)
|
type parallèle aux données avec le type d'élément bool
(modèle de classe) |