libflame  revision_anchor
FLA_Cntl_blas1.h
Go to the documentation of this file.
00001 /*
00002 
00003     Copyright (C) 2014, The University of Texas at Austin
00004 
00005     This file is part of libflame and is available under the 3-Clause
00006     BSD license, which can be found in the LICENSE file at the top-level
00007     directory, or at http://opensource.org/licenses/BSD-3-Clause
00008 
00009 */
00010 
00011 
00012 //
00013 // Level-1 BLAS
00014 //
00015 
00016 struct fla_axpy_s
00017 {
00018     FLA_Matrix_type    matrix_type;
00019     int                variant;
00020     fla_blocksize_t*   blocksize;
00021     struct fla_axpy_s* sub_axpy;
00022 };
00023 typedef struct fla_axpy_s fla_axpy_t;
00024 
00025 
00026 struct fla_axpyt_s
00027 {
00028     FLA_Matrix_type     matrix_type;
00029     int                 variant;
00030     fla_blocksize_t*    blocksize;
00031     struct fla_axpyt_s* sub_axpyt;
00032 };
00033 typedef struct fla_axpyt_s fla_axpyt_t;
00034 
00035 
00036 struct fla_copy_s
00037 {
00038     FLA_Matrix_type    matrix_type;
00039     int                variant;
00040     fla_blocksize_t*   blocksize;
00041     struct fla_copy_s* sub_copy;
00042 };
00043 typedef struct fla_copy_s fla_copy_t;
00044 
00045 
00046 struct fla_copyt_s
00047 {
00048     FLA_Matrix_type     matrix_type;
00049     int                 variant;
00050     fla_blocksize_t*    blocksize;
00051     struct fla_copyt_s* sub_copyt;
00052 };
00053 typedef struct fla_copyt_s fla_copyt_t;
00054 
00055 
00056 struct fla_copyr_s
00057 {
00058     FLA_Matrix_type     matrix_type;
00059     int                 variant;
00060     fla_blocksize_t*    blocksize;
00061     struct fla_copyr_s* sub_copyr;
00062     struct fla_copy_s*  sub_copy;
00063 };
00064 typedef struct fla_copyr_s fla_copyr_t;
00065 
00066 
00067 struct fla_scal_s
00068 {
00069     FLA_Matrix_type    matrix_type;
00070     int                variant;
00071     fla_blocksize_t*   blocksize;
00072     struct fla_scal_s* sub_scal;
00073 };
00074 typedef struct fla_scal_s fla_scal_t;
00075 
00076 
00077 struct fla_scalr_s
00078 {
00079     FLA_Matrix_type     matrix_type;
00080     int                 variant;
00081     fla_blocksize_t*    blocksize;
00082     struct fla_scalr_s* sub_scalr;
00083     struct fla_scal_s*  sub_scal;
00084 };
00085 typedef struct fla_scalr_s fla_scalr_t;
00086 
00087 
00088 struct fla_swap_s
00089 {
00090     FLA_Matrix_type    matrix_type;
00091     int                variant;
00092     fla_blocksize_t*   blocksize;
00093     struct fla_swap_s* sub_swap;
00094 };
00095 typedef struct fla_swap_s fla_swap_t;
00096 
00097 
00098 struct fla_tpose_s
00099 {
00100     FLA_Matrix_type     matrix_type;
00101     int                 variant;
00102     fla_blocksize_t*    blocksize;
00103     struct fla_tpose_s* sub_trans;
00104     struct fla_swap_s*  sub_swap;
00105 };
00106 typedef struct fla_tpose_s fla_tpose_t;
00107 
00108 
00109 #define FLA_Cntl_sub_axpy( cntl )     cntl->sub_axpy
00110 #define FLA_Cntl_sub_axpy1( cntl )    cntl->sub_axpy1
00111 #define FLA_Cntl_sub_axpy2( cntl )    cntl->sub_axpy2
00112 #define FLA_Cntl_sub_axpy3( cntl )    cntl->sub_axpy3
00113 #define FLA_Cntl_sub_axpyt( cntl )    cntl->sub_axpyt
00114 #define FLA_Cntl_sub_copy( cntl )     cntl->sub_copy
00115 #define FLA_Cntl_sub_copyt( cntl )    cntl->sub_copyt
00116 #define FLA_Cntl_sub_copyr( cntl )    cntl->sub_copyr
00117 #define FLA_Cntl_sub_scal( cntl )     cntl->sub_scal
00118 #define FLA_Cntl_sub_scalr( cntl )    cntl->sub_scalr
00119 #define FLA_Cntl_sub_swap( cntl )     cntl->sub_swap
00120 #define FLA_Cntl_sub_trans( cntl )    cntl->sub_trans
00121 
00122 
00123 fla_axpy_t* FLA_Cntl_axpy_obj_create( FLA_Matrix_type  matrix_type,
00124                                       int              variant,
00125                                       fla_blocksize_t* blocksize,
00126                                       fla_axpy_t*      sub_axpy );
00127 fla_axpyt_t* FLA_Cntl_axpyt_obj_create( FLA_Matrix_type  matrix_type,
00128                                         int              variant,
00129                                         fla_blocksize_t* blocksize,
00130                                         fla_axpyt_t*     sub_axpyt );
00131 fla_copy_t* FLA_Cntl_copy_obj_create( FLA_Matrix_type  matrix_type,
00132                                       int              variant,
00133                                       fla_blocksize_t* blocksize,
00134                                       fla_copy_t*      sub_copy );
00135 fla_copyt_t* FLA_Cntl_copyt_obj_create( FLA_Matrix_type  matrix_type,
00136                                         int              variant,
00137                                         fla_blocksize_t* blocksize,
00138                                         fla_copyt_t*     sub_copyt );
00139 fla_copyr_t* FLA_Cntl_copyr_obj_create( FLA_Matrix_type  matrix_type,
00140                                         int              variant,
00141                                         fla_blocksize_t* blocksize,
00142                                         fla_copyr_t*     sub_copyr,
00143                                         fla_copy_t*      sub_copy );
00144 fla_scal_t* FLA_Cntl_scal_obj_create( FLA_Matrix_type  matrix_type,
00145                                       int              variant,
00146                                       fla_blocksize_t* blocksize,
00147                                       fla_scal_t*      sub_scal );
00148 fla_scalr_t* FLA_Cntl_scalr_obj_create( FLA_Matrix_type  matrix_type,
00149                                         int              variant,
00150                                         fla_blocksize_t* blocksize,
00151                                         fla_scalr_t*     sub_scalr,
00152                                         fla_scal_t*      sub_scal );
00153 fla_swap_t* FLA_Cntl_swap_obj_create( FLA_Matrix_type  matrix_type,
00154                                       int              variant,
00155                                       fla_blocksize_t* blocksize,
00156                                       fla_swap_t*      sub_swap );
00157 fla_tpose_t* FLA_Cntl_tpose_obj_create( FLA_Matrix_type  matrix_type,
00158                                         int              variant,
00159                                         fla_blocksize_t* blocksize,
00160                                         fla_tpose_t*     sub_trans,
00161                                         fla_swap_t*      sub_swap );
00162