|
84 | 84 |
|
85 | 85 | </head>
|
86 | 86 | <body>
|
87 |
| -<header data-kunai-mdinfo="{"meta": {"header": ["linalg"], "id-type": ["function template"], "namespace": ["std::linalg"], "cpp": ["cpp26"]}, "sources": [], "page_id": ["reference", "linalg", "copy"]}"> |
| 87 | +<header data-kunai-mdinfo="{"meta": {"header": ["linalg"], "id-type": ["function template"], "namespace": ["std::linalg"], "cpp": ["cpp26"]}, "sources": [{"id": "d3cdc90938a79ab5365b9d4dff892e7ee0074c2a", "source": "#include <cmath>\n#include <execution>\n#include <iostream>\n#include <linalg>\n#include <mdspan>\n#include <vector>\n\n\ntemplate <class Vector>\nbool IsEqual(Vector a, Vector b) {\n if (a.extent(0) != b.extent(0)) {\n return false;\n }\n for (int i = 0; i < a.extent(0); ++i) {\n if (a[i] != b[i]) {\n return false;\n }\n }\n return true;\n}\n\n\nint main()\n{\n constexpr size_t N = 3;\n\n std::vector<double> a_vec({1, 2, 3});\n std::mdspan a(a_vec.data(), N);\n\n std::vector<double> b_vec(N);\n std::mdspan b(b_vec.data(), N);\n\n // (1)\n std::linalg::copy(a, b);\n assert(IsEqual(a, b));\n\n // (2)\n std::linalg::copy(std::execution::par, a, b);\n assert(IsEqual(a, b));\n\n return 0;\n}\n"}], "page_id": ["reference", "linalg", "copy"]}"> |
88 | 88 | <nav class="navbar navbar-default" role="navigation">
|
89 | 89 | <div class="container-fluid">
|
90 | 90 | <div class="navbar-header">
|
|
204 | 204 |
|
205 | 205 | <p class="text-right"><small>
|
206 | 206 | 最終更新日時(UTC):
|
207 |
| - <span itemprop="datePublished" content="2024-07-11T10:10:41"> |
208 |
| - 2024年07月11日 10時10分41秒 |
| 207 | + <span itemprop="datePublished" content="2024-07-20T02:43:39"> |
| 208 | + 2024年07月20日 02時43分39秒 |
209 | 209 | </span>
|
210 | 210 | <br/>
|
211 | 211 | <span itemprop="author" itemscope itemtype="http://schema.org/Person">
|
212 |
| - <span itemprop="name">yoh</span> |
| 212 | + <span itemprop="name">Yuya Asano</span> |
213 | 213 | </span>
|
214 | 214 | が更新
|
215 | 215 | </small></p>
|
@@ -270,7 +270,53 @@ <h2>効果</h2>
|
270 | 270 | <h2>戻り値</h2>
|
271 | 271 | <p>なし</p>
|
272 | 272 | <h2>例</h2>
|
| 273 | +<p><strong>[注意] 処理系にあるコンパイラで確認していないため、間違っているかもしれません。</strong></p> |
| 274 | +<p><div class="yata" id="d3cdc90938a79ab5365b9d4dff892e7ee0074c2a"><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> |
| 275 | +<span class="cp">#include</span> <span class="cpf"><a href="../execution.html"><execution></a></span><span class="cp"></span> |
| 276 | +<span class="cp">#include</span> <span class="cpf"><a href="../iostream.html"><iostream></a></span><span class="cp"></span> |
| 277 | +<span class="cp">#include</span> <span class="cpf"><a href="../linalg.html"><linalg></a></span><span class="cp"></span> |
| 278 | +<span class="cp">#include</span> <span class="cpf"><a href="../mdspan.html"><mdspan></a></span><span class="cp"></span> |
| 279 | +<span class="cp">#include</span> <span class="cpf"><a href="../vector.html"><vector></a></span><span class="cp"></span> |
| 280 | + |
| 281 | + |
| 282 | +<span class="k">template</span> <span class="o"><</span><span class="k">class</span> <span class="nc">Vector</span><span class="o">></span> |
| 283 | +<span class="kt">bool</span> <span class="n">IsEqual</span><span class="p">(</span><span class="n">Vector</span> <span class="n">a</span><span class="p">,</span> <span class="n">Vector</span> <span class="n">b</span><span class="p">)</span> <span class="p">{</span> |
| 284 | + <span class="k">if</span> <span class="p">(</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">b</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="p">{</span> |
| 285 | + <span class="k">return</span> <span class="nb">false</span><span class="p">;</span> |
| 286 | + <span class="p">}</span> |
| 287 | + <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> |
| 288 | + <span class="k">if</span> <span class="p">(</span><span class="n">a</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">!=</span> <span class="n">b</span><span class="p">[</span><span class="n">i</span><span class="p">])</span> <span class="p">{</span> |
| 289 | + <span class="k">return</span> <span class="nb">false</span><span class="p">;</span> |
| 290 | + <span class="p">}</span> |
| 291 | + <span class="p">}</span> |
| 292 | + <span class="k">return</span> <span class="nb">true</span><span class="p">;</span> |
| 293 | +<span class="p">}</span> |
| 294 | + |
| 295 | + |
| 296 | +<span class="kt">int</span> <span class="n">main</span><span class="p">()</span> |
| 297 | +<span class="p">{</span> |
| 298 | + <span class="k">constexpr</span> <span class="kt">size_t</span> <span class="n">N</span> <span class="o">=</span> <span class="mi">3</span><span class="p">;</span> |
| 299 | + |
| 300 | + <span class="n"><a href="../vector/vector.html">std::vector</a></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="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">});</span> |
| 301 | + <span class="n"><a href="../mdspan/mdspan.html">std::mdspan</a></span> <span class="nf">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> |
| 302 | + |
| 303 | + <span class="n"><a href="../vector/vector.html">std::vector</a></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">N</span><span class="p">);</span> |
| 304 | + <span class="n"><a href="../mdspan/mdspan.html">std::mdspan</a></span> <span class="nf">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> |
| 305 | + |
| 306 | + <span class="c1">// (1)</span> |
| 307 | + <span class="n"><span style="color:#ff0000">std::linalg::copy</span></span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">b</span><span class="p">);</span> |
| 308 | + <span class="n"><a href="../cassert/assert.html">assert</a></span><span class="p">(</span><span class="n">IsEqual</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">b</span><span class="p">));</span> |
| 309 | + |
| 310 | + <span class="c1">// (2)</span> |
| 311 | + <span class="n"><span style="color:#ff0000">std::linalg::copy</span></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> |
| 312 | + <span class="n"><a href="../cassert/assert.html">assert</a></span><span class="p">(</span><span class="n">IsEqual</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">b</span><span class="p">));</span> |
| 313 | + |
| 314 | + <span class="k">return</span> <span class="mi">0</span><span class="p">;</span> |
| 315 | +<span class="p">}</span> |
| 316 | +</code></pre></div> |
| 317 | +</div></p> |
273 | 318 | <h3>出力</h3>
|
| 319 | +<p><pre><code></code></pre></p> |
274 | 320 | <h2>バージョン</h2>
|
275 | 321 | <h3>言語</h3>
|
276 | 322 | <ul>
|
|
0 commit comments