問題タブ [complex-numbers]

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 投票する
4 に答える
4999 参照

python - Python 拡張代入の問題

Python 拡張代入について興味深いことに出くわしました+=

a += baが「より単純な」データ型である場合、自動データ型変換が常に行われるとは限らないようですが、常にa = a + b機能するようです

変換が行われるケース

変換しない場合

の後a += ba複素行列ではなく、整数行列として残ります

私は以前a += bは と同じだと思っa = a + bていましたが、基本的な実装におけるそれらの違いは何ですか?

0 投票する
2 に答える
1554 参照

c++ - GDB-複素数の実数部と虚数部へのアクセス

(CまたはC ++のいずれか)を使用するプログラムをデバッグする場合、gdb複素数を_M_value = xxx + yyy*I(のタイプでcomplex double)として表示します。

デバッグ中に、その数値に係数を掛けた値を出力する必要があります。

以下は機能しません

取得しArgument to arithmetic operation not a number or booleanます。

また、 gdbマクロを記述して上記を実行できるように、実数部と虚数部にアクセスできません。私の現在の解決策は、複雑な値と配列を操作し、その関数をgdbから呼び出すためのC関数を作成することです。どういうわけか、これは正しく感じられません。

0 投票する
3 に答える
2187 参照

c - 複素数を除算しようとしている、ゼロ除算

以下のプログラムで複素数を除算しようとしています。複素数では機能しますが、分母が実数の場合(つまり、複素数部分がゼロの場合)は機能しません。ratio = b->r / b->i ;複素数部分b->iがゼロの場合(実際の分母の場合)、この行でゼロによる除算が発生します。

これを回避するにはどうすればよいですか?複雑な除算のより単純なルールではなく、なぜプログラマーがこれを行ったのか

ウィキペディアのルールの方が優れているようで、ここではゼロ除算エラーは発生しません。私は何か見落としてますか?なぜプログラマーはウィキペディアの公式を使用しなかったのですか?

ありがとう

0 投票する
3 に答える
11581 参照

c++ - float2 と cuComplex の違いは何ですか? どちらを使用しますか?

ホスト コードとデバイス コードの両方で複素数を使用する方法を理解しようとしています。私は遭遇しましcuComplexた(しかし、ドキュメントが見つかりません!)、float2少なくともCUDAプログラミングガイドで言及されています。

何を使えばいいですか?のヘッダーファイルではcuComplex、関数が で宣言されているように見える__host__ __device__ので、どちらの場所でも使用できるという意味だと思います。

私の元のデータはファイルからに読み込まれているstd::complex<float>ので、それを台無しにしたくありません。GPU で複雑な値を使用するには、元の値complex<float>からcuComplex?にコピーする必要があると思います。

0 投票する
1 に答える
903 参照

c - C で複雑なバイナリ データを読み取るより良い方法はありますか?

複素数を含むバイナリ ファイルを読み取るコードを C で記述しました。それはうまくいきますが、私が演じる必要があるキャストに不快感を覚えます. より良い方法はありますか?私のプログラムでは速度が重要です (コードを C++ iostream から C stdio 関数に変更することで、実行時間を 2 倍にしました)。また、高速化することはできますか?

これが私のコードです:

convert_complex 関数は、単一の複素数のバイト順を逆にします。それにはさらに不快ですが、質問が大きくなりすぎないようにします。

0 投票する
1 に答える
536 参照

c++ - 複雑な演算子のオーバーロード

この複雑なオーバーロード関数の何が問題になっていますか?

0 投票する
5 に答える
2401 参照

c++ - 複素数の出力形式を変更する

C++ 標準ライブラリにテンプレートがありcomplex<>、オーバーロードされた << 演算子があり、(real_part, im_part) 形式で複素数を出力します。出力形式がまったく異なるものに変更されるように、複素数に対するその演算子の動作を変更する必要があります。具体的には、出力をフォームにする必要がありますreal_part\tim_part。それ、どうやったら出来るの?

0 投票する
3 に答える
2518 参照

c#-4.0 - C#でスピーディーな複素数算術を行う方法

