如何得到以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在计算机科学中是一个优雅的数字一样。
相关文章:
- 函数何时会在c++中包含stack_Unwind_Resume调用
- Python中的for循环与C++有何不同
- 我编写了代码将十进制分数转换为其二进制等效数.它编译得很好,但在执行时挂起
- 在C++中释放内存期间,迭代器与指针有何不同
- 为什么堆栈和堆在内存中分离得如此之多?
- 为什么不同类型层次结构的指针之间的dynamic_cast定义得很好?
- OpenGL 紫外线表现得很奇怪?
- 标准对此指向成员函数类型模板参数有何说明?是我的代码有误,还是 MSVS 16.6 有问题?
- 在程序变得低效之前,允许多少新的[]和删除[]分配是否有限制?
- 为什么映射插入和 map.find() 的单次迭代比插入和 map.find() 的两次单独迭代慢得多
- 为什么 SDL 在 Mac 上比 Linux 慢得多?
- 为什么循环体中的一个基本算术运算执行得比两个算术运算慢
- 为什么C++可执行文件在与较新的libstdc++.so链接时运行得更快?
- 类中的 C++ int 被设置为值,似乎不知从何而来
- 是什么导致我的循环在第一次迭代中运行得更慢
- -fvisibility-inline-hidden 与 gcc 中的 -fvisibility=hidden 有何不同
- 错误:#include 在开发C++中嵌套得太深
- C++ - 这个条件语句写得正确吗?还是有更有效的写法?
- 插入 boost::multi_index 后迭代器变得无效?
- SDL2 加载某些纹理会使SDL_RenderFillRect颜色变得奇怪