Loading...
Searching...
No Matches
disarray_rep< T, distributed, A >

## Detailed Description

template<class T, class A>
class rheolef::disarray_rep< T, distributed, A >

forward decl

Definition at line 290 of file disarray.h.

Inheritance diagram for disarray_rep< T, distributed, A >:

## Classes

struct | message_type
struct | remove_const_in_pair
struct | remove_const_in_pair< std::pair< T1, T2 > >
struct | stash_traits
struct | stash_traits< U, std::false_type >
struct | stash_traits< U, std::true_type >

## Public Types

using | base = disarray_rep< T, sequential, A >
using | size_type = typename base::size_type
using | value_type = typename base::value_type
using | memory_type = distributed
using | iterator = typename base::iterator
using | const_iterator = typename base::const_iterator
using | reference = typename base::reference
using | const_reference = typename base::const_reference
using | difference_type = typename base::difference_type
using | communicator_type = distributor::communicator_type
using | scatter_map_type = std::map< size_type, T >
using | dis_reference = disarray_dis_reference< T, A >
typedef details::is_container_of_mpi_datatype< T >::type | is_container
typedef stash_traits< T, is_container >::mapped_type | stash_value
typedef stash_traits< T, is_container >::map_type | stash_map_type
Public Types inherited from disarray_rep< T, sequential, A >
typedef T | value_type
typedef A | allocator_type
typedef A::difference_type | difference_type
typedef std::vector< T > | base
typedef base::size_type | size_type
typedef base::iterator | iterator
typedef base::const_iterator | const_iterator
typedef base::const_reference | const_reference
typedef base::reference | reference
typedef reference | dis_reference
typedef distributor::communicator_type | communicator_type
typedef sequential | memory_type

## Public Member Functions

| disarray_rep (const distributor &ownership, const T &init_val=T(), const A &alloc=A())
void | resize (const distributor &ownership, const T &init_val=T())
| disarray_rep (const disarray_rep< T, distributed, A > &x)
A | get_allocator () const
size_type | size () const
const_iterator | begin () const
const_iterator | end () const
iterator | begin ()
iterator | end ()
const distributor & | ownership () const
const mpi::communicator & | comm () const
size_type | first_index () const
size_type | last_index () const
size_type | dis_size () const
dis_reference | dis_entry (size_type dis_i)
template<class SetOp = typename details::default_set_op_traits<T>::type>
void | dis_entry_assembly_begin (SetOp my_set_op=SetOp())
template<class SetOp = typename details::default_set_op_traits<T>::type>
void | dis_entry_assembly_end (SetOp my_set_op=SetOp())
template<class SetOp = typename details::default_set_op_traits<T>::type>
void | dis_entry_assembly (SetOp my_set_op=SetOp())
template<class Set , class Map >
void | append_dis_entry (const Set &ext_idx_set, Map &ext_idx_map) const
| get values from ext_idx_set, that are managed by another proc
template<class Set , class Map >
void | get_dis_entry (const Set &ext_idx_set, Map &ext_idx_map) const
template<class Set >
void | append_dis_indexes (const Set &ext_idx_set) const
template<class Set >
void | set_dis_indexes (const Set &ext_idx_set) const
void | get_dis_indexes (std::set< size_type > &ext_idx_set) const
void | reset_dis_indexes () const
const_reference | dis_at (size_type dis_i) const
const scatter_map_type & | get_dis_map_entries () const
template<class A2 >
void | repartition (const disarray_rep< size_type, distributed, A2 > &partition, disarray_rep< T, distributed, A > &new_disarray, disarray_rep< size_type, distributed, A2 > &old_numbering, disarray_rep< size_type, distributed, A2 > &new_numbering) const
template<class A2 >
void | permutation_apply (const disarray_rep< size_type, distributed, A2 > &new_numbering, disarray_rep< T, distributed, A > &new_disarray) const
template<class A2 >
void | reverse_permutation (disarray_rep< size_type, distributed, A2 > &inew2dis_iold) const
idiststream & | get_values (idiststream &s)
odiststream & | put_values (odiststream &s) const
odiststream & | put_matlab (odiststream &s) const
template<class GetFunction >
idiststream & | get_values (idiststream &ips, GetFunction get_element)
template<class PutFunction >
odiststream & | put_values (odiststream &ops, PutFunction put_element) const
template<class PutFunction , class A2 >
odiststream & | permuted_put_values (odiststream &ops, const disarray_rep< size_type, distributed, A2 > &perm, PutFunction put_element) const
void | dump (std::string name) const
template<class U , class SetOp >
void | set_dis_entry (size_type dis_i, const U &val, const SetOp &set_op)
template<class Set , class Map >
void | append_dis_entry (const Set &ext_idx_set, Map &ext_idx_map, std::true_type) const
| get values from ext_idx_set, that are managed by another proc; here T=container type
template<class Set , class Map >
void | append_dis_entry (const Set &ext_idx_set, Map &ext_idx_map, std::false_type) const
| get values from ext_idx_set, that are managed by another proc; here T=simple type
Public Member Functions inherited from disarray_rep< T, sequential, A >
| disarray_rep (const A &alloc=A())
| disarray_rep (const distributor &ownership, const T &init_val=T(), const A &alloc=A())
void | resize (const distributor &ownership, const T &init_val=T())
| disarray_rep (size_type loc_size=0, const T &init_val=T(), const A &alloc=A())
void | resize (size_type loc_size=0, const T &init_val=T())
| disarray_rep (const disarray_rep< T, sequential, A > &x)
A | get_allocator () const
size_type | size () const
iterator | begin ()
const_iterator | begin () const
iterator | end ()
const_iterator | end () const
const distributor & | ownership () const
reference | operator[] (size_type i)
const_reference | operator[] (size_type i) const
const_reference | dis_at (size_type dis_i) const
size_type | dis_size () const
size_type | first_index () const
size_type | last_index () const
reference | dis_entry (size_type dis_i)
void | get_dis_indexes (std::set< size_type > &ext_idx_set) const
void | reset_dis_indexes () const
template<class SetOp = typename details::default_set_op_traits<T>::type>
void | dis_entry_assembly_begin (SetOp=SetOp())
template<class SetOp = typename details::default_set_op_traits<T>::type>
void | dis_entry_assembly_end (SetOp=SetOp())
void | repartition (const disarray_rep< size_type, sequential, A > &partition, disarray_rep< T, sequential, A > &new_disarray, disarray_rep< size_type, sequential, A > &old_numbering, disarray_rep< size_type, sequential, A > &new_numbering) const
template<class A2 >
void | reverse_permutation (disarray_rep< size_type, sequential, A2 > &inew2dis_iold) const
idiststream & | get_values (idiststream &s)
odiststream & | put_values (odiststream &s) const
odiststream & | put_matlab (odiststream &s) const
template<class GetFunction >
idiststream & | get_values (idiststream &ips, GetFunction get_element)
template<class PutFunction >
odiststream & | put_values (odiststream &ops, PutFunction put_element) const
void | dump (std::string name) const

