问题标签 [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 投票
2 回答
5858 浏览

c++ - 在 xcode 中包含 cmath 时出现错误:'::acos' 尚未声明等

尝试构建包含<cmath>在 Xcode 中的小而简单的项目时,出现以下错误:

cmath: '*' has not been declared
'::acos' has not been declared
In file included from /Xcode4/Projects/libraryLAFMath/Classes/libraryLAFMath.cp
In file included from /Xcode4/Projects/libraryLAFMath/Classes/libraryLAFMath.h
'::acos' has not been declared in /Xcode4/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.1.sdk/usr/include/c++/4.2.1/cmath
...

错误日志还抱怨所有其他数学函数sinpow, 等,而不仅仅是acos. 我查看cmath了源代码,它引用了全局定义的相应数学函数math.h,即::acos等。由于根错误抱怨不存在::acos一个会假设math.h找不到,但是a)它存在,b)我会得到一个不同的错误,抱怨找不到 math.h。

源代码如下:

图书馆LAFMath.cp:

图书馆LAFMath.h:

现在,我有另一个来自外部来源的项目,可以cmath正常使用和编译。我尝试比较这两个项目之间的构建设置,但它们几乎相同。我正在使用 LLVM GCC 4.2 编译器,但是在使用 GCC 4.2 时得到了类似的结果,所以我相信这不是编译器设置问题。

我是 Xcode 开发的新手,不胜感激。

0 投票
4 回答
5772 浏览

c++ - 与 FLOP 相比,cmath 中 exp 的复杂性/实际成本是多少?

[我对问题进行了全局编辑,使其更加“有用”和清晰]

我想知道expcmath 中函数实现的复杂性。

如果可能的话,我的复杂性是指算法复杂性。与浮点运算相比的其他成本(例如加法)

以下几行:

编译为:

exp必须在运行时动态加载,但我找不到很多关于实现算法复杂性的信息。似乎没有调用特殊的处理器指令(至少在我的带有 gcc 的 x86_64 平台上)所以必须有一个我找不到的实现。在我看来,该算法很可能使用输入的二进制表示来具有非常弱的复杂性,但我无法找到关于这个主题的有价值的参考。

也许在这种情况下实际上不可能谈论算法复杂性,我们所能做的就是测试(参见下面的答案),但我不知道我们如何客观地量化浮点运算和调用 exp 之间的区别?

0 投票
4 回答
17943 浏览

visual-studio - cmath.h 和编译错误

我曾经使用 math.h 没有任何问题。现在,我使用了一个外部库,它本身有一个名为 的文件math.h,但其中包含< cmath>.

将此库添加到我的项目(或者甚至只是添加包含目录,而不接触代码)现在会产生大量错误< cmath>

C:\Program Files\Microsoft Visual Studio 8\VC\include\cmath(18) : 错误 C2039: 'acosf' : is not a member of '`global namespace''

C:\Program Files\Microsoft Visual Studio 8\VC\include\cmath(18) : 错误 C2873: 'acosf' : symbol cannot be used in a using-declaration

C:\Program Files\Microsoft Visual Studio 8\VC\include\cmath(18) : 错误 C2039: 'asinf' : is not a member of '`global namespace''

C:\Program Files\Microsoft Visual Studio 8\VC\include\cmath(18) : error C2873: 'asinf' : symbol cannot be used in a using-declaration

[等等等等……]

我不明白为什么会这样。我正在使用 Visual Studio 2005 并在互联网上查找,似乎这个问题在 VS 2008 下得到了解决。但是,我想留在 VS 2005 上......

包括using namespace std;所有地方,或者改变我的包括的顺序似乎并没有改变任何东西。定义_STD_BEGIN解决了错误,但在< xlocinfo>.

如何解决?

0 投票
3 回答
4345 浏览

c++ - VS2010 中的 M_PI:在 Debug conf 中工作,但不在 Release 中

在我的非托管 C++ 源代码中,我有:

然后我使用 M_PI 几次。在 Debug 配置中编译完美无缺,但在 Release 中它提供:

错误 C2065:“M_PI”:未声明的标识符

导致这种情况的配置属性可能是什么?

0 投票
1 回答
867 浏览

c++ - 当 C++ 标准提供将名称带入全局命名空间的 C 标头时,这是否包括重载?

即将到来的 C++0x 标准的最终委员会草案说:

每个 C 标头(每个都有一个名为 name.h 的名称)的行为就好像每个由相应的 cname 标头放置在标准库命名空间中的名称都放置在全局命名空间范围内一样。未指定这些名称是否首先在命名空间 std 的命名空间范围 (3.3.6) 内声明或定义,然后通过显式使用声明 (7.3.3) 注入全局命名空间范围。

早期的 C++ 标准读起来类似。

我的问题是,当 C++ 标头#include<cname>使用重载函数时,是否所有重载都由 引入#include<name.h>,因为重载不是单独的“名称”?

以下代码的行为是否应该在符合标准的 C 和 C++ 编译器之间有所不同?

编译就绪的测试用例:

从这个测试来看,C++math.h的行为类似于 C 而不是 C++ cmath

但在 Visual C++ 2010 上,C++math.h的行为类似于 C++ cmath

还有一个用于Comeau try-it-out的编译时金丝雀:

结果:

Comeau 同意 Visual C++。

0 投票
8 回答
18295 浏览

c++ - cmath 中 sqrt、sin、cos、pow 等的定义

是否有任何可用的函数定义,如, , , , sqrt()sin()这些cos()来自tan()math.h /cmath)?log()exp()

我只是想知道它们是如何工作的。

0 投票
1 回答
3528 浏览

visual-studio-2010 - #包括

下面的代码片段有什么问题,VS2010 不会编译它?

(我试图确定一个整数是否是素数......)

0 投票
2 回答
2391 浏览

c++ - cMath 和 sin 函数的问题

嘿,所以我正在做一些图形数学并将我认为是浮点数的内容(我很确定我事先操纵浮点数的方式以某种方式搞砸了一些东西......)到函数中并得到奇怪的负面结果.

例如,当 Angle 最初等于 350.0 时执行以下操作时,测试最终为
-.99。为什么?

试图通过在一切都不起作用之前放置(浮动)来保持角度浮动......请帮助!谢谢!

0 投票
3 回答
947 浏览

c++ - cmath asin() 问题

嘿,所以我设法在我正在编码的一些图形数学中找到了问题,显然当我到达这行代码时:float test3= asin(test2);where test2= 0.017409846.

据我了解,“asin”是“arc sin”,这是“inverse sin”(我想要的),但是这行代码的结果是test3 = 0.017410725。当将此插入我的计算器时,test2 的反正弦为 0.997561。

为什么不asin工作??谢谢!

0 投票
5 回答
11156 浏览

c++ - C/C++ 最快的 cmath 日志操作

我正在尝试计算 log a b (并得到一个浮点数,而不是整数)。我打算这样做log(b)/log(a)。从数学上讲,我可以使用任何对cmath数函数(以 2、e 或 10 为底)来进行此计算;但是,我会在我的程序中经常运行这个计算,所以我想知道其中一个是否比其他的快得多(或者更好的是,如果有更快但仍然简单的方法来做到这一点)。如果重要,a 和 b 都是整数。