37 #ifndef BGEOT_CONFIG_H__
38 #define BGEOT_CONFIG_H__
40 #include "getfem/getfem_arch_config.h"
42 #ifdef GETFEM_HAVE_FEENABLEEXCEPT
44 # define FE_ENABLE_EXCEPT { feenableexcept(FE_DIVBYZERO | FE_INVALID | FE_OVERFLOW); }
46 # define FE_ENABLE_EXCEPT {}
53 #ifdef GETFEM_HAVE_QDLIB
55 # ifdef GETFEM_QDLIB_USE_QUAD
56 # include <qd/qd_real.h>
58 # include <qd/dd_real.h>
66 using std::endl;
using std::cout;
using std::cerr;
67 using std::ends;
using std::cin;
70 static const size_t ST_NIL = size_t(-1);
71 typedef gmm::uint16_type dim_type;
74 typedef double scalar_type;
75 typedef std::complex<double> complex_type;
76 inline double to_double(
double &a) {
return a; }
77 inline scalar_type to_scalar(
const scalar_type &a) {
return a; }
79 #ifndef GETFEM_HAVE_QDLIB
80 typedef double long_scalar_type;
81 typedef double opt_long_scalar_type;
82 # define LONG_SCALAR_ATOF(st) (atof(st))
83 # define LONG_SCALAR_EPS 1E-16
84 # define LONG_SCAL(xx) long_scalar_type(xx)
86 # ifdef GETFEM_QDLIB_USE_QUAD
87 typedef qd_real long_scalar_type;
88 typedef qd_real opt_long_scalar_type;
89 inline scalar_type to_scalar(
const qd_real &a) {
return to_double(a); }
90 # define LONG_SCALAR_ATOF(st) (long_scalar_type(st))
91 # define LONG_SCALAR_EPS 1E-64
93 typedef dd_real long_scalar_type;
94 typedef dd_real opt_long_scalar_type;
95 inline scalar_type to_scalar(
const dd_real &a) {
return to_double(a); }
96 # define LONG_SCALAR_ATOF(st) (long_scalar_type(st))
97 # define LONG_SCALAR_EPS 1E-32
99 # define LONG_SCAL(xx) long_scalar_type(#xx)
102 typedef std::vector<scalar_type> base_vector;
103 typedef std::vector<complex_type> base_complex_vector;
104 typedef gmm::dense_matrix<scalar_type> base_matrix;
105 typedef gmm::dense_matrix<complex_type> base_complex_matrix;