我是CPPUNIT的新手。我使用armadillo库生成了一个类型为cx_mat(complex double)的矩阵A,并且我有一个相同类型的引用(预期)矩阵B.请建议一种方法,使用矩阵A和B进行阻止,并在一次性过程中使用0.0001的增量(公差),而不是在整个矩阵中循环。
如果上述情况不可行,并且唯一的选择是在for循环中使用CPPUNIT_ASSERT_DOUBLES_EQUAL_MESSAGE方法,那么请提供正确的语法和头文件以供使用。
答案 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功能。