1
+
2
+ <!doctype html>
3
+ < html lang ="en ">
4
+
5
+ < head >
6
+ < title > Code coverage report for blas/base/dspr/lib/base.js</ title >
7
+ < meta charset ="utf-8 " />
8
+ < link rel ="stylesheet " href ="../../../../prettify.css " />
9
+ < link rel ="stylesheet " href ="../../../../base.css " />
10
+ < link rel ="shortcut icon " type ="image/x-icon " href ="../../../../favicon.png " />
11
+ < meta name ="viewport " content ="width=device-width, initial-scale=1 " />
12
+ < style type ='text/css '>
13
+ .coverage-summary .sorter {
14
+ background-image : url(../ ../ ../ ../ sor t-arrow-sprite.png);
15
+ }
16
+ </ style >
17
+ </ head >
18
+
19
+ < body >
20
+ < div class ='wrapper '>
21
+ < div class ='pad1 '>
22
+ < h1 > < a href ="../../../../index.html "> All files</ a > / < a href ="index.html "> blas/base/dspr/lib</ a > base.js</ h1 >
23
+ < div class ='clearfix '>
24
+
25
+ < div class ='fl pad1y space-right2 '>
26
+ < span class ="strong "> 100% </ span >
27
+ < span class ="quiet "> Statements</ span >
28
+ < span class ='fraction '> 103/103</ span >
29
+ </ div >
30
+
31
+
32
+ < div class ='fl pad1y space-right2 '>
33
+ < span class ="strong "> 100% </ span >
34
+ < span class ="quiet "> Branches</ span >
35
+ < span class ='fraction '> 12/12</ span >
36
+ </ div >
37
+
38
+
39
+ < div class ='fl pad1y space-right2 '>
40
+ < span class ="strong "> 100% </ span >
41
+ < span class ="quiet "> Functions</ span >
42
+ < span class ='fraction '> 1/1</ span >
43
+ </ div >
44
+
45
+
46
+ < div class ='fl pad1y space-right2 '>
47
+ < span class ="strong "> 100% </ span >
48
+ < span class ="quiet "> Lines</ span >
49
+ < span class ='fraction '> 103/103</ span >
50
+ </ div >
51
+
52
+
53
+ </ div >
54
+ < p class ="quiet ">
55
+ Press < em > n</ em > or < em > j</ em > to go to the next uncovered block, < em > b</ em > , < em > p</ em > or < em > k</ em > for the previous block.
56
+ </ p >
57
+ < template id ="filterTemplate ">
58
+ < div class ="quiet ">
59
+ Filter:
60
+ < input type ="search " id ="fileSearch ">
61
+ </ div >
62
+ </ template >
63
+ </ div >
64
+ < div class ='status-line high '> </ div >
65
+ < pre > < table class ="coverage ">
66
+ < tr > < td class ="line-count quiet "> < a name ='L1 '> </ a > < a href ='#L1 '> 1</ a >
67
+ < a name ='L2 '> </ a > < a href ='#L2 '> 2</ a >
68
+ < a name ='L3 '> </ a > < a href ='#L3 '> 3</ a >
69
+ < a name ='L4 '> </ a > < a href ='#L4 '> 4</ a >
70
+ < a name ='L5 '> </ a > < a href ='#L5 '> 5</ a >
71
+ < a name ='L6 '> </ a > < a href ='#L6 '> 6</ a >
72
+ < a name ='L7 '> </ a > < a href ='#L7 '> 7</ a >
73
+ < a name ='L8 '> </ a > < a href ='#L8 '> 8</ a >
74
+ < a name ='L9 '> </ a > < a href ='#L9 '> 9</ a >
75
+ < a name ='L10 '> </ a > < a href ='#L10 '> 10</ a >
76
+ < a name ='L11 '> </ a > < a href ='#L11 '> 11</ a >
77
+ < a name ='L12 '> </ a > < a href ='#L12 '> 12</ a >
78
+ < a name ='L13 '> </ a > < a href ='#L13 '> 13</ a >
79
+ < a name ='L14 '> </ a > < a href ='#L14 '> 14</ a >
80
+ < a name ='L15 '> </ a > < a href ='#L15 '> 15</ a >
81
+ < a name ='L16 '> </ a > < a href ='#L16 '> 16</ a >
82
+ < a name ='L17 '> </ a > < a href ='#L17 '> 17</ a >
83
+ < a name ='L18 '> </ a > < a href ='#L18 '> 18</ a >
84
+ < a name ='L19 '> </ a > < a href ='#L19 '> 19</ a >
85
+ < a name ='L20 '> </ a > < a href ='#L20 '> 20</ a >
86
+ < a name ='L21 '> </ a > < a href ='#L21 '> 21</ a >
87
+ < a name ='L22 '> </ a > < a href ='#L22 '> 22</ a >
88
+ < a name ='L23 '> </ a > < a href ='#L23 '> 23</ a >
89
+ < a name ='L24 '> </ a > < a href ='#L24 '> 24</ a >
90
+ < a name ='L25 '> </ a > < a href ='#L25 '> 25</ a >
91
+ < a name ='L26 '> </ a > < a href ='#L26 '> 26</ a >
92
+ < a name ='L27 '> </ a > < a href ='#L27 '> 27</ a >
93
+ < a name ='L28 '> </ a > < a href ='#L28 '> 28</ a >
94
+ < a name ='L29 '> </ a > < a href ='#L29 '> 29</ a >
95
+ < a name ='L30 '> </ a > < a href ='#L30 '> 30</ a >
96
+ < a name ='L31 '> </ a > < a href ='#L31 '> 31</ a >
97
+ < a name ='L32 '> </ a > < a href ='#L32 '> 32</ a >
98
+ < a name ='L33 '> </ a > < a href ='#L33 '> 33</ a >
99
+ < a name ='L34 '> </ a > < a href ='#L34 '> 34</ a >
100
+ < a name ='L35 '> </ a > < a href ='#L35 '> 35</ a >
101
+ < a name ='L36 '> </ a > < a href ='#L36 '> 36</ a >
102
+ < a name ='L37 '> </ a > < a href ='#L37 '> 37</ a >
103
+ < a name ='L38 '> </ a > < a href ='#L38 '> 38</ a >
104
+ < a name ='L39 '> </ a > < a href ='#L39 '> 39</ a >
105
+ < a name ='L40 '> </ a > < a href ='#L40 '> 40</ a >
106
+ < a name ='L41 '> </ a > < a href ='#L41 '> 41</ a >
107
+ < a name ='L42 '> </ a > < a href ='#L42 '> 42</ a >
108
+ < a name ='L43 '> </ a > < a href ='#L43 '> 43</ a >
109
+ < a name ='L44 '> </ a > < a href ='#L44 '> 44</ a >
110
+ < a name ='L45 '> </ a > < a href ='#L45 '> 45</ a >
111
+ < a name ='L46 '> </ a > < a href ='#L46 '> 46</ a >
112
+ < a name ='L47 '> </ a > < a href ='#L47 '> 47</ a >
113
+ < a name ='L48 '> </ a > < a href ='#L48 '> 48</ a >
114
+ < a name ='L49 '> </ a > < a href ='#L49 '> 49</ a >
115
+ < a name ='L50 '> </ a > < a href ='#L50 '> 50</ a >
116
+ < a name ='L51 '> </ a > < a href ='#L51 '> 51</ a >
117
+ < a name ='L52 '> </ a > < a href ='#L52 '> 52</ a >
118
+ < a name ='L53 '> </ a > < a href ='#L53 '> 53</ a >
119
+ < a name ='L54 '> </ a > < a href ='#L54 '> 54</ a >
120
+ < a name ='L55 '> </ a > < a href ='#L55 '> 55</ a >
121
+ < a name ='L56 '> </ a > < a href ='#L56 '> 56</ a >
122
+ < a name ='L57 '> </ a > < a href ='#L57 '> 57</ a >
123
+ < a name ='L58 '> </ a > < a href ='#L58 '> 58</ a >
124
+ < a name ='L59 '> </ a > < a href ='#L59 '> 59</ a >
125
+ < a name ='L60 '> </ a > < a href ='#L60 '> 60</ a >
126
+ < a name ='L61 '> </ a > < a href ='#L61 '> 61</ a >
127
+ < a name ='L62 '> </ a > < a href ='#L62 '> 62</ a >
128
+ < a name ='L63 '> </ a > < a href ='#L63 '> 63</ a >
129
+ < a name ='L64 '> </ a > < a href ='#L64 '> 64</ a >
130
+ < a name ='L65 '> </ a > < a href ='#L65 '> 65</ a >
131
+ < a name ='L66 '> </ a > < a href ='#L66 '> 66</ a >
132
+ < a name ='L67 '> </ a > < a href ='#L67 '> 67</ a >
133
+ < a name ='L68 '> </ a > < a href ='#L68 '> 68</ a >
134
+ < a name ='L69 '> </ a > < a href ='#L69 '> 69</ a >
135
+ < a name ='L70 '> </ a > < a href ='#L70 '> 70</ a >
136
+ < a name ='L71 '> </ a > < a href ='#L71 '> 71</ a >
137
+ < a name ='L72 '> </ a > < a href ='#L72 '> 72</ a >
138
+ < a name ='L73 '> </ a > < a href ='#L73 '> 73</ a >
139
+ < a name ='L74 '> </ a > < a href ='#L74 '> 74</ a >
140
+ < a name ='L75 '> </ a > < a href ='#L75 '> 75</ a >
141
+ < a name ='L76 '> </ a > < a href ='#L76 '> 76</ a >
142
+ < a name ='L77 '> </ a > < a href ='#L77 '> 77</ a >
143
+ < a name ='L78 '> </ a > < a href ='#L78 '> 78</ a >
144
+ < a name ='L79 '> </ a > < a href ='#L79 '> 79</ a >
145
+ < a name ='L80 '> </ a > < a href ='#L80 '> 80</ a >
146
+ < a name ='L81 '> </ a > < a href ='#L81 '> 81</ a >
147
+ < a name ='L82 '> </ a > < a href ='#L82 '> 82</ a >
148
+ < a name ='L83 '> </ a > < a href ='#L83 '> 83</ a >
149
+ < a name ='L84 '> </ a > < a href ='#L84 '> 84</ a >
150
+ < a name ='L85 '> </ a > < a href ='#L85 '> 85</ a >
151
+ < a name ='L86 '> </ a > < a href ='#L86 '> 86</ a >
152
+ < a name ='L87 '> </ a > < a href ='#L87 '> 87</ a >
153
+ < a name ='L88 '> </ a > < a href ='#L88 '> 88</ a >
154
+ < a name ='L89 '> </ a > < a href ='#L89 '> 89</ a >
155
+ < a name ='L90 '> </ a > < a href ='#L90 '> 90</ a >
156
+ < a name ='L91 '> </ a > < a href ='#L91 '> 91</ a >
157
+ < a name ='L92 '> </ a > < a href ='#L92 '> 92</ a >
158
+ < a name ='L93 '> </ a > < a href ='#L93 '> 93</ a >
159
+ < a name ='L94 '> </ a > < a href ='#L94 '> 94</ a >
160
+ < a name ='L95 '> </ a > < a href ='#L95 '> 95</ a >
161
+ < a name ='L96 '> </ a > < a href ='#L96 '> 96</ a >
162
+ < a name ='L97 '> </ a > < a href ='#L97 '> 97</ a >
163
+ < a name ='L98 '> </ a > < a href ='#L98 '> 98</ a >
164
+ < a name ='L99 '> </ a > < a href ='#L99 '> 99</ a >
165
+ < a name ='L100 '> </ a > < a href ='#L100 '> 100</ a >
166
+ < a name ='L101 '> </ a > < a href ='#L101 '> 101</ a >
167
+ < a name ='L102 '> </ a > < a href ='#L102 '> 102</ a >
168
+ < a name ='L103 '> </ a > < a href ='#L103 '> 103</ a >
169
+ < a name ='L104 '> </ a > < a href ='#L104 '> 104</ a > </ td > < td class ="line-coverage quiet "> < span class ="cline-any cline-yes "> 3x</ span >
170
+ < span class ="cline-any cline-yes "> 3x</ span >
171
+ < span class ="cline-any cline-yes "> 3x</ span >
172
+ < span class ="cline-any cline-yes "> 3x</ span >
173
+ < span class ="cline-any cline-yes "> 3x</ span >
174
+ < span class ="cline-any cline-yes "> 3x</ span >
175
+ < span class ="cline-any cline-yes "> 3x</ span >
176
+ < span class ="cline-any cline-yes "> 3x</ span >
177
+ < span class ="cline-any cline-yes "> 3x</ span >
178
+ < span class ="cline-any cline-yes "> 3x</ span >
179
+ < span class ="cline-any cline-yes "> 3x</ span >
180
+ < span class ="cline-any cline-yes "> 3x</ span >
181
+ < span class ="cline-any cline-yes "> 3x</ span >
182
+ < span class ="cline-any cline-yes "> 3x</ span >
183
+ < span class ="cline-any cline-yes "> 3x</ span >
184
+ < span class ="cline-any cline-yes "> 3x</ span >
185
+ < span class ="cline-any cline-yes "> 3x</ span >
186
+ < span class ="cline-any cline-yes "> 3x</ span >
187
+ < span class ="cline-any cline-yes "> 3x</ span >
188
+ < span class ="cline-any cline-yes "> 3x</ span >
189
+ < span class ="cline-any cline-yes "> 3x</ span >
190
+ < span class ="cline-any cline-yes "> 3x</ span >
191
+ < span class ="cline-any cline-yes "> 3x</ span >
192
+ < span class ="cline-any cline-yes "> 3x</ span >
193
+ < span class ="cline-any cline-yes "> 3x</ span >
194
+ < span class ="cline-any cline-yes "> 3x</ span >
195
+ < span class ="cline-any cline-yes "> 3x</ span >
196
+ < span class ="cline-any cline-yes "> 3x</ span >
197
+ < span class ="cline-any cline-yes "> 3x</ span >
198
+ < span class ="cline-any cline-yes "> 3x</ span >
199
+ < span class ="cline-any cline-yes "> 3x</ span >
200
+ < span class ="cline-any cline-yes "> 3x</ span >
201
+ < span class ="cline-any cline-yes "> 3x</ span >
202
+ < span class ="cline-any cline-yes "> 3x</ span >
203
+ < span class ="cline-any cline-yes "> 3x</ span >
204
+ < span class ="cline-any cline-yes "> 3x</ span >
205
+ < span class ="cline-any cline-yes "> 3x</ span >
206
+ < span class ="cline-any cline-yes "> 3x</ span >
207
+ < span class ="cline-any cline-yes "> 3x</ span >
208
+ < span class ="cline-any cline-yes "> 3x</ span >
209
+ < span class ="cline-any cline-yes "> 3x</ span >
210
+ < span class ="cline-any cline-yes "> 3x</ span >
211
+ < span class ="cline-any cline-yes "> 3x</ span >
212
+ < span class ="cline-any cline-yes "> 3x</ span >
213
+ < span class ="cline-any cline-yes "> 3x</ span >
214
+ < span class ="cline-any cline-yes "> 3x</ span >
215
+ < span class ="cline-any cline-yes "> 3x</ span >
216
+ < span class ="cline-any cline-yes "> 28x</ span >
217
+ < span class ="cline-any cline-yes "> 28x</ span >
218
+ < span class ="cline-any cline-yes "> 28x</ span >
219
+ < span class ="cline-any cline-yes "> 28x</ span >
220
+ < span class ="cline-any cline-yes "> 28x</ span >
221
+ < span class ="cline-any cline-yes "> 28x</ span >
222
+ < span class ="cline-any cline-yes "> 28x</ span >
223
+ < span class ="cline-any cline-yes "> 28x</ span >
224
+ < span class ="cline-any cline-yes "> 28x</ span >
225
+ < span class ="cline-any cline-yes "> 28x</ span >
226
+ < span class ="cline-any cline-yes "> 28x</ span >
227
+ < span class ="cline-any cline-yes "> 28x</ span >
228
+ < span class ="cline-any cline-yes "> 28x</ span >
229
+ < span class ="cline-any cline-yes "> 28x</ span >
230
+ < span class ="cline-any cline-yes "> 22x</ span >
231
+ < span class ="cline-any cline-yes "> 28x</ span >
232
+ < span class ="cline-any cline-yes "> 15x</ span >
233
+ < span class ="cline-any cline-yes "> 15x</ span >
234
+ < span class ="cline-any cline-yes "> 45x</ span >
235
+ < span class ="cline-any cline-yes "> 45x</ span >
236
+ < span class ="cline-any cline-yes "> 45x</ span >
237
+ < span class ="cline-any cline-yes "> 45x</ span >
238
+ < span class ="cline-any cline-yes "> 45x</ span >
239
+ < span class ="cline-any cline-yes "> 90x</ span >
240
+ < span class ="cline-any cline-yes "> 90x</ span >
241
+ < span class ="cline-any cline-yes "> 90x</ span >
242
+ < span class ="cline-any cline-yes "> 90x</ span >
243
+ < span class ="cline-any cline-yes "> 45x</ span >
244
+ < span class ="cline-any cline-yes "> 45x</ span >
245
+ < span class ="cline-any cline-yes "> 45x</ span >
246
+ < span class ="cline-any cline-yes "> 45x</ span >
247
+ < span class ="cline-any cline-yes "> 15x</ span >
248
+ < span class ="cline-any cline-yes "> 15x</ span >
249
+ < span class ="cline-any cline-yes "> 13x</ span >
250
+ < span class ="cline-any cline-yes "> 13x</ span >
251
+ < span class ="cline-any cline-yes "> 28x</ span >
252
+ < span class ="cline-any cline-yes "> 39x</ span >
253
+ < span class ="cline-any cline-yes "> 39x</ span >
254
+ < span class ="cline-any cline-yes "> 39x</ span >
255
+ < span class ="cline-any cline-yes "> 39x</ span >
256
+ < span class ="cline-any cline-yes "> 39x</ span >
257
+ < span class ="cline-any cline-yes "> 78x</ span >
258
+ < span class ="cline-any cline-yes "> 78x</ span >
259
+ < span class ="cline-any cline-yes "> 78x</ span >
260
+ < span class ="cline-any cline-yes "> 78x</ span >
261
+ < span class ="cline-any cline-yes "> 39x</ span >
262
+ < span class ="cline-any cline-yes "> 39x</ span >
263
+ < span class ="cline-any cline-yes "> 39x</ span >
264
+ < span class ="cline-any cline-yes "> 39x</ span >
265
+ < span class ="cline-any cline-yes "> 13x</ span >
266
+ < span class ="cline-any cline-yes "> 28x</ span >
267
+ < span class ="cline-any cline-yes "> 3x</ span >
268
+ < span class ="cline-any cline-yes "> 3x</ span >
269
+ < span class ="cline-any cline-yes "> 3x</ span >
270
+ < span class ="cline-any cline-yes "> 3x</ span >
271
+ < span class ="cline-any cline-yes "> 3x</ span >
272
+ < span class ="cline-any cline-neutral "> </ span > </ td > < td class ="text "> < pre class ="prettyprint lang-js "> /**
273
+ * @license Apache-2.0
274
+ *
275
+ * Copyright (c) 2024 The Stdlib Authors.
276
+ *
277
+ * Licensed under the Apache License, Version 2.0 (the "License");
278
+ * you may not use this file except in compliance with the License.
279
+ * You may obtain a copy of the License at
280
+ *
281
+ * http://www.apache.org/licenses/LICENSE-2.0
282
+ *
283
+ * Unless required by applicable law or agreed to in writing, software
284
+ * distributed under the License is distributed on an "AS IS" BASIS,
285
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
286
+ * See the License for the specific language governing permissions and
287
+ * limitations under the License.
288
+ */
289
+
290
+ 'use strict';
291
+
292
+ // MAIN //
293
+
294
+ /**
295
+ * Performs the symmetric rank 1 operation `A = α*x*x^T + A` where `α` is a scalar, `x` is an `N` element vector, and `A` is an `N` by `N` symmetric matrix supplied in packed form.
296
+ *
297
+ * @private
298
+ * @param {string} order - storage layout
299
+ * @param {string} uplo - specifies whether the upper or lower triangular part of the symmetric matrix `A` is supplied
300
+ * @param {NonNegativeInteger} N - number of elements along each dimension of `A`
301
+ * @param {number} alpha - scalar
302
+ * @param {Float64Array} x - input vector
303
+ * @param {integer} strideX - `x` stride length
304
+ * @param {NonNegativeInteger} offsetX - starting index for `x`
305
+ * @param {Float64Array} AP - packed form of a symmetric matrix `A`
306
+ * @param {integer} strideAP - `AP` stride length
307
+ * @param {NonNegativeInteger} offsetAP - starting index for `AP`
308
+ * @returns {Float64Array} `A`
309
+ *
310
+ * @example
311
+ * var Float64Array = require( '@stdlib/array/float64' );
312
+ *
313
+ * var AP = new Float64Array( [ 1.0, 2.0, 3.0, 1.0, 2.0, 1.0 ] ); // => [ [ 1.0, 2.0, 3.0 ], [ 0.0, 1.0, 2.0 ], [ 0.0, 0.0, 1.0 ] ]
314
+ * var x = new Float64Array( [ 1.0, 2.0, 3.0 ] );
315
+ *
316
+ * dspr( 'row-major', 'upper', 3, 1.0, x, 1, 0, AP, 1, 0 );
317
+ * // AP => <Float64Array>[ 2.0, 4.0, 6.0, 5.0, 8.0, 10.0 ]
318
+ */
319
+ function dspr( order, uplo, N, alpha, x, strideX, offsetX, AP, strideAP, offsetAP ) { // eslint-disable-line max-len
320
+ var tmp;
321
+ var ix0;
322
+ var ix1;
323
+ var iap;
324
+ var i0;
325
+ var i1;
326
+ var kk;
327
+ var ox;
328
+
329
+ ox = offsetX;
330
+ kk = offsetAP;
331
+ if (
332
+ ( order === 'column-major' && uplo === 'upper' ) ||
333
+ ( order === 'row-major' && uplo === 'lower' )
334
+ ) {
335
+ ix1 = ox;
336
+ for ( i1 = 0; i1 < N; i1++ ) {
337
+ if ( x[ ix1 ] !== 0.0 ) {
338
+ tmp = alpha * x[ ix1 ];
339
+ ix0 = ox;
340
+ iap = kk;
341
+ for ( i0 = 0; i0 <= i1; i0++ ) {
342
+ AP[ iap ] += x[ ix0 ] * tmp;
343
+ ix0 += strideX;
344
+ iap += strideAP;
345
+ }
346
+ }
347
+ ix1 += strideX;
348
+ kk += ( i1 + 1 ) * strideAP;
349
+ }
350
+ return AP;
351
+ }
352
+ // ( order === 'column-major' && uplo === 'lower' ) || ( order === 'row-major' && uplo === 'upper' )
353
+ ix1 = ox;
354
+ for ( i1 = 0; i1 < N; i1++ ) {
355
+ if ( x[ ix1 ] !== 0.0 ) {
356
+ tmp = alpha * x[ ix1 ];
357
+ ix0 = ix1;
358
+ iap = kk;
359
+ for ( i0 = 0; i0 < N - i1; i0++ ) {
360
+ AP[ iap ] += x[ ix0 ] * tmp;
361
+ ix0 += strideX;
362
+ iap += strideAP;
363
+ }
364
+ }
365
+ ix1 += strideX;
366
+ kk += ( N - i1 ) * strideAP;
367
+ }
368
+ return AP;
369
+ }
370
+
371
+
372
+ // EXPORTS //
373
+
374
+ module.exports = dspr;
375
+ </ pre > </ td > </ tr > </ table > </ pre >
376
+
377
+ < div class ='push '> </ div > <!-- for sticky footer -->
378
+ </ div > <!-- /wrapper -->
379
+ < div class ='footer quiet pad2 space-top1 center small '>
380
+ Code coverage generated by
381
+ < a href ="https://istanbul.js.org/ " target ="_blank " rel ="noopener noreferrer "> istanbul</ a >
382
+ at 2024-08-18T23:00:40.984Z
383
+ </ div >
384
+ < script src ="../../../../prettify.js "> </ script >
385
+ < script >
386
+ window . onload = function ( ) {
387
+ prettyPrint ( ) ;
388
+ } ;
389
+ </ script >
390
+ < script src ="../../../../sorter.js "> </ script >
391
+ < script src ="../../../../block-navigation.js "> </ script >
392
+ </ body >
393
+ </ html >
394
+
0 commit comments