distributed vector
Description
This vector class supports both the sequential
and the distributed
memory model. In addition, standard linear algebra is supported.
Example
vec<double> x (100, 3.14);
vec<double> y (100, 6.28);
vec<double> z = 2.5*x + y;
dout << x << endl;
Implementation
This documentation has been generated from file linalg/lib/vec.h
The vec
class is a template class with both the floating type and the memory model as parameters. The implementation bases on the disarray
container.
template <class T, class M = rheo_default_memory_model>
class vec : public disarray<T, M> {
public:
typedef disarray<T, M>
base;
vec (
const distributor& ownership,
const T& init_val = std::numeric_limits<T>::max());
vec (
const std::initializer_list<details::vec_concat_value<T,M> >& init_list);
vec<T,M>&
operator= (
const std::initializer_list<details::vec_concat_value<T,M> >& init_list);
const T& init_val = std::numeric_limits<T>::max());
const distributor& ownership,
const T& init_val = std::numeric_limits<T>::max());
const T& init_val = std::numeric_limits<T>::max());
vec(
const vec_range<T,M>& vr);
vec(
const vec_range_const<T,M>& vr);
vec<T,M>&
operator= (
const vec_range<T,M>& vr);
vec<T,M>&
operator= (
const vec_range_const<T,M>& vr);
template <class Expr,
class Sfinae
= typename std::enable_if<
details::is_vec_expr_v2_arg<Expr>::value
&& ! details::is_vec<Expr>::value
template <class Expr,
class Sfinae
= typename std::enable_if<
details::is_vec_expr_v2_arg<Expr>::value
&& ! details::is_vec<Expr>::value
};
field::size_type size_type
rep::base::const_iterator const_iterator
rep::base::iterator iterator
rep::base::size_type size_type
base::size_type size_type
vec< T, M > & operator=(const vec< T, M > &x)
base::const_reference const_reference
base::const_iterator const_iterator
int constraint_process_rank() const
std::ptrdiff_t difference_type
base::reference reference
const_reference operator[](size_type i) const
float_traits< value_type >::type float_type
void resize(const distributor &ownership, const T &init_val=std::numeric_limits< T >::max())