类 cumat

继承关系

基类

类文档

class cumat : public cubase

矩阵类。数据存储在 GPU 中,列主序格式。

公有方法

inline cumat()

构造一个新的 cumat 对象。

inline cumat(size_t rows, size_t cols, cubase::Init init = cubase::Init::Zero)

构造一个新的 cumat 对象。

参数:
  • rows -- 行数

  • cols -- 列数

  • init -- 初始化方式

inline cumat(arma::mat src)

从 armadillo 的矩阵类构造一个新的 cumat 对象。

参数:

src -- Armadillo 类库的的矩阵类

inline cumat(const cumat &mat)

复制构造一个新的 cumat 对象。

参数:

mat -- 源矩阵

inline cumat(cumat &&mat)

移动构造一个新的 cumat 对象。 源对象将把内存管理移交给新对象。

参数:

mat --

template<class L, class R>
inline cumat(cuop_matmul<L, R, cutraits<L>::type, cutraits<R>::type> &&op)
cumat(cuop_diagmul &&op)
inline virtual ~cumat()

销毁 cumat 对象。

inline virtual size_t nbytes() const override

获取字节数

返回:

size_t 字节数

const cuop_trans<cumat> t() const

转置矩阵。除非赋值到新的对象,否则并不执行计算。

返回:

const cuop_trans<cumat> 带有转置标记的对象

inline void resize(size_t rows, size_t cols)
inline cumat &operator=(const cumat &right)
inline cumat &operator=(cumat &&right)
cumat &operator=(const cuop_trans<cumat> &right)
template<class L, class R>
inline cumat &operator=(cuop_matmul<L, R, cutraits<L>::type, cutraits<R>::type> &&op)
cumat &operator=(cuop_diagmul &&op)
template<class R>
inline auto operator*(const R &right) const
custride as_stride() const

转换为 custride 类型,每列作为一个 stride。

返回:

custride 转换后的 custride 对象

cuop_diagmul diagmul(const cumat &diag) const

与对角矩阵相乘。

参数:

diag -- 对角矩阵的对角线元素

返回:

cumat 结果矩阵

inline size_t nrows() const
inline size_t ncols() const

公有静态属性

static constexpr cuop::Op op = cuop::Op::Origin
static constexpr cubase::Type type = cubase::Type::Mat

保护属性

size_t mRows = 0
size_t mCols = 0