valarray man page on SunOS

Man page or keyword search:  
man Server   20652 pages
apropos Keyword Search (all sections)
Output format
SunOS logo
[printable version]

valarray(3C++)			       -			valarray(3C++)

Standard C++ Library Copyright 1998, Rogue Wave Software, Inc.

NAME
       valarray

	- An optimized array class for numeric operations.

SYNOPSIS
       #include <valarray>
       template <class T >
       class valarray ;

DESCRIPTION
       valarray<T>   and   associated	classes	  (slice_array,	 gslice_array,
       mask_array, and indirect_array) represent  and  manipulate  one	dimen‐
       sional  arrays  of values.   Elements in a valarray are indexed sequen‐
       tially beginning with zero.

       Unlike other classes in the Standard Library, valarray<T> 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
       template <class T> class valarray {
       public:

       // types
       typedef T value_type;

       // constructors
       valarray( );
       explicit valarray(size_t);
       valarray(const T&, size_t);
       valarray(const T* , size_t);
       valarray(const valarray<T>&);
       valarray(const slice_array<T>&);
       valarray(const gslice_array<T>&);
       valarray(const mask_array<T>&);
       valarray(const indirect_array<T>&);

       // destructor
       ~valarray();

       // operator =
       valarray<T>& operator= (const valarray<T>&);
       valarray<T>& operator= (const slice_array<T>&);
       valarray<T>& operator= (const gslice_array<T>&);
       valarray<T>& operator= (const mask_array<T>&);
       valarray<T>& operator= (const indirect_array<T>&);
       valarray<T>& operator= (const T&);
       // operator[]
       T operator[] (size_t) const;
       T& operator[] (size_t);
       valarray<T> operator[](slice) const;
       inline slice_array<T> operator[](slice);
       valarray<T> operator[](const gslice&) const;
       inline gslice_array<T> operator[](const gslice&);
       valarray<T> operator[](const valarray<bool>&) const;
       inline mask_array<T> operator[](const valarray<bool>&);
       valarray<T> operator[](const valarray<size_t>&) const;
       inline indirect_array<T> operator[](const valarray<size_t>&);

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

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

       // others
       size_t size() const;
       T sum() const;
       T min() const;
       T max() const;

       valarray<T> shift(int) const;
       valarray<T> cshift(int) const;

       valarray<T> apply(T func(T)) const;
       valarray<T> apply(T func(const T&)) const;
       void free();
       void resize(size_t, const T& = T() );
       };

       // Non-member binary operators
       template<class T> valarray<T>
       operator* (const valarray<T>& , const valarray<T>&  );
       template<class T> valarray<T>
       operator/ (const valarray<T>& , const valarray<T>& );
       template<class T> valarray<T>
       operator% (const valarray<T>&, const valarray<T>&);
       template<class T> valarray<T>
       operator+ (const valarray<T>& , const valarray<T>& );
       template<class T> valarray<T>
       operator- (const valarray<T>& , const valarray<T>& );
       template<class T> valarray<T>
       operator^ (const valarray<T>&, const valarray<T>&);
       template<class T> valarray<T>
       operator& (const valarray<T>&, const valarray<T>&);
       template<class T> valarray<T>
       operator| (const valarray<T>&, const valarray<T>&);
       template<class T> valarray<T>
       operator<< (const valarray<T>&, const valarray<T>&);
       template<class T> valarray<T>
       operator>> (const valarray<T>&, const valarray<T>&);

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

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

       // Non-member logical operators

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

       template<class T> valarray<bool>
       operator== (const valarray<T>& , const T& );
       template<class T> valarray<bool>
       operator!= (const valarray<T>& , const T& );
       template<class T> valarray<bool>
       operator< (const valarray<T>& , const T& );
       template<class T> valarray<bool>
       operator> (const valarray<T>& , const T& );
       template<class T> valarray<bool>
       operator<= (const valarray<T>& , const T& );
       template<class T> valarray<bool>
       operator>= (const valarray<T>& , const T& );
       template<class T> valarray<bool>
       operator||  (const  valarray<T>& , const T& ); template<class T> valar‐
       ray<bool>
       operator&& (const valarray<T>&, const T&);

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

       // non-member transcendental functions

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

       template<class T> valarray<T>
       atan2(const valarray<T>& , const valarray<T>& );
       template<class T> valarray<T>
       atan2(const valarray<T>& , const T& );
       template<class T> valarray<T>
       atan2(const T& , const valarray<T>& );
       template<class T> valarray<T>
       pow(const valarray<T>& , const valarray<T>& );
       template<class T> valarray<T>
       pow(const valarray<T>& , const T& );
       template<class T> valarray<T>
       pow(const T& , const valarray<T>& );

CONSTRUCTORS
       valarray();

   Creates a valarray of length zero.

explicit valarray(size_t n);

   Creates a valarray of length n, containing n values	initialized  with  the
   default value for type T. T must have a default constructor.

explicit valarray(const T& value, size_t n);

   Creates a valarray of length n, containing n values initialized with value.

explicit valarray(const T* value, size_t n);

   Creates  a  valarray	 of length n, containing n values initialized with the
   first n elements pointed to by value. The array pointed to  by  value  must
   contain at least n values.

valarray(const valarray<;T>& x);

   Creates a copy of x.

valarray(const slice_array<;T>& x);

   Creates a valarray from the slice_array x.

valarray(const gslice_array<;T>& x);

   Creates a valarray from the gslice_array x.

valarray(const mask_array<;T>& x);

   Creates a valarray from the mask_array x.

valarray(const indirect_array<;T>& x);

   Creates a valarray from the indirect_array x.

DESTRUCTORS
       ~valarray();

   Applies  ~T()  to  every  element in the valarray and returns all allocated
   memory.

ASSIGNMENT OPERATORS
       valarray<T>&
       operator=(const valarray<T>& x);

   Assigns to each element of self the corresponding value from x. If self has
   more or fewer elements than x, then self is resized to match the size of x.
   Returns a reference to self.

valarray<;T>&
operator=(const T& x);

   Assigns to each element of self the value of	 x.  Returns  a	 reference  to
   self.

valarray<;T>&
operator=(const slice_array<T>& x);

   Copies  elements  from  x into self by stepping through each slice consecu‐
   tively. If self has more or fewer elements than x, then self is resized  to
   match the size of x. Returns a reference to self.

valarray<;T>&
operator=(const gslice_array<T>& x);

   Copies  elements  from  x into self by stepping through each slice consecu‐
   tively. If self has more or fewer elements than x, then self is resized  to
   match the size of x. Returns a reference to self.

valarray<;T>&
operator=(const mask<T>& x);

   Copies each consecutive element from x into self. If self has more or fewer
   elements than x, then self is resized to match the size  of	x.  Returns  a
   reference to self.

valarray<;T>&
operator=(const indirect_array<T>& x);

   Copies each consecutive element from x into self. If self has more or fewer
   elements than x, then self is resized to match the size  of	x.  Returns  a
   reference to self.

REFERENCE OPERATORS
       T& operator[](size_type n);

   Returns  a  reference  to  element  n of self. The result can be used as an
   lvalue. This reference is valid until the resize function is called or  the
   array is destroyed. The index n must be between 0 and size less one.

T operator[](size_type n) const;

   Returns  the	 value at element n of self. The index n must be between 0 and
   size less one.

SUBSET OPERATORS
       valarray<T> operator[](slice s) const;

   Returns a subset of the self as specified by s. The return value is	a  new
   valarray object. See slice for a description of a BLAS-like slice.

slice_array<;T> operator[](slice s);

   Returns  a  subset  of  the	self  as specified by s. The return value is a
   slice_array referencing elements inside self. See slice and slice_array.

valarray<;T> operator[](const gslice& s) const;

   Returns a subset of the self as specified by s. The return value is	a  new
   valarray object. See gslice for a description of a generalized slice.

gslice_array<;T> operator[](const gslice& s);

   Returns  a  subset  of  the	self  as specified by s. The return value is a
   gslice_array referencing elements inside self. See gslice and gslice_array.

valarray<;T> operator[](const valarray<bool>& v) const;

   Returns a subset of the self as specified by s. The return value is	a  new
   valarray object.

mask_array<;T> operator[](const valarray<bool>& v);

   Returns  a  subset  of  the	self  as specified by s. The return value is a
   mask_array referencing elements inside self. See mask_array.

valarray<;T> operator[](const valarray<size_t>& v) const;

   Returns a subset of the self as specified by s. The return value is	a  new
   valarray object.

