gslice_array man page on OpenIndiana

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

gslice_array(3C++)		       -		    gslice_array(3C++)

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

NAME
       gslice_array

	-  A  numeric  array  class used to represent a BLAS-like slice from a
       valarray.

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

DESCRIPTION
       gslice_array<T> creates a gslice view into  a  valarray.	 gslice_arrays
       are only produced by applying the gslice subscript operator to a valar‐
       ray. The elements in a gslice_array are references to selected elements
       in  the	valarray  (so  changing	 an element in the gslice_array really
       changes the corresponding element in the valarray). A gslice_array does
       not itself hold any distinct elements. The template cannot be instanti‐
       ated directly since all its constructors are private. However, you  can
       copy  a	gslice_array to a valarray using either the valarray copy con‐
       structor or the assignment operator. Reference semantics	 are  lost  at
       that point.

INTERFACE
       template <class T> class gslice_array {
       public:

  // types
 typedef T value_type;

  // destructor
  ~gslice_array();

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

  // fill function
 void operator=(const T&);

private:
  // constructors
 gslice_array();
 gslice_array(const gslice_array<T>&);
  // operator =
 gslice_array<T>& operator= (const gslice_array<T>& array);
};

CONSTRUCTORS
       gslice_array();
       gslice_array(const gslice_array&);

   All	gslice_array  constructors  are private and cannot be called directly.
   This prevents copy construction of gslice_arrays.

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

   Assigns values from x to the selected elements of the  valarray  that  self
   refers to. Remember that a gslice_array never holds any elements itself; it
   simply refers to selected elements in the valarray used to generate it.

gslice_array<;T>&
operator=(const gslice-_array<T>& x);

   Private assignment operator. Cannot be  called  directly,  thus  preventing
   assignment between gslice_arrays.

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

   Applies  the	 indicated  operation  using elements from val to the selected
   elements of the valarray that self refers to. Remember that a  gslice_array
   never  holds	 any elements itself; it simply refers to selected elements in
   the valarray used to generate it.

MEMBER FUNCTIONS
       void operator=(const T& x) const;

   Assigns x to the selected elements of the valarray that self refers to.

EXAMPLE
       //
       // gslice_array.cpp
       //
       #include "valarray.h" // Contains a valarray stream inserter
       using namespace std;

       int main(void)
       {
 int ibuf[27] =
   {0,1,2,3,4,5,6,7,8,1,2,3,4,5,6,7,8,9,2,3,4,5,6,7,8,9,10};
 int buf13[9] = {13,13,13,13,13,13,13,13,13};
 size_t len_buf[3] = {3,3,3};
 size_t stride_buf[3] = {9,3,1};

  // create a valarray of ints
 valarray<int>	vi(ibuf,27);

  // print out the valarray
 cout << vi << endl;

  // Get a two dimensional diagonal slice out of the middle
 valarray<size_t> len2(2);
 len2[0] = 3;
 len2[1] = 3;
 valarray<size_t> stride2(2);
 stride2[0] = 3;
 stride2[1] = 10;
 gslice_array<int> gsl = vi[gslice(0,len2,stride2)];

  // print out the slice
 cout << gsl << endl;

  // Assign 13's to everything in the slice
 gsl = valarray<int>(buf13,9);

  // print out the slice and our original valarray
 cout << gsl << endl << vi <<  endl;

 return 0;
}

Program Output

[0,1,2,3,4,5,6,7,8,1,2,3,4,5,6,7,8,9,2,3,4,5,6,7,8,9,10]
[0,2,4,3,5,7,6,8,10]
[13,13,13,13,13,13,13,13,13]
[13,1,2,13,4,5,13,7,8,1,13,3,4,13,6,7,13,9,2,3,13,5,6,13,8,9,13]

WARNINGS
       If your compiler does not support namespaces, then you do not need  the
       using declaration for std.

SEE ALSO
       slice, valarray, gslice, slice_array, mask_array, indirect_array

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

List of man pages available for OpenIndiana

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