Skip to content

Commit fdb39a4

Browse files
author
cpprefjp-autoupdate
committed
update automatically
1 parent 54e032a commit fdb39a4

File tree

7 files changed

+1648
-1084
lines changed

7 files changed

+1648
-1084
lines changed

reference/linalg.html

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -176,8 +176,8 @@
176176

177177
<p class="text-right"><small>
178178
最終更新日時(UTC):
179-
<span itemprop="datePublished" content="2024-07-03T07:08:27">
180-
2024年07月03日 07時08分27秒
179+
<span itemprop="datePublished" content="2024-07-04T09:27:11">
180+
2024年07月04日 09時27分11秒
181181
</span>
182182
<br/>
183183
<span itemprop="author" itemscope itemtype="http://schema.org/Person">
@@ -448,7 +448,7 @@ <h2>BLAS 2アルゴリズム</h2>
448448
<td>C++26</td>
449449
</tr>
450450
<tr>
451-
<td><code>hermitian_matrix_rank_1_update</code></td>
451+
<td><code><a href="linalg/hermitian_matrix_rank_1_update.html">hermitian_matrix_rank_1_update</a></code></td>
452452
<td>xHER: ハミルトニアン行列のRank-1更新 (function template)</td>
453453
<td>C++26</td>
454454
</tr>

reference/linalg/hermitian_matrix_rank_1_update.html

Lines changed: 479 additions & 0 deletions
Large diffs are not rendered by default.

reference/linalg/symmetric_matrix_rank_1_update.html

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@
8484