## Public Attributes

stash_map_type | _stash
message_type | _send
message_type | _receive
size_type | _receive_max_size
scatter_map_type | _ext_x

## Additional Inherited Members

Protected Attributes inherited from disarray_rep< T, sequential, A >
distributor | _ownership

## Member Typedef Documentation

## base

template<class T , class A >

using base = disarray_rep<T,sequential,A>

Definition at line 295 of file disarray.h.

## size_type

template<class T , class A >

using size_type = typename base::size_type

Definition at line 296 of file disarray.h.

## value_type

template<class T , class A >

using value_type = typename base::value_type

Definition at line 297 of file disarray.h.

## memory_type

template<class T , class A >

using memory_type = distributed

Definition at line 298 of file disarray.h.

## iterator

template<class T , class A >

using iterator = typename base::iterator

Definition at line 299 of file disarray.h.

## const_iterator

template<class T , class A >

using const_iterator = typename base::const_iterator

Definition at line 300 of file disarray.h.

## reference

template<class T , class A >

using reference = typename base::reference

Definition at line 301 of file disarray.h.

## const_reference

template<class T , class A >

using const_reference = typename base::const_reference

Definition at line 302 of file disarray.h.

## difference_type

template<class T , class A >

using difference_type = typename base::difference_type

Definition at line 303 of file disarray.h.

## communicator_type

template<class T , class A >

using communicator_type = distributor::communicator_type

Definition at line 304 of file disarray.h.

## scatter_map_type

template<class T , class A >

using scatter_map_type = std::map <size_type, T>

Definition at line 305 of file disarray.h.

## dis_reference

template<class T , class A >

using dis_reference = disarray_dis_reference<T,A>

Definition at line 306 of file disarray.h.

## is_container

template<class T , class A >

typedef details::is_container_of_mpi_datatype<T>::type is_container

Definition at line 416 of file disarray.h.

## stash_value

template<class T , class A >

typedef stash_traits<T,is_container>::mapped_type stash_value

Definition at line 417 of file disarray.h.