Indirect_array<;T> operator[](const valarray<size_t>& v);

   Returns a subset of the self as specified by s. The return value is a indi‐
   rect_array referencing elements inside self. See indirect_array.

UNARY OPERATORS
       valarray<T> operator+() const;

   Returns a new valarray object of the same size as the array in  self	 where
   each	 element has been initialized by applying operator+ to the correspond‐
   ing element in self.	  This operation can only be  applied  to  a  valarray
   instantiated	 on  a	type  T that supports an operator+ that returns T or a
   type convertible to T.

valarray<;T> operator-() const;

   Returns a new valarray object of the same size as the array in  self	 where
   each	 element has been initialized by applying operator- to the correspond‐
   ing element in self.	  This operation can only be  applied  to  a  valarray
   instantiated	 on  a type T that supports an operator- returning T or a type
   convertible to T.

valarray<;T> operator~() const;

   Returns a new valarray object of the same size as the array in  self	 where
   each	 element has been initialized by applying operator~ to the correspond‐
   ing element in self.	  This operation can only be  applied  to  a  valarray
   instantiated	 on  a type T that supports an operator~ returning T or a type
   convertible to T.

valarray<;bool> operator!() const;

   Returns a new valarray object of the same size as the array in  self	 where
   each	 element has been initialized by applying operator! to the correspond‐
   ing element in self.	  This operation can only be  applied  to  a  valarray
   instantiated	 on  a	type T that supports an operator!  returning bool or a
   type convertible to bool.

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);

   Applies the indicated operation to each element in self, using  the	corre‐
   sponding  element from val as the right hand argument (for example, for all
   0 <= n < *this.size(), *this[n] += val[n]).	 This operation	 can  only  be
   applied  to a valarray instantiated on a type T that supports the indicated
   operation. The length of val must also equal the length  of	self.  Returns
   self.

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);

   Applies  the	 indicated operation to each element in self, using val as the
   right hand argument (for example, for all 0 <= n <  *this.size(),  *this[n]
   += val).   This operation can only be applied to a valarray instantiated on
   a type T that supports the indicated operation. Returns self.

MEMBER FUNCTIONS
       size_t size() const;

   Returns the number of elements.

T sum() const;

   This function uses operator+= to sum all the elements of the array. Sum can
   only	 be  called for a valarray instantiated on a type that supports opera‐
   tor+=. The array must also have at least one element.    Returns the sum of
   all elements in the array.

T min() const;

   This	 function uses operator< to find the minimum element in the array. The
   array must have at least one element. Returns the minimum of	 all  elements
   in the array.

T max() const;

   This	 function uses operator> to find the maximum element in the array. The
   array must have at least one element. Returns the maximum of	 all  elements
   in the array.

valarray<;T> shift(int n) const;

   This	 function  returns  a new valarray object whose elements have all been
   shifted n places to left or right with respect to self. A positive value of
   n  shifts  the  elements  to	 the  left, a negative value to the right. The
   default constructor for T is used to fill in behind the shifting  elements.
   For	example,  applying  shift(2)  to  an  array corresponding to [3,4,5,6]
   results in [5,6,0,0],  and  applying	 shift(-1)  to	[3,4,5,6]  results  in
   [0,3,4,5].

valarray<;T> cshift(int n) const;

   This	 function  returns  a new valarray object whose elements have all been
   rotated n places to left or right with respect to self. A positive value of
   n shifts the elements to the left, a negative value to the right. For exam‐
   ple, applying shift(2) to an array corresponding to	[3,4,5,6]  results  in
   [5,6,3,4], and applying shift(-1) to [3,4,5,6] results in [6,3,4,5].

valarray<;T> apply(T func(T)) const;

   This	 function  returns  a  new valarray object with the same length as the
   array in self but whose elements have all been initialized by applying  the
   argument  function  func  to	 the  corresponding  element in self (in other
   words, for all n < *this.size(), the nth  element  of  the  returned	 array
   equals func(*this[n])).

valarray<;T> apply(T func(const T&)) const;

   This	 function  returns  a  new valarray object with the same length as the
   array in self but whose elements have all been initialized by applying  the
   argument  function  func  to	 the  corresponding  element in self (in other
   words, for all 0 <=	n < *this.size(), the  nth  element  of	 the  returned
   array equals func(*this[n])).

