|
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", "dot"]}"> |
| 87 | +<header data-kunai-mdinfo="{"meta": {"header": ["linalg"], "id-type": ["function template"], "namespace": ["std::linalg"], "cpp": ["cpp26"]}, "sources": [{"id": "883d9e1dbb08cd8f3d52934290c1440a15d3a288", "source": "#include <cmath>\n#include <execution>\n#include <iostream>\n#include <linalg>\n#include <mdspan>\n#include <numbers>\n#include <vector>\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({4, 5, 6});\n std::mdspan b(b_vec.data(), N);\n\n std::cout << std::linalg::dot(a, b, -18) << '\\n' // (1)\n << std::linalg::dot(std::execution::par, a, b, -18) << '\\n' // (2)\n << std::linalg::dot(a, b) << '\\n' // (3)\n << std::linalg::dot(std::execution::par, a, b) << '\\n'; // (4)\n\n return 0;\n}\n"}], "page_id": ["reference", "linalg", "dot"]}"> |
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-19T00:34:28"> |
| 208 | + 2024年07月19日 00時34分28秒 |
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>
|
@@ -302,7 +302,40 @@ <h2>備考</h2>
|
302 | 302 | <li>(1), (2): もし<code>InVec1::value_type</code>、<code>InVec2::value_type</code>、<code>Scalar</code>が全て浮動小数点数型または<code><a href="../complex/complex.html">std::complex</a></code>の特殊化で、<code>Scalar</code>が<code>InVec1::value_type</code>と<code>InVec2::value_type</code>より精度が高い場合、和の各項は<code>Scalar</code>またはより高い精度の型が使われる。</li>
|
303 | 303 | </ul>
|
304 | 304 | <h2>例</h2>
|
| 305 | +<p><strong>[注意] 処理系にあるコンパイラで確認していないため、間違っているかもしれません。</strong></p> |
| 306 | +<p><div class="yata" id="883d9e1dbb08cd8f3d52934290c1440a15d3a288"><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> |
| 307 | +<span class="cp">#include</span> <span class="cpf"><a href="../execution.html"><execution></a></span><span class="cp"></span> |
| 308 | +<span class="cp">#include</span> <span class="cpf"><a href="../iostream.html"><iostream></a></span><span class="cp"></span> |
| 309 | +<span class="cp">#include</span> <span class="cpf"><a href="../linalg.html"><linalg></a></span><span class="cp"></span> |
| 310 | +<span class="cp">#include</span> <span class="cpf"><a href="../mdspan.html"><mdspan></a></span><span class="cp"></span> |
| 311 | +<span class="cp">#include</span> <span class="cpf"><a href="../numbers.html"><numbers></a></span><span class="cp"></span> |
| 312 | +<span class="cp">#include</span> <span class="cpf"><a href="../vector.html"><vector></a></span><span class="cp"></span> |
| 313 | + |
| 314 | +<span class="kt">int</span> <span class="nf">main</span><span class="p">()</span> |
| 315 | +<span class="p">{</span> |
| 316 | + <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> |
| 317 | + |
| 318 | + <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> |
| 319 | + <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> |
| 320 | + |
| 321 | + <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="mi">4</span><span class="p">,</span> <span class="mi">5</span><span class="p">,</span> <span class="mi">6</span><span class="p">});</span> |
| 322 | + <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> |
| 323 | + |
| 324 | + <span class="n"><a href="../iostream/cout.html">std::cout</a></span> <span class="o"><<</span> <span class="n"><span style="color:#ff0000">std::linalg::dot</span></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="mi">18</span><span class="p">)</span> <span class="o"><<</span> <span class="sc">'\n'</span> <span class="c1">// (1)</span> |
| 325 | + <span class="o"><<</span> <span class="n"><span style="color:#ff0000">std::linalg::dot</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> <span class="o">-</span><span class="mi">18</span><span class="p">)</span> <span class="o"><<</span> <span class="sc">'\n'</span> <span class="c1">// (2)</span> |
| 326 | + <span class="o"><<</span> <span class="n"><span style="color:#ff0000">std::linalg::dot</span></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> |
| 327 | + <span class="o"><<</span> <span class="n"><span style="color:#ff0000">std::linalg::dot</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> <span class="o"><<</span> <span class="sc">'\n'</span><span class="p">;</span> <span class="c1">// (4)</span> |
| 328 | + |
| 329 | + <span class="k">return</span> <span class="mi">0</span><span class="p">;</span> |
| 330 | +<span class="p">}</span> |
| 331 | +</code></pre></div> |
| 332 | +</div></p> |
305 | 333 | <h3>出力</h3>
|
| 334 | +<p><pre><code>14 |
| 335 | +14 |
| 336 | +32 |
| 337 | +32 |
| 338 | +</code></pre></p> |
306 | 339 | <h2>バージョン</h2>
|
307 | 340 | <h3>言語</h3>
|
308 | 341 | <ul>
|
|
0 commit comments