The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Интерактивная система просмотра системных руководств (man-ов)

 ТемаНаборКатегория 
 
 [Cписок руководств | Печать]

gslice_array (3)
  • >> gslice_array (3) ( Solaris man: Библиотечные вызовы )
  • 
                           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 sub-
         script  operator  to  a  valarray.   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 instantiated directly since all its con-
         structors are private. However, you can copy a  gslice_array
         to  a valarray using either the valarray copy constructor 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 gen-
            erate 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
    
    
    
    


    Поиск по тексту MAN-ов: 




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру