1 /*
2
3 Copyright (C) 2014, The University of Texas at Austin
4
5 This file is part of libflame and is available under the 3-Clause
6 BSD license, which can be found in the LICENSE file at the top-level
7 directory, or at http://opensource.org/licenses/BSD-3-Clause
8
9 */
10
11 #include "FLAME.h"
12
13 //
14 // Level-3 BLAS
15 //
16
FLA_Cntl_gemm_obj_create(FLA_Matrix_type matrix_type,int variant,fla_blocksize_t * blocksize,fla_scal_t * sub_scal,fla_gemm_t * sub_gemm)17 fla_gemm_t* FLA_Cntl_gemm_obj_create( FLA_Matrix_type matrix_type,
18 int variant,
19 fla_blocksize_t* blocksize,
20 fla_scal_t* sub_scal,
21 fla_gemm_t* sub_gemm )
22 {
23 fla_gemm_t* cntl;
24
25 cntl = ( fla_gemm_t* ) FLA_malloc( sizeof(fla_gemm_t) );
26
27 cntl->matrix_type = matrix_type;
28 cntl->variant = variant;
29 cntl->blocksize = blocksize;
30 cntl->sub_scal = sub_scal;
31 cntl->sub_gemm = sub_gemm;
32
33 return cntl;
34 }
35
FLA_Cntl_hemm_obj_create(FLA_Matrix_type matrix_type,int variant,fla_blocksize_t * blocksize,fla_scal_t * sub_scal,fla_hemm_t * sub_hemm,fla_gemm_t * sub_gemm1,fla_gemm_t * sub_gemm2)36 fla_hemm_t* FLA_Cntl_hemm_obj_create( FLA_Matrix_type matrix_type,
37 int variant,
38 fla_blocksize_t* blocksize,
39 fla_scal_t* sub_scal,
40 fla_hemm_t* sub_hemm,
41 fla_gemm_t* sub_gemm1,
42 fla_gemm_t* sub_gemm2 )
43 {
44 fla_hemm_t* cntl;
45
46 cntl = ( fla_hemm_t* ) FLA_malloc( sizeof(fla_hemm_t) );
47
48 cntl->matrix_type = matrix_type;
49 cntl->variant = variant;
50 cntl->blocksize = blocksize;
51 cntl->sub_scal = sub_scal;
52 cntl->sub_hemm = sub_hemm;
53 cntl->sub_gemm1 = sub_gemm1;
54 cntl->sub_gemm2 = sub_gemm2;
55
56 return cntl;
57 }
58
FLA_Cntl_herk_obj_create(FLA_Matrix_type matrix_type,int variant,fla_blocksize_t * blocksize,fla_scalr_t * sub_scalr,fla_herk_t * sub_herk,fla_gemm_t * sub_gemm)59 fla_herk_t* FLA_Cntl_herk_obj_create( FLA_Matrix_type matrix_type,
60 int variant,
61 fla_blocksize_t* blocksize,
62 fla_scalr_t* sub_scalr,
63 fla_herk_t* sub_herk,
64 fla_gemm_t* sub_gemm )
65 {
66 fla_herk_t* cntl;
67
68 cntl = ( fla_herk_t* ) FLA_malloc( sizeof(fla_herk_t) );
69
70 cntl->matrix_type = matrix_type;
71 cntl->variant = variant;
72 cntl->blocksize = blocksize;
73 cntl->sub_scalr = sub_scalr;
74 cntl->sub_herk = sub_herk;
75 cntl->sub_gemm = sub_gemm;
76
77 return cntl;
78 }
79
FLA_Cntl_her2k_obj_create(FLA_Matrix_type matrix_type,int variant,fla_blocksize_t * blocksize,fla_scalr_t * sub_scalr,fla_her2k_t * sub_her2k,fla_gemm_t * sub_gemm1,fla_gemm_t * sub_gemm2)80 fla_her2k_t* FLA_Cntl_her2k_obj_create( FLA_Matrix_type matrix_type,
81 int variant,
82 fla_blocksize_t* blocksize,
83 fla_scalr_t* sub_scalr,
84 fla_her2k_t* sub_her2k,
85 fla_gemm_t* sub_gemm1,
86 fla_gemm_t* sub_gemm2 )
87 {
88 fla_her2k_t* cntl;
89
90 cntl = ( fla_her2k_t* ) FLA_malloc( sizeof(fla_her2k_t) );
91
92 cntl->matrix_type = matrix_type;
93 cntl->variant = variant;
94 cntl->blocksize = blocksize;
95 cntl->sub_scalr = sub_scalr;
96 cntl->sub_her2k = sub_her2k;
97 cntl->sub_gemm1 = sub_gemm1;
98 cntl->sub_gemm2 = sub_gemm2;
99
100 return cntl;
101 }
102
FLA_Cntl_symm_obj_create(FLA_Matrix_type matrix_type,int variant,fla_blocksize_t * blocksize,fla_scal_t * sub_scal,fla_symm_t * sub_symm,fla_gemm_t * sub_gemm1,fla_gemm_t * sub_gemm2)103 fla_symm_t* FLA_Cntl_symm_obj_create( FLA_Matrix_type matrix_type,
104 int variant,
105 fla_blocksize_t* blocksize,
106 fla_scal_t* sub_scal,
107 fla_symm_t* sub_symm,
108 fla_gemm_t* sub_gemm1,
109 fla_gemm_t* sub_gemm2 )
110 {
111 fla_symm_t* cntl;
112
113 cntl = ( fla_symm_t* ) FLA_malloc( sizeof(fla_symm_t) );
114
115 cntl->matrix_type = matrix_type;
116 cntl->variant = variant;
117 cntl->blocksize = blocksize;
118 cntl->sub_scal = sub_scal;
119 cntl->sub_symm = sub_symm;
120 cntl->sub_gemm1 = sub_gemm1;
121 cntl->sub_gemm2 = sub_gemm2;
122
123 return cntl;
124 }
125
FLA_Cntl_syrk_obj_create(FLA_Matrix_type matrix_type,int variant,fla_blocksize_t * blocksize,fla_scalr_t * sub_scalr,fla_syrk_t * sub_syrk,fla_gemm_t * sub_gemm)126 fla_syrk_t* FLA_Cntl_syrk_obj_create( FLA_Matrix_type matrix_type,
127 int variant,
128 fla_blocksize_t* blocksize,
129 fla_scalr_t* sub_scalr,
130 fla_syrk_t* sub_syrk,
131 fla_gemm_t* sub_gemm )
132 {
133 fla_syrk_t* cntl;
134
135 cntl = ( fla_syrk_t* ) FLA_malloc( sizeof(fla_syrk_t) );
136
137 cntl->matrix_type = matrix_type;
138 cntl->variant = variant;
139 cntl->blocksize = blocksize;
140 cntl->sub_scalr = sub_scalr;
141 cntl->sub_syrk = sub_syrk;
142 cntl->sub_gemm = sub_gemm;
143
144 return cntl;
145 }
146
FLA_Cntl_syr2k_obj_create(FLA_Matrix_type matrix_type,int variant,fla_blocksize_t * blocksize,fla_scalr_t * sub_scalr,fla_syr2k_t * sub_syr2k,fla_gemm_t * sub_gemm1,fla_gemm_t * sub_gemm2)147 fla_syr2k_t* FLA_Cntl_syr2k_obj_create( FLA_Matrix_type matrix_type,
148 int variant,
149 fla_blocksize_t* blocksize,
150 fla_scalr_t* sub_scalr,
151 fla_syr2k_t* sub_syr2k,
152 fla_gemm_t* sub_gemm1,
153 fla_gemm_t* sub_gemm2 )
154 {
155 fla_syr2k_t* cntl;
156
157 cntl = ( fla_syr2k_t* ) FLA_malloc( sizeof(fla_syr2k_t) );
158
159 cntl->matrix_type = matrix_type;
160 cntl->variant = variant;
161 cntl->blocksize = blocksize;
162 cntl->sub_scalr = sub_scalr;
163 cntl->sub_syr2k = sub_syr2k;
164 cntl->sub_gemm1 = sub_gemm1;
165 cntl->sub_gemm2 = sub_gemm2;
166
167 return cntl;
168 }
169
FLA_Cntl_trmm_obj_create(FLA_Matrix_type matrix_type,int variant,fla_blocksize_t * blocksize,fla_scal_t * sub_scal,fla_trmm_t * sub_trmm,fla_gemm_t * sub_gemm)170 fla_trmm_t* FLA_Cntl_trmm_obj_create( FLA_Matrix_type matrix_type,
171 int variant,
172 fla_blocksize_t* blocksize,
173 fla_scal_t* sub_scal,
174 fla_trmm_t* sub_trmm,
175 fla_gemm_t* sub_gemm )
176 {
177 fla_trmm_t* cntl;
178
179 cntl = ( fla_trmm_t* ) FLA_malloc( sizeof(fla_trmm_t) );
180
181 cntl->matrix_type = matrix_type;
182 cntl->variant = variant;
183 cntl->blocksize = blocksize;
184 cntl->sub_scal = sub_scal;
185 cntl->sub_trmm = sub_trmm;
186 cntl->sub_gemm = sub_gemm;
187
188 return cntl;
189 }
190
FLA_Cntl_trsm_obj_create(FLA_Matrix_type matrix_type,int variant,fla_blocksize_t * blocksize,fla_scal_t * sub_scal,fla_trsm_t * sub_trsm,fla_gemm_t * sub_gemm)191 fla_trsm_t* FLA_Cntl_trsm_obj_create( FLA_Matrix_type matrix_type,
192 int variant,
193 fla_blocksize_t* blocksize,
194 fla_scal_t* sub_scal,
195 fla_trsm_t* sub_trsm,
196 fla_gemm_t* sub_gemm )
197 {
198 fla_trsm_t* cntl;
199
200 cntl = ( fla_trsm_t* ) FLA_malloc( sizeof(fla_trsm_t) );
201
202 cntl->matrix_type = matrix_type;
203 cntl->variant = variant;
204 cntl->blocksize = blocksize;
205 cntl->sub_scal = sub_scal;
206 cntl->sub_trsm = sub_trsm;
207 cntl->sub_gemm = sub_gemm;
208
209 return cntl;
210 }
211
212