libflame  12600
blis1.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 #ifndef BLIS1_H
00034 #define BLIS1_H
00035 
00036 #include <stdio.h>
00037 #include <stdlib.h>
00038 #include <math.h>
00039 
00040 // Determine whether or not we are using BLIS from libflame.
00041 //#define BLIS1_FROM_LIBFLAME
00042 
00043 #ifdef BLIS1_FROM_LIBFLAME
00044 
00045   // If using libflame, pull in its header files so that
00046   // vector intrinsics-related macro constants are set properly.
00047   //#include "FLAME.h"
00048   #include "FLA_config.h"
00049   #include "FLA_macro_defs.h"
00050   #include "FLA_type_defs.h"
00051 
00052   // --- Pass-through macros for BLIS ---
00053   #ifdef FLA_ENABLE_CBLAS_INTERFACES
00054     #define BLIS1_ENABLE_CBLAS_INTERFACES
00055   #endif
00056   #ifdef FLA_ENABLE_WINDOWS_BUILD
00057     #define BLIS1_ENABLE_WINDOWS_BUILD
00058   #endif
00059   #ifdef FLA_ENABLE_UPPERCASE_F77
00060     #define BLIS1_ENABLE_UPPERCASE_F77
00061   #endif
00062   #ifdef FLA_ENABLE_VECTOR_INTRINSICS
00063     #define BLIS1_ENABLE_VECTOR_INTRINSICS
00064   #endif
00065 
00066   #define BLIS1_VECTOR_INTRINSIC_TYPE FLA_VECTOR_INTRINSIC_TYPE
00067 
00068 #else
00069 
00070   // --- BLIS configuration options ---
00071 
00072   // #define BLIS1_ENABLE_USE_OF_FLA_MALLOC
00073   // #define BLIS1_ENABLE_CBLAS_INTERFACES
00074   // #define BLIS1_ENABLE_WINDOWS_BUILD
00075   // #define BLIS1_ENABLE_UPPERCASE_F77
00076   // #define BLIS1_ENABLE_VECTOR_INTRINSICS
00077   //   #define BLIS1_VECTOR_INTRINSIC_TYPE BLIS1_NO_INTRINSICS
00078   //   #define BLIS1_VECTOR_INTRINSIC_TYPE BLIS1_SSE_INTRINSICS
00079 
00080 #endif
00081 
00082 #include "blis_macro_defs.h"
00083 #include "blis_type_defs.h"
00084 
00085 #include "blis_prototypes_util.h"
00086 #include "blis_prototypes_query.h"
00087 #include "blis_prototypes_misc.h"
00088 
00089 #include "blis_prototypes_level1.h"
00090 #include "blis_prototypes_level2.h"
00091 #include "blis_prototypes_level3.h"
00092 
00093 #include "blis_prototypes_fused1.h"
00094 
00095 #include "blis_f77_name_mangling.h"
00096 
00097 #ifdef BLIS1_ENABLE_CBLAS_INTERFACES
00098   #include "blis_prototypes_cblas.h"
00099 #else
00100   #include "blis_prototypes_blas.h"
00101 #endif
00102 
00103 #endif