1 2 // --- General options --------------------------------------------------------- 3 4 // Determines whether to enable various segments of code identified as 5 // providing non-critical functionality. 6 #define FLA_ENABLE_NON_CRITICAL_CODE 7 8 // Determines whether the LAPACK compatibility layer is included in libflame. 9 // NOTE: If lapack2flame is enabled, external-lapack-for-subproblems MUST 10 // be disabled! 11 //#define FLA_ENABLE_LAPACK2FLAME 12 13 // Determines whether to enable external LAPACK for small subproblems. 14 // NOTE: If external-lapack-for-subproblems is enabled, (a) lapack2flame MUST 15 // be disabled, AND (b) external-lapack-interfaces MUST be enabled. 16 //#define FLA_ENABLE_EXTERNAL_LAPACK_FOR_SUBPROBLEMS 17 18 // Determines whether to enable interfaces to external LAPACK routines. 19 // NOTE: If external-lapack-interfaces is enabled, an LAPACK library will be 20 // required at link-time. 21 //#define FLA_ENABLE_EXTERNAL_LAPACK_INTERFACES 22 23 // Determines whether to use control trees to select a reasonable FLAME 24 // variant and blocksize when level-3 BLAS front-ends are invoked. 25 #define FLA_ENABLE_BLAS3_FRONT_END_CNTL_TREES 26 27 // Determines whether to modify various segments of code needed for 28 // integrating libflame into Windows. 29 #define FLA_ENABLE_WINDOWS_BUILD 30 31 // Determines whether to define a portable FLA_Clock() in terms of 32 // gettimeofday() from time.h. 33 #define FLA_ENABLE_PORTABLE_TIMER 34 35 36 // --- Runtime error checking and debugging ------------------------------------ 37 38 // Determines whether to enable internal runtime consistency checks of 39 // function parameters and return values. 40 #define FLA_ENABLE_INTERNAL_ERROR_CHECKING 41 42 // Encodes the default level of internal error checking chosen at 43 // configure-time. 44 #define FLA_INTERNAL_ERROR_CHECKING_LEVEL 2 // full error checking 45 //#define FLA_INTERNAL_ERROR_CHECKING_LEVEL 1 // minimal error checking 46 //#define FLA_INTERNAL_ERROR_CHECKING_LEVEL 0 // no error checking 47 48 // Determines whether to enable the FLA_malloc()/FLA_free() memory counter 49 // by default. 50 #define FLA_ENABLE_MEMORY_LEAK_COUNTER 51 52 53 // --- Multithreading and SuperMatrix ------------------------------------------ 54 55 // Determines whether thread-specific blocks of code should be compiled. 56 #define FLA_ENABLE_MULTITHREADING 57 58 // Encodes the type of multithreading chosen at configure-time. 59 #define FLA_MULTITHREADING_MODEL 1 // OpenMP 60 // #define FLA_MULTITHREADING_MODEL 2 // POSIX threads 61 62 // Determines whether SuperMatrix-specific blocks of code should be compiled. 63 #define FLA_ENABLE_SUPERMATRIX 64 65 66 // --- BLAS and blocksizes ----------------------------------------------------- 67 68 // Determines whether to enable CBLAS interfaces instead of Fortran-77 69 // interfaces to the BLAS. 70 // #define FLA_ENABLE_CBLAS_INTERFACES 71 72 // Determines whether to enable interfaces to internal/low-level libgoto 73 // symbols. 74 // #define FLA_ENABLE_GOTO_INTERFACES 75 76 // Sets the default blocksize in the k dimension (used only if 77 // libgoto interfaces are disabled). 78 // #define FLA_DEFAULT_K_BLOCKSIZE 128 79 80 // Sets the default blocksize in the m dimension (used only if 81 // libgoto interfaces are disabled). 82 // #define FLA_DEFAULT_M_BLOCKSIZE 128 83 84 // Sets the default blocksize in the n dimension (used only if 85 // libgoto interfaces are disabled). 86 // #define FLA_DEFAULT_N_BLOCKSIZE 128 87 88 89 // --- Memory alignment -------------------------------------------------------- 90 91 // Determines whether memory is aligned to user-requested boundaries. 92 // #define FLA_ENABLE_MEMORY_ALIGNMENT 93 94 // Sets the byte boundary used to align the starting address of all memory 95 // allocated dynamically through libflame. Only used if 96 // FLA_ENABLE_MEMORY_ALIGNMENT is defined. 97 // #define FLA_MEMORY_ALIGNMENT_BOUNDARY 8 98 99 // Determines whether to enable code that will increase FLA_Obj leading 100 // dimensions to ensure that matrix columns adhere to the alignment specified 101 // by FLA_MEMORY_ALIGNMENT_BOUNDARY. 102 // #define FLA_ENABLE_LDIM_ALIGNMENT 103 104 105 // --- Fortran-77 compatibility ------------------------------------------------ 106 107 // Determines whether the Fortran name-mangling suffix was determined at 108 // configure-time. This option is not used in Windows. 109 // #define FLA_ENABLE_AUTODETECT_F77_UNDERSCORING 110 111 // Determines whether the Fortran 77 compiler appends an underscore to symbol 112 // names. Not used in Windows. 113 // #define FLA_F77_UNDERSCORE 114 115 // Determines whether the Fortran 77 compiler appends an extra underscore to 116 // symbol names that already contain at least one underscore. Not used in 117 // Windows. 118 // #define FLA_F77_EXTRA_UNDERSCORE 119 120 // Determines whether invocations to the BLAS within libflame are converted to 121 // uppercase symbols. 122 #define FLA_ENABLE_UPPERCASE_BLAS 123 124 // Determines whether invocations to LAPACK within libflame are converted to 125 // uppercase symbols. 126 #define FLA_ENABLE_UPPERCASE_LAPACK 127 128 129 // --- Experimental/unsupported/broken options --------------------------------- 130 131 // Determines whether GPU-specific blocks of code should be compiled. 132 // #define FLA_ENABLE_GPU 133 134