如何得到以10为底的对数呢?

How do I get the base 10 log of an array?

本文关键字:何得      更新时间:2023-10-16

我想得到Eigen::Array的每个元素的以10为底的对数。

要获得自然对数,我只需执行array.log(),按照文档:http://eigen.tuxfamily.org/dox/classEigen_1_1Array.html

但是我没有看到以10为底的对数。肯定有不需要我自己写的方法吧?

目前我正在做一些像array.unaryExpr(std::ptr_fun(std::log10))似乎工作得很好,但我希望有一些更整洁的而不影响性能

使用数学-将自然对数(数组)除以自然对数(10)。这就是为什么许多计算器等不需要实现每个基数的原因。因为log_b(a) = ln(a)/ln(b).

我天真的计算科学猜测是,无论如何,这将是计算它的最快方法,例如,由于e^x的泰勒展开只是sum(x^n/n!)/n,而对于其他基数,将有另一个指数因子需要计算(可能首先乘以x)。e在现实分析中是一个优雅的数字,就像2在计算机科学中是一个优雅的数字一样。