.\" .de Id .. .de Sp .if n .sp .if t .sp 0.4 .. .TH vec 2rheolef "rheolef-7.0" "rheolef-7.0" "rheolef-7.0" .\" label: /*Class:vec .SH NAME \fBvec\fP - vector in distributed environment (rheolef-7.0) .SH SYNOPSIS STL-like vector container for a sequential or distributed memory machine model. Additional operation fom classical algebra. .SH EXAMPLE A sample usage of the class is: .\" begin_example .Sp .nf int main(int argc, char**argv) { environment distributed(argc, argv); vec x(100, 3.14); dout << x << endl; } .Sp .fi .\" end_example .SH IMPLEMENTATION NOTE Implementation use disarray. .\" skip start:SEE ALSO: .\" skip start:AUTHORS: .\" skip start:DATE: .\" END .SH IMPLEMENTATION .\" begin_example .Sp .nf template class vec : public disarray { public: // typedef: typedef disarray base; typedef T value_type; typedef typename base::size_type size_type; typedef std::ptrdiff_t difference_type; typedef basic_range range_type; typedef typename base::reference reference; typedef typename base::const_reference const_reference; typedef typename base::iterator iterator; typedef typename base::const_iterator const_iterator; typedef typename float_traits ::type float_type; // allocator/deallocator: vec (const vec&); vec& operator= (const vec& x); vec (const distributor& ownership, const T& init_val = std::numeric_limits::max()); vec(size_type dis_size = 0, const T& init_val = std::numeric_limits::max()); void resize ( const distributor& ownership, const T& init_val = std::numeric_limits::max()); void resize ( size_type size = 0, const T& init_val = std::numeric_limits::max()); // accessors: const_reference operator[] (size_type i) const; reference operator[] (size_type i); T min () const; T max () const; T max_abs () const; // range: vec(const vec_range& vr); vec(const vec_range_const& vr); vec& operator= (const vec_range& vr); vec& operator= (const vec_range_const& vr); vec_range_const operator[] (const range_type& r) const; vec_range operator[] (const range_type& r); // assignment to a constant: vec& operator= (const int& expr); vec& operator= (const T& expr); // expression template: template ::value && ! details::is_vec::value >::type> vec (const Expr& expr); template ::value && ! details::is_vec::value >::type> vec& operator= (const Expr& expr); // initializer list (c++ 2011): #ifdef _RHEOLEF_HAVE_STD_INITIALIZER_LIST vec (const std::initializer_list >& init_list); vec& operator= (const std::initializer_list >& init_list); #endif // _RHEOLEF_HAVE_STD_INITIALIZER_LIST }; .Sp .fi .\" end_example .SH COPYRIGHT Copyright (C) 2000-2018 Pierre Saramito GPLv3+: GNU GPL version 3 or later . This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.