私は現在、複素数の算術演算を大量に必要とするC#フラクタルジェネレータープロジェクトに取り組んでおり、数学を高速化する方法を考えています。TestNumericsComplex以下は、、、、TestCustomComplexおよびで示されている3つのデータストレージ方法のいずれかを使用してマンデルブロ計算の速度をテストする簡略化されたコードセットですTestPairedDoubles。マンデルブロは単なる例であり、将来の開発者がプラグインフラクタル式を作成できるようにする予定であることを理解してください。

基本的に、使用することSystem.Numerics.Complexは問題ないアイデアですが、doubleのペアまたはカスタムのComplex構造体を使用することは無難なアイデアです。GPUを使用して算術演算を実行できますが、それによって移植性が制限または中断されませんか?内側のループ(i、x、y)の順序を変えてみましたが無駄になりました。内側のループを高速化するために他に何ができますか?ページフォールトの問題が発生していますか?固定小数点数システムを使用すると、浮動小数点値とは対照的に、速度が向上しますか?

私はすでにParallel.ForC#4.0で知っています。わかりやすくするために、コードサンプルからは省略しています。また、C#は通常、高性能に適した言語ではないことも認識しています。プラグインにはReflectionを、ウィンドウ処理にはWPFを利用するためにC#を使用しています。

編集

GPUが唯一の実行可能なソリューションのようです。C / C ++との相互運用性は無視します。これは、将来のプラグインで相互運用性を強制するほどのスピードアップが重要であるとは思わないためです。

利用可能なGPUオプション(私は実際にしばらくの間調べてきました)を調べた後、私はついに私が信じているものが優れた妥協点であることに気づきました。私は、プログラムがリリースされるまでにほとんどのデバイスが標準をサポートすることを期待して、OpenCLを選択しました。OpenCLTemplateは、 clooを使用して、.Net(アプリケーションロジック用)と "OpenCL C99"(並列コード用)の間のわかりやすいインターフェイスを提供します。プラグインには、統合を容易にするためのSystem.Numerics.Complexによる標準実装に加えて、ハードウェアアクセラレーション用のOpenCLカーネルを含めることができます。

OpenCL C99コードの記述に関する利用可能なチュートリアルの数は、標準がプロセッサベンダーに採用されるにつれて、急速に増えると予想しています。これにより、プラグイン開発者がオプションを利用することを選択した場合に、適切に定式化された言語を提供しながら、プラグイン開発者にGPUコーディングを適用する必要がなくなります。また、コードはOpenCLを介して直接変換されるため、IronPythonスクリプトはコンパイル時まで不明であるにもかかわらずGPUアクセラレーションに同等にアクセスできることを意味します。

GPUアクセラレーションを.Netプロジェクトと統合することに興味がある将来の人には、OpenCLTemplateを強くお勧めします。OpenCLC99を学習することには認められたオーバーヘッドがあります。ただし、代替APIを学習するよりも少し難しいだけであり、例や一般的なコミュニティからのサポートが向上する可能性があります。

0 投票する
2 に答える
839 参照

c# - C# DLLImport 'Complex' 配列の戻り値とパラメーター

「fft.dll」と呼ばれるネイティブ C++ DLL と C# コンソール アプリケーションとの間の小さなテスト統合を作成しているところです。

fft.dll にはFourier、単一の静的メソッドを含む単一のクラスが含まれています。

静的メソッドfft(...)は単に配列の FFT を計算しcomplex<double>、計算された FFT を配列として返しますcomplex<double>

2 つの質問があります。

  1. この関数は s の配列を受け入れますが、complex<double>私の知る限り、.Net にはそのようなデータ構造は存在しません。関数に渡すデータをどのようにフォーマットできfft(...)ますか?
  2. 静的メンバーはクラス内にあるため、.Net コンソール アプリケーションで使用する場合、どの構文を使用すればよい[DllImport("fft.dll")]ですか?

ありがとう

編集:フォローアップの質問:こちら

0 投票する
2 に答える
2221 参照

java - Javaに設定されたマンデルブロ集合-私のアルゴリズムに何か問題がありますか?

Javaでマンデルブロ集合を表示するように求められましたが、問題が発生しました。私の先生と私は両方とも、これが正しく実行されない理由に困惑しています。

正/負の1と0を除くすべての値は、2回の反復後に無限大にエスケープされるため、アルゴリズムまたは複雑なクラスと関係があると思います。