Rogue Wave banner
Previous fileTop of DocumentContentsIndex pageNext file
Standard C++ Library Module Reference Guide
Rogue Wave web site:  Home Page  |  Main Documentation Page

valarray

Module:  Standard C++ Library   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

Copyright (c) 1994-2006 Rogue Wave Software, a Quovadx Division.
Licensed under the Apache License, Version 2.0.
Contact Rogue Wave about documentation or support issues. You can also seek help from other developers through the Apache stdcxx community (see below).

For more information on the Rogue Wave Standard C++ Library under open source, see Section 1.2 of the user's guide.