1 #ifndef PARALUTION_HOST_VECTOR_HPP_
2 #define PARALUTION_HOST_VECTOR_HPP_
4 #include "../base_vector.hpp"
5 #include "../base_matrix.hpp"
6 #include "../base_stencil.hpp"
12 template <
typename ValueType>
15 template <
typename ValueType>
24 virtual void info(
void)
const;
26 virtual bool Check(
void)
const;
28 virtual void SetDataPtr(ValueType **ptr,
const int size);
30 virtual void Clear(
void);
31 virtual void Zeros(
void);
32 virtual void Ones(
void);
33 virtual void SetValues(
const ValueType val);
34 virtual void SetRandom(
const ValueType a,
const ValueType
b,
const int seed);
35 virtual void Assemble(
const int *
i,
const ValueType *v,
36 int size,
const int n);
52 virtual void CopyToData(ValueType *data)
const;
76 const int src_offset,
const int dst_offset,
const int size);
80 const ValueType gamma);
82 virtual void Scale(
const ValueType alpha);
90 virtual ValueType
Norm(
void)
const;
92 virtual ValueType
Reduce(
void)
const;
94 virtual ValueType
Asum(
void)
const;
96 virtual int Amax(ValueType &value)
const;
148 #endif // PARALUTION_HOST_VECTOR_HPP_
virtual void CopyFromDouble(const BaseVector< double > &vec)
Copy values from another (double) vector.
Definition: host_vector.cpp:260
IndexType i
Definition: cuda_kernels_coo.hpp:195
virtual void AddScale(const BaseVector< ValueType > &x, const ValueType alpha)
Perform vector update of type this = this + alpha*x.
Definition: host_vector.cpp:528
virtual ValueType DotNonConj(const BaseVector< ValueType > &x) const
Compute non-conjugated dot (scalar) product, return this^T y.
Definition: host_vector.cpp:863
virtual bool Prolongation(const BaseVector< ValueType > &vec_coarse, const BaseVector< int > &map)
Prolongation operator based on restriction(!) mapping vector.
Definition: host_vector.cpp:1373
Definition: base_matrix.hpp:24
Definition: base_stencil.hpp:12
virtual void SetValues(const ValueType val)
Set the values of the vector to given argument.
Definition: host_vector.cpp:315
virtual void PointWiseMult(const BaseVector< ValueType > &x)
Perform point-wise multiplication (element-wise) of type this = this * x.
Definition: host_vector.cpp:1192
void ReadFileASCII(const std::string filename)
Read vector from ASCII file.
Definition: host_vector.cpp:353
virtual void CopyTo(BaseVector< ValueType > *vec) const
Copy values to another vector.
Definition: host_vector.cpp:220
void ReadFileBinary(const std::string filename)
Read vector from binary file.
Definition: host_vector.cpp:415
Definition: base_matrix.hpp:14
virtual ValueType Asum(void) const
Compute sum of absolute values of the vector (L1 norm), return = sum(|this|)
Definition: host_vector.cpp:966
virtual void Permute(const BaseVector< int > &permutation)
Perform inplace permutation (forward) of the vector.
Definition: host_vector.cpp:1259
virtual void LeaveDataPtr(ValueType **ptr)
Get a pointer from the vector data and free the vector object.
Definition: host_vector.cpp:134
virtual void Clear(void)
Clear (free) the vector.
Definition: host_vector.cpp:177
virtual void Zeros(void)
Set the values of the vector to zero.
Definition: host_vector.cpp:293
virtual void Assemble(const int *i, const ValueType *v, int size, const int n)
Assembling.
Definition: host_vector.cpp:1393
virtual void Ones(void)
Set the values of the vector to one.
Definition: host_vector.cpp:304
Definition: base_matrix.hpp:26
virtual void ScaleAdd2(const ValueType alpha, const BaseVector< ValueType > &x, const ValueType beta, const BaseVector< ValueType > &y, const ValueType gamma)
Perform vector update of type this = alpha*this + x*beta + y*gamma.
Definition: host_vector.cpp:608
Backend descriptor - keeps information about the hardware - OpenMP (threads); CUDA (blocksizes...
Definition: backend_manager.hpp:19
ValueType * vec_
Definition: host_vector.hpp:105
Definition: base_vector.hpp:16
virtual ~HostVector()
Definition: host_vector.cpp:52
virtual void PartialSum(const BaseVector< ValueType > &x)
Compute partial sum.
Definition: host_vector.cpp:684
HostVector()
Definition: host_vector.cpp:32
virtual void SetRandom(const ValueType a, const ValueType b, const int seed)
Definition: host_vector.cpp:326
Definition: base_matrix.hpp:28
const IndexType const IndexType const IndexType const ValueType const ValueType const ValueType ValueType * y
Definition: cuda_kernels_coo.hpp:91
virtual void CopyToData(ValueType *data) const
Definition: host_vector.cpp:162
Definition: base_vector.hpp:10
void WriteFileBinary(const std::string filename) const
Write vector to binary file.
Definition: host_vector.cpp:437
virtual void Allocate(const int n)
Allocate a local vector with name and size.
Definition: host_vector.cpp:101
virtual void Scale(const ValueType alpha)
Perform vector scaling this = alpha*this.
Definition: host_vector.cpp:670
virtual void CopyFromPermute(const BaseVector< ValueType > &src, const BaseVector< int > &permutation)
Copy a vector under specified permutation (forward permutation)
Definition: host_vector.cpp:1308
void power(const int mic_dev, const int size, const double val, ValueType *vec)
Definition: mic_vector_kernel.cpp:241
virtual void CopyFromPermuteBackward(const BaseVector< ValueType > &src, const BaseVector< int > &permutation)
Copy a vector under specified permutation (backward permutation)
Definition: host_vector.cpp:1330
virtual ValueType Dot(const BaseVector< ValueType > &x) const
Compute dot (scalar) product, return this^T y.
Definition: host_vector.cpp:785
Definition: base_matrix.hpp:20
Definition: base_matrix.hpp:22
virtual void info(void) const
Shows info about the object.
Definition: host_vector.cpp:62
virtual void ScaleAdd(const ValueType alpha, const BaseVector< ValueType > &x)
Perform vector update of type this = alpha*this + x.
Definition: host_vector.cpp:548
Definition: base_vector.hpp:22
virtual bool Restriction(const BaseVector< ValueType > &vec_fine, const BaseVector< int > &map)
Restriction operator based on restriction mapping vector.
Definition: host_vector.cpp:1352
virtual void PermuteBackward(const BaseVector< int > &permutation)
Perform inplace permutation (backward) of the vector.
Definition: host_vector.cpp:1284
virtual void Power(const double power)
Definition: host_vector.cpp:1482
Definition: base_matrix.hpp:16
Definition: backend_manager.cpp:43
virtual ValueType Norm(void) const
Compute L2 norm of the vector, return = srqt(this^T this)
Definition: host_vector.cpp:1078
virtual int Amax(ValueType &value) const
Compute the absolute max value of the vector, return = max(|this|)
Definition: host_vector.cpp:1021
virtual bool Check(void) const
Check if everything is ok.
Definition: host_vector.cpp:69
virtual void SetDataPtr(ValueType **ptr, const int size)
Initialize a vector with externally allocated data.
Definition: host_vector.cpp:121
virtual void CopyFromData(const ValueType *data)
Definition: host_vector.cpp:147
Definition: backend_manager.hpp:14
const IndexType const IndexType const IndexType const ValueType const ValueType const ValueType * x
Definition: cuda_kernels_coo.hpp:91
Definition: base_stencil.hpp:10
void WriteFileASCII(const std::string filename) const
Write vector to ASCII file.
Definition: host_vector.cpp:389
Definition: base_vector.hpp:19
Base class for all host/accelerator vectors.
Definition: base_vector.hpp:26
virtual void ScaleAddScale(const ValueType alpha, const BaseVector< ValueType > &x, const ValueType beta)
Perform vector update of type this = alpha*this + x*beta.
Definition: host_vector.cpp:566
Definition: host_vector.hpp:13
virtual void CopyFromFloat(const BaseVector< float > &vec)
Copy values from another (float) vector.
Definition: host_vector.cpp:227
virtual ValueType Reduce(void) const
Reduce vector.
Definition: host_vector.cpp:1137
Definition: base_matrix.hpp:18
virtual void CopyFrom(const BaseVector< ValueType > &vec)
Copy values from another vector.
Definition: host_vector.cpp:190