【问题标题】:User defined type as scalar of matrix in C++ Armadillo library用户定义类型为 C++ Armadillo 库中矩阵的标量
【发布时间】:2015-04-05 11:53:42
【问题描述】:

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

armadillo_bits\arma_static_check.hpp(23):错误 C2118:否定 下标 armadillo_bits\arma_static_check.hpp(21) :编译时 类模板成员函数'void arma::arma_type_check_cxx1998::apply(void)' armadillo_bits\mat_meat.hpp(34) :参见函数模板的参考 实例化 'void arma::arma_type_check_cxx1998::apply(void)' 正在编译 armadillo_bits\mat_meat.hpp(34) :参见参考 类模板实例化 'arma::arma_type_check_cxx1998' 正在编译 armadillo_bits\mat_meat.hpp(17) :在编译类时 模板成员函数'arma::Mat::~Mat(void)' main.cpp(156) :参见函数模板实例化的参考 'arma::Mat::~Mat(void)' 正在编译 main.cpp(156):见 对类模板实例化“arma::Mat”的引用 编译

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

【问题讨论】:

  • 要启用 64 位整数,请使用 C++11 编译器,或在包含犰狳头文件之前定义 ARMA_64BIT_WORD。否则,手动编辑include/armadillo_bits/config.hppdocumentation 中列出了选项的说明。
  • 谢谢,但是如何使用用户定义的类呢?像 arma::Mat mat;

标签: c++ matrix linear-algebra armadillo


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多