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": "cbfd386b0ba8ef901034e24aa885cd451e250125", "source": "#include <array>\n#include <complex>\n#include <iostream>\n#include <linalg>\n#include <mdspan>\n#include <vector>\n\ntemplate <class Vector>\nvoid print(const Vector& v, const std::string& name) {\n for (int i = 0; i < v.extent(0); ++i) {\n std::cout << name << \"[\" << i << \"]\" << \" = \" << v[i] << '\\n';\n }\n}\n\nint main()\n{\n constexpr size_t N = 4;\n constexpr size_t M = 4;\n\n std::vector<std::complex<double>> A_vec(N*M);\n std::vector<double> x_vec(M);\n std::array<double, N> y_vec, z_vec;\n\n std::mdspan<\n double,\n std::extents<size_t, N, M>,\n std::linalg::layout_blas_packed<\n std::linalg::upper_triangle_t,\n std::linalg::row_major_t>\n > A(A_vec.data());\n std::mdspan x(x_vec.data(), M);\n std::mdspan y(y_vec.data(), N);\n std::mdspan z(z_vec.data(), N);\n\n for(int i = 0; i < A.extent(0); ++i) {\n for(int j = i; j < A.extent(1); ++j) {\n A[i,j] = std::complex<double>(i, j);\n }\n }\n\n for(int j = 0; j < x.extent(0); ++j) {\n x[j] = j;\n }\n\n // (1)\n std::cout << \"(1)\\n\";\n std::linalg::hermitian_matrix_vector_product(A, std::linalg::upper_triangle, x, y);\n print(y, \"y\");\n\n // (2)\n std::cout << \"(2)\\n\";\n std::linalg::hermitian_matrix_vector_product(std::execution::par, A, std::linalg::upper_triangle, x, y);\n print(y, \"y\");\n\n for(int i = 0; i < y.extent(0); ++i) {\n y[i] = -i;\n }\n\n // (3)\n std::cout << \"(3)\\n\";\n std::linalg::hermitian_matrix_vector_product(A, std::linalg::upper_triangle, x, y, z);\n print(z, \"z\");\n\n // (4)\n std::cout << \"(4)\\n\";\n std::linalg::hermitian_matrix_vector_product(std::execution::par, A, std::linalg::upper_triangle, x, y, z);\n print(z, \"z\");\n\n return 0;\n}\n"}], "page_id": ["reference", "linalg", "hermitian_matrix_vector_product"]} ">
87
+ < header data-kunai-mdinfo ="{"meta": {"header": ["linalg"], "id-type": ["function template"], "namespace": ["std::linalg"], "cpp": ["cpp26"]}, "sources": [{"id": "57af623807ea7b4e9b34bde27a1f2ccd9add2517", "source": "#include <array>\n#include <complex>\n#include <iostream>\n#include <linalg>\n#include <mdspan>\n#include <vector>\n\ntemplate <class Vector>\nvoid print(const Vector& v, const std::string& name) {\n for (int i = 0; i < v.extent(0); ++i) {\n std::cout << name << \"[\" << i << \"]\" << \" = \" << v[i] << '\\n';\n }\n}\n\nint main()\n{\n constexpr size_t N = 4;\n constexpr size_t M = 4;\n\n std::vector<std::complex<double>> A_vec(N*M);\n std::vector<double> x_vec(M);\n std::array<double, N> y_vec, z_vec;\n\n std::mdspan<\n std::complex<double>,\n std::extents<size_t, N, M>,\n std::linalg::layout_blas_packed<\n std::linalg::upper_triangle_t,\n std::linalg::row_major_t>\n > A(A_vec.data());\n std::mdspan x(x_vec.data(), M);\n std::mdspan y(y_vec.data(), N);\n std::mdspan z(z_vec.data(), N);\n\n for(int i = 0; i < A.extent(0); ++i) {\n for(int j = i; j < A.extent(1); ++j) {\n A[i,j] = std::complex<double>(i, j);\n }\n }\n\n for(int j = 0; j < x.extent(0); ++j) {\n x[j] = j;\n }\n\n // (1)\n std::cout << \"(1)\\n\";\n std::linalg::hermitian_matrix_vector_product(A, std::linalg::upper_triangle, x, y);\n print(y, \"y\");\n\n // (2)\n std::cout << \"(2)\\n\";\n std::linalg::hermitian_matrix_vector_product(std::execution::par, A, std::linalg::upper_triangle, x, y);\n print(y, \"y\");\n\n for(int i = 0; i < y.extent(0); ++i) {\n y[i] = -i;\n }\n\n // (3)\n std::cout << \"(3)\\n\";\n std::linalg::hermitian_matrix_vector_product(A, std::linalg::upper_triangle, x, y, z);\n print(z, \"z\");\n\n // (4)\n std::cout << \"(4)\\n\";\n std::linalg::hermitian_matrix_vector_product(std::execution::par, A, std::linalg::upper_triangle, x, y, z);\n print(z, \"z\");\n\n return 0;\n}\n"}], "page_id": ["reference", "linalg", "hermitian_matrix_vector_product"]} ">
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-26T02:41:39 ">
208
- 2024年06月26日 02時41分39秒
207
+ < span itemprop ="datePublished " content ="2024-06-26T02:45:26 ">
208
+ 2024年06月26日 02時45分26秒
209
209
</ span >
210
210
< br />
211
211
< span itemprop ="author " itemscope itemtype ="http://schema.org/Person ">
@@ -316,7 +316,7 @@ <h2>備考</h2>
316
316
</ ul >
317
317
< h2 > 例</ h2 >
318
318
< p > < strong > [注意] 処理系にあるコンパイラで確認していないため、間違っているかもしれません。</ strong > </ p >
319
- < p > < div class ="yata " id ="cbfd386b0ba8ef901034e24aa885cd451e250125 "> < 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 >
319
+ < p > < div class ="yata " id ="57af623807ea7b4e9b34bde27a1f2ccd9add2517 "> < 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 >
320
320
< span class ="cp "> #include</ span > < span class ="cpf "> < a href ="../complex.html "> <complex></ a > </ span > < span class ="cp "> </ span >
321
321
< span class ="cp "> #include</ span > < span class ="cpf "> < a href ="../iostream.html "> <iostream></ a > </ span > < span class ="cp "> </ span >
322
322
< span class ="cp "> #include</ span > < span class ="cpf "> < a href ="../linalg.html "> <linalg></ a > </ span > < span class ="cp "> </ span >
@@ -340,7 +340,7 @@ <h2>例</h2>
340
340
< span class ="n "> < a href ="../array/array.html "> std::array</ a > </ span > < span class ="o "> <</ span > < span class ="kt "> double</ span > < span class ="p "> ,</ span > < span class ="n "> N</ span > < span class ="o "> ></ span > < span class ="n "> y_vec</ span > < span class ="p "> ,</ span > < span class ="n "> z_vec</ span > < span class ="p "> ;</ span >
341
341
342
342
< span class ="n "> < a href ="../mdspan/mdspan.html "> std::mdspan</ a > </ span > < span class ="o "> <</ span >
343
- < span class ="kt "> double</ span > < span class ="p "> ,</ span >
343
+ < 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 >
344
344
< span class ="n "> < a href ="../mdspan/extents.html "> std::extents</ a > </ span > < span class ="o "> <</ span > < span class ="kt "> size_t</ span > < span class ="p "> ,</ span > < span class ="n "> N</ span > < span class ="p "> ,</ span > < span class ="n "> M</ span > < span class ="o "> ></ span > < span class ="p "> ,</ span >
345
345
< span class ="n "> std</ span > < span class ="o "> ::</ span > < span class ="n "> linalg</ span > < span class ="o "> ::</ span > < span class ="n "> layout_blas_packed</ span > < span class ="o "> <</ span >
346
346
< span class ="n "> std</ span > < span class ="o "> ::</ span > < span class ="n "> linalg</ span > < span class ="o "> ::</ span > < span class ="n "> upper_triangle_t</ span > < span class ="p "> ,</ span >
0 commit comments