Rus*_*lan 5 c++ initialization nan eigen
我想在我的项目中捕获特征矩阵中未初始化值的使用。在文档中,我找到了一个可以使用的有用定义:EIGEN_INITIALIZE_MATRICES_BY_NAN。这已经比什么都没有好,但仍然不够好:因为我可以 grep Eigen 的源代码,它们通过使用安静的std::numeric_limits<Scalar>::quiet_NaN()NaN 显式初始化。
我宁愿让程序在此类事件上获得 FPU 异常(可以捕获该异常),而不是默默地传播 NaN 值。我曾想过#define quiet_NaN signaling_NaN在包含任何 Eigen 标头之前和#undef quiet_NaN之后执行此操作,但在查看源代码后,我发现它们确实包含一堆系统标头,这很可能与这样的#define.
有没有比编辑特征源更好的方法来用信号 NaN 自动初始化矩阵?