|
204 | 204 |
|
205 | 205 | <p class="text-right"><small>
|
206 | 206 | 最終更新日時(UTC):
|
207 |
| - <span itemprop="datePublished" content="2024-06-16T09:11:26"> |
208 |
| - 2024年06月16日 09時11分26秒 |
| 207 | + <span itemprop="datePublished" content="2024-06-23T05:30:38"> |
| 208 | + 2024年06月23日 05時30分38秒 |
209 | 209 | </span>
|
210 | 210 | <br/>
|
211 | 211 | <span itemprop="author" itemscope itemtype="http://schema.org/Person">
|
@@ -294,7 +294,47 @@ <h2>戻り値</h2>
|
294 | 294 | <li>(4): (3)の並列アルゴリズム版。</li>
|
295 | 295 | </ul>
|
296 | 296 | <h2>例</h2>
|
| 297 | +<p><strong>[注意] 処理系にあるコンパイラで確認していないため、間違っているかもしれません。</strong></p> |
| 298 | +<p><div class="codehilite"><pre><span></span><code><span class="cp">#include</span> <span class="cpf"><a href="../cmath.html"><cmath></a></span><span class="cp"></span> |
| 299 | +<span class="cp">#include</span> <span class="cpf"><a href="../complex.html"><complex></a></span><span class="cp"></span> |
| 300 | +<span class="cp">#include</span> <span class="cpf"><a href="../execution.html"><execution></a></span><span class="cp"></span> |
| 301 | +<span class="cp">#include</span> <span class="cpf"><a href="../iostream.html"><iostream></a></span><span class="cp"></span> |
| 302 | +<span class="cp">#include</span> <span class="cpf"><a href="../linalg.html"><linalg></a></span><span class="cp"></span> |
| 303 | +<span class="cp">#include</span> <span class="cpf"><a href="../mdspan.html"><mdspan></a></span><span class="cp"></span> |
| 304 | +<span class="cp">#include</span> <span class="cpf"><a href="../numbers.html"><numbers></a></span><span class="cp"></span> |
| 305 | +<span class="cp">#include</span> <span class="cpf"><a href="../vector.html"><vector></a></span><span class="cp"></span> |
| 306 | + |
| 307 | +<span class="kt">int</span> <span class="nf">main</span><span class="p">()</span> |
| 308 | +<span class="p">{</span> |
| 309 | + <span class="k">constexpr</span> <span class="kt">size_t</span> <span class="n">N</span> <span class="o">=</span> <span class="mi">4</span><span class="p">;</span> |
| 310 | + |
| 311 | + <span class="n"><a href="../vector/vector.html">std::vector</a></span><span class="o"><</span><span class="n">std</span><span class="o">::</span><span class="n">complex</span><span class="o"><</span><span class="kt">double</span><span class="o">>></span> <span class="n">a_vec</span><span class="p">(</span><span class="n">N</span><span class="p">);</span> |
| 312 | + <span class="n"><a href="../mdspan/mdspan.html">std::mdspan</a></span> <span class="n">a</span><span class="p">(</span><span class="n">a_vec</span><span class="p">.</span><span class="n">data</span><span class="p">(),</span> <span class="n">N</span><span class="p">);</span> |
| 313 | + |
| 314 | + <span class="k">for</span><span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">i</span> <span class="o"><</span> <span class="n">a</span><span class="p">.</span><span class="n">extent</span><span class="p">(</span><span class="mi">0</span><span class="p">);</span> <span class="o">++</span><span class="n">i</span><span class="p">)</span> <span class="p">{</span> |
| 315 | + <span class="k">auto</span> <span class="n">sign</span> <span class="o">=</span> <span class="n">i</span> <span class="o">%</span> <span class="mi">2</span> <span class="o">==</span> <span class="mi">0</span> <span class="o">?</span> <span class="mf">1.0</span> <span class="o">:</span> <span class="o">-</span><span class="mf">1.0</span><span class="p">;</span> |
| 316 | + <span class="n">a</span><span class="p">[</span><span class="n">i</span><span class="p">].</span><span class="n">real</span><span class="p">(</span><span class="n">sign</span> <span class="o">/</span> <span class="p">(</span><span class="mi">2</span> <span class="o">*</span> <span class="n">i</span> <span class="o">+</span> <span class="mi">1</span><span class="p">));</span> |
| 317 | + <span class="n">a</span><span class="p">[</span><span class="n">i</span><span class="p">].</span><span class="n">imag</span><span class="p">(</span><span class="o">-</span><span class="n">sign</span> <span class="o">/</span> <span class="p">(</span><span class="mi">2</span> <span class="o">*</span> <span class="p">(</span><span class="n">i</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)));</span> |
| 318 | + <span class="p">}</span> |
| 319 | + |
| 320 | + <span class="n"><a href="../vector/vector.html">std::vector</a></span><span class="o"><</span><span class="n">std</span><span class="o">::</span><span class="n">complex</span><span class="o"><</span><span class="kt">double</span><span class="o">>></span> <span class="n">b_vec</span><span class="p">(</span><span class="n">a_vec</span><span class="p">);</span> |
| 321 | + <span class="n"><a href="../mdspan/mdspan.html">std::mdspan</a></span> <span class="n">b</span><span class="p">(</span><span class="n">b_vec</span><span class="p">.</span><span class="n">data</span><span class="p">(),</span> <span class="n">N</span><span class="p">);</span> |
| 322 | + |
| 323 | + <span class="n"><a href="../iostream/cout.html">std::cout</a></span> <span class="o"><<</span> <span class="n">std</span><span class="o">::</span><span class="n">linalg</span><span class="o">::</span><span class="n">dotc</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">b</span><span class="p">,</span> <span class="n">std</span><span class="o">::</span><span class="n">complex</span><span class="o"><</span><span class="kt">double</span><span class="o">></span><span class="p">(</span><span class="o">-</span><span class="n">std</span><span class="o">::</span><span class="n">numbers</span><span class="o">::</span><span class="n">pi</span> <span class="o">*</span> <span class="n">std</span><span class="o">::</span><span class="n">numbers</span><span class="o">::</span><span class="n">pi</span> <span class="o">/</span> <span class="mi">6</span><span class="p">,</span> <span class="mi">0</span><span class="p">))</span> <span class="o"><<</span> <span class="sc">'\n'</span> <span class="c1">// (1)</span> |
| 324 | + <span class="o"><<</span> <span class="n">std</span><span class="o">::</span><span class="n">linalg</span><span class="o">::</span><span class="n">dotc</span><span class="p">(</span><span class="n"><a href="../execution/execution/execution_policy.html">std::execution::par</a></span><span class="p">,</span> <span class="n">a</span><span class="p">,</span> <span class="n">b</span><span class="p">,</span> <span class="n">std</span><span class="o">::</span><span class="n">complex</span><span class="o"><</span><span class="kt">double</span><span class="o">></span><span class="p">(</span><span class="o">-</span><span class="n">std</span><span class="o">::</span><span class="n">numbers</span><span class="o">::</span><span class="n">pi</span> <span class="o">*</span> <span class="n">std</span><span class="o">::</span><span class="n">numbers</span><span class="o">::</span><span class="n">pi</span> <span class="o">/</span> <span class="mi">6</span><span class="p">,</span> <span class="mi">0</span><span class="p">))</span> <span class="o"><<</span> <span class="sc">'\n'</span> <span class="c1">// (2)</span> |
| 325 | + <span class="o"><<</span> <span class="n">std</span><span class="o">::</span><span class="n">linalg</span><span class="o">::</span><span class="n">dotc</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">b</span><span class="p">)</span> <span class="o"><<</span> <span class="sc">'\n'</span> <span class="c1">// (3)</span> |
| 326 | + <span class="o"><<</span> <span class="n">std</span><span class="o">::</span><span class="n">linalg</span><span class="o">::</span><span class="n">dotc</span><span class="p">(</span><span class="n"><a href="../execution/execution/execution_policy.html">std::execution::par</a></span><span class="p">,</span> <span class="n">a</span><span class="p">,</span> <span class="n">b</span><span class="p">)</span> <span class="o"><<</span> <span class="sc">'\n'</span><span class="p">;</span> <span class="c1">// (4)</span> |
| 327 | + |
| 328 | + <span class="k">return</span> <span class="mi">0</span><span class="p">;</span> |
| 329 | +<span class="p">}</span> |
| 330 | +</code></pre></div> |
| 331 | +</p> |
297 | 332 | <h3>出力</h3>
|
| 333 | +<p><pre><code>(-0.117512,-4.62593e-19) |
| 334 | +(-0.117512,0) |
| 335 | +(1.52742,-4.62593e-19) |
| 336 | +(1.52742,0) |
| 337 | +</code></pre></p> |
298 | 338 | <h2>バージョン</h2>
|
299 | 339 | <h3>言語</h3>
|
300 | 340 | <ul>
|
|
0 commit comments