1 #include "blas_extended.h"
2 #include "blas_extended_test.h"
3
strsv_commit(enum blas_order_type order,enum blas_uplo_type uplo,enum blas_trans_type trans,int length,float * T,int lda,const float * y,int row)4 void strsv_commit(enum blas_order_type order, enum blas_uplo_type uplo,
5 enum blas_trans_type trans, int length, float *T, int lda,
6 const float *y, int row)
7 /*
8 * Purpose
9 * =======
10 *
11 * Copy y to T
12 *
13 * Arguments
14 * =========
15 *
16 * order (input) blas_order_type
17 * Order of T; row or column major
18 *
19 * uplo (input) blas_uplo_type
20 * Whether T is upper or lower
21 *
22 * trans (input) blas_trans_type
23 * Whether T is no trans, trans, or conj trans
24 *
25 * n (input) int
26 * Dimension of AP and the length of vector x
27 *
28 * T (input) float*
29 * The triangular matrix T
30 *
31 * lda (input) int
32 * Leading dimension
33 *
34 * y (output) float*
35 * The vector y
36 *
37 * row (input) int
38 * The row to be copyied to y
39 */
40 {
41 int i;
42 float tmp;
43
44 if ((order == blas_rowmajor && uplo == blas_upper && trans == blas_no_trans)
45 || (order == blas_colmajor && uplo == blas_lower
46 && trans != blas_no_trans)) {
47 for (i = 0; i < length; i++) {
48 tmp = y[i];
49 T[(row * lda) + (row + i + 1)] = tmp;
50 }
51 } else
52 if ((order == blas_rowmajor && uplo == blas_lower
53 && trans == blas_no_trans) || (order == blas_colmajor
54 && uplo == blas_upper
55 && trans != blas_no_trans)) {
56 for (i = 0; i < length; i++) {
57 tmp = y[i];
58 T[row * lda + i] = tmp;
59 }
60 } else
61 if ((order == blas_rowmajor && uplo == blas_lower
62 && trans != blas_no_trans) || (order == blas_colmajor
63 && uplo == blas_upper
64 && trans == blas_no_trans)) {
65 for (i = 0; i < length; i++) {
66 tmp = y[i];
67 T[(row + i + 1) * lda + row] = tmp;
68 }
69 } else
70 if ((order == blas_rowmajor && uplo == blas_upper
71 && trans != blas_no_trans) || (order == blas_colmajor
72 && uplo == blas_lower
73 && trans == blas_no_trans)) {
74 for (i = 0; i < length; i++) {
75 tmp = y[i];
76 T[i * lda + row] = tmp;
77 }
78 }
79 }
80
dtrsv_commit(enum blas_order_type order,enum blas_uplo_type uplo,enum blas_trans_type trans,int length,double * T,int lda,const double * y,int row)81 void dtrsv_commit(enum blas_order_type order, enum blas_uplo_type uplo,
82 enum blas_trans_type trans, int length, double *T, int lda,
83 const double *y, int row)
84 /*
85 * Purpose
86 * =======
87 *
88 * Copy y to T
89 *
90 * Arguments
91 * =========
92 *
93 * order (input) blas_order_type
94 * Order of T; row or column major
95 *
96 * uplo (input) blas_uplo_type
97 * Whether T is upper or lower
98 *
99 * trans (input) blas_trans_type
100 * Whether T is no trans, trans, or conj trans
101 *
102 * n (input) int
103 * Dimension of AP and the length of vector x
104 *
105 * T (input) double*
106 * The triangular matrix T
107 *
108 * lda (input) int
109 * Leading dimension
110 *
111 * y (output) double*
112 * The vector y
113 *
114 * row (input) int
115 * The row to be copyied to y
116 */
117 {
118 int i;
119 double tmp;
120
121 if ((order == blas_rowmajor && uplo == blas_upper && trans == blas_no_trans)
122 || (order == blas_colmajor && uplo == blas_lower
123 && trans != blas_no_trans)) {
124 for (i = 0; i < length; i++) {
125 tmp = y[i];
126 T[(row * lda) + (row + i + 1)] = tmp;
127 }
128 } else
129 if ((order == blas_rowmajor && uplo == blas_lower
130 && trans == blas_no_trans) || (order == blas_colmajor
131 && uplo == blas_upper
132 && trans != blas_no_trans)) {
133 for (i = 0; i < length; i++) {
134 tmp = y[i];
135 T[row * lda + i] = tmp;
136 }
137 } else
138 if ((order == blas_rowmajor && uplo == blas_lower
139 && trans != blas_no_trans) || (order == blas_colmajor
140 && uplo == blas_upper
141 && trans == blas_no_trans)) {
142 for (i = 0; i < length; i++) {
143 tmp = y[i];
144 T[(row + i + 1) * lda + row] = tmp;
145 }
146 } else
147 if ((order == blas_rowmajor && uplo == blas_upper
148 && trans != blas_no_trans) || (order == blas_colmajor
149 && uplo == blas_lower
150 && trans == blas_no_trans)) {
151 for (i = 0; i < length; i++) {
152 tmp = y[i];
153 T[i * lda + row] = tmp;
154 }
155 }
156 }
157