问题标签 [cmath]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 在头文件中包含 cmath 时编译 C++ 文件
我最近从http://hpc.sourceforge.net/安装了 gcc ,而当我尝试在标头中包含 cmath 时,其他一切正常,但它显示以下错误:
我正在使用 OSX Yosemite 并在输入 gcc -v 时显示以下内容:
在此先感谢您的时间。
c++ - 构建大型项目的解决方案似乎在 math.cpp 中出现错误
我正在开发一个大型项目,该项目由许多单独的 .cpp 和 .h 文件组成,这些文件过去在 Windows 机器上编译过。现在我在 MacBook Pro 上有这个项目。我花了一些时间将所有文件添加到项目中并构建解决方案。
我设法删除了除以下之外的所有错误。在文件 cmath.cpp 中,函数 abs 似乎存在问题。问题出现在以下代码中:
具体来说,线
构建解决方案时返回以下错误消息:
“声明与在范围内使用声明的目标冲突”
怎么会这样?math.cpp 函数已由其创建者过去测试过。那么这里发生了什么?
c++ - cmath 中的 pow() 实现和高效替换
我已经阅读了通过执行来cmath
计算的内容。当是整数时不应该使用它,因为它会大大减慢计算速度。什么时候有什么选择pow(a,b)
exp(b*log(a))
b
- 计算许多
pow()
具有相同常数的连续sa
- 事先知道
b
肯定是整数?
我正在寻找在这些特定情况下有效的快速替代方案。
c# - 将 PI 定义为小数点后 36 位
在 C++ 中可以做到这一点
然而,在 C# 中,我尝试声明一个 double var 并将 PI 的值分配给 36 位小数。这不起作用,因为 double 最多可存储 16 位小数(MSDN docx)。我尝试创建一个隐式类型的局部变量,但编译器只是将其声明为双精度,然后我又回到了原点。也许我可以包含cmath
在 C# 中?
如何在 C# 中将 PI 定义为小数点后 36 位
c++ - 获得 (-1)^n 的正确方法是什么?
许多算法需要计算(-1)^n
(均为整数),通常作为系列中的一个因素。即,-1
对于奇数 n 和偶数 n的因子1
。在 C++ 环境中,经常会看到:
什么是更好的或通常的约定?(或者是其他东西),
编辑:
此外,用户@SeverinPappadeux 提出了另一种基于(全局?)数组查找的替代方案。我的版本是:
这可能不会解决问题,但是通过使用发出的代码,我们可以放弃一些选项。
首先没有优化,最终的竞争者是:
(7次操作,无内存访问)
和
(5个操作,内存--寄存器?--访问)
现在进行优化(-O3)
(4次操作,无内存访问)
.
(4个操作,内存--寄存器?--访问)
.
(4个操作,无内存访问)
测试在这里。我不得不做一些杂技来编写有意义的代码,这些代码不会一起省略操作。
结论(暂时)
所以最后取决于关卡优化和表现力:
1 - ((n & 1) << 1);
总是很好但不是很有表现力。retvals[n&1];
为内存访问付出了代价。n%2?-1:1;
富有表现力且很好,但只有优化。
c++ - std::abs 的模板版本
这里列出了std::abs
C++ 中的当前重载。我想知道为什么不直接定义以下模板并放弃所有丑陋的 C 风格重载?
python - 如何比较浮点数?
我是 python 新手,这非常令人困惑。如何在此处使用 sys.float_info.epilson 将浮点数与 0 进行比较?
c++ - 无法在我的函数模板中调用 sqrt 函数
我正在尝试编写一个函数模板,它从标准输入接收一个数字作为参数并对其执行平方根运算,除非它恰好是负数,在这种情况下将引发异常。主程序如下所示:
这是头文件:
该程序可以在 Visual Studio 上编译,但是<cmath> sqrt
当我尝试在我的sqrtNumber
函数中调用它时,该函数显示为灰色:
当我运行程序时输出是错误的:
如果我将函数模板更改为接受整数参数的普通函数,我可以sqrt
毫无问题地调用。那么这种行为的具体原因是什么?我的函数模板的语法有问题吗?
c++ - std::abs(0u) 格式不正确吗?
给定以下程序:
gcc
并且clang
不同意这是否是错误的。gcc
与代码一起使用libstdc++
不会出现错误或警告(实时查看),而clang
与libc++
它一起使用会生成以下错误(实时查看):
哪个结果是正确的?是否应该abs(0u)
模棱两可?
MSalters 指出了一个有趣的相关问题:模板版本的 std::abs。
c++11 - Cygwin gcc.4.9.2 : 错误: '::lrintl' 尚未声明
这个问题与这个线程有关:cygwin support for C++11 in g++4.9.2
我遇到过同样的问题:
我应用了建议的补丁,只是得到另一个错误。包括 cmath 这里
返回此错误
我在 cygwin IRC 频道上寻求帮助:
遗憾的是,谈话就这样结束了。我不知道应该在哪里“删除 std::”,也不知道这是否可以解决问题。有人能帮忙吗?