Skip to content

Commit 0ba8a90

Browse files
author
cpprefjp-autoupdate
committed
update automatically
1 parent 337f583 commit 0ba8a90

File tree

6 files changed

+1381
-6461
lines changed

6 files changed

+1381
-6461
lines changed

reference/linalg.html

Lines changed: 4 additions & 4 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-06-01T10:29:46">
180-
2024年06月01日 10時29分46秒
179+
<span itemprop="datePublished" content="2024-06-16T08:54:12">
180+
2024年06月16日 08時54分12秒
181181
</span>
182182
<br/>
183183
<span itemprop="author" itemscope itemtype="http://schema.org/Person">
@@ -341,12 +341,12 @@ <h2>BLAS 1アルゴリズム</h2>
341341
<td>C++26</td>
342342
</tr>
343343
<tr>
344-
<td><code>add</code></td>
344+
<td><code><a href="linalg/add.html">add</a></code></td>
345345
<td>xAXPY: 2つのベクトル/行列の要素を加算する (function template)</td>
346346
<td>C++26</td>
347347
</tr>
348348
<tr>
349-
<td><code>dot</code></td>
349+
<td><code><a href="linalg/dot.html">dot</a></code></td>
350350
<td>xDOT, xDOTU: 2つのベクトルのドット積を求める (function template)</td>
351351
<td>C++26</td>
352352
</tr>

reference/linalg/dot.html

