Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>LASs - Linear Algebra Routines on OmpSs: src/ddss_dsyr2k.c File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script><script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">LASs - Linear Algebra Routines on OmpSs
 <span id="projectnumber">1.0.0</span>
</div>
<div id="projectbrief">LASs</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main Page</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File List</span></a></li>
<li><a href="globals.html"><span>File Members</span></a></li>
</ul>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">ddss_dsyr2k.c File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>LASs-DDSs ddss_dsyr2k routine.
<a href="#details">More...</a></p>
<div class="textblock"><code>#include "<a class="el" href="lass_8h_source.html">../include/lass.h</a>"</code><br />
</div><div class="textblock"><div class="dynheader">
Include dependency graph for ddss_dsyr2k.c:</div>
<div class="dyncontent">
<div class="center"><img src="ddss__dsyr2k_8c__incl.png" border="0" usemap="#src_2ddss__dsyr2k_8c" alt=""/></div>
<map name="src_2ddss__dsyr2k_8c" id="src_2ddss__dsyr2k_8c">
<area shape="rect" id="node2" href="lass_8h.html" title="LASs header definition. " alt="" coords="569,80,684,107"/>
<area shape="rect" id="node15" href="lass__macros_8h.html" title="Macros definition. " alt="" coords="1181,155,1288,181"/>
<area shape="rect" id="node16" href="lass__types_8h_source.html" title="lass_types.h" alt="" coords="1312,155,1408,181"/>
</map>
</div>
</div>
<p><a href="ddss__dsyr2k_8c_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a0bd18e3495c9d8ab6ae463389a2b00bf"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="ddss__dsyr2k_8c.html#a0bd18e3495c9d8ab6ae463389a2b00bf">ddss_dsyr2k</a> (enum DDSS_UPLO UPLO, enum DDSS_TRANS TRANS, int N, int K, const double ALPHA, double *A, int LDA, double *B, int LDB, const double BETA, double *C, int LDC)</td></tr>
<tr class="separator:a0bd18e3495c9d8ab6ae463389a2b00bf"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>LASs-DDSs ddss_dsyr2k routine. </p>
<p>LASs-DDSs is a software package provided by: Barcelona Supercomputing Center - Centro Nacional de Supercomputacion</p>
<dl class="section author"><dt>Author</dt><dd>Pedro Valero-Lara <a href="#" onclick="location.href='mai'+'lto:'+'ped'+'ro'+'.va'+'le'+'ro@'+'bs'+'c.e'+'s'; return false;">pedro<span style="display: none;">.nosp@m.</span>.val<span style="display: none;">.nosp@m.</span>ero@b<span style="display: none;">.nosp@m.</span>sc.e<span style="display: none;">.nosp@m.</span>s</a> </dd>
<dd>
Boro Sofranac <a href="#" onclick="location.href='mai'+'lto:'+'bor'+'o.'+'sof'+'ra'+'nac'+'@b'+'sc.'+'es'; return false;">boro.<span style="display: none;">.nosp@m.</span>sofr<span style="display: none;">.nosp@m.</span>anac@<span style="display: none;">.nosp@m.</span>bsc.<span style="display: none;">.nosp@m.</span>es</a> </dd></dl>
<dl class="section date"><dt>Date</dt><dd>2018-02-21 </dd></dl>
<p>Definition in file <a class="el" href="ddss__dsyr2k_8c_source.html">ddss_dsyr2k.c</a>.</p>
</div><h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="a0bd18e3495c9d8ab6ae463389a2b00bf"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int ddss_dsyr2k </td>
<td>(</td>
<td class="paramtype">enum DDSS_UPLO </td>
<td class="paramname"><em>UPLO</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">enum DDSS_TRANS </td>
<td class="paramname"><em>TRANS</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"><em>N</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"><em>K</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const double </td>
<td class="paramname"><em>ALPHA</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double * </td>
<td class="paramname"><em>A</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"><em>LDA</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double * </td>
<td class="paramname"><em>B</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"><em>LDB</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const double </td>
<td class="paramname"><em>BETA</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double * </td>
<td class="paramname"><em>C</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"><em>LDC</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Performs one of the symmetric rank 2k operations: </p><pre class="fragment">C = ALPHA * A * B**T + ALPHA * B * A**T + BETA * C or
C = ALPHA * A**T * B + ALPHA * B**T * A + BETA * C
</pre><p>ALPHA and BETA are scalars, C is an N by N symmetric matrix and A and B are N by K matrices in the first case and K by N matrices in the second case. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">UPLO</td><td>enum DDSS_UPLO. UPLO specifies the form in which C is stored:<ul>
<li>Lower: Lower triangular part of C is stored. The upper traingular part is not referenced.</li>
<li>Upper: Upper triangular part of C is stored. The lower triangular part is not referenced.</li>
</ul>
</td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">TRANS</td><td>enum DDSS_TRANS. TRANS specifies the operation to be performed as follows:<ul>
<li>NoTrans: C = ALPHA * A * B**T + ALPHA * B * A**T + BETA * C</li>
<li>Trans: C = ALPHA * A**T * B + ALPHA * B**T * A + BETA * C</li>
</ul>
</td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">N</td><td>int. N specifies the order of matrix C. N must be at least zero.</td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">K</td><td>int. With TRANS = NoTrans, K specifies the number of columns of the matrices A and B, and with TRANS = Trans, K specifies the number of rows of the matrices A and B. K must be at least zero.</td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">ALPHA</td><td>double. ALPHA specifies the scalar alpha.</td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">A</td><td>double *. A is a pointer to a matrix of dimension Na ( rows ) by Ka ( columns ), where Na is N and Ka is K when TRANS = NoTrans, and Na is K and Ka is N otherwise.</td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">LDA</td><td>int. LDA specifies the number of columns of A ( row-major order ). When TRANS = NoTrans then LDA must be at least max( 1, K ), otherwise LDA must be at least max( 1, N ).</td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">B</td><td>double *. B is a pointer to a matrix of dimension Nb ( rows ) by Kb ( columns ), where Nb is N and Kb is K when TRANS = NoTrans, and Nb is K and Kb is N otherwise.</td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">LDB</td><td>int. LDB specifies the number of columns of B ( row-major order ). When TRANS = NoTrans then LDB must be at least max( 1, K ), otherwise LDB must be at least max( 1, N ).</td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">BETA</td><td>double. BETA specifies the scalar beta.</td></tr>
<tr><td class="paramdir">[in,out]</td><td class="paramname">C</td><td>double *. C is a pointer to a matrix of dimension N by N. When UPLO = Uppper the strictly lower triangular part of C is not referenced. On exit, the upper triangular part of C is overwritten by the upper triangular part of the updated solution matrix C. When UPLO = Lower the strictly upper triangular part of C is not referenced. On exit, the lower triangular part of C is overwritten by the lower triangular part of the updated solution matrix C.</td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">LDC</td><td>int. LDC specifies the number of columns of C ( row-major order ). LDC must be at least max( 1, N ).</td></tr>
</table>
</dd>
</dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="lass_8h.html#a2ef29953763cd105a69a3c8db2adc1b3">kdsyr2k</a> </dd></dl>
<p>Definition at line <a class="el" href="ddss__dsyr2k_8c_source.html#l00114">114</a> of file <a class="el" href="ddss__dsyr2k_8c_source.html">ddss_dsyr2k.c</a>.</p>
<p>References <a class="el" href="kdsyr2k_8c_source.html#l00124">kdsyr2k()</a>.</p>
<div class="fragment"><div class="line"><a name="l00119"></a><span class="lineno"> 119</span> {</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  <span class="comment">// Local variables</span></div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <span class="keywordtype">int</span> nA, nB;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  </div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  <span class="comment">// Argument checking</span></div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <span class="keywordflow">if</span> ( ( UPLO != Upper ) && ( UPLO != Lower ) ) </div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  {</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  fprintf( stderr, <span class="stringliteral">"Illegal value of UPLO, in ddss_dsyr2k code\n"</span> );</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <span class="keywordflow">return</span> NoSuccess;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  }</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  </div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <span class="keywordflow">if</span> ( ( TRANS != NoTrans ) && ( TRANS != Trans ) )</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  {</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  fprintf( stderr, <span class="stringliteral">"Illegal value of TRANS, in ddss_dsyr2k code\n"</span> );</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  <span class="keywordflow">return</span> NoSuccess;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  }</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  </div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  <span class="keywordflow">if</span> ( N < 0 )</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  {</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  fprintf( stderr, <span class="stringliteral">"Illegal value of N, in ddss_dsyr2k code\n"</span> );</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  <span class="keywordflow">return</span> NoSuccess;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  }</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  </div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  <span class="keywordflow">if</span> ( K < 0 )</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  {</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  fprintf( stderr, <span class="stringliteral">"Illegal value of K, in ddss_dsyr2k code\n"</span> );</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  <span class="keywordflow">return</span> NoSuccess;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  }</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  </div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  <span class="keywordflow">if</span> ( TRANS == NoTrans ) </div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  {</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  nA = nB = K;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  } </div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  <span class="keywordflow">else</span> </div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  {</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  nA = nB = N;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  }</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span> </div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  <span class="keywordflow">if</span> ( LDA < MAX( 1, nA ) ) </div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  {</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  fprintf( stderr, <span class="stringliteral">"Illegal value of LDA, in ddss_dsyr2k code\n"</span> );</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  <span class="keywordflow">return</span> NoSuccess;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  }</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  </div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  <span class="keywordflow">if</span> ( LDB < MAX( 1, nB ) ) </div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  {</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  fprintf( stderr, <span class="stringliteral">"Illegal value of LDB, in ddss_dsyr2k code\n"</span> );</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  <span class="keywordflow">return</span> NoSuccess;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  }</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span> </div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  <span class="keywordflow">if</span> ( LDC < MAX( 1, N ) ) </div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  {</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  fprintf( stderr, <span class="stringliteral">"Illegal value of LDC, in ddss_dsyr2k code\n"</span> );</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  <span class="keywordflow">return</span> NoSuccess;</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  }</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  </div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  <span class="comment">// Quick return</span></div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  <span class="keywordflow">if</span> ( N == 0 || ( ( ALPHA == 0.0 || K == 0 ) && BETA == 1.0 ) )</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  {</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  <span class="keywordflow">return</span> Success;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  }</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  </div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  <span class="keywordflow">return</span> <a class="code" href="kdsyr2k_8c.html#a2ef29953763cd105a69a3c8db2adc1b3">kdsyr2k</a>( UPLO, TRANS,</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  N, K,</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  ALPHA, A, LDA,</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  B, LDB,</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  BETA, C, LDC );</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span> </div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span> }</div><div class="ttc" id="kdsyr2k_8c_html_a2ef29953763cd105a69a3c8db2adc1b3"><div class="ttname"><a href="kdsyr2k_8c.html#a2ef29953763cd105a69a3c8db2adc1b3">kdsyr2k</a></div><div class="ttdeci">enum LASS_RETURN kdsyr2k(enum DDSS_UPLO UPLO, enum DDSS_TRANS TRANS, int N, int K, const double ALPHA, double *A, int LDA, double *B, int LDB, const double BETA, double *C, int LDC)</div><div class="ttdef"><b>Definition:</b> <a href="kdsyr2k_8c_source.html#l00124">kdsyr2k.c:124</a></div></div>
</div><!-- fragment -->
</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by  <a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.11
</small></address>
</body>
</html>