std:: valarray
|
Definido en el encabezado
<valarray>
|
||
|
template
<
class
T
>
class valarray ; |
||
std::valarray
es la clase para representar y manipular arrays de valores. Soporta operaciones matemáticas elemento por elemento y varias formas de operadores de subíndice generalizados, segmentación y acceso indirecto.
Contenidos |
Notas
std::valarray
y las clases auxiliares están definidas para estar libres de ciertas formas de aliasing, permitiendo así que las operaciones sobre estas clases se optimicen de manera similar al efecto de la palabra clave
restrict
en el lenguaje de programación C. Además, se permite que las funciones y operadores que toman argumentos
valarray
devuelvan objetos proxy para posibilitar que el compilador optimice una expresión como
v1
=
a
*
v2
+
v3
;
como un único bucle que ejecuta
v1
[
i
]
=
a
*
v2
[
i
]
+
v3
[
i
]
;
evitando temporales o múltiples pasadas. Sin embargo,
expression templates
hacen que la misma técnica de optimización esté disponible para cualquier contenedor C++, y la mayoría de las bibliotecas numéricas prefieren expression templates a valarrays por su flexibilidad. Algunas implementaciones de la biblioteca estándar de C++ utilizan expression templates para implementar operaciones eficientes en
std::valarray
(por ejemplo, GNU libstdc++ y LLVM libc++). Rara vez se optimizan los valarrays más allá, como en
Intel Integrated Performance Primitives
.
Parámetros de plantilla
| T | - | el tipo de los elementos. El tipo debe cumplir con los NumericType requisitos |
Tipos de miembros
| Tipo de miembro | Definición |
value_type
|
T
|
Funciones miembro
|
construye un nuevo arreglo numérico
(función miembro pública) |
|
|
destruye el arreglo numérico
(función miembro pública) |
|
|
asigna los contenidos
(función miembro pública) |
|
|
obtiene/establece elemento, segmento o máscara del valarray
(función miembro pública) |
|
|
aplica un operador aritmético unario a cada elemento del valarray
(función miembro pública) |
|
|
aplica operador de asignación compuesta a cada elemento del valarray
(función miembro pública) |
|
|
intercambia con otro valarray
(función miembro pública) |
|
|
retorna el tamaño del valarray
(función miembro pública) |
|
|
cambia el tamaño del valarray
(función miembro pública) |
|
|
calcula la suma de todos los elementos
(función miembro pública) |
|
|
retorna el elemento más pequeño
(función miembro pública) |
|
|
retorna el elemento más grande
(función miembro pública) |
|
|
desplaza los elementos del valarray con relleno de ceros
(función miembro pública) |
|
|
desplazamiento circular de los elementos del valarray
(función miembro pública) |
|
|
aplica una función a cada elemento de un valarray
(función miembro pública) |
Funciones no miembro
|
(C++11)
|
especializa el algoritmo
std::swap
(plantilla de función) |
|
(C++11)
|
sobrecarga
std::begin
(plantilla de función) |
|
(C++11)
|
especializa
std::end
(plantilla de función) |
|
aplica operadores binarios a cada elemento de dos valarrays, o un valarray y un valor
(plantilla de función) |
|
|
compara dos valarrays o un valarray con un valor
(plantilla de función) |
|
|
aplica la función
abs
a cada elemento del valarray
(plantilla de función) |
|
Funciones exponenciales |
|
|
aplica la función
std::exp
a cada elemento del valarray
(plantilla de función) |
|
|
aplica la función
std::log
a cada elemento del valarray
(plantilla de función) |
|
|
aplica la función
std::log10
a cada elemento del valarray
(plantilla de función) |
|
Funciones de potencia |
|
|
aplica la función
std::pow
a dos valarrays o a un valarray y un valor
(plantilla de función) |
|
|
aplica la función
std::sqrt
a cada elemento del valarray
(plantilla de función) |
|
Funciones trigonométricas |
|
|
aplica la función
std::sin
a cada elemento del valarray
(plantilla de función) |
|
|
aplica la función
std::cos
a cada elemento del valarray
(plantilla de función) |
|
|
aplica la función
std::tan
a cada elemento del valarray
(plantilla de función) |
|
|
aplica la función
std::asin
a cada elemento del valarray
(plantilla de función) |
|
|
aplica la función
std::acos
a cada elemento del valarray
(plantilla de función) |
|
|
aplica la función
std::atan
a cada elemento del valarray
(plantilla de función) |
|
|
aplica la función
std::atan2
a un valarray y un valor
(plantilla de función) |
|
Funciones hiperbólicas |
|
|
aplica la función
std::sinh
a cada elemento del valarray
(plantilla de función) |
|
|
aplica la función
std::cosh
a cada elemento del valarray
(plantilla de función) |
|
|
aplica la función
std::tanh
a cada elemento del valarray
(plantilla de función) |
|
Clases auxiliares
|
Segmento tipo BLAS de un valarray: índice inicial, longitud, paso
(clase) |
|
|
proxy a un subconjunto de un valarray después de aplicar un slice
(plantilla de clase) |
|
|
segmento generalizado de un valarray: índice inicial, conjunto de longitudes, conjunto de pasos
(clase) |
|
|
proxy a un subconjunto de un valarray después de aplicar un gslice
(plantilla de clase) |
|
proxy a un subconjunto de un valarray después de aplicar una máscara booleana
operator[]
(plantilla de clase) |
|
proxy a un subconjunto de un valarray después de aplicar indirect
operator[]
(plantilla de clase) |
Guías de deducción (desde C++17)
Véase también
|
(C++26)
|
plantilla de alias de conveniencia para
basic_simd
que puede especificar su ancho
(plantilla de alias) |
|
(C++26)
|
plantilla de alias de conveniencia para
basic_simd_mask
que puede especificar su ancho
(plantilla de alias) |
|
(parallelism TS v2)
|
tipo vectorial de procesamiento de datos en paralelo
(plantilla de clase) |
|
(parallelism TS v2)
|
tipo de procesamiento de datos en paralelo con el tipo de elemento bool
(plantilla de clase) |