問題タブ [pari]
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.
first-class-functions - Pari/GP: 戻り値としてのユーザー定義関数
関数を返すユーザー定義関数を使用する Pari/GP ユーザー定義関数に問題があります。以下は簡単な例です:
h(1)=(g(2))(1)=y(1)=(f(2))(1)=3 になると思っていました。私は Pari のファーストクラス関数の制限に遭遇していますか、それとも何か間違っていますか? 後者の場合、どうすれば修正できますか?
pari - 数値が PARI/GP のリスト内にあるかどうかを知るにはどうすればよいですか?
数値が PARI/GP リスト内にあるかどうかを知りたいのですが、その方法がわかりません。これが私のコードです。
いくつかのスクリプトを Python から PARI/GP に移行していますが、それらの基本的なことを理解できていません。マニュアルに従うのは少し難しいです。ありがとうございました!
pari - Pari/GP に数字のリストを追加する
次のような一連の数字を含む .txt ファイルがあります。
いくつかの正の整数を修正しn
ます。[a_1, a_1 + a_2*n, a_1 + a_2*n + a_3*n, ...]
Pari/GP を使用して、シーケンスを Pari/GP ベクトルとして書き留めるにはどうすればよいですか? を使用する必要があると言われましたがconcat(-,-)
、コマンドの使用方法がわかりません。
pari - pari-gpでは、有限体の原始元を見つける方法は?
たとえば、いくつかのとq^n
の要素を含む有限体が必要です。プリミティブ要素を取得する方法は?prime q
positive n
windows - メイン プログラムのコンソール サブプロセスからのパイプ出力が欠落している (Pari/GP、cygwin?)
私は、数学コンソール プログラム Pari/GP 用のユーザー GUI (Delphi 6、32 ビット) を持っています。私は、目に見えないサブプロセス ウィンドウで Pari/GP を呼び出し、パイプ STDIN と STDOUT を使用して通信します。コンソールサブプロセスの Delphi のソースコードから、STDERR も認識できます。
Pari/GP バージョン 2.2.11 からバージョン 2.4 程度まではすべて正常に動作し、プロンプトを待ってサブプロセスとの通信 (非同期) の開始と終了を決定しました。しかし、バージョン 2.5 以降、パイプはプロンプトを表示しなくなりました。ただし、cmd-window で Pari/GP を起動すると、プロンプトを含む完全なダイアログが表示されます。(私はWin7、64ビットを持っていますが、これは関係がないようです.XP、32ビットの仮想マシンでも動作は同じです)
私は Pari/GP ソフトウェアのソース コードを持っていませんが、バージョン間の重要な違いの 1 つは、新しいバージョンには外部の cygwin.dll が含まれていないことです。
Q: その動作は既に知られていますか? また、その理由は? 既知の回避策はありますか? また、役に立った可能性が最も高い理由を示します。
リクエストに応じて、もう少し背景を説明します。Delphi-6 では、プロシージャ「createconsoleprocess」(Jedi-project によって実装) を使用します。これは
writeln(<string>)
、目に見えないサブプロセスと、パイプを介した応答を非同期で待機する 2 つのわずかに異なる永続スレッド (と仮定します) に を提供しstdout
ます。それはすべてのバージョンで問題なく機能します。しかし、古いバージョンでは、各応答で Pari/GP が使用されてい
prompt
ました (Dos ウィンドウの Dos プロンプトのような一部の文字のみ)。回答の最後の部分に追加されたので、prompt
-symbol が発生するまで応答の一部を解析し、その完全な回答を文字列リストを介して Pari/GP 出力としてユーザーに表示できました。
バージョン Pari/GP 2.5 の後、そのプロンプトは表示されなくなりました。そのため、修正を行わないと、ユーザーは Pari/GP 応答の完了を無限に待ちます。プロンプトとエコーのソフトウェアフラグを変更しても、パイプ定義でハックワイズに置き換えstdout
ても、プロンプトを生成することはできませんでした。stderr
クレイジー: cmd を介して別の Windows コンソールで Pari/GP を起動するcreateconsoleprocess
と、プロンプトが表示されます。あたかも Windows OS には認識されていないが Windows OS には認識されている新しいパイプが存在し、プロンプトがこの新しいパイプを介して送信されるかのようです。パイプ。
バージョンに関連する唯一の目に見える変更は、古いバージョンにはcygwin.dll
Pari/GP があり、新しいバージョンにはそれがないことです。しかし、以前に少しドキュメントをダウンロードしたにもかかわらず、cygwin-secretsについてはわかりません-しかし、それは単に私の専門知識ではありません...
これは、通信の原理を示す画像です。GUI のウィンドウが表示され、CreateConsoleProcess プロシージャによって提供される STDIN/STDOUT パイプを介してバックグラウンドで通信する Pari/GP サブプロセスがあります。
パイプ上の文字列の流れを正確に表示する正確なデバッグ ツールもあります。単に新しいバージョンでは、STDOUT メッセージの最後にプロンプト文字列が追加されなくなりました (また、STDERR 通信経由で見つけることもできません) が、単純な cmd-console ウィンドウにはこのプロンプトがあるため、どこにでもある必要があります。 ....
if-statement - Pari/GPで数値が整数かどうかを確認するには?
私はこのようなif文を書こうとしています
i
たとえば、10 などの任意の整数を指定できます。10 に設定i
すると、次のエラーが発生します。
[(x-1)! + 1] / x
が整数かどうかを確認するだけです。分母は私が思いついたものです.Modも試しましたが、うまくいきませんでした.
unix - 返された数値が GP/Pari の整数かどうかを確認していますか?
GP/Pari を使用するのはこれが初めてで、この質問の回答に問題があります。
関数 'wq()' の戻り値が整数かどうかを出力するよう求められます。渡された数値が整数かどうかを判断できる関数はありますか? そうでない場合、どのようにチェックしますか?構文がやや難しく、オンラインで多くの情報を見つけることができません。
私はこれまでに持っているものを含めました。どんな助けも大歓迎です。