|
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": [{"id": "2d4a86be1c15ab5395d1f4c27553c366a0963c07", "source": "#include <array>\n#include <iostream>\n#include <linalg>\n#include <mdspan>\n#include <vector>\n\ntemplate <class Matrix>\nvoid print_mat(const Matrix& v) {\n for(int i = 0; i < A.extent(0); ++i) {\n for(int j = 0; j < A.extent(1) - 1; ++j) {\n std::cout << A[i, j] << ' ';\n }\n std::cout << A[i, A.extent(1) - 1] << '\\n';\n }\n}\n\ntemplate <class Vector>\nvoid init_vec(Vector& v) {\n for (int i = 0; i < v.extent(0); ++i) {\n v[i] = i;\n }\n}\n\ntemplate <class Matrix>\nvoid init_mat(Matrix& A) {\n for(int i = 0; i < A.extent(0); ++i) {\n for(int j = 0; j < A.extent(1); ++j) {\n A[i,j] = A.extent(1) * i + j;\n }\n }\n}\n\nint main()\n{\n constexpr size_t N = 4;\n\n std::vector<double> A_vec(N * N);\n std::vector<double> x_vec(N);\n std::array<double, N> y_vec;\n\n std::mdspan<\n double,\n std::extents<size_t, N, N>> A(A_vec.data());\n std::mdspan x(x_vec.data(), N);\n std::mdspan y(y_vec.data(), N);\n\n init_mat(A)\n init_vec(x);\n init_vec(y);\n\n // (1)\n std::cout << \"(1)\\n\";\n std::linalg::matrix_rank_1_update(\n x,\n y,\n A);\n print_mat(A);\n\n init_mat(A);\n\n // (2)\n std::cout << \"(2)\\n\";\n std::linalg::matrix_rank_1_update(\n std::execution::par,\n x,\n y,\n A);\n print_mat(A);\n\n return 0;\n}\n"}], "page_id": ["reference", "linalg", "matrix_rank_1_update"]}"> |
| 87 | +<header data-kunai-mdinfo="{"meta": {"header": ["linalg"], "id-type": ["function template"], "namespace": ["std::linalg"], "cpp": ["cpp26"]}, "sources": [{"id": "7bd051a62e4ec348b4554ee045a3055ef716d94e", "source": "#include <array>\n#include <iostream>\n#include <linalg>\n#include <mdspan>\n#include <vector>\n\ntemplate <class Matrix>\nvoid print_mat(const Matrix& A) {\n for(int i = 0; i < A.extent(0); ++i) {\n for(int j = 0; j < A.extent(1) - 1; ++j) {\n std::cout << A[i, j] << ' ';\n }\n std::cout << A[i, A.extent(1) - 1] << '\\n';\n }\n}\n\ntemplate <class Vector>\nvoid init_vec(Vector& v) {\n for (int i = 0; i < v.extent(0); ++i) {\n v[i] = i;\n }\n}\n\ntemplate <class Matrix>\nvoid init_mat(Matrix& A) {\n for(int i = 0; i < A.extent(0); ++i) {\n for(int j = 0; j < A.extent(1); ++j) {\n A[i,j] = A.extent(1) * i + j;\n }\n }\n}\n\nint main()\n{\n constexpr size_t N = 4;\n\n std::vector<double> A_vec(N * N);\n std::vector<double> x_vec(N);\n std::array<double, N> y_vec;\n\n std::mdspan<\n double,\n std::extents<size_t, N, N>> A(A_vec.data());\n std::mdspan x(x_vec.data(), N);\n std::mdspan y(y_vec.data(), N);\n\n init_mat(A);\n init_vec(x);\n init_vec(y);\n\n // (1)\n std::cout << \"(1)\\n\";\n std::linalg::matrix_rank_1_update(\n x,\n y,\n A);\n print_mat(A);\n\n init_mat(A);\n\n // (2)\n std::cout << \"(2)\\n\";\n std::linalg::matrix_rank_1_update(\n std::execution::par,\n x,\n y,\n A);\n print_mat(A);\n\n return 0;\n}\n"}], "page_id": ["reference", "linalg", "matrix_rank_1_update"]}"> |
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-06-30T03:04:52"> |
208 |
| - 2024年06月30日 03時04分52秒 |
| 207 | + <span itemprop="datePublished" content="2024-07-02T07:27:21"> |
| 208 | + 2024年07月02日 07時27分21秒 |
209 | 209 | </span>
|
210 | 210 | <br/>
|
211 | 211 | <span itemprop="author" itemscope itemtype="http://schema.org/Person">
|
@@ -275,14 +275,14 @@ <h2>計算量</h2>
|
275 | 275 | <p>$O(\verb|x.extent(0)|\times \verb|y.extent(0)|)$</p>
|
276 | 276 | <h2>例</h2>
|
277 | 277 | <p><strong>[注意] 処理系にあるコンパイラで確認していないため、間違っているかもしれません。</strong></p>
|
278 |
| -<p><div class="yata" id="2d4a86be1c15ab5395d1f4c27553c366a0963c07"><div class="codehilite"><pre><span></span><code><span class="cp">#include</span> <span class="cpf"><a href="../array.html"><array></a></span><span class="cp"></span> |
| 278 | +<p><div class="yata" id="7bd051a62e4ec348b4554ee045a3055ef716d94e"><div class="codehilite"><pre><span></span><code><span class="cp">#include</span> <span class="cpf"><a href="../array.html"><array></a></span><span class="cp"></span> |
279 | 279 | <span class="cp">#include</span> <span class="cpf"><a href="../iostream.html"><iostream></a></span><span class="cp"></span>
|
280 | 280 | <span class="cp">#include</span> <span class="cpf"><a href="../linalg.html"><linalg></a></span><span class="cp"></span>
|
281 | 281 | <span class="cp">#include</span> <span class="cpf"><a href="../mdspan.html"><mdspan></a></span><span class="cp"></span>
|
282 | 282 | <span class="cp">#include</span> <span class="cpf"><a href="../vector.html"><vector></a></span><span class="cp"></span>
|
283 | 283 |
|
284 | 284 | <span class="k">template</span> <span class="o"><</span><span class="k">class</span> <span class="nc">Matrix</span><span class="o">></span>
|
285 |
| -<span class="kt">void</span> <span class="n">print_mat</span><span class="p">(</span><span class="k">const</span> <span class="n">Matrix</span><span class="o">&</span> <span class="n">v</span><span class="p">)</span> <span class="p">{</span> |
| 285 | +<span class="kt">void</span> <span class="n">print_mat</span><span class="p">(</span><span class="k">const</span> <span class="n">Matrix</span><span class="o">&</span> <span class="n">A</span><span class="p">)</span> <span class="p">{</span> |
286 | 286 | <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>
|
287 | 287 | <span class="k">for</span><span class="p">(</span><span class="kt">int</span> <span class="n">j</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">j</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">1</span><span class="p">)</span> <span class="o">-</span> <span class="mi">1</span><span class="p">;</span> <span class="o">++</span><span class="n">j</span><span class="p">)</span> <span class="p">{</span>
|
288 | 288 | <span class="n"><a href="../iostream/cout.html">std::cout</a></span> <span class="o"><<</span> <span class="n">A</span><span class="p">[</span><span class="n">i</span><span class="p">,</span> <span class="n">j</span><span class="p">]</span> <span class="o"><<</span> <span class="sc">' '</span><span class="p">;</span>
|
@@ -321,7 +321,7 @@ <h2>例</h2>
|
321 | 321 | <span class="n"><a href="../mdspan/mdspan.html">std::mdspan</a></span> <span class="nf">x</span><span class="p">(</span><span class="n">x_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 | 322 | <span class="n"><a href="../mdspan/mdspan.html">std::mdspan</a></span> <span class="nf">y</span><span class="p">(</span><span class="n">y_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 | 323 |
|
324 |
| - <span class="n">init_mat</span><span class="p">(</span><span class="n">A</span><span class="p">)</span> |
| 324 | + <span class="n">init_mat</span><span class="p">(</span><span class="n">A</span><span class="p">);</span> |
325 | 325 | <span class="n">init_vec</span><span class="p">(</span><span class="n">x</span><span class="p">);</span>
|
326 | 326 | <span class="n">init_vec</span><span class="p">(</span><span class="n">y</span><span class="p">);</span>
|
327 | 327 |
|
@@ -376,6 +376,7 @@ <h2>関連項目</h2>
|
376 | 376 | <ul>
|
377 | 377 | <li><code><a href="../execution.html">execution</a></code></li>
|
378 | 378 | <li><code><a href="../mdspan.html">mdspan</a></code></li>
|
| 379 | +<li><code><a href="matrix_rank_1_update_c.html">matrix_rank_1_update_c</a></code></li> |
379 | 380 | </ul>
|
380 | 381 | <h2>参照</h2>
|
381 | 382 | <ul>
|
|
0 commit comments