libflame revision_anchor
|
00001 /* 00002 libflame 00003 An object-based infrastructure for developing high-performance 00004 dense linear algebra libraries. 00005 00006 Copyright (C) 2011, The University of Texas 00007 00008 libflame is free software; you can redistribute it and/or modify 00009 it under the terms of the GNU Lesser General Public License as 00010 published by the Free Software Foundation; either version 2.1 of 00011 the License, or (at your option) any later version. 00012 00013 libflame is distributed in the hope that it will be useful, but 00014 WITHOUT ANY WARRANTY; without even the implied warranty of 00015 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00016 Lesser General Public License for more details. 00017 00018 You should have received a copy of the GNU Lesser General Public 00019 License along with libflame; if you did not receive a copy, see 00020 http://www.gnu.org/licenses/. 00021 00022 For more information, please contact us at flame@cs.utexas.edu or 00023 send mail to: 00024 00025 Field G. Van Zee and/or 00026 Robert A. van de Geijn 00027 The University of Texas at Austin 00028 Department of Computer Sciences 00029 1 University Station C0500 00030 Austin TX 78712 00031 */ 00032 00033 00034 // 00035 // Level-1 BLAS 00036 // 00037 00038 struct fla_axpy_s 00039 { 00040 FLA_Matrix_type matrix_type; 00041 int variant; 00042 fla_blocksize_t* blocksize; 00043 struct fla_axpy_s* sub_axpy; 00044 }; 00045 typedef struct fla_axpy_s fla_axpy_t; 00046 00047 00048 struct fla_axpyt_s 00049 { 00050 FLA_Matrix_type matrix_type; 00051 int variant; 00052 fla_blocksize_t* blocksize; 00053 struct fla_axpyt_s* sub_axpyt; 00054 }; 00055 typedef struct fla_axpyt_s fla_axpyt_t; 00056 00057 00058 struct fla_copy_s 00059 { 00060 FLA_Matrix_type matrix_type; 00061 int variant; 00062 fla_blocksize_t* blocksize; 00063 struct fla_copy_s* sub_copy; 00064 }; 00065 typedef struct fla_copy_s fla_copy_t; 00066 00067 00068 struct fla_copyt_s 00069 { 00070 FLA_Matrix_type matrix_type; 00071 int variant; 00072 fla_blocksize_t* blocksize; 00073 struct fla_copyt_s* sub_copyt; 00074 }; 00075 typedef struct fla_copyt_s fla_copyt_t; 00076 00077 00078 struct fla_scal_s 00079 { 00080 FLA_Matrix_type matrix_type; 00081 int variant; 00082 fla_blocksize_t* blocksize; 00083 struct fla_scal_s* sub_scal; 00084 }; 00085 typedef struct fla_scal_s fla_scal_t; 00086 00087 00088 struct fla_scalr_s 00089 { 00090 FLA_Matrix_type matrix_type; 00091 int variant; 00092 fla_blocksize_t* blocksize; 00093 struct fla_scalr_s* sub_scalr; 00094 struct fla_scal_s* sub_scal; 00095 }; 00096 typedef struct fla_scalr_s fla_scalr_t; 00097 00098 00099 struct fla_swap_s 00100 { 00101 FLA_Matrix_type matrix_type; 00102 int variant; 00103 fla_blocksize_t* blocksize; 00104 struct fla_swap_s* sub_swap; 00105 }; 00106 typedef struct fla_swap_s fla_swap_t; 00107 00108 00109 struct fla_tpose_s 00110 { 00111 FLA_Matrix_type matrix_type; 00112 int variant; 00113 fla_blocksize_t* blocksize; 00114 struct fla_tpose_s* sub_trans; 00115 struct fla_swap_s* sub_swap; 00116 }; 00117 typedef struct fla_tpose_s fla_tpose_t; 00118 00119 00120 #define FLA_Cntl_sub_axpy( cntl ) cntl->sub_axpy 00121 #define FLA_Cntl_sub_axpy1( cntl ) cntl->sub_axpy1 00122 #define FLA_Cntl_sub_axpy2( cntl ) cntl->sub_axpy2 00123 #define FLA_Cntl_sub_axpyt( cntl ) cntl->sub_axpyt 00124 #define FLA_Cntl_sub_copy( cntl ) cntl->sub_copy 00125 #define FLA_Cntl_sub_copyt( cntl ) cntl->sub_copyt 00126 #define FLA_Cntl_sub_scal( cntl ) cntl->sub_scal 00127 #define FLA_Cntl_sub_scalr( cntl ) cntl->sub_scalr 00128 #define FLA_Cntl_sub_swap( cntl ) cntl->sub_swap 00129 #define FLA_Cntl_sub_trans( cntl ) cntl->sub_trans 00130 00131 00132 fla_axpy_t* FLA_Cntl_axpy_obj_create( FLA_Matrix_type matrix_type, 00133 int variant, 00134 fla_blocksize_t* blocksize, 00135 fla_axpy_t* sub_axpy ); 00136 fla_axpyt_t* FLA_Cntl_axpyt_obj_create( FLA_Matrix_type matrix_type, 00137 int variant, 00138 fla_blocksize_t* blocksize, 00139 fla_axpyt_t* sub_axpyt ); 00140 fla_copy_t* FLA_Cntl_copy_obj_create( FLA_Matrix_type matrix_type, 00141 int variant, 00142 fla_blocksize_t* blocksize, 00143 fla_copy_t* sub_copy ); 00144 fla_copyt_t* FLA_Cntl_copyt_obj_create( FLA_Matrix_type matrix_type, 00145 int variant, 00146 fla_blocksize_t* blocksize, 00147 fla_copyt_t* sub_copyt ); 00148 fla_scal_t* FLA_Cntl_scal_obj_create( FLA_Matrix_type matrix_type, 00149 int variant, 00150 fla_blocksize_t* blocksize, 00151 fla_scal_t* sub_scal ); 00152 fla_scalr_t* FLA_Cntl_scalr_obj_create( FLA_Matrix_type matrix_type, 00153 int variant, 00154 fla_blocksize_t* blocksize, 00155 fla_scalr_t* sub_scalr, 00156 fla_scal_t* sub_scal ); 00157 fla_swap_t* FLA_Cntl_swap_obj_create( FLA_Matrix_type matrix_type, 00158 int variant, 00159 fla_blocksize_t* blocksize, 00160 fla_swap_t* sub_swap ); 00161 fla_tpose_t* FLA_Cntl_tpose_obj_create( FLA_Matrix_type matrix_type, 00162 int variant, 00163 fla_blocksize_t* blocksize, 00164 fla_tpose_t* sub_trans, 00165 fla_swap_t* sub_swap ); 00166