問題タブ [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++ - xcode で cmath get エラーを含める場合: '::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
...
sin
エラー ログは、 だけでなく、pow
、 など、他のすべての数学関数についても文句を言いますacos
。ソースコードの内部を調べcmath
たところ、グローバルに定義された対応する数学関数を参照しています。math.h が見つからないという別のエラーが発生します。math.h
::acos
::acos
math.h
ソースコードは次のとおりです。
ライブラリLAFMath.cp:
ライブラリLAFMath.h:
今、私は外部ソースからの別のプロジェクトを使用cmath
してコンパイルしています。これら 2 つのプロジェクトのビルド設定を比較してみましたが、ほとんど同じです。私はLLVM GCC 4.2コンパイラを使用していますが、GCC 4.2を使用すると同様の結果が得られるため、コンパイラ設定の問題ではないと思います。
私は Xcode 開発に不慣れで、助けていただければ幸いです。
c++ - FLOPと比較したcmathでのexpの複雑さ/実際のコストはどれくらいですか?
[質問をより「有用」で明確になるようにグローバルに編集しました]
exp
cmathでの関数の実装の複雑さについて疑問に思いました。
複雑さとは、可能であればアルゴリズムの複雑さを意味します。それ以外の場合、浮動小数点演算と比較したコスト(たとえば追加)
次の行:
コンパイル先:
exp
実行時に動的にロードする必要がありますが、実装アルゴリズムの複雑さに関する多くの情報を見つけることができません。特別なプロセッサ命令への呼び出しはないようです(少なくともgccを使用するx86_64プラットフォームでは)ので、どこかに実装が見つからないはずです。私の考えでは、アルゴリズムは入力のバイナリ表現を使用して非常に複雑さが弱いと思われますが、このトピックに関する貴重なリファレンスを見つけることができませんでした。
この場合、アルゴリズムの複雑さについて話すことは実際には不可能であり、テストすることしかできません(以下の回答を参照)が、浮動小数点演算とexpの呼び出しの違いを客観的に定量化する方法がわかりません。
visual-studio - cmath.hおよびコンパイルエラー
以前はmath.hで問題なく作業していました。ここで、それ自体に。というファイルmath.h
があり、が含まれている外部ライブラリを使用します< cmath>
。
このライブラリをプロジェクトに追加する(またはコードに触れることなくインクルードディレクトリを追加するだけでも)と、次のようなエラーが大量に発生するようになりました< cmath>
。
C:\ Program Files \ Microsoft Visual Studio 8 \ VC \ include \ cmath(18):エラーC2039:'acosf':'`グローバル名前空間''のメンバーではありません
C:\ Program Files \ Microsoft Visual Studio 8 \ VC \ include \ cmath(18):エラーC2873:'acosf':シンボルをusing宣言で使用できません
C:\ Program Files \ Microsoft Visual Studio 8 \ VC \ include \ cmath(18):エラーC2039:'asinf':'`グローバル名前空間''のメンバーではありません
C:\ Program Files \ Microsoft Visual Studio 8 \ VC \ include \ cmath(18):エラーC2873:'asinf':シンボルをusing宣言で使用できません
[など...]
なぜこれが起こるのかわかりません。Visual Studio 2005を使用していて、インターネットを調べていますが、この問題はVS 2008で解決されているようです。ただし、VS2005を使い続けたいと思います...
どこにでもインクルードusing namespace std;
したり、インクルードの順序を変更しても何も変わらないようです。定義_STD_BEGIN
するとエラーは解決しますが、で生成され< xlocinfo>
ます。
これはどのように解決できますか?
c++ - VS2010 の M_PI: デバッグ conf で動作するが、リリースでは動作しない
私のアンマネージ C++ ソースには次のものがあります。
次に、M_PI を数回使用します。デバッグ構成でのコンパイルは問題なく動作しますが、リリースでは次のようになります。
エラー C2065: 'M_PI': 宣言されていない識別子
これを引き起こしている構成プロパティは何ですか?
c++ - C++ 標準がグローバル名前空間に名前をもたらす C ヘッダーを提供する場合、それにはオーバーロードが含まれますか?
今後の C++0x 標準の委員会の最終草案では、次のように述べられています。
それぞれが name.h という形式の名前を持つすべての C ヘッダーは、対応する cname ヘッダーによって標準ライブラリ名前空間に配置された各名前がグローバル名前空間スコープ内に配置されているかのように動作します。これらの名前が最初に名前空間 std の名前空間スコープ (3.3.6) 内で宣言または定義され、次に明示的な using 宣言 (7.3.3) によってグローバル名前空間スコープに注入されるかどうかは未指定です。
以前の C++ 標準も同様に読みます。
私の質問は、C++ ヘッダーがオーバーロードされた関数を使用する場合、オーバーロードは個別の「名前」ではないため、#include<cname>
すべてのオーバーロードが によって取り込まれるのでしょうか?#include<name.h>
また、次のコードの動作は、標準に準拠した C コンパイラと C++ コンパイラの間で異なる必要がありますか?
コンパイル可能なテスト ケース:
- C++
math.h
およびstdlib.h
: http://ideone.com/pmD4t - C
math.h
とstdlib.h
: http://ideone.com/Sflpn - C++
cmath
およびcstdlib
: http://ideone.com/yI07m - C++
cmath
のみ: http://ideone.com/KrS3W
このテストから、C++math.h
は C のように動作し、 C++ のようには動作しませんcmath
。
ただし、Visual C++ 2010 では、C++は C++math.h
のように動作しますcmath
。
そして、Comeau try-it-outで使用するコンパイル時のカナリア:
結果:
コモーは、Visual C++ に同意します。
c++ - cmathでのsqrt、sin、cos、powなどの定義
、、、、、(これらはmath.h/cmathから)のようなsqrt()
関数の定義はありますか?sin()
cos()
tan()
log()
exp()
それらがどのように機能するのか知りたかっただけです。
visual-studio-2010 - #含む
VS2010がコンパイルしない以下のコードスニペットの何が問題になっていますか?
(整数が素数であるかどうかを確認しようとしています...)
c++ - cMathとsin関数の問題
ねえ、私はいくつかのグラフィック計算を行っており、フロートであると信じているものを関数に挿入し(フロートを事前に操作する方法が何らかの形で何かを台無しにしていると確信しています...)、奇妙で否定的な結果が返されます。
たとえば、Angleが最初に350.0に等しいときに次の操作を実行すると、テストは
-.99になります。なんで?
すべてが機能しなくなる前に(float)を置いて、Angleをfloatに保とうとしています...助けてください!ありがとう!
c++ - cmath asin()の問題
ねえ、私はコーディングしているいくつかのグラフィック数学で問題を見つけることができました、そして明らかに私がこのコード行に到達したとき:float test3= asin(test2);
ここでtest2= 0.017409846
。
私の理解では、「asin」は「arc sin」であり、「inverse sin」(私が望むもの)ですが、このコード行の結果はですtest3 = 0.017410725
。これを私の計算機に接続すると、test2の逆サインは.997561になります。
なぜ動かないのasin
?ありがとう!
c++ - C /C++最速のcmathログ操作
log a bを計算しようとしています(整数ではなく浮動小数点を取得します)。私はこれをとして行うことを計画していましたlog(b)/log(a)
。数学的に言えば、cmath
この計算を行うために任意の対数関数(基数2、e、または10)を使用できます。ただし、プログラム中にこの計算を頻繁に実行するので、そのうちの1つが他の計算よりも大幅に高速であるかどうか(または、より高速でありながら単純な方法がある場合はさらに良い)と考えていました。重要な場合は、aとbの両方が整数です。