Lines changed: 346 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,346 @@
1+
<!doctype html>
2+
<html class="cpprefjp" lang="ja" itemscope="" itemtype="http://schema.org/WebPage">
3+
<head>
4+
5+
6+
<!-- Google tag (gtag.js) -->
7+
<script async src="https://www.googletagmanager.com/gtag/js?id=G-NXNBNVBTJS"></script>
8+
<script>
9+
window.dataLayer = window.dataLayer || [];
10+
function gtag(){dataLayer.push(arguments);}
11+
gtag('js', new Date());
12+
13+
gtag('config', 'G-NXNBNVBTJS');
14+
</script>
15+
16+
17+
<meta charset="UTF-8">
18+
19+
<title>dot - cpprefjp C++日本語リファレンス</title>
20+
21+
<meta name="viewport" content="width=device-width,initial-scale=1">
22+
<meta name="keywords" content="
23+
C++,標準ライブラリ,リファレンス,ドキュメント,STL,std,linalg,function template,std::linalg,cpp26
24+
">
25+
<meta name="title" content="dot - cpprefjp C++日本語リファレンス" />
26+
<meta itemprop="name" content="dot - cpprefjp C++日本語リファレンス" />
27+
<meta property="og:title" content="dot - cpprefjp C++日本語リファレンス" />
28+
<meta property="og:url" content="https://cpprefjp.github.io/reference/linalg/dot.html" />
29+
<meta property="og:site_name" content="cpprefjp - C++日本語リファレンス" />
30+
<meta property="og:type" content="article" />
31+
<meta property="og:description" content="2つのベクトル`v1`、`v2`の内積を計算する。" />
32+
<meta name="twitter:card" content="summary" />
33+
<meta name="twitter:title" content="dot - cpprefjp C++日本語リファレンス" />
34+
<meta name="twitter:url" content="https://cpprefjp.github.io/reference/linalg/dot.html" />
35+
<meta name="twitter:description" content="2つのベクトル`v1`、`v2`の内積を計算する。" />
36+
37+
38+
<link rel="alternate" type="application/atom+xml" title="Atom" href="https://cpprefjp.github.io/rss.xml" />
39+
40+
41+
<link rel="apple-touch-icon" sizes="180x180" href="../../static/favicons/apple-touch-icon.png?cachebust=0e476399d981581c37613c7023035bba5447c826">
42+
<link rel="icon" type="image/png" sizes="32x32" href="../../static/favicons/favicon-32x32.png?cachebust=0e476399d981581c37613c7023035bba5447c826">
43+
<link rel="icon" type="image/png" sizes="16x16" href="../../static/favicons/favicon-16x16.png?cachebust=0e476399d981581c37613c7023035bba5447c826">
44+
<link rel="manifest" href="../../manifest.json?cachebust=0e476399d981581c37613c7023035bba5447c826">
45+
<meta name="theme-color" content="#f5f8fc">
46+
47+
<link rel="stylesheet" href="../../static/pygments/default.css?cachebust=0e476399d981581c37613c7023035bba5447c826">
48+
<!-- <link rel="stylesheet" href="../../static/css/root.css"> -->
49+
50+
51+
52+
<script>
53+
window.MathJax = {
54+
tex: {
55+
inlineMath: [ ['$','$'] ],
56+
displayMath: [ ['$$','$$'] ],
57+
processEscapes: true
58+
},
59+
chtml: {
60+
displayAlign: 'left',
61+
displayIndent: '2.0em',
62+
},
63+
};
64+
</script>
65+
<!-- IEはサポートしないので https://polyfill.io/v3/polyfill.min.js?features=es6 は読み込まない -->
66+
<script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
67+
68+
69+
70+
<link href="../../static/kunai/css/kunai-stage-0.css?cachebust=0e476399d981581c37613c7023035bba5447c826" rel="stylesheet">
71+
<link href="../../static/kunai/css/kunai-stage-1.css?cachebust=0e476399d981581c37613c7023035bba5447c826" rel="stylesheet">
72+
<link href="../../static/kunai/css/kunai-stage-2.css?cachebust=0e476399d981581c37613c7023035bba5447c826" rel="stylesheet">
73+
<link href="../../static/kunai/css/kunai-stage-3.css?cachebust=0e476399d981581c37613c7023035bba5447c826" rel="stylesheet">
74+
75+
<script type="text/javascript" src="../../static/kunai/js/kunai-vendor.js?cachebust=0e476399d981581c37613c7023035bba5447c826"></script>
76+
<script type="text/javascript" src="../../static/kunai/js/kunai.js?cachebust=0e476399d981581c37613c7023035bba5447c826"></script>
77+
78+
<script type="text/javascript">
79+
document.addEventListener('DOMContentLoaded', function() {
80+
var kn = new Kunai;
81+
kn.cpprefjp();
82+
});
83+
</script>
84+
85+
</head>
86+
<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;page_id&#34;: [&#34;reference&#34;, &#34;linalg&#34;, &#34;dot&#34;]}">
88+
<nav class="navbar navbar-default" role="navigation">
89+
<div class="container-fluid">
90+
<div class="navbar-header">
91+
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar-collapse">
92+
<span class="sr-only">Toggle navigation</span>
93+
<span class="icon-bar"></span>
94+
<span class="icon-bar"></span>
95+
<span class="icon-bar"></span>
96+
</button>
97+
<a class="navbar-brand" href="../../index.html">
98+
<div class="title-wrapper clearfix">
99+
<div class="title">cpprefjp - C++日本語リファレンス</div>
100+
</div>
101+
</a>
102+
</div>
103+
104+
<div class="collapse navbar-collapse" id="navbar-collapse">
105+
<ul class="nav navbar-nav navbar-right">
106+
<li>
107+
<div class="google-search">
108+
109+
110+
<script>
111+
(function() {
112+
var cx = '013316413321391058734:ji_u66hl7hq';
113+
var gcse = document.createElement('script');
114+
gcse.type = 'text/javascript';
115+
gcse.async = true;
116+
gcse.src = (document.location.protocol == 'https:' ? 'https:' : 'http:') +
117+
'//www.google.com/cse/cse.js?cx=' + cx;
118+
var s = document.getElementsByTagName('script')[0];
119+
s.parentNode.insertBefore(gcse, s);
120+
})();
121+
</script>
122+
<div class="gcse-search"></div>
123+
124+
125+
</div>
126+
</li>
127+
<li>
128+
<a href="https://github.com/cpprefjp/site">GitHub Project</a>
129+
</li>
130+
</ul>
131+
</div>
132+
</div>
133+
</nav>
134+
</header>
135+
136+
<main id="main" role="main">
137+
<div class="container-fluid">
138+
<div class="row">
139+
<div class="col-sm-9 col-sm-push-3" itemscope itemtype="http://schema.org/Article">
140+
<div class="row">
141+
<div class="col-sm-12 google-search-result">
142+
<gcse:searchresults></gcse:searchresults>
143+
</div>
144+
</div>
145+
<div class="row">
146+
<div class="col-sm-12 content-header">
147+
148+
<ol class="breadcrumb">
149+
150+
<li itemscope itemtype="http://www.schema.org/SiteNavigationElement">
151+
<span>
152+
153+
<a href="../../index.html" itemprop="url">
154+
155+
<i class="fa fa-fw fa-home"></i>
156+
157+
</a>
158+
159+
</span>
160+
</li>
161+
162+
<li itemscope itemtype="http://www.schema.org/SiteNavigationElement">
163+
<span>
164+
165+
<a href="../../reference.html" itemprop="url">
166+
167+
<span itemprop="name">リファレンス</span>
168+
169+
</a>
170+
171+
</span>
172+
</li>
173+
174+
<li itemscope itemtype="http://www.schema.org/SiteNavigationElement">
175+
<span>
176+
177+
<a href="../../reference/linalg.html" itemprop="url">
178+
179+
<span itemprop="name">linalg</span>
180+
181+
</a>
182+
183+
</span>
184+
</li>
185+
186+
<li class="active" itemscope itemtype="http://www.schema.org/SiteNavigationElement">
187+
<span>
188+
189+
190+
<span itemprop="name">dot</span>
191+
192+
193+
</span>
194+
</li>
195+
196+
</ol>
197+
<div class="crsearch"></div>
198+
199+
</div>
200+
</div>
201+
<div class="row">
202+
<div class="col-sm-12 edit-button">
203+
204+
205+
<p class="text-right"><small>
206+
最終更新日時(UTC):
207+
<span itemprop="datePublished" content="2024-06-16T08:54:12">
208+
2024年06月16日 08時54分12秒
209+
</span>
210+
<br/>
211+
<span itemprop="author" itemscope itemtype="http://schema.org/Person">
212+
<span itemprop="name">Yuya Asano</span>
213+
</span>
214+
が更新
215+
</small></p>
216+
217+
218+
<p class="text-right">
219+
<a class="history" target="_blank" href="https://github.com/cpprefjp/site/commits/master/reference/linalg/dot.md">
220+
<span class="fa fa-fw fa-clock-o fa-flip-horizontal"></span>履歴
221+
</a>
222+
<a class="edit" target="_blank" href="https://github.com/cpprefjp/site/edit/master/reference/linalg/dot.md">
223+
<span class="fa fa-fw fa-pencil"></span>編集
224+
</a>
225+
</p>
226+
</div>
227+
</div>
228+
<div class="row">
229+
<div class="col-sm-12 content-body">
230+
231+
<div class="identifier-type">function template</div><div class="header">&lt;linalg&gt;</div><h1 itemprop="name"><span class="namespace" title="namespace std::linalg">std::linalg::</span><span class="token">dot</span><span class="cpp cpp26" title="C++26で追加">(C++26)</span></h1>
232+
<div itemprop="articleBody"><p><div class="codehilite"><pre><span></span><code><span class="k">namespace</span> <span class="n">std</span><span class="o">::</span><span class="n">linalg</span> <span class="p">{</span>
233+
<span class="k">template</span><span class="o">&lt;</span><span class="n">in</span><span class="o">-</span><span class="n">vector</span> <span class="n">InVec1</span><span class="p">,</span>
234+
<span class="n">in</span><span class="o">-</span><span class="n">vector</span> <span class="n">InVec2</span><span class="p">,</span>
235+
<span class="k">class</span> <span class="nc">Scalar</span><span class="o">&gt;</span>
236+
<span class="n">Scalar</span> <span class="n">dot</span><span class="p">(</span><span class="n">InVec1</span> <span class="n">v1</span><span class="p">,</span>
237+
<span class="n">InVec2</span> <span class="n">v2</span><span class="p">,</span>
238+
<span class="n">Scalar</span> <span class="n">init</span><span class="p">);</span> <span class="c1">// (1)</span>
239+
240+
<span class="k">template</span><span class="o">&lt;</span><span class="k">class</span> <span class="nc"><a href="../execution/execution/execution_policy.html">ExecutionPolicy</a></span><span class="p">,</span>
241+
<span class="n">in</span><span class="o">-</span><span class="n">vector</span> <span class="n">InVec1</span><span class="p">,</span>
242+
<span class="n">in</span><span class="o">-</span><span class="n">vector</span> <span class="n">InVec2</span><span class="p">,</span>
243+
<span class="k">class</span> <span class="nc">Scalar</span><span class="o">&gt;</span>
244+
<span class="n">Scalar</span> <span class="n">dot</span><span class="p">(</span><span class="n"><a href="../execution/execution/execution_policy.html">ExecutionPolicy</a></span><span class="o">&amp;&amp;</span> <span class="n">exec</span><span class="p">,</span>
245+
<span class="n">InVec1</span> <span class="n">v1</span><span class="p">,</span>
246+
<span class="n">InVec2</span> <span class="n">v2</span><span class="p">,</span>
247+
<span class="n">Scalar</span> <span class="n">init</span><span class="p">);</span> <span class="c1">// (2)</span>
248+
249+
<span class="k">template</span><span class="o">&lt;</span><span class="n">in</span><span class="o">-</span><span class="n">vector</span> <span class="n">InVec1</span><span class="p">,</span>
250+
<span class="n">in</span><span class="o">-</span><span class="n">vector</span> <span class="n">InVec2</span><span class="o">&gt;</span>
251+
<span class="k">auto</span> <span class="n">dot</span><span class="p">(</span><span class="n">InVec1</span> <span class="n">v1</span><span class="p">,</span>
252+
<span class="n">InVec2</span> <span class="n">v2</span><span class="p">);</span> <span class="c1">// (3)</span>
253+
254+
<span class="k">template</span><span class="o">&lt;</span><span class="k">class</span> <span class="nc"><a href="../execution/execution/execution_policy.html">ExecutionPolicy</a></span><span class="p">,</span>
255+
<span class="n">in</span><span class="o">-</span><span class="n">vector</span> <span class="n">InVec1</span><span class="p">,</span>
256+
<span class="n">in</span><span class="o">-</span><span class="n">vector</span> <span class="n">InVec2</span><span class="o">&gt;</span>
257+
<span class="k">auto</span> <span class="n">dot</span><span class="p">(</span><span class="n"><a href="../execution/execution/execution_policy.html">ExecutionPolicy</a></span><span class="o">&amp;&amp;</span> <span class="n">exec</span><span class="p">,</span>
258+
<span class="n">InVec1</span> <span class="n">v1</span><span class="p">,</span>
259+
<span class="n">InVec2</span> <span class="n">v2</span><span class="p">);</span> <span class="c1">// (4)</span>
260+
<span class="p">}</span>
261+
</code></pre></div>
262+
</p>
263+
<h2>概要</h2>
264+
<p>2つのベクトル<code>v1</code><code>v2</code>の内積を計算する。</p>
265+
<h2><a class="cpprefjp-defined-word" data-desc="満たさなければプログラムが不適格となる要件。`static_assert`や関数のdelete宣言などに相当する">適格要件</a></h2>
266+
<p>2つのベクトルの静的な要素数が同じであること。</p>
267+
<ul>
268+
<li><code><a href="compatible-static-extents.html">compatible-static-extents</a>&lt;InVec1, InVec2&gt;(0, 0) == true</code></li>
269+
</ul>
270+
<h2>事前条件</h2>
271+
<p>2つのベクトルの次元が同じであること。</p>
272+
<ul>
273+
<li><code>v1.extent(0) == v2.extent(0)</code></li>
274+
</ul>
275+
<h2>効果</h2>
276+
<ul>
277+
<li>(1), (2): なし</li>
278+
<li>(3), (4): <code>T</code>を各ベクトルの値型の積の型<code>decltype(declval&lt;typename InVec1::value_type&gt;() * declval&lt;typename InVec2::value_type&gt;())</code>とする。</li>
279+
<li>(3): <code>dot(v1, v2, T{})</code>を返す。</li>
280+
<li>(4): <code>dot(std::forward&lt;ExecutionPolicy&gt;(exec), v1, v2, T{})</code>を返す。</li>
281+
</ul>
282+
<h2>戻り値</h2>
283+
<p>2つのベクトルの次元を<code>N</code>とする。</p>
284+
<ul>
285+
<li>(1): もし<code>N</code>が0なら<code>init</code>を返す。そうでない場合は、共役を取らない内積、つまり以下の式の<code>Scalar</code>型の値を返す。</li>
286+
</ul>
287+
<p>$$
288+
\verb|init| + \sum_{i = 0}^{N - 1} \verb|v1|[i] * \verb|v2|[i]
289+
$$</p>
290+
<ul>
291+
<li>(2): (1)の並列アルゴリズム版。</li>
292+
<li>(3): (1)の<code>init</code>を和の各項の型のデフォルト値に置き換えて計算する。</li>
293+
<li>(4): (3)の並列アルゴリズム版。</li>
294+
</ul>
295+
<h2>備考</h2>
296+
<ul>
297+
<li>(1), (2): もし<code>InVec1::value_type</code><code>InVec2::value_type</code><code>Scalar</code>が全て浮動小数点数型または<code>std::complex</code>の特殊化で、<code>Scalar</code><code>InVec1::value_type</code><code>InVec2::value_type</code>より精度が高い場合、和の各項は<code>Scalar</code>またはより高い精度の型が使われる。</li>
298+
</ul>
299+
<h2></h2>
300+
<h3>出力</h3>
301+
<h2>バージョン</h2>
302+
<h3>言語</h3>
303+
<ul>
304+
<li>C++11</li>
305+
</ul>
306+
<h3>処理系</h3>
307+
<ul>
308+
<li><a href="../../implementation.html#clang">Clang</a>: ??</li>
309+
<li><a href="../../implementation.html#gcc">GCC</a>: ??</li>
310+
<li><a href="../../implementation.html#icc">ICC</a>: ??</li>
311+
<li><a href="../../implementation.html#visual_cpp">Visual C++</a>: ??</li>
312+
</ul>
313+
<h2>関連項目</h2>
314+
<ul>
315+
<li><code><a href="../execution.html">execution</a></code></li>
316+
<li><code><a href="../mdspan.html">mdspan</a></code></li>
317+
</ul>
318+
<h2>参照</h2>
319+
<ul>
320+
<li><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0788r3.pdf" target="_blank">P0788R3 Standard Library Specification in a Concepts and Contracts World</a></li>
321+
<li><code><a href="https://netlib.org/lapack/explore-html/d1/dcc/group__dot_ga2cce681b6aed3728b893a555b3bee55c.html#ga2cce681b6aed3728b893a555b3bee55c" target="_blank">LAPACK: cdotu</a></code></li>
322+
</ul></div>
323+
324+
</div>
325+
</div>
326+
</div>
327+
328+
329+
<div id="sidebar" class="col-sm-3 col-sm-pull-9">
330+
</div>
331+
332+
333+
</div>
334+
</div>
335+
</main>
336+
<footer class="footer navbar navbar-default">
337+
<div class="container-fluid">
338+
<p><small>
339+
本サイトの情報は、
340+
<a href="https://creativecommons.org/licenses/by/3.0/deed.ja" rel="nofollow">クリエイティブ・コモンズ 表示 3.0 非移植 ライセンス(CC BY)</a>
341+
の下に提供されています。
342+
</small></p>
343+
</div>
344+
</footer>
345+
</body>
346+
</html>

0 commit comments

Comments
 (0)