FLA_Cntl_blas3.h

Go to the documentation of this file.
00001 /*
00002    libflame
00003    An object-based infrastructure for developing high-performance
00004    dense linear algebra libraries.
00005 
00006    Copyright (C) 2009, 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-3 BLAS
00036 //
00037 
00038 struct fla_gemm_s
00039 {
00040     FLA_Matrix_type    matrix_type;
00041     int                variant;
00042     fla_blocksize_t*   blocksize;
00043     struct fla_gemm_s* sub_gemm;
00044 };
00045 typedef struct fla_gemm_s fla_gemm_t;
00046 
00047 
00048 struct fla_hemm_s
00049 {
00050     FLA_Matrix_type    matrix_type;
00051     int                variant;
00052     fla_blocksize_t*   blocksize;
00053     struct fla_hemm_s* sub_hemm;
00054     struct fla_gemm_s* sub_gemm1;
00055     struct fla_gemm_s* sub_gemm2;
00056 };
00057 typedef struct fla_hemm_s fla_hemm_t;
00058 
00059 
00060 struct fla_herk_s
00061 {
00062     FLA_Matrix_type    matrix_type;
00063     int                variant;
00064     fla_blocksize_t*   blocksize;
00065     struct fla_herk_s* sub_herk;
00066     struct fla_gemm_s* sub_gemm;
00067 };
00068 typedef struct fla_herk_s fla_herk_t;
00069 
00070 
00071 struct fla_her2k_s
00072 {
00073     FLA_Matrix_type     matrix_type;
00074     int                 variant;
00075     fla_blocksize_t*    blocksize;
00076     struct fla_her2k_s* sub_her2k;
00077     struct fla_gemm_s*  sub_gemm1;
00078     struct fla_gemm_s*  sub_gemm2;
00079 };
00080 typedef struct fla_her2k_s fla_her2k_t;
00081 
00082 
00083 struct fla_symm_s
00084 {
00085     FLA_Matrix_type    matrix_type;
00086     int                variant;
00087     fla_blocksize_t*   blocksize;
00088     struct fla_symm_s* sub_symm;
00089     struct fla_gemm_s* sub_gemm1;
00090     struct fla_gemm_s* sub_gemm2;
00091 };
00092 typedef struct fla_symm_s fla_symm_t;
00093 
00094 
00095 struct fla_syrk_s
00096 {
00097     FLA_Matrix_type    matrix_type;
00098     int                variant;
00099     fla_blocksize_t*   blocksize;
00100     struct fla_syrk_s* sub_syrk;
00101     struct fla_gemm_s* sub_gemm;
00102 };
00103 typedef struct fla_syrk_s fla_syrk_t;
00104 
00105 
00106 struct fla_syr2k_s
00107 {
00108     FLA_Matrix_type     matrix_type;
00109     int                 variant;
00110     fla_blocksize_t*    blocksize;
00111     struct fla_syr2k_s* sub_syr2k;
00112     struct fla_gemm_s*  sub_gemm1;
00113     struct fla_gemm_s*  sub_gemm2;
00114 };
00115 typedef struct fla_syr2k_s fla_syr2k_t;
00116 
00117 
00118 struct fla_trmm_s
00119 {
00120     FLA_Matrix_type    matrix_type;
00121     int                variant;
00122     fla_blocksize_t*   blocksize;
00123     struct fla_trmm_s* sub_trmm;
00124     struct fla_gemm_s* sub_gemm;
00125 };
00126 typedef struct fla_trmm_s fla_trmm_t;
00127 
00128 
00129 struct fla_trsm_s
00130 {
00131     FLA_Matrix_type    matrix_type;
00132     int                variant;
00133     fla_blocksize_t*   blocksize;
00134     struct fla_trsm_s* sub_trsm;
00135     struct fla_gemm_s* sub_gemm;
00136 };
00137 typedef struct fla_trsm_s fla_trsm_t;
00138 
00139 
00140 #define FLA_Cntl_sub_gemm( cntl )     cntl->sub_gemm
00141 #define FLA_Cntl_sub_gemm1( cntl )    cntl->sub_gemm1
00142 #define FLA_Cntl_sub_gemm2( cntl )    cntl->sub_gemm2
00143 #define FLA_Cntl_sub_gemm3( cntl )    cntl->sub_gemm3
00144 #define FLA_Cntl_sub_gemm4( cntl )    cntl->sub_gemm4
00145 #define FLA_Cntl_sub_gemm5( cntl )    cntl->sub_gemm5
00146 #define FLA_Cntl_sub_gemm6( cntl )    cntl->sub_gemm6
00147 #define FLA_Cntl_sub_gemm7( cntl )    cntl->sub_gemm7
00148 #define FLA_Cntl_sub_gemm8( cntl )    cntl->sub_gemm8
00149 #define FLA_Cntl_sub_hemm( cntl )     cntl->sub_hemm
00150 #define FLA_Cntl_sub_herk( cntl )     cntl->sub_herk
00151 #define FLA_Cntl_sub_her2k( cntl )    cntl->sub_her2k
00152 #define FLA_Cntl_sub_symm( cntl )     cntl->sub_symm
00153 #define FLA_Cntl_sub_syrk( cntl )     cntl->sub_syrk
00154 #define FLA_Cntl_sub_syr2k( cntl )    cntl->sub_syr2k
00155 #define FLA_Cntl_sub_trmm( cntl )     cntl->sub_trmm
00156 #define FLA_Cntl_sub_trmm1( cntl )    cntl->sub_trmm1
00157 #define FLA_Cntl_sub_trmm2( cntl )    cntl->sub_trmm2
00158 #define FLA_Cntl_sub_trsm( cntl )     cntl->sub_trsm
00159 #define FLA_Cntl_sub_trsm1( cntl )    cntl->sub_trsm1
00160 #define FLA_Cntl_sub_trsm2( cntl )    cntl->sub_trsm2
00161 #define FLA_Cntl_sub_trsm3( cntl )    cntl->sub_trsm3
00162 #define FLA_Cntl_sub_trsm4( cntl )    cntl->sub_trsm4
00163 
00164 
00165 fla_gemm_t* FLA_Cntl_gemm_obj_create( FLA_Matrix_type  matrix_type,
00166                                       int              variant,
00167                                       fla_blocksize_t* blocksize,
00168                                       fla_gemm_t*      sub_gemm );
00169 fla_hemm_t* FLA_Cntl_hemm_obj_create( FLA_Matrix_type  matrix_type,
00170                                       int              variant,
00171                                       fla_blocksize_t* blocksize,
00172                                       fla_hemm_t*      sub_hemm,
00173                                       fla_gemm_t*      sub_gemm1,
00174                                       fla_gemm_t*      sub_gemm2 );
00175 fla_herk_t* FLA_Cntl_herk_obj_create( FLA_Matrix_type  matrix_type,
00176                                       int              variant,
00177                                       fla_blocksize_t* blocksize,
00178                                       fla_herk_t*      sub_herk,
00179                                       fla_gemm_t*      sub_gemm );
00180 fla_her2k_t* FLA_Cntl_her2k_obj_create( FLA_Matrix_type  matrix_type,
00181                                         int              variant,
00182                                         fla_blocksize_t* blocksize,
00183                                         fla_her2k_t*     sub_her2k,
00184                                         fla_gemm_t*      sub_gemm1,
00185                                         fla_gemm_t*      sub_gemm2 );
00186 fla_symm_t* FLA_Cntl_symm_obj_create( FLA_Matrix_type  matrix_type,
00187                                       int              variant,
00188                                       fla_blocksize_t* blocksize,
00189                                       fla_symm_t*      sub_symm,
00190                                       fla_gemm_t*      sub_gemm1,
00191                                       fla_gemm_t*      sub_gemm2 );
00192 fla_syrk_t* FLA_Cntl_syrk_obj_create( FLA_Matrix_type  matrix_type,
00193                                       int              variant,
00194                                       fla_blocksize_t* blocksize,
00195                                       fla_syrk_t*      sub_syrk,
00196                                       fla_gemm_t*      sub_gemm );
00197 fla_syr2k_t* FLA_Cntl_syr2k_obj_create( FLA_Matrix_type  matrix_type,
00198                                         int              variant,
00199                                         fla_blocksize_t* blocksize,
00200                                         fla_syr2k_t*     sub_syr2k,
00201                                         fla_gemm_t*      sub_gemm1,
00202                                         fla_gemm_t*      sub_gemm2 );
00203 fla_trmm_t* FLA_Cntl_trmm_obj_create( FLA_Matrix_type  matrix_type,
00204                                       int              variant,
00205                                       fla_blocksize_t* blocksize,
00206                                       fla_trmm_t*      sub_trmm,
00207                                       fla_gemm_t*      sub_gemm );
00208 fla_trsm_t* FLA_Cntl_trsm_obj_create( FLA_Matrix_type  matrix_type,
00209                                       int              variant,
00210                                       fla_blocksize_t* blocksize,
00211                                       fla_trsm_t*      sub_trsm,
00212                                       fla_gemm_t*      sub_gemm );
00213 

Generated on Mon Jul 6 05:45:48 2009 for libflame by  doxygen 1.5.9