## stash_map_type

template<class T , class A >

typedef stash_traits<T,is_container>::map_type stash_map_type

Definition at line 418 of file disarray.h.

## Constructor & Destructor Documentation

## disarray_rep() [1/2]

template<class T , class A >

disarray_rep | ( | const distributor & | ownership,
|  | const T & | init_val = `T()`,
|  | const A & | alloc = `A()`
| ) |  |

Definition at line 55 of file disarray_mpi.icc.

## disarray_rep() [2/2]

template<class T , class A >

disarray_rep | ( | const disarray_rep< T, distributed, A > & | x | ) |

Definition at line 41 of file disarray_mpi.icc.

## Member Function Documentation

## resize()

template<class T , class A >

void resize | ( | const distributor & | ownership,
|  | const T & | init_val = `T()`
| ) |  |

Definition at line 69 of file disarray_mpi.icc.

## get_allocator()

template<class T , class A >

A get_allocator | ( |  | ) | const

Definition at line 314 of file disarray.h.

## size()

template<class T , class A >

size_type size | ( |  | ) | const

Definition at line 315 of file disarray.h.

## begin() [1/2]

template<class T , class A >

const_iterator begin | ( |  | ) | const

Definition at line 316 of file disarray.h.

## end() [1/2]

template<class T , class A >

const_iterator end | ( |  | ) | const

Definition at line 317 of file disarray.h.

## begin() [2/2]

template<class T , class A >

iterator begin | ( |  | ) |

Definition at line 318 of file disarray.h.

## end() [2/2]

template<class T , class A >

iterator end | ( |  | ) |

Definition at line 319 of file disarray.h.

## ownership()

template<class T , class A >

const distributor & ownership | ( |  | ) | const

Definition at line 321 of file disarray.h.

## comm()

template<class T , class A >

const mpi::communicator & comm | ( |  | ) | const

Definition at line 322 of file disarray.h.

## first_index()

template<class T , class A >

size_type first_index | ( |  | ) | const

Definition at line 323 of file disarray.h.

## last_index()

template<class T , class A >

size_type last_index | ( |  | ) | const

Definition at line 324 of file disarray.h.

## dis_size()

template<class T , class A >

size_type dis_size | ( |  | ) | const

Definition at line 325 of file disarray.h.

## dis_entry()

template<class T , class A >

dis_reference dis_entry | ( | size_type | dis_i | ) |

Definition at line 327 of file disarray.h.

## dis_entry_assembly_begin()

template<class T , class A >
template<class SetOp >

void dis_entry_assembly_begin | ( | SetOp | my_set_op = `SetOp()` | ) |

Definition at line 220 of file disarray_mpi.icc.

## dis_entry_assembly_end()

template<class T , class A >
template<class SetOp >

void dis_entry_assembly_end | ( | SetOp | my_set_op = `SetOp()` | ) |

Definition at line 235 of file disarray_mpi.icc.

## dis_entry_assembly()

template<class T , class A >
template<class SetOp = typename details::default_set_op_traits<T>::type>

void dis_entry_assembly | ( | SetOp | my_set_op = `SetOp()` | ) |

Definition at line 334 of file disarray.h.

## append_dis_entry() [1/3]

template<class T , class A >
template<class Set , class Map >

void append_dis_entry | ( | const Set & | ext_idx_set,
|  | Map & | ext_idx_map
| ) |  | const

get values from ext_idx_set, that are managed by another proc

Definition at line 509 of file disarray_mpi.icc.

## get_dis_entry()

template<class T , class A >
template<class Set , class Map >

void get_dis_entry | ( | const Set & | ext_idx_set,
|  | Map & | ext_idx_map
| ) |  | const

Definition at line 341 of file disarray.h.

## append_dis_indexes()

template<class T , class A >
template<class Set >

void append_dis_indexes | ( | const Set & | ext_idx_set | ) | const

Definition at line 347 of file disarray.h.

## set_dis_indexes()

template<class T , class A >
template<class Set >

void set_dis_indexes | ( | const Set & | ext_idx_set | ) | const

Definition at line 350 of file disarray.h.

## get_dis_indexes()

template<class T , class A >

void get_dis_indexes | ( | std::set< size_type > & | ext_idx_set | ) | const

Definition at line 527 of file disarray_mpi.icc.

## reset_dis_indexes()

template<class T , class A >

void reset_dis_indexes | ( |  | ) | const

Definition at line 402 of file disarray_mpi.icc.

## dis_at()

template<class T , class A >

disarray_rep< T, distributed, A >::const_reference dis_at | ( | size_type | dis_i | ) | const

