libflame  12600
FLA_Cntl_blas2.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) 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-2 BLAS
00036 //
00037 
00038 struct fla_gemv_s
00039 {
00040     FLA_Matrix_type    matrix_type;
00041     int                variant;
00042     fla_blocksize_t*   blocksize;
00043     struct fla_scal_s* sub_scal;
00044     struct fla_gemv_s* sub_gemv;
00045 };
00046 typedef struct fla_gemv_s fla_gemv_t;
00047 
00048 struct fla_trsv_s
00049 {
00050     FLA_Matrix_type    matrix_type;
00051     int                variant;
00052     fla_blocksize_t*   blocksize;
00053     struct fla_trsv_s* sub_trsv;
00054     struct fla_gemv_s* sub_gemv;
00055 };
00056 typedef struct fla_trsv_s fla_trsv_t;
00057 
00058 
00059 #define FLA_Cntl_sub_gemv( cntl )     cntl->sub_gemv
00060 #define FLA_Cntl_sub_trsv( cntl )     cntl->sub_trsv
00061 
00062 
00063 fla_gemv_t* FLA_Cntl_gemv_obj_create( FLA_Matrix_type  matrix_type,
00064                                       int              variant,
00065                                       fla_blocksize_t* blocksize,
00066                                       fla_scal_t*      sub_scal,
00067                                       fla_gemv_t*      sub_gemv );
00068 fla_trsv_t* FLA_Cntl_trsv_obj_create( FLA_Matrix_type  matrix_type,
00069                                       int              variant,
00070                                       fla_blocksize_t* blocksize,
00071                                       fla_trsv_t*      sub_trsv,
00072                                       fla_gemv_t*      sub_gemv );
00073