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
};