void
resize(size_type sz, T c = T());

   Changes  the	 length	 of  self  to sz, and assigns c to every element. This
   function also invalidates all outstanding references to self.

NON-MEMBER 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);

   Returns a new valarray object of the same size as the argument arrays where
   each	 element  has  been initialized by applying the indicated operation to
   the corresponding elements in the argument arrays.	The operation can only
   be  applied	to a valarray instantiated on a type T that supports a form of
   the indicated operation that returns T or a	type  convertible  to  T.  The
   argument arrays must have the same length.

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);

   Returns  a  new  valarray object of the same size as the valarray lhs where
   each element has been initialized by applying the  indicated	 operation  to
   the	corresponding  element	in  lhs and the value rhs.   The operation can
   only be used with a type T that supports a form of the indicated  operation
   that returns T or a type convertible to T.

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);

   Returns  a  new  valarray object of the same size as the valarray rhs where
   each element has been initialized by applying the  indicated	 operation  to
   the	corresponding  element	in  rhs and the value lhs.   The operation can
   only be used with a type T that supports a form of the indicated  operation
   that returns T or a type convertible to T.

NON-MEMBER 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);

   Returns  a  valarray<bool>  object  of the same size as the argument arrays
   where each element has been initialized by applying the indicated operation
   to  the  corresponding elements in the argument arrays.   The operation can
   only be applied to a valarray instantiated on a type T that support a  form
   of the indicated operation that returns bool or a type convertible to bool.
   The argument arrays must have the same length.

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);

   Returns a valarray<bool> object of the same size as the valarray lhs	 where
   each	 element  has  been initialized by applying the indicated operation to
   the corresponding element in lhs and the value  rhs.	   The	operation  can
   only	 be used with a type T that supports a form of the indicated operation
   that returns bool or a type convertible to bool.

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);

   Returns a valarray<bool> object of the same size as the valarray rhs	 where
   each	 element  has  been initialized by applying indicated operation to the
   corresponding element in rhs and the value lhs.   The operation can only be
   used	 with  a  type	T that supports a form of the indicated operation that
   returns bool or a type convertible to bool.

NON-MEMBER TRANSCENDENTAL 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);

   Returns a new valarray object of the same size as the argument array	 where
   each	 element has been initialized by applying the indicated transcendental
   function to the corresponding elements in the argument array.   The	opera‐
   tion	 can  only be applied to a valarray instantiated on a type T that sup‐
   ports a unique form of the indicated function that returns T or a type con‐
   vertible to T.

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);

   Returns a new valarray object of the same size as the argument arrays where
   each element has been initialized by applying the indicated	transcendental
   function to the corresponding elements in the argument arrays.   The opera‐
   tion can only be applied to a valarray instantiated on a type T  that  sup‐
   ports a unique form of the indicated function that returns T or a type con‐
   vertible to T.

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);

   Returns a new valarray object of the same size  as  the  argument  array  v
   where each element has been initialized by applying the indicated transcen‐
   dental function to the corresponding elements in v along with the value v2.
   The	operation  can	only be applied to a valarray instantiated on a type T
   that supports a unique form of the indicated function that returns T	 or  a
   type convertible to T.

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);

   Returns  a  new  valarray  object of the same size as the argument array v2
   where each element has been initialized by applying the indicated transcen‐
   dental function to the corresponding elements in v2 along with the value v.
   The operation can only be applied to a valarray instantiated on  a  type  T
   that	 supports  a unique form of the indicated function that returns T or a
   type convertible to T.

EXAMPLE
       //
       // valarray.cpp
       //
       #include "valarray.h" // Contains a valarray stream inserter
       using namespace std;
       int main(void)
       {
 int ibuf[10] = {0,1,2,3,4,5,6,7,8,9};
 int ibuf2[10] = {10,11,12,13,14,15,16,17,18,19};

  // create 2 valarrays of ints
  valarray<int>		vi(ibuf,10);
  valarray<int>		vi2(ibuf2,10);

  // print them out
 cout << vi << endl << vi2 << endl;

 vi += vi2;
 vi2 *= 2;
 valarry<int> vi3 = vi2 % vi;

  // print them out again
 cout << vi << endl << vi2 << endl << vi3 << endl;

 return 0;
}

Rogue Wave Software		  02 Apr 1998			valarray(3C++)
[top]

List of man pages available for SunOS

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net