Definition at line 515 of file disarray_mpi.icc.

## get_dis_map_entries()

template<class T , class A >

const scatter_map_type & get_dis_map_entries | ( |  | ) | const

Definition at line 357 of file disarray.h.

## repartition()

template<class T , class A >
template<class A2 >

void repartition | ( | const disarray_rep< size_type, distributed, A2 > & | partition,
|  | disarray_rep< T, distributed, A > & | new_disarray,
|  | disarray_rep< size_type, distributed, A2 > & | old_numbering,
|  | disarray_rep< size_type, distributed, A2 > & | new_numbering
| ) |  | const

Definition at line 259 of file disarray_mpi.icc.

## permutation_apply()

template<class T , class A >
template<class A2 >

void permutation_apply | ( | const disarray_rep< size_type, distributed, A2 > & | new_numbering,
|  | disarray_rep< T, distributed, A > & | new_disarray
| ) |  | const

Definition at line 326 of file disarray_mpi.icc.

## reverse_permutation()

template<class T , class A >
template<class A2 >

void reverse_permutation | ( | disarray_rep< size_type, distributed, A2 > & | inew2dis_iold | ) | const

Definition at line 310 of file disarray_mpi.icc.

## get_values() [1/2]

template<class T , class A >

idiststream & get_values | ( | idiststream & | s | ) |

Definition at line 655 of file disarray_mpi.icc.

## put_values() [1/2]

template<class T , class A >

odiststream & put_values | ( | odiststream & | s | ) | const

Definition at line 580 of file disarray_mpi.icc.

## put_matlab()

template<class T , class A >

odiststream & put_matlab | ( | odiststream & | s | ) | const

Definition at line 586 of file disarray_mpi.icc.

## get_values() [2/2]

template<class T , class A >
template<class GetFunction >

idiststream & get_values | ( | idiststream & | ips,
|  | GetFunction | get_element
| ) |  |

Definition at line 615 of file disarray_mpi.icc.

## put_values() [2/2]

template<class T , class A >
template<class PutFunction >

odiststream & put_values | ( | odiststream & | ops,
|  | PutFunction | put_element
| ) |  | const

Definition at line 540 of file disarray_mpi.icc.

## permuted_put_values()

template<class T , class A >
template<class PutFunction , class A2 >

odiststream & permuted_put_values | ( | odiststream & | ops,
|  | const disarray_rep< size_type, distributed, A2 > & | perm,
|  | PutFunction | put_element
| ) |  | const

Definition at line 595 of file disarray_mpi.icc.

## dump()

template<class T , class A >

void dump | ( | std::string | name | ) | const

Definition at line 661 of file disarray_mpi.icc.

## set_dis_entry()

template<class T , class A >
template<class U , class SetOp >

void set_dis_entry | ( | size_type | dis_i,
|  | const U & | val,
|  | const SetOp & | set_op
| ) |  |

Definition at line 147 of file disarray_mpi.icc.

## append_dis_entry() [2/3]

template<class T , class A >
template<class Set , class Map >

void append_dis_entry | ( | const Set & | ext_idx_set,
|  | Map & | ext_idx_map,
|  | std::true_type |
| ) |  | const

get values from ext_idx_set, that are managed by another proc; here T=container type

3) scatter (get_entry): specialized versions for T=container and T=simple type

Definition at line 414 of file disarray_mpi.icc.

## append_dis_entry() [3/3]

template<class T , class A >
template<class Set , class Map >

void append_dis_entry | ( | const Set & | ext_idx_set,
|  | Map & | ext_idx_map,
|  | std::false_type |
| ) |  | const

get values from ext_idx_set, that are managed by another proc; here T=simple type

Definition at line 345 of file disarray_mpi.icc.

## Member Data Documentation

## _stash

template<class T , class A >

stash_map_type _stash

Definition at line 435 of file disarray.h.

## _send

template<class T , class A >

message_type _send

Definition at line 436 of file disarray.h.

## _receive

template<class T , class A >

message_type _receive

Definition at line 437 of file disarray.h.

## _receive_max_size

template<class T , class A >

size_type _receive_max_size

Definition at line 438 of file disarray.h.

## _ext_x

template<class T , class A >

scatter_map_type _ext_x

mutable

Definition at line 439 of file disarray.h.

The documentation for this class was generated from the following files:

- /build/rheolef-Hrneba/rheolef-7.2/linalg/lib/disarray.h
- /build/rheolef-Hrneba/rheolef-7.2/linalg/lib/disarray_mpi.icc