log10 of a Vector3f (Eigen Libs)



我需要计算vector3f的log10。我尝试了:

Eigen::Vector3f valsingn = svd.singularValues()/svd.singularValues()(0);
valsingn = valsingn.log10();

但是它不起作用。

main.cpp:145:27: error: ‘Eigen::Vector3f {aka class Eigen::Matrix<float, 3, 1>}’ has no member named ‘log10’; did you mean ‘log’?
     valsingn = valsingn.log10();

有没有办法用此向量计算log10

谢谢!

允许特征仍然使用simd的简单方法(我认为已启用它(将是简单的基础更改:

valsingn = valsingn.array().log() / log(10.0);

另外,您可以将log10作为一般表达式传递:

 valsingn.unaryExpr(&log10); // You may have to wrap 
                             // log10 in a function of
                             // your own depending on
                             // the log10 overloads

您需要转到纯系数功能的数组世界:

Vector3f v, w;
w = v.array().log10();
w = log10(v.array());
Arrayt3f a, b;
b = a.log10();
b = log10(a);

最新更新