使用CPPUNIT断言两个犰狳cx_mat矩阵的相等性

时间:2014-04-23 17:29:16

标签: c++ cppunit armadillo

我是CPPUNIT的新手。我使用armadillo库生成了一个类型为cx_mat(complex double)的矩阵A,并且我有一个相同类型的引用(预期)矩阵B.请建议一种方法,使用矩阵A和B进行阻止,并在一次性过程中使用0.0001的增量(公差),而不是在整个矩阵中循环。

如果上述情况不可行,并且唯一的选择是在for循环中使用CPPUNIT_ASSERT_DOUBLES_EQUAL_MESSAGE方法,那么请提供正确的语法和头文件以供使用。

2 个答案:

答案 0 :(得分:2)

可以用

完成
bool Arma_test::Is_close(arma::cx_mat& X, arma::cx_mat& Y, double tol)
{
    // abs returns a mat type then max checks columns and returns a row_vec
    // max used again will return the biggest element in the row_vec
    bool close(false);
    if(arma::max(arma::max(arma::abs(X-Y))) < tol)
    {
        close = true;
    }
    return close;
}

请参阅Armadillo Docs

答案 1 :(得分:2)

您现在可以使用approx_equal功能。