問題タブ [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 でエラーが発生するようです
私は、過去に Windows マシンでコンパイルされた多数の個別の .cpp および .h ファイルで構成される大規模なプロジェクトに取り組んでいます。今、私はこのプロジェクトを MacBook Pro に持っています。すべてのファイルをプロジェクトに追加し、ソリューションを構築するのに時間を費やしました。
以下を除くすべてのエラーを削除することができました。ファイル cmath.cpp には、関数 abs に問題があるようです。この問題は、次のコードで発生します。
具体的には、ライン
ソリューションのビルド中に次のエラー メッセージが返されます。
「宣言がスコープ内の宣言を使用するターゲットと競合しています」
どうすればいいの?math.cpp 関数は、作成者によって過去にテストされています。それで、ここで何が起こっているのですか?
c++ - cmath での pow() の実装と効率的な置換
を実行してcmath
計算することを読みました。が整数の場合は使用しないでください。計算が大幅に遅くなるからです。いつどのような代替手段がありますかpow(a,b)
exp(b*log(a))
b
- 同じ定数で連続する多くの s を計算する
pow()
a
- は間違いなく整数に
b
なることが事前にわかっていますか?
これらの特定のシナリオで効率的な高速な代替手段を探しています。
c# - PI を小数点以下 36 桁に定義する
C++でこれを行うことは可能です
ただし、C# では double var を宣言し、36 桁の PI の値を割り当てようとしました。double は小数点以下 16 桁まで格納されるため、これは機能しません (MSDN docx)。暗黙的な型のローカル変数を作成しようとしましたが、コンパイラはそれを double として宣言しただけで、振り出しに戻ってしまいました。多分私は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;
表現力豊かで優れていますが、最適化のみが必要です。
python - 浮動小数点数を比較するには?
私はPythonが初めてで、これは非常に混乱しています。ここで sys.float_info.epilson を使用して浮動小数点数を 0 と比較するにはどうすればよいですか?
c++ - 関数テンプレートで sqrt 関数を呼び出すことができません
stdin から数値を引数として受け取り、平方根演算を実行する関数テンプレートを作成しようとしていますが、それが負の場合を除き、例外がスローされます。メインプログラムは次のようになります。
そして、これはヘッダーファイルです:
プログラムは Visual Studio でコンパイルできますが、<cmath> sqrt
関数で呼び出そうとすると関数がグレー表示されsqrtNumber
ます。
プログラムを実行すると、出力が間違っています。
関数テンプレートを整数引数を受け入れる通常の関数に変更すると、sqrt
問題なく呼び出すことができます。では、この行動の原因は正確には何ですか?関数テンプレートの構文に何か問題がありますか?
c++ - std::abs(0u) は不正ですか?
次のプログラムがあるとします。
gcc
これが不適切でclang
あるかどうかについて意見が分かれています。コード ビルドを使用するgcc
とlibstdc++
、エラーや警告が表示されずにビルドされます (ライブを参照してください) 。clang
libc++
どの結果が正しいですか? abs(0u)
あいまいである必要がありますか?
MSalters は興味深い関連する質問を指摘しています:テンプレート バージョンの std::abs。