8585
</head>
8686
<body>
87-
<header data-kunai-mdinfo="{&#34;meta&#34;: {&#34;header&#34;: [&#34;linalg&#34;], &#34;id-type&#34;: [&#34;function template&#34;], &#34;namespace&#34;: [&#34;std::linalg&#34;], &#34;cpp&#34;: [&#34;cpp26&#34;]}, &#34;sources&#34;: [{&#34;id&#34;: &#34;e5dceb7854fc465479014a43480d83085c109a07&#34;, &#34;source&#34;: &#34;#include &lt;array&gt;\n#include &lt;iostream&gt;\n#include &lt;linalg&gt;\n#include &lt;mdspan&gt;\n#include &lt;vector&gt;\n\ntemplate &lt;class Matrix&gt;\nvoid print_mat(const Matrix&amp; A) {\n for(int i = 0; i &lt; A.extent(0); ++i) {\n for(int j = 0; j &lt; i; ++j) {\n std::cout &lt;&lt; A[j, i] &lt;&lt; &#39; &#39;;\n }\n for(int j = i; j &lt; A.extent(1) - 1; ++j) {\n std::cout &lt;&lt; A[i, j] &lt;&lt; &#39; &#39;;\n }\n std::cout &lt;&lt; A[i, A.extent(1) - 1] &lt;&lt; &#39;\\n&#39;;\n }\n}\n\ntemplate &lt;class Vector&gt;\nvoid init_vec(Vector&amp; v) {\n for (int i = 0; i &lt; v.extent(0); ++i) {\n v[i] = i;\n }\n}\n\ntemplate &lt;class Matrix&gt;\nvoid init_mat(Matrix&amp; A) {\n for(int i = 0; i &lt; A.extent(0); ++i) {\n for(int j = i; j &lt; 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&lt;double&gt; A_vec(N * N);\n std::vector&lt;double&gt; x_vec(N);\n std::array&lt;double, N&gt; y_vec;\n\n std::mdspan&lt;\n double,\n std::extents&lt;size_t, N, N&gt;,\n std::linalg::layout_blas_packed&lt;\n std::linalg::upper_triangle_t,\n std::linalg::row_major_t&gt;\n &gt; 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 &lt;&lt; \&#34;(1)\\n\&#34;;\n std::linalg::matrix_rank_1_update(\n x,\n A,\n std::linalg::upper_triangle);\n print_mat(A);\n\n // (2)\n init_mat(A);\n std::cout &lt;&lt; \&#34;(2)\\n\&#34;;\n std::linalg::matrix_rank_1_update(\n std::execution::par,\n x,\n A,\n std::linalg::upper_triangle);\n print_mat(A);\n\n // (3)\n init_mat(A);\n std::cout &lt;&lt; \&#34;(3)\\n\&#34;;\n std::linalg::matrix_rank_1_update(\n -1.0,\n x,\n A,\n std::linalg::upper_triangle);\n print_mat(A);\n\n // (4)\n init_mat(A);\n std::cout &lt;&lt; \&#34;(4)\\n\&#34;;\n std::linalg::matrix_rank_1_update(\n std::execution::par,\n -1.0,\n x,\n A,\n std::linalg::upper_triangle);\n print_mat(A);\n\n return 0;\n}\n&#34;}], &#34;page_id&#34;: [&#34;reference&#34;, &#34;linalg&#34;, &#34;symmetric_matrix_rank_1_update&#34;]}">
87+
<header data-kunai-mdinfo="{&#34;meta&#34;: {&#34;header&#34;: [&#34;linalg&#34;], &#34;id-type&#34;: [&#34;function template&#34;], &#34;namespace&#34;: [&#34;std::linalg&#34;], &#34;cpp&#34;: [&#34;cpp26&#34;]}, &#34;sources&#34;: [{&#34;id&#34;: &#34;508f88a8df4a6def86481e0ff6af73ff9c0d5e0d&#34;, &#34;source&#34;: &#34;#include &lt;array&gt;\n#include &lt;iostream&gt;\n#include &lt;linalg&gt;\n#include &lt;mdspan&gt;\n#include &lt;vector&gt;\n\ntemplate &lt;class Matrix&gt;\nvoid print_mat(const Matrix&amp; A) {\n for(int i = 0; i &lt; A.extent(0); ++i) {\n for(int j = 0; j &lt; i; ++j) {\n std::cout &lt;&lt; A[j, i] &lt;&lt; &#39; &#39;;\n }\n for(int j = i; j &lt; A.extent(1) - 1; ++j) {\n std::cout &lt;&lt; A[i, j] &lt;&lt; &#39; &#39;;\n }\n std::cout &lt;&lt; A[i, A.extent(1) - 1] &lt;&lt; &#39;\\n&#39;;\n }\n}\n\ntemplate &lt;class Vector&gt;\nvoid init_vec(Vector&amp; v) {\n for (int i = 0; i &lt; v.extent(0); ++i) {\n v[i] = i;\n }\n}\n\ntemplate &lt;class Matrix&gt;\nvoid init_mat(Matrix&amp; A) {\n for(int i = 0; i &lt; A.extent(0); ++i) {\n for(int j = i; j &lt; 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&lt;double&gt; A_vec(N * N);\n std::vector&lt;double&gt; x_vec(N);\n std::array&lt;double, N&gt; y_vec;\n\n std::mdspan&lt;\n double,\n std::extents&lt;size_t, N, N&gt;,\n std::linalg::layout_blas_packed&lt;\n std::linalg::upper_triangle_t,\n std::linalg::row_major_t&gt;\n &gt; 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 &lt;&lt; \&#34;(1)\\n\&#34;;\n std::linalg::symmetric_matrix_rank_1_update(\n x,\n A,\n std::linalg::upper_triangle);\n print_mat(A);\n\n // (2)\n init_mat(A);\n std::cout &lt;&lt; \&#34;(2)\\n\&#34;;\n std::linalg::symmetric_matrix_rank_1_update(\n std::execution::par,\n x,\n A,\n std::linalg::upper_triangle);\n print_mat(A);\n\n // (3)\n init_mat(A);\n std::cout &lt;&lt; \&#34;(3)\\n\&#34;;\n std::linalg::symmetric_matrix_rank_1_update(\n -1.0,\n x,\n A,\n std::linalg::upper_triangle);\n print_mat(A);\n\n // (4)\n init_mat(A);\n std::cout &lt;&lt; \&#34;(4)\\n\&#34;;\n std::linalg::symmetric_matrix_rank_1_update(\n std::execution::par,\n -1.0,\n x,\n A,\n std::linalg::upper_triangle);\n print_mat(A);\n\n return 0;\n}\n&#34;}], &#34;page_id&#34;: [&#34;reference&#34;, &#34;linalg&#34;, &#34;symmetric_matrix_rank_1_update&#34;]}">
8888
<nav class="navbar navbar-default" role="navigation">
8989
<div class="container-fluid">
9090
<div class="navbar-header">
@@ -204,8 +204,8 @@
204204

205205
<p class="text-right"><small>
206206
最終更新日時(UTC):
207-
<span itemprop="datePublished" content="2024-07-03T07:08:27">
208-
2024年07月03日 07時08分27秒
207+
<span itemprop="datePublished" content="2024-07-04T09:27:59">
208+
2024年07月04日 09時27分59秒
209209
</span>
210210
<br/>
211211
<span itemprop="author" itemscope itemtype="http://schema.org/Person">
@@ -306,7 +306,7 @@ <h2>備考</h2>
306306
<p>(3), (4)は$A \leftarrow A - xx^T$を行うために用意された。</p>
307307
<h2></h2>
308308
<p><strong>[注意] 処理系にあるコンパイラで確認していないため、間違っているかもしれません。</strong></p>
309-
<p><div class="yata" id="e5dceb7854fc465479014a43480d83085c109a07"><div class="codehilite"><pre><span></span><code><span class="cp">#include</span> <span class="cpf"><a href="../array.html">&lt;array&gt;</a></span><span class="cp"></span>
309+
<p><div class="yata" id="508f88a8df4a6def86481e0ff6af73ff9c0d5e0d"><div class="codehilite"><pre><span></span><code><span class="cp">#include</span> <span class="cpf"><a href="../array.html">&lt;array&gt;</a></span><span class="cp"></span>
310310
<span class="cp">#include</span> <span class="cpf"><a href="../iostream.html">&lt;iostream&gt;</a></span><span class="cp"></span>
311311
<span class="cp">#include</span> <span class="cpf"><a href="../linalg.html">&lt;linalg&gt;</a></span><span class="cp"></span>
312312
<span class="cp">#include</span> <span class="cpf"><a href="../mdspan.html">&lt;mdspan&gt;</a></span><span class="cp"></span>
@@ -365,7 +365,7 @@ <h2>例</h2>
365365

