問題タブ [chapel]

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

chapel - forall 式: 並列計算か逐次計算か?

私の理解では、forallステートメントは並列に実行されますが、forステートメントはシリアルに実行されます。実際、次のコードはこの予想を裏付けているようです (つまり、forallスレッドのためだけのランダム シーケンス)。

一方、式として右側にforall(または同等の [...] ) を使用すると、

すべての結果が同じになります (つまり、10 から 50 に並べ替えられます)。

これはforall、代入の右辺の式が常にシリアルに実行されるということですか? forもしそうなら、対応する [...] もこのコンテキストの式と同等ですか?

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

arrays - ブール配列内の真の要素の数を数える

Chapel では、指定された値に等しい配列要素の数を次のように数えることができます。

しかし、同様の方法は、真の要素の数をカウントするためには機能しないようです:

この場合、明示的な for ループを記述する必要がありますか、それともこの目的のための他の関数 (またはメソッド) はありますか?


アップデート

a == 5さらに実験した後、結果を新しい配列に保存すると

その後、期待どおりに動作します

では、a == 5配列オブジェクトとは異なるものを表している可能性があるため、.count()直接提供されませんか?

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

arrays - チャペルでの配列の割り当て

他の言語とは異なり、Chapel には配列をヒープに割り当てるためのallocateornew構文がないように見えますが、通常の「宣言」のような構文を使用します。たとえば、次のコードでは、2 つの配列AB、仮 (ダミー) 引数に基づく関数を"宣言" しています。

これにより、次の結果が得られます。

( のサイズが大きいにも関わらず) スタック オーバーフローが発生しないため、サイズに関係なく、上記の構文が常に と をヒープに割り当てるとB仮定してもよろしいですか?AB

また、ドメイン変数の割り当て (または再割り当て) は、配列の割り当て (または再割り当て) の役割を果たしているようです。たとえば、次のコードは期待どおりに機能します。この場合、割り当ては常にヒープで行われますか?

結果:

最後に、ユーザーがこれらのアレイを手動で作成する必要はdeallocateなくdelete、必要に応じてシステムが自動的に割り当てを解除するのでしょうか?

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

arrays - 2 次元配列のスライスからの予期しない型

次のコードでは、またはAを使用して、配列の 1 行目と 2 行目を取得しようとしています。ここで、私の理解では、常に新しい配列が作成され、右側へのエイリアス (または参照) が作成されます。varrefvarref

結果は期待どおりです (つまり、 の 1 行目Aは変更されていません)。

しかし、タイプを印刷するrow1と、row2

私はこの結果を得ます:

row1「通常の」配列 (つまり、エイリアスではない) であると想定していたため、これは少し驚くべきことです。たとえば、次のようになりますvec(これを「通常の」配列と呼びます)。

与える

だから私は(配列型として)との間にいくつかの違いがあるかどうか疑問に思っています... row1vec