用户定义的类型是C++Armadillo库中矩阵的标量

User defined type as scalar of matrix in C++ Armadillo library

本文关键字:标量 C++Armadillo 定义 类型 用户      更新时间:2023-10-16

在Armadillo线性代数库中,有任何方法可以在矩阵内部使用用户定义的标量类型吗?即使是int64_t类型也不起作用。这个简单的声明arma::Mat<int64_t> mat;产生编译错误:

armadillo_bits\arma_static_check.hpp(23):错误C2118:负subscript armadillo_bits\arma_static_check.hpp(21):编译时类模板成员函数'voidarma::arma\ype_check_cxx1998::应用(无效)'armadillo_bits\mat_meat.hpp(34):参见函数模板参考实例化'void arma::arma\ype_check_cxx1998::apply(void)'正在编译armadillo_bits\mat_meat.hpp(34):请参阅类模板实例化"arma::arma\ype_check_cxx1998"正在编译armadillo_bits\mat_meat.hpp(17):编译类时模板成员函数'arma::Mat::~Mat(void)'main.cpp(156):请参阅对函数模板实例化的引用"arma::Mat::~Mat(void)"正在编译main.cpp(156):请参阅引用类模板实例化"arma::Mat"编译

我需要这种自定义类型的矩阵,而不是用于数学运算,而是用于插入行/列运算的方便的2d数组,我不想只为这些运算链接另一个库。Armadillo已经在我的项目中使用了。

对于整数矩阵,Armadillo使用以下类型:

umat     =      Mat<uword>
imat     =      Mat<sword>