OpenMEEG
OpenMEEGMathsConfig.h
Go to the documentation of this file.
1 // Project Name: OpenMEEG (http://openmeeg.github.io)
2 // © INRIA and ENPC under the French open source license CeCILL-B.
3 // See full copyright notice in the file LICENSE.txt
4 // If you make a copy of this file, you must either:
5 // - provide also LICENSE.txt and modify this header to refer to it.
6 // - replace this header by the LICENSE.txt content.
7 
8 #pragma once
9 
10 // cmake configuration.
11 
12 #include <OpenMEEGConfigure.h>
13 #include <OpenMEEGMaths_Export.h>
14 
15 // specially for windows
16 #ifdef WIN32
17  #pragma inline_recursion(on)
18  #pragma inline_depth(255) // MSVC static build with MKL cause LNK2019 error
19  #if defined(_MSC_VER)
20  // Enable MSVC compiler warning messages that are useful but off by default.
21  #pragma warning(default : 4263) /* no override, call convention differs */
22  // Disable MSVC compiler warning messages that often occur in valid code.
23  #pragma warning(disable : 4097) /* typedef is synonym for class */
24  #pragma warning(disable : 4127) /* conditional expression is constant */
25  #pragma warning(disable : 4244) /* possible loss in conversion */
26  #pragma warning(disable : 4251) /* missing DLL-interface */
27  #pragma warning(disable : 4305) /* truncation from type1 to type2 */
28  #pragma warning(disable : 4309) /* truncation of constant value */
29  #pragma warning(disable : 4514) /* unreferenced inline function */
30  #pragma warning(disable : 4706) /* assignment in conditional expression */
31  #pragma warning(disable : 4710) /* function not inlined */
32  #pragma warning(disable : 4786) /* identifier truncated in debug info */
33  #pragma warning(disable : 4244) /* possible loss of data ('float' to 'mat_uint32_t') */
34  #pragma warning(disable : 4267) /* possible loss of data (size_t to int) */
35  #endif
36 #endif
37 
38 // Blas/Lapack configuration
39 
40 #if defined(USE_LAPACK)
41 #include <BlasLapackImplementations/OpenMEEGMathsBlasLapackConfig.h>
42 #elif defined(USE_MKL)
43 #include <BlasLapackImplementations/OpenMEEGMathsMKLConfig.h>
44 #elif defined(USE_ATLAS)
45 #include <BlasLapackImplementations/OpenMEEGMathsAtlasConfig.h>
46 #elif defined(USE_OPENBLAS)
47 #include <BlasLapackImplementations/OpenMEEGMathsOpenBLASConfig.h>
48 #else
49 #warning "No blas/lapack implementation selected."
50 #endif
51 
52 #define DPOTF2 LAPACK(dpotf2,DPOTF2)
53 #define DSPEVD LAPACK(dspevd,DSPEVD)