MAGMA
1.2.0
MatrixAlgebraonGPUandMulticoreArchitectures
Main Page
Modules
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
dpanel_to_q.cpp
Go to the documentation of this file.
1
/*
2
-- MAGMA (version 1.2.0) --
3
Univ. of Tennessee, Knoxville
4
Univ. of California, Berkeley
5
Univ. of Colorado, Denver
6
May 2012
7
8
@author Mark Gates
9
@generated d Thu May 10 22:26:26 2012
10
*/
11
#include "
common_magma.h
"
12
13
// -------------------------
14
// Put 0s in the upper triangular part of a panel and 1s on the diagonal.
15
// Stores previous values in work array, to be restored later with dq_to_panel.
16
extern
"C"
17
void
dpanel_to_q
(
char
uplo
,
int
ib,
double
*
A
,
int
lda,
double
*
work
)
18
{
19
int
i, j, k = 0;
20
double
*col;
21
double
c_zero =
MAGMA_D_ZERO
;
22
double
c_one =
MAGMA_D_ONE
;
23
24
if
(uplo ==
'U'
|| uplo ==
'u'
){
25
for
(i = 0; i < ib; ++i){
26
col = A + i*lda;
27
for
(j = 0; j < i; ++j){
28
work[k] = col[j];
29
col [j] = c_zero;
30
++k;
31
}
32
33
work[k] = col[i];
34
col [j] = c_one;
35
++k;
36
}
37
}
38
else
{
39
for
(i=0; i<ib; ++i){
40
col = A + i*lda;
41
work[k] = col[i];
42
col [i] = c_one;
43
++k;
44
for
(j=i+1; j<ib; ++j){
45
work[k] = col[j];
46
col [j] = c_zero;
47
++k;
48
}
49
}
50
}
51
}
52
53
54
// -------------------------
55
// Restores a panel, after call to dpanel_to_q.
56
extern
"C"
57
void
dq_to_panel
(
char
uplo
,
int
ib,
double
*
A
,
int
lda,
double
*
work
)
58
{
59
int
i, j, k = 0;
60
double
*col;
61
62
if
(uplo ==
'U'
|| uplo ==
'u'
){
63
for
(i = 0; i < ib; ++i){
64
col = A + i*lda;
65
for
(j = 0; j <= i; ++j){
66
col[j] = work[k];
67
++k;
68
}
69
}
70
}
71
else
{
72
for
(i = 0; i < ib; ++i){
73
col = A + i*lda;
74
for
(j = i; j < ib; ++j){
75
col[j] = work[k];
76
++k;
77
}
78
}
79
}
80
}
magma-1.2.0
control
dpanel_to_q.cpp
Generated on Mon May 21 2012 16:42:19 for MAGMA by
1.8.1