使用boost::ublas
反转矩阵时,我有时会在日志中出现此错误:
在文件/usr/include/boost/numeric/ublas/lu.hpp中检查失败 298:detail :: expression_type_check(prod (triangular_adaptor(m),e),cm2)
我知道这通常是有用的信息,但不是我的情况。有没有办法抑制该消息(以某种方式配置boost,或使用编译器标志)? BOOST_UBLAS_NDEBUG
并没有削减它。
答案 0 :(得分: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
甚至documented:
BOOST_UBLAS_TYPE_CHECK
启用BOOST_UBLAS_TYPE_CHECK后,将启用所有可能昂贵的结构检查。如果不希望这样,那么在包含任何uBLAS标头之前使用
#define BOOST_UBLAS_TYPE_CHECK 0
。可以使用定义BOOST_UBLAS_TYPE_CHECK_EPSILON来控制可接受的容差,有关此检查的实现详细信息,请参阅detail/matrix_assign.hpp
。