366366
<span class="c1">// (1)</span>
367367
<span class="n"><a href="../iostream/cout.html">std::cout</a></span> <span class="o">&lt;&lt;</span> <span class="s">"(1)</span><span class="se">\n</span><span class="s">"</span><span class="p">;</span>
368-
<span class="n">std</span><span class="o">::</span><span class="n">linalg</span><span class="o">::</span><span class="n">matrix_rank_1_update</span><span class="p">(</span>
368+
<span class="n">std</span><span class="o">::</span><span class="n">linalg</span><span class="o">::</span><span class="n">symmetric_matrix_rank_1_update</span><span class="p">(</span>
369369
<span class="n">x</span><span class="p">,</span>
370370
<span class="n">A</span><span class="p">,</span>
371371
<span class="n">std</span><span class="o">::</span><span class="n">linalg</span><span class="o">::</span><span class="n">upper_triangle</span><span class="p">);</span>
@@ -374,7 +374,7 @@ <h2>例</h2>
374374
<span class="c1">// (2)</span>
375375
<span class="n">init_mat</span><span class="p">(</span><span class="n">A</span><span class="p">);</span>
376376
<span class="n"><a href="../iostream/cout.html">std::cout</a></span> <span class="o">&lt;&lt;</span> <span class="s">"(2)</span><span class="se">\n</span><span class="s">"</span><span class="p">;</span>
377-
<span class="n">std</span><span class="o">::</span><span class="n">linalg</span><span class="o">::</span><span class="n">matrix_rank_1_update</span><span class="p">(</span>
377+
<span class="n">std</span><span class="o">::</span><span class="n">linalg</span><span class="o">::</span><span class="n">symmetric_matrix_rank_1_update</span><span class="p">(</span>
378378
<span class="n"><a href="../execution/execution/execution_policy.html">std::execution::par</a></span><span class="p">,</span>
379379
<span class="n">x</span><span class="p">,</span>
380380
<span class="n">A</span><span class="p">,</span>
@@ -384,7 +384,7 @@ <h2>例</h2>
384384
<span class="c1">// (3)</span>
385385
<span class="n">init_mat</span><span class="p">(</span><span class="n">A</span><span class="p">);</span>
386386
<span class="n"><a href="../iostream/cout.html">std::cout</a></span> <span class="o">&lt;&lt;</span> <span class="s">"(3)</span><span class="se">\n</span><span class="s">"</span><span class="p">;</span>
387-
<span class="n">std</span><span class="o">::</span><span class="n">linalg</span><span class="o">::</span><span class="n">matrix_rank_1_update</span><span class="p">(</span>
387+
<span class="n">std</span><span class="o">::</span><span class="n">linalg</span><span class="o">::</span><span class="n">symmetric_matrix_rank_1_update</span><span class="p">(</span>
388388
<span class="o">-</span><span class="mf">1.0</span><span class="p">,</span>
389389
<span class="n">x</span><span class="p">,</span>
390390
<span class="n">A</span><span class="p">,</span>
@@ -394,7 +394,7 @@ <h2>例</h2>
394394
<span class="c1">// (4)</span>
395395
<span class="n">init_mat</span><span class="p">(</span><span class="n">A</span><span class="p">);</span>
396396
<span class="n"><a href="../iostream/cout.html">std::cout</a></span> <span class="o">&lt;&lt;</span> <span class="s">"(4)</span><span class="se">\n</span><span class="s">"</span><span class="p">;</span>
397-
<span class="n">std</span><span class="o">::</span><span class="n">linalg</span><span class="o">::</span><span class="n">matrix_rank_1_update</span><span class="p">(</span>
397+
<span class="n">std</span><span class="o">::</span><span class="n">linalg</span><span class="o">::</span><span class="n">symmetric_matrix_rank_1_update</span><span class="p">(</span>
398398
<span class="n"><a href="../execution/execution/execution_policy.html">std::execution::par</a></span><span class="p">,</span>
399399
<span class="o">-</span><span class="mf">1.0</span><span class="p">,</span>
400400
<span class="n">x</span><span class="p">,</span>

0 commit comments

Comments
 (0)