libflame  revision_anchor
blis_prototypes_query.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 // --- Query routine prototypes ------------------------------------------------
00034 
00035 // --- trans ---
00036 
00037 int bli_does_trans( trans_t trans );
00038 int bli_does_notrans( trans_t trans );
00039 int bli_does_conj( trans_t trans );
00040 
00041 int bli_is_notrans( trans_t trans );
00042 int bli_is_trans( trans_t trans );
00043 int bli_is_conjnotrans( trans_t trans );
00044 int bli_is_conjtrans( trans_t trans );
00045 
00046 // --- conj ---
00047 
00048 int bli_is_noconj( conj_t conj );
00049 int bli_is_conj( conj_t conj );
00050 
00051 // --- uplo ---
00052 
00053 int bli_is_lower( uplo_t uplo );
00054 int bli_is_upper( uplo_t uplo );
00055 
00056 // --- side ---
00057 
00058 int bli_is_left( side_t side );
00059 int bli_is_right( side_t side );
00060 
00061 // --- diag ---
00062 
00063 int bli_is_nonunit_diag( diag_t diag );
00064 int bli_is_unit_diag( diag_t diag );
00065 int bli_is_zero_diag( diag_t diag );
00066 
00067 // --- mapping-related ---
00068 
00069 conj_t bli_proj_trans_to_conj( trans_t trans );
00070 
00071 // --- storage-related ---
00072 
00073 void bli_check_storage_3m( int a_rs, int a_cs, int b_rs, int b_cs, int c_rs, int c_cs );
00074 void bli_check_storage_2m( int a_rs, int a_cs, int b_rs, int b_cs );
00075 int bli_is_row_or_col_storage( int rs, int cs );
00076 int bli_is_row_storage( int rs, int cs );
00077 int bli_is_col_storage( int rs, int cs );
00078 int bli_is_gen_storage( int rs, int cs );
00079 int bli_is_vector( int m, int n );
00080 
00081 // --- vector-related ---
00082 
00083 int bli_vector_dim( int m, int n );
00084 int bli_vector_inc( trans_t trans, int m, int n, int rs, int cs );
00085 
00086 // --- dimension-related ---
00087 
00088 int bli_zero_dim1( int m );
00089 int bli_zero_dim2( int m, int n );
00090 int bli_zero_dim3( int m, int k, int n );
00091