eigen-2.1.2: cbits/eigen-runtime.h
#include <string.h>
#include <stdio.h>
#include <complex>
#include <memory>
#define EIGEN_MPL2_ONLY
#define EIGEN2_SUPPORT
#define EIGEN_NO_EIGEN2_DEPRECATED_WARNING
#define EIGEN_INITIALIZE_MATRICES_BY_ZERO
void eigen_assert_fail(const char* condition, const char* function, const char* file, int line);
#define eigen_assert(x) do {\
if (!(x)) eigen_assert_fail(#x, __PRETTY_FUNCTION__, __FILE__, __LINE__);\
} while(false)
extern "C" {
bool eigen_initParallel();
int eigen_getNbThreads();
void eigen_setNbThreads(int);
extern bool eigen_inited;
} // end extern "C"
#define GUARD_START try { assert(eigen_inited); do {
#define GUARD_END } while(false); return 0; } catch (const std::exception& ex) { return strdup(ex.what()); }
#define RET const char*
#define API(name,args,call) \
extern "C" RET eigen_##name args {\
GUARD_START\
switch (code) {\
case 0: return name<T0>call;\
case 1: return name<T1>call;\
case 2: return name<T2>call;\
case 3: return name<T3>call;\
}\
GUARD_END\
}
typedef float T0;
typedef double T1;
typedef std::complex<float> T2;
typedef std::complex<double> T3;