Template Class Vector
Defined in File vector.hpp
Class Documentation
-
template<typename ...Props>
class ChipSum::Numeric::Vector Public Types
-
using const_size_type_ref = typename ::std::add_const<size_type_ref>::type
-
using vector_type_ref = typename ::std::add_lvalue_reference<vector_type>::type
-
using const_vector_type_ref = typename ::std::add_const<vector_type_ref>::type
-
using value_type_ref = typename ::std::add_lvalue_reference<value_type>::type
-
using const_value_type_ref = typename ::std::add_const<value_type_ref>::type
Public Functions
-
CHIPSUM_DECLARED_FUNCTION Vector() = default
-
template<typename ST, typename ...Args>
inline CHIPSUM_DECLARED_FUNCTION Vector(const ST &size, Args... args)
- inline CHIPSUM_FUNCTION_INLINE void DeepCopy (Vector &y)
Vector深拷贝
- 参数
y – 输出向量
- inline CHIPSUM_FUNCTION_INLINE void DeviceToHost ()
Device端到Host端数据深拷贝
- inline CHIPSUM_FUNCTION_INLINE void HostToDevice ()
Host端到Device端数据深拷贝
- inline CHIPSUM_FUNCTION_INLINE vector_type & GetData ()
GetData 获取后端数据类型
- 返回
- inline CHIPSUM_FUNCTION_INLINE const_size_type_ref GetSize ()
GetSize 获取向量维度
- 返回
- template<typename Arg> inline CHIPSUM_FUNCTION_INLINE void Dot (Vector &v, Arg &r)
- inline CHIPSUM_FUNCTION_INLINE void Dot (Vector &v, scalar_type &r)
Dot 向量点积
- 参数
v – 右端项
r – 点积结果
- template<typename RetType> inline CHIPSUM_FUNCTION_INLINE value_type Dot (Vector &v)
Dot 向量点积
- 参数
v – 右端项
- 返回
点积结果
- inline CHIPSUM_FUNCTION_INLINE scalar_type Dot (Vector &v)
Dot 向量点积
- 参数
v – 右端项
- 返回
点积结果
- inline CHIPSUM_FUNCTION_INLINE Vector operator* (value_type a)
operator * y = a*x
- 参数
a – 系数
- 返回
y
- template<typename VT> inline CHIPSUM_FUNCTION_INLINE void Mult (const VT &a, Vector &y)
Mult y=a*(*this)
- 参数
a –
y –
- inline CHIPSUM_FUNCTION_INLINE Vector & operator= (Vector &y)
- inline CHIPSUM_FUNCTION_INLINE void Mult (Scalar< Props... > &a, Vector &y)
operator * y = a*x
- 参数
a – 系数(后端Scalar类型)
- 返回
y
- inline CHIPSUM_FUNCTION_INLINE Vector & operator*= (scalar_type &a)
operator * y = a*x
- 参数
a – 系数(后端Scalar类型)
- 返回
y
- inline CHIPSUM_FUNCTION_INLINE Vector & operator*= (value_type a)
operator *= x = a*x
- 参数
a – 系数
- 返回
(*this)
- inline CHIPSUM_FUNCTION_INLINE Vector Add (Vector &y)
operator + z=x+y
- 参数
y – 右端项
- 返回
结果
- inline CHIPSUM_FUNCTION_INLINE Vector & operator+= (Vector &y)
operator += x+=y
- 参数
y – 右端项
- 返回
结果
- inline CHIPSUM_FUNCTION_INLINE void Sub (Vector &y)
operator -, z=x-y
- 参数
y –
- 返回
- inline CHIPSUM_FUNCTION_INLINE void Sub (Vector &y, Vector &z)
Sub 减法接口, z = (*this)-y.
- 参数
y – 输入 y
z – 输出 z
- inline CHIPSUM_FUNCTION_INLINE Vector operator- ()
operator -, y=-x
- 返回
y
- inline CHIPSUM_FUNCTION_INLINE Vector Neg ()
Neg 取负数接口, y=-x.
- 返回
y
- inline CHIPSUM_FUNCTION_INLINE Vector & operator-= (Vector &y)
operator -= x=x-y
- 参数
y –
- 返回
- inline CHIPSUM_FUNCTION_INLINE value_type & operator() (const size_type i)
operator () x(i) CPU端索引
- 参数
i – 下标索引
- 返回
- inline CHIPSUM_SPECIAL_INLINE value_type & operator[] (const size_type i) const
operator [] x[i] 设备端索引访问
- 参数
i – 下标索引
- 返回
- inline CHIPSUM_SPECIAL_INLINE value_type & Item (const size_type i) const
同operator [], x.item(i) 设备端索引
- 参数
i – 下标索引
- 返回
- template<typename IDT> inline CHIPSUM_FUNCTION_INLINE void GetSlice (IDT i, IDT j, Vector &x)
GetSlice 获取Vector部分拷贝数据
- 参数
i – 起始索引
j – 终止索引
x – 获取到的Vector由i到j部分的拷贝数据
-
inline CHIPSUM_FUNCTION_INLINE auto Norm1()
Norm2 x的1范数
- 返回
标量(POD)
- template<typename RefType> inline CHIPSUM_FUNCTION_INLINE void Norm1 (RefType &r)
Norm1 1范数
- 参数
r – [OUT]
- inline CHIPSUM_FUNCTION_INLINE void Norm1 (scalar_type &r)
- inline CHIPSUM_FUNCTION_INLINE value_type Norm2 ()
Norm2 x的2范数
- 返回
标量(POD)
- template<typename RefType> inline CHIPSUM_FUNCTION_INLINE void Norm2 (RefType &r)
Norm1 2范数
- 参数
r – [OUT]
- inline CHIPSUM_FUNCTION_INLINE void Norm2 (scalar_type &r)
- inline CHIPSUM_FUNCTION_INLINE value_type NormInf ()
NormInf x的Inf范数
- 返回
标量(POD)
- inline CHIPSUM_FUNCTION_INLINE void NormInf (scalar_type &r)
NormInf x的Inf范数 [IN,OUT] scalar标量
- template<typename OStreamT = std::ostream> inline CHIPSUM_FUNCTION_INLINE void Print (OStreamT &out=std::cout)
Print 打印(一般用于调试)
- 参数
out – 输出流
- template<typename ... Args> inline CHIPSUM_FUNCTION_INLINE void AXPBY (Vector &y, Args ...args)
AXPBY 模板化接口
- 参数
y – 输出,可能为 y += x y += a*x y = a*x+b*y
args –
- template<typename ValueType> inline CHIPSUM_FUNCTION_INLINE void Fill (ValueType alpha)
Norm1 vector fill.
- 参数
alpha – [IN] fill data
- inline CHIPSUM_FUNCTION_INLINE void Fill (scalar_type &alpha)
-
inline CHIPSUM_FUNCTION_INLINE auto IAMAX()
IAMAX 向量元素最大绝对值处的(最小)索引 ARGMAX_i(|x[i]|)
- 返回
size_type
- template<typename ScalarType> inline CHIPSUM_FUNCTION_INLINE void IAMAX (ScalarType &r)
IAMAX 向量元素最大绝对值处的(最小)索引 ARGMAX_i(|x[i]|)
- 参数
[OUT] – scalar<unsigned> type
- inline CHIPSUM_FUNCTION_INLINE void Reciprocal (Vector &y)
向量倒数
- 参数
[OUT] – Vector倒数输出
- inline CHIPSUM_FUNCTION_INLINE value_type Sum ()
向量求和
- 返回
向量和
-
using const_size_type_ref = typename ::std::add_const<size_type_ref>::type