0

在用我反转矩阵时,boost::ublas有时会在日志中出现此错误:

在第 298 行的文件 /usr/include/boost/numeric/ublas/lu.hpp 中检查失败:detail::expression_type_check (prod (triangular_adaptor (m), e), cm2)

我知道这通常是有用的信息,但对我来说不是。有没有办法抑制该消息(以某种方式配置提升或使用编译器标志)?BOOST_UBLAS_NDEBUG不削减它。

4

1 回答 1

4

查看该标题会发现:

#if BOOST_UBLAS_TYPE_CHECK
        BOOST_UBLAS_CHECK (detail::expression_type_check (prod (triangular_adaptor<const_matrix_type, upper> (m), e), cm2), internal_logic ());
#endif

它甚至被记录在案

BOOST_UBLAS_TYPE_CHECK

当 BOOST_UBLAS_TYPE_CHECK 被启用时,所有可能昂贵的结构检查都被启用。如果这是不可取的,则#define BOOST_UBLAS_TYPE_CHECK 0在包含任何 uBLAS 标头之前使用。定义 BOOST_UBLAS_TYPE_CHECK_EPSILON 可用于控制可接受的容差,请参阅detail/matrix_assign.hpp此检查的实现细节。

于 2017-09-11T09:57:17.947 回答