28
28
< meta property ="og:url " content ="https://cpprefjp.github.io/reference/linalg/matrix_vector_product.html " />
29
29
< meta property ="og:site_name " content ="cpprefjp - C++日本語リファレンス " />
30
30
< meta property ="og:type " content ="article " />
31
- < meta property ="og:description " content ="(ここには、関数・変数・定数の概要を記述します。必須事項です。) " />
31
+ < meta property ="og:description " content ="行列とベクトルの積を計算する。 " />
32
32
< meta name ="twitter:card " content ="summary " />
33
33
< meta name ="twitter:title " content ="matrix_vector_product - cpprefjp C++日本語リファレンス " />
34
34
< meta name ="twitter:url " content ="https://cpprefjp.github.io/reference/linalg/matrix_vector_product.html " />
35
- < meta name ="twitter:description " content ="(ここには、関数・変数・定数の概要を記述します。必須事項です。) " />
35
+ < meta name ="twitter:description " content ="行列とベクトルの積を計算する。 " />
36
36
37
37
38
38
< link rel ="alternate " type ="application/atom+xml " title ="Atom " href ="https://cpprefjp.github.io/rss.xml " />
204
204
205
205
< p class ="text-right "> < small >
206
206
最終更新日時(UTC):
207
- < span itemprop ="datePublished " content ="2024-06-25T03:50:24 ">
208
- 2024年06月25日 03時50分24秒
207
+ < span itemprop ="datePublished " content ="2024-06-25T04:38:38 ">
208
+ 2024年06月25日 04時38分38秒
209
209
</ span >
210
210
< br />
211
211
< span itemprop ="author " itemscope itemtype ="http://schema.org/Person ">
235
235
< span class ="n "> out</ span > < span class ="o "> -</ span > < span class ="n "> vector</ span > < span class ="n "> OutVec</ span > < span class ="o "> ></ span >
236
236
< span class ="kt "> void</ span > < span class ="n "> matrix_vector_product</ span > < span class ="p "> (</ span > < span class ="n "> InMat</ span > < span class ="n "> A</ span > < span class ="p "> ,</ span >
237
237
< span class ="n "> InVec</ span > < span class ="n "> x</ span > < span class ="p "> ,</ span >
238
- < span class ="n "> OutVec</ span > < span class ="n "> y</ span > < span class ="p "> );</ span >
238
+ < span class ="n "> OutVec</ span > < span class ="n "> y</ span > < span class ="p "> );</ span > < span class =" c1 " > // (1) </ span >
239
239
240
240
< span class ="k "> template</ span > < span class ="o "> <</ span > < span class ="k "> class</ span > < span class ="nc "> < a href ="../execution/execution/execution_policy.html "> ExecutionPolicy</ a > </ span > < span class ="p "> ,</ span >
241
241
< span class ="n "> in</ span > < span class ="o "> -</ span > < span class ="n "> matrix</ span > < span class ="n "> InMat</ span > < span class ="p "> ,</ span >
244
244
< span class ="kt "> void</ span > < span class ="n "> matrix_vector_product</ span > < span class ="p "> (</ span > < span class ="n "> < a href ="../execution/execution/execution_policy.html "> ExecutionPolicy</ a > </ span > < span class ="o "> &&</ span > < span class ="n "> exec</ span > < span class ="p "> ,</ span >
245
245
< span class ="n "> InMat</ span > < span class ="n "> A</ span > < span class ="p "> ,</ span >
246
246
< span class ="n "> InVec</ span > < span class ="n "> x</ span > < span class ="p "> ,</ span >
247
- < span class ="n "> OutVec</ span > < span class ="n "> y</ span > < span class ="p "> );</ span >
247
+ < span class ="n "> OutVec</ span > < span class ="n "> y</ span > < span class ="p "> );</ span > < span class =" c1 " > // (2) </ span >
248
248
249
249
< span class ="k "> template</ span > < span class ="o "> <</ span > < span class ="n "> in</ span > < span class ="o "> -</ span > < span class ="n "> matrix</ span > < span class ="n "> InMat</ span > < span class ="p "> ,</ span >
250
250
< span class ="n "> in</ span > < span class ="o "> -</ span > < span class ="n "> vector</ span > < span class ="n "> InVec1</ span > < span class ="p "> ,</ span >
253
253
< span class ="kt "> void</ span > < span class ="n "> matrix_vector_product</ span > < span class ="p "> (</ span > < span class ="n "> InMat</ span > < span class ="n "> A</ span > < span class ="p "> ,</ span >
254
254
< span class ="n "> InVec1</ span > < span class ="n "> x</ span > < span class ="p "> ,</ span >
255
255
< span class ="n "> InVec2</ span > < span class ="n "> y</ span > < span class ="p "> ,</ span >
256
- < span class ="n "> OutVec</ span > < span class ="n "> z</ span > < span class ="p "> );</ span >
256
+ < span class ="n "> OutVec</ span > < span class ="n "> z</ span > < span class ="p "> );</ span > < span class =" c1 " > // (3) </ span >
257
257
258
258
< span class ="k "> template</ span > < span class ="o "> <</ span > < span class ="k "> class</ span > < span class ="nc "> < a href ="../execution/execution/execution_policy.html "> ExecutionPolicy</ a > </ span > < span class ="p "> ,</ span >
259
259
< span class ="n "> in</ span > < span class ="o "> -</ span > < span class ="n "> matrix</ span > < span class ="n "> InMat</ span > < span class ="p "> ,</ span >
264
264
< span class ="n "> InMat</ span > < span class ="n "> A</ span > < span class ="p "> ,</ span >
265
265
< span class ="n "> InVec1</ span > < span class ="n "> x</ span > < span class ="p "> ,</ span >
266
266
< span class ="n "> InVec2</ span > < span class ="n "> y</ span > < span class ="p "> ,</ span >
267
- < span class ="n "> OutVec</ span > < span class ="n "> z</ span > < span class ="p "> );</ span >
267
+ < span class ="n "> OutVec</ span > < span class ="n "> z</ span > < span class ="p "> );</ span > < span class =" c1 " > // (4) </ span >
268
268
< span class ="p "> }</ span >
269
269
</ code > </ pre > </ div >
270
270
</ p >
271
271
< h2 > 概要</ h2 >
272
- < p > (ここには、関数・変数・定数の概要を記述します。必須事項です。)</ p >
273
- < p > (必要な項目を省略する場合には、「(執筆中)」と書いておいてください。)</ p >
274
- < h2 > < a class ="cpprefjp-defined-word " data-desc ="関数であればオーバーロード解決に参加するための条件、それ以外であれば受け付ける型の条件 "> テンプレートパラメータ制約</ a > </ h2 >
275
- < p > (ここには、関数がオーバーロード解決に参加するための条件を記載します。SFINAE-friendlyな関数の条件、制約テンプレートによるオーバーロードの条件などを記載します。)</ p >
272
+ < p > 行列とベクトルの積を計算する。</ p >
273
+ < ul >
274
+ < li > (1): $y \leftarrow Ax$</ li >
275
+ < li > (2): (1)を指定された実行ポリシーで実行する。</ li >
276
+ < li > (3): $z \leftarrow y + Ax$</ li >
277
+ < li > (4): (3)を指定された実行ポリシーで実行する。</ li >
278
+ </ ul >
276
279
< h2 > < a class ="cpprefjp-defined-word " data-desc ="満たさなければプログラムが不適格となる要件。`static_assert`や関数のdelete宣言などに相当する "> 適格要件</ a > </ h2 >
277
280
< ul >
278
281
< li > (1), (2), (3), (4): < code > < a href ="possibly-multipliable.html "> possibly-multipliable</ a > <decltype(A), decltype(x), decltype(y)>()</ code > が< code > true</ code > </ li >
@@ -297,6 +300,7 @@ <h2>備考</h2>
297
300
< li > (3), (4): < code > z</ code > に< code > y</ code > を入れても良い。</ li >
298
301
</ ul >
299
302
< h2 > 例</ h2 >
303
+ < p > < strong > [注意] 処理系にあるコンパイラで確認していないため、間違っているかもしれません。</ strong > </ p >
300
304
< p > < div class ="yata " id ="ed1ea3467bc7bbaaff6312b21c0ae402fd8d782e "> < 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 >
301
305
< span class ="cp "> #include</ span > < span class ="cpf "> < a href ="../iostream.html "> <iostream></ a > </ span > < span class ="cp "> </ span >
302
306
< span class ="cp "> #include</ span > < span class ="cpf "> < a href ="../linalg.html "> <linalg></ a > </ span > < span class ="cp "> </ span >
@@ -386,7 +390,7 @@ <h3>出力</h3>
386
390
< h2 > バージョン</ h2 >
387
391
< h3 > 言語</ h3 >
388
392
< ul >
389
- < li > C++11 </ li >
393
+ < li > C++26 </ li >
390
394
</ ul >
391
395
< h3 > 処理系</ h3 >
392
396
< ul >
0 commit comments