libflame  revision_anchor
FLAME.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 #ifndef FLAME_H
00012 #define FLAME_H
00013 
00014 // Allow C++ users to include this header file in their source code. However,
00015 // we make the extern "C" conditional on whether we're using a C++ compiler,
00016 // since regular C compilers don't understand the extern "C" construct.
00017 #ifdef __cplusplus
00018 extern "C" {
00019 #endif 
00020 
00021   // Include autoconf-related preprocessor defines.
00022   #include "FLA_config.h"
00023   #include "FLA_config_check.h"
00024 
00025   // Include standard C header files.
00026   #include <stdio.h>
00027   #include <stdlib.h>
00028   #include <stdarg.h>
00029   #include <string.h>
00030   #ifdef FLA_ENABLE_WINDOWS_BUILD
00031     #include <windows.h>
00032   #else
00033   #ifndef FLA_ENABLE_TIDSP
00034     // TI CG does not support POSIX
00035     #include <unistd.h>
00036     #include <fcntl.h>
00037     #include <sys/types.h>
00038   #endif
00039   #endif
00040   #include <math.h>
00041   #include <float.h>
00042   #include <signal.h>
00043 
00044   // Include prototypes for BLAS-like interfaces.
00045   #ifndef BLIS1_FROM_LIBFLAME
00046     #define BLIS1_FROM_LIBFLAME
00047   #endif
00048   #include "blis1.h"
00049 
00050   // Include f2c definitions.
00051   #include "FLA_f2c.h"
00052 
00053   // Include general FLAME macro and _PTR macro definitions.
00054   #include "FLA_macro_defs.h"
00055   #include "FLA_macro_ptr_defs.h"
00056 
00057   // Include general FLAME type definitions, including those for FLA_Obj.
00058   #include "FLA_type_defs.h"
00059 
00060   // Include "extern" definitions for global FLAME scalar constants.
00061   #include "FLA_extern_defs.h"
00062 
00063   // Include control tree structure definitions, utility prototypes, and
00064   // initialization prototypes.
00065   #include "FLA_Cntl.h"
00066   #include "FLA_Cntl_init.h"
00067 
00068   // Include prototypes for base FLAME routines.
00069   #include "FLA_main_prototypes.h"
00070   #include "FLA_util_base_prototypes.h"
00071   #include "FLA_util_lapack_prototypes.h"
00072 
00073   // Include prototypes for FLAME interfaces to BLAS and LAPACK operations.
00074   #include "FLA_blas1_prototypes.h"
00075   #include "FLA_blas2_prototypes.h"
00076   #include "FLA_blas3_prototypes.h"
00077   #include "FLA_lapack_prototypes.h"
00078 
00079   // Include prototypes for FLAME implementations of BLAS and LAPACK operations.
00080   #include "FLA_blas_var_prototypes.h"
00081   #include "FLA_lapack_var_prototypes.h"
00082 
00083   // Include FLASH headers.
00084   #include "FLASH.h"
00085 
00086   // Include SuperMatrix headers.
00087   #include "FLASH_Queue.h"
00088 
00089   // Include Fortran name-mangling macro (if not already defined).
00090   #include "FLA_f77_name_mangling.h"
00091 
00092   // Include prototypes for LAPACK routines.
00093   #include "FLA_lapack_f77_prototypes.h"
00094 
00095   // Include prototypes for LAPACK routines.
00096   //#include "FLA_lapack_f77_macro_defs.h"
00097 
00098 // End extern "C" construct block.
00099 #ifdef __cplusplus
00100 }
00101 #endif 
00102 
00103 #endif
00104