Provided by: librheolef-dev_7.2-2_amd64 bug

NAME

       distributor - memory distribution table (rheolef-7.2)

DESCRIPTION

       Given an array size, this class decides which process will own which part of a distributed
       memory array such as disarray(4).

EXAMPLE

           distributor ownership (100);

TODO

       Ambiguous use of size() and dis_size(). Here size() refers to n_process(), while
       size(iproc) and dis_size() refer to the size of the index ranges. Then, size() should be
       avoided, and we should use n_process() instead.

IMPLEMENTATION

       This documentation has been generated from file linalg/lib/distributor.h

       class distributor : public Vector<std::allocator<int>::size_type> {
       public:

       // typedefs:

               typedef std::allocator<int>::size_type size_type;
               typedef Vector<size_type>              _base;
               typedef _base::iterator                iterator;
               typedef _base::const_iterator          const_iterator;
               typedef int                            tag_type;
               typedef communicator                   communicator_type;

       // constants:

               static const size_type decide = size_type(-1);

       // allocators/deallocators:

               distributor(
                       size_type dis_size = 0,
                       const communicator_type& c = communicator_type(),
                       size_type loc_size = decide);

               distributor(const distributor&);
               ~distributor();

               void resize(
                       size_type dis_size = 0,
                       const communicator_type& c = communicator_type(),
                       size_type loc_size = decide);

       // accessors:

               const communicator_type& comm() const;

               size_type dis_size () const;

               size_type process () const;

               size_type n_process () const;

               size_type find_owner (size_type dis_i) const;

               size_type first_index (size_type iproc) const;
               size_type last_index (size_type iproc) const;
               size_type size (size_type iproc) const;

               size_type first_index () const;
               size_type last_index () const;
               size_type size () const;

               bool is_owned (size_type dis_i, size_type iproc) const;

               // the same with ip=current process
               bool is_owned (size_type dis_i) const;

               static tag_type get_new_tag();

       // comparators:

               bool operator== (const distributor&) const;
               bool operator!= (const distributor&) const;

       };

AUTHOR

       Pierre  Saramito  <Pierre.Saramito@imag.fr>

COPYRIGHT

       Copyright   (C)  2000-2018  Pierre  Saramito  <Pierre.Saramito@imag.fr> GPLv3+: GNU GPL
       version 3 or later  <http://gnu.org/licenses/gpl.html>.  This  is  free  software:  you
       are free to change and redistribute it.  There is NO WARRANTY, to the extent permitted by
       law.