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

时间:2015-02-05 14:57:00

标签: c++ matrix linear-algebra armadillo

在Armadillo线性代数库中有没有办法在矩阵内部使用用户定义的标量类型? 即使int64_t类型也无效。 这个简单的声明arma::Mat<int64_t> mat;会产生编译错误:

  

armadillo_bits \ arma_static_check.hpp(23):错误C2118:否定   下标armadillo_bits \ arma_static_check.hpp(21):编译时   类模板成员函数&#39; void   ARMA :: arma_type_check_cxx1998 ::申请(无效)&#39;   armadillo_bits \ mat_meat.hpp(34):参见函数模板的引用   实例化&#39; void arma :: arma_type_check_cxx1998 :: apply(void)&#39;   正在编译armadillo_bits \ mat_meat.hpp(34):参见参考   类模板实例化&#39; arma :: arma_type_check_cxx1998&#39;   正在编译armadillo_bits \ mat_meat.hpp(17):编译类时   模板成员函数&#39; arma :: Mat :: ~Mat(void)&#39;   main.cpp(156):参见函数模板实例化   &#39; ARMA ::垫::〜垫(无效)&#39;正在编译main.cpp(156):见   参考类模板实例化&#39; arma :: Mat&#39;存在   编译

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

1 个答案:

答案 0 :(得分:1)

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

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