寻找执行此双重功能的更快方法
Looking for faster method of doing this double function
我希望加快将一个双精度数映射到另一个双精度数的函数。 但是,函数必须保持不变。 相同的输入必须产生与以前完全相同的输出。 这样做的原因是,我们不想在系统中引入任何差异,即使这个原始函数的行为有问题。
功能是:
double g(double d)
{
std::stringstream ss;
ss.precision(10);
ss<<std::fixed<<d;
std::string asString;
ss >> asString;
return atof(asString.c_str());
}
功能看起来很慢。 通过字符串将一个双精度转换为另一个双精度看起来很奇怪。
将双精度精度为 10 位十进制数字的一种更简单方法是将一个大 pow(10, 10)
倍的数字添加到该值上,然后再次减去它。 这样:
double n = pow(10, 10 + ((long) log(d) / log(10)));
double truncated = d + n;
return truncated - n;
相关文章:
- 有没有一种方法可以创建一个带有哈希表的数据库,该哈希表具有恒定时间查找功能
- 如何使用 C/C++ 和 system() 系统调用以外的其他方法在 Linux 中获取文件功能?
- C++中SFINAE的功能方法
- 如何定义和设置指向模板类方法的功能指针
- 将C 方法作为功能指针传递
- 寻找一种加速功能的方法
- 单位测试私人方法通过使其自由功能
- 如何通过功能指针调用派生方法
- 在具有多个返回点的功能中清理的正确方法
- C 模板功能是否有任何方法可以采用n个参数
- 是否有一种方法可以避免在RVALUE和LVALUE参考中创建功能时避免重复的代码
- 从功能指针调用方法
- 早期回报构成功能的最简短方法
- 实现交换/复制功能:有没有更好的方法
- 正确的方法将功能限制为特定数据类型
- 测试模拟功能的最佳方法
- C 获得超载成员功能指针的通用方法
- 有什么方法可以将此功能分开并插入空间
- C 中重复的构造函数和方法功能
- c++的static_cast和虚方法功能