Previous fileTop of DocumentContentsIndex pageNext file
Apache C++ Standard Library Reference Guide

valarray

Library:  Numerics


Does not inherit

Local Index

Members

Non-Members

Summary

An optimized array class for numeric operations

Synopsis

#include <valarray>

namespace std {
  template <class T >
  class valarray;
}

Description

Class valarray and its associated classes slice_array, gslice_array, mask_array, and indirect_array, represent and manipulate one-dimensional arrays of values. Elements in a valarray are indexed sequentially beginning with zero.

Unlike other classes in the Standard Library, valarray can only be used with a fairly narrow range of types. This restriction ensures that numeric operations on a valarray can be as efficient as possible by avoiding aliasing ambiguities and excess temporaries.

Interface

Constructors

valarray();
explicit valarray(size_t n);
valarray(const T& value, size_t n);
valarray(const T* value, size_t n);
valarray(const valarray<T>& x);
valarray(const slice_array<T>& x);
valarray(const gslice_array<T>& x);
valarray(const mask_array<T>& x);
valarray(const indirect_array<T>& x);

Destructor

~valarray();

Assignment Operators


NOTE -- Before calling these functions, portable code should guarantee that both sides of the assignment operator refer to objects of the same size.
valarray<T>& 
operator=(const valarray<T>& x);
valarray<T>& 
operator=(const T& x);
valarray<T>& 
operator=(const slice_array<T>& x);
valarray<T>& 
operator=(const gslice_array<T>& x);
valarray<T>& 
operator=(const mask<T>& x);
valarray<T>& 
operator=(const indirect_array<T>& x);

Element Access Operators

T& operator[](size_type n);
T operator[](size_type n) const;

Subset Operators

valarray<T> operator[](slice s) const;
slice_array<T> operator[](slice s); 
valarray<T> operator[](const gslice& s) const;
gslice_array<T> operator[](const gslice& s); 
valarray<T> operator[](const valarray<bool>& v) const;
mask_array<T> operator[](const valarray<bool>& v);  
valarray<T> operator[](const valarray<size_t>& v) const;
Indirect_array<T> operator[](const valarray<size_t>& v); 

Unary Operators

valarray<T> operator+() const;
valarray<T> operator-() const;
valarray<T> operator~() const;
valarray<bool> operator!() const;

Computed Assignment Operators

valarray<T>& operator*=(const valarray<T>& val);
valarray<T>& operator/=(const valarray<T>& val);
valarray<T>& operator%=(const valarray<T>& val);
valarray<T>& operator+=(const valarray<T>& val);
valarray<T>& operator-=(const valarray<T>& val);
valarray<T>& operator^=(const valarray<T>& val);
valarray<T>& operator&=(const valarray<T>& val);
valarray<T>& operator|=(const valarray<T>& val);
valarray<T>& operator<<=(const valarray<T>& val);
valarray<T>& operator>>=(const valarray<T>& val);
valarray<T>& operator*=(const T& val);
valarray<T>& operator/=(const T& val);
valarray<T>& operator%=(const T& val);
valarray<T>& operator+=(const T& val);
valarray<T>& operator-=(const T& val);
valarray<T>& operator^=(const T& val);
valarray<T>& operator&=(const T& val);
valarray<T>& operator|=(const T& val);
valarray<T>& operator<<=(const T& val);
valarray<T>& operator>>=(const T& val);

Member Functions

size_t size() const;
T sum() const;
T min() const;
T max() const;
valarray<T> shift(int n) const;
valarray<T> cshift(int n) const;
valarray<T> apply(T func(T)) const;
valarray<T> apply(T func(const T&)) const;
void 
resize(size_type sz, T c = T());

Nonmember Binary Operators

template <class T> valarray<T> 
operator*(const valarray<T>& lhs, const valarray<T>& rhs);
template <class T> valarray<T> 
operator/(const valarray<T>& lhs, const valarray<T>& rhs);
template <class T> valarray<T> 
operator%(const valarray<T>& lhs, const valarray<T>& rhs);
template <class T> valarray<T> 
operator+(const valarray<T>& lhs, const valarray<T>& rhs);
template <class T> valarray<T> 
operator-(const valarray<T>& lhs, const valarray<T>& rhs);
template <class T> valarray<T> 
operator^(const valarray<T>& lhs, const valarray<T>& rhs);
template <class T> valarray<T> 
operator&(const valarray<T>& lhs, const valarray<T>& rhs);
template <class T> valarray<T> 
operator|(const valarray<T>& lhs, const valarray<T>& rhs);
template <class T> valarray<T> 
operator<<(const valarray<T>& lhs, const valarray<T>& rhs);
template <class T> valarray<T> 
operator>>(const valarray<T>& lhs, const valarray<T>& rhs);
template <class T> valarray<T> 
operator*(const valarray<T>& lhs, T& rhs);
template <class T> valarray<T> 
operator/(const valarray<T>& lhs, const T& rhs);
template <class T> valarray<T> 
operator%(const valarray<T>& lhs, const T& rhs);
template <class T> valarray<T> 
operator+(const valarray<T>& lhs, const T& rhs);
template <class T> valarray<T> 
operator-(const valarray<T>& lhs, const T& rhs);
template <class T> valarray<T> 
operator^(const valarray<T>& lhs, const T& rhs);
template <class T> valarray<T> 
operator&(const valarray<T>& lhs, const T& rhs);
template <class T> valarray<T> 
operator|(const valarray<T>& lhs, const T& rhs);
template <class T> valarray<T> 
operator<<(const valarray<T>& lhs, const T& rhs);
template <class T> valarray<T> 
operator>>(const valarray<T>& lhs, const T& rhs);
template <class T> valarray<T> 
operator*(const T& rhs, valarray<T>& rhs);
template <class T> valarray<T> 
operator/(const T& lhs, const valarray<T>& rhs);
template <class T> valarray<T> 
operator%(const T& lhs, const valarray<T>& rhs);
template <class T> valarray<T> 
operator+(const T& lhs, const valarray<T>& rhs);
template <class T> valarray<T> 
operator-(const T& lhs, const valarray<T>& rhs);
template <class T> valarray<T> 
operator^(const T& lhs, const valarray<T>& rhs);
template <class T> valarray<T> 
operator&(const T& lhs, const valarray<T>& rhs);
template <class T> valarray<T> 
operator|(const T& lhs, const valarray<T>& rhs);
template <class T> valarray<T> 
operator<<(const T& lhs, const valarray<T>& rhs);
template <class T> valarray<T> 
operator>>(const T& lhs, const valarray<T>& rhs);

Nonmember Logical Operators

template <class T> valarray<bool> 
operator==(const valarray<T>& lhs, const valarray<T>& rhs);
template <class T> valarray<bool> 
operator!=(const valarray<T>& lhs, const valarray<T>& rhs);
template <class T> valarray<bool> 
operator<(const valarray<T>& lhs, const valarray<T>& rhs);
template <class T> valarray<bool> 
operator>(const valarray<T>& lhs, const valarray<T>& rhs);
template <class T> valarray<bool> 
operator<=(const valarray<T>& lhs, const valarray<T>& rhs);
template <class T> valarray<bool> 
operator>=(const valarray<T>& lhs, const valarray<T>& rhs);
template <class T> valarray<bool> 
operator&&(const valarray<T>& lhs, const valarray<T>& rhs);
template <class T> valarray<bool> 
operator||(const valarray<T>& lhs, const valarray<T>& rhs);
template <class T> valarray<bool> 
operator==(const valarray<T>& lhs, T& rhs);
template <class T> valarray<bool> 
operator!=(const valarray<T>& lhs, const T& rhs);
template <class T> valarray<bool> 
operator<(const valarray<T>& lhs, const T& rhs);
template <class T> valarray<bool> 
operator>(const valarray<T>& lhs, const T& rhs);
template <class T> valarray<bool> 
operator<=(const valarray<T>& lhs, const T& rhs);
template <class T> valarray<bool> 
operator>=(const valarray<T>& lhs, const T& rhs);
template <class T> valarray<bool> 
operator&&(const valarray<T>& lhs, const T& rhs);
template <class T> valarray<bool> 
operator||(const valarray<T>& lhs, const T& rhs);
template <class T> valarray<bool> 
operator==(const T& rhs, valarray<T>& rhs);
template <class T> valarray<bool> 
operator!=(const T& lhs, const valarray<T>& rhs);
template <class T> valarray<bool> 
operator<(const T& lhs, const valarray<T>& rhs);
template <class T> valarray<bool> 
operator>(const T& lhs, const valarray<T>& rhs);
template <class T> valarray<bool> 
operator<=(const T& lhs, const valarray<T>& rhs);
template <class T> valarray<bool> 
operator>=(const T& lhs, const valarray<T>& rhs);
template <class T> valarray<bool> 
operator&&(const T& lhs, const valarray<T>& rhs);
template <class T> valarray<bool> 
operator||(const T& lhs, const valarray<T>& rhs);

Nonmember Transcen-dental Functions

template <class T> valarray<T> abs(const valarray<T>& v);
template <class T> valarray<T> acos(const valarray<T>& v);
template <class T> valarray<T> asin(const valarray<T>& v);
template <class T> valarray<T> atan(const valarray<T>& v);
template <class T> valarray<T> cos(const valarray<T>& v);
template <class T> valarray<T> cosh(const valarray<T>& v);
template <class T> valarray<T> exp(const valarray<T>& v);
template <class T> valarray<T> log(const valarray<T>& v);
template <class T> valarray<T> log10(const valarray<T>& v);
template <class T> valarray<T> sin(const valarray<T>& v);
template <class T> valarray<T> sinh(const valarray<T>& v);
template <class T> valarray<T> sqrt(const valarray<T>& v);
template <class T> valarray<T> tan(const valarray<T>& v);
template <class T> valarray<T> tanh(const valarray<T>& v);
template <class T> valarray<T> 
atan2(const valarray<T>& v, const valarray<T>& v2);
template <class T> valarray<T> 
pow(const valarray<T>& v, const valarray<T>& v2);
template <class T> valarray<T> 
atan2(const valarray<T>& v, const T& v2);
template <class T> valarray<T> 
pow(const valarray<T>& v, const T& v2);
template <class T> valarray<T> 
atan2(const T& v, const valarray<T> v2);
template <class T> valarray<T> 
pow(const T& v, const valarray<T> v2);

Example

See Also

slice, gslice, gslice_array, mask_array, indirect_array

Standards Conformance

ISO/IEC 14882:1998 -- International Standard for Information Systems --Programming Language C++, Section 26.3.2



Previous fileTop of DocumentContentsIndex pageNext file