问题标签 [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.

0 投票
1 回答
764 浏览

c++ - 在头文件中包含 cmath 时编译 C++ 文件

我最近从http://hpc.sourceforge.net/安装了 gcc ,而当我尝试在标头中包含 cmath 时,其他一切正常,但它显示以下错误:

我正在使用 OSX Yosemite 并在输入 gcc -v 时显示以下内容:

在此先感谢您的时间。

0 投票
0 回答
70 浏览

c++ - 构建大型项目的解决方案似乎在 math.cpp 中出现错误

我正在开发一个大型项目,该项目由许多单独的 .cpp 和 .h 文件组成,这些文件过去在 Windows 机器上编译过。现在我在 MacBook Pro 上有这个项目。我花了一些时间将所有文件添加到项目中并构建解决方案。

我设法删除了除以下之外的所有错误。在文件 cmath.cpp 中,函数 abs 似乎存在问题。问题出现在以下代码中:

具体来说,线

构建解决方案时返回以下错误消息:

“声明与在范围内使用声明的目标冲突”

怎么会这样?math.cpp 函数已由其创建者过去测试过。那么这里发生了什么?

0 投票
3 回答
22842 浏览

c++ - cmath 中的 pow() 实现和高效替换

我已经阅读了通过执行来cmath计算的内容。当是整数时不应该使用它,因为它会大大减慢计算速度。什么时候有什么选择pow(a,b)exp(b*log(a))b

  1. 计算许多pow()具有相同常数的连续sa
  2. 事先知道b肯定整数?

我正在寻找在这些特定情况下有效的快速替代方案。

0 投票
5 回答
4417 浏览

c# - 将 PI 定义为小数点后 36 位

在 C++ 中可以做到这一点

然而,在 C# 中,我尝试声明一个 double var 并将 PI 的值分配给 36 位小数。这不起作用,因为 double 最多可存储 16 位小数(MSDN docx)。我尝试创建一个隐式类型的局部变量,但编译器只是将其声明为双精度,然后我又回到了原点。也许我可以包含cmath在 C# 中?

如何在 C# 中将 PI 定义为小数点后 36 位

0 投票
7 回答
4489 浏览

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;富有表现力且很好,但只有优化。
0 投票
3 回答
5302 浏览

c++ - std::abs 的模板版本

这里列出了std::absC++ 中的当前重载。我想知道为什么不直接定义以下模板并放弃所有丑陋的 C 风格重载?

0 投票
0 回答
132 浏览

python - 如何比较浮点数?

我是 python 新手,这非常令人困惑。如何在此处使用 sys.float_info.epilson 将浮点数与 0 进行比较?

0 投票
1 回答
479 浏览

c++ - 无法在我的函数模板中调用 sqrt 函数

我正在尝试编写一个函数模板,它从标准输入接收一个数字作为参数并对其执行平方根运算,除非它恰好是负数,在这种情况下将引发异常。主程序如下所示:

这是头文件:

该程序可以在 Visual Studio 上编译,但是<cmath> sqrt当我尝试在我的sqrtNumber函数中调用它时,该函数显示为灰色: 灰色的 sqrt

当我运行程序时输出是错误的:样本输出

如果我将函数模板更改为接受整数参数的普通函数,我可以sqrt毫无问题地调用。那么这种行为的具体原因是什么?我的函数模板的语法有问题吗?

0 投票
1 回答
2832 浏览

c++ - std::abs(0u) 格式不正确吗?

给定以下程序:

gcc并且clang不同意这是否是错误的。gcc与代码一起使用libstdc++不会出现错误或警告(实时查看),而clanglibc++它一起使用会生成以下错误(实时查看):

哪个结果是正确的?是否应该abs(0u)模棱两可?


MSalters 指出了一个有趣的相关问题:模板版本的 std::abs

0 投票
1 回答
415 浏览

c++11 - Cygwin gcc.4.9.2 : 错误: '::lrintl' 尚未声明

这个问题与这个线程有关:cygwin support for C++11 in g++4.9.2

我遇到过同样的问题:

我应用了建议的补丁,只是得到另一个错误。包括 cmath 这里

返回此错误

我在 cygwin IRC 频道上寻求帮助:

遗憾的是,谈话就这样结束了。我不知道应该在哪里“删除 std::”,也不知道这是否可以解决问题。有人能帮忙吗?