2017-09-09 11 views
-3

ich nächsten Code in google TestEigen SVD seltsame Fehler in Google Test

TEST(LinearALgebra, SVD) { 
    Eigen::Matrix3d m; 

    m << -0.0793311, 0.999997, -1.17221e-07, 
     1.74, 0.00249557, 0.000445095, 
     9.88131e-324, 0.000191222, -0.000284459; 

    Eigen::Matrix3d m_inv = m.inverse(); 

    //or 

    auto svd = m.jacobiSvd(Eigen::ComputeFullU | Eigen::ComputeFullV); 
} 

Er scheiterte in BinaryFunctors.h in scalar_product_op :: result_type (Linie 86) Der gleiche Vorgang in simpe Haupt bin Ausführung, Python Numpy oder Opencv funktioniert ohne Fehler.

+2

_Es ist fehlgeschlagen_ und Sie denken, dass ist alles, was Sie sagen sollten? –

+1

Ich bekomme keinen Fehler mit dem Code, den Sie gepostet haben. Bitte geben Sie eine [MCVE] (https://stackoverflow.com/help/mcve) –

+0

Sorry Jungs. Einige Erklärungen: Der gleiche Code läuft in der einfachen Konsolenhauptanwendung und in google test. In der Anwendung funktioniert alles gut. Aber der gleiche Code in Google-Test gibt diesen Fehler zurück. – Mike

Antwort

0

So war das Problem mit der subnormalen Nummer 9.88131e-324. Es führt zu Gleitkommaausnahme. Ändern auf Null gelöstes Problem.