type.hpp
Go to the documentation of this file.
1 #pragma once
2 
3 #ifndef _MSC_VER
4 extern "C" {
5 #include <csim/type.h>
6 }
7 #else
8 #include <csim/type.h>
9 #endif
10 
11 #include <complex>
12 #include <Eigen/Core>
13 typedef std::complex<double> CPPCTYPE;
14 typedef Eigen::VectorXcd ComplexVector;
15 
16 // In order to use matrix raw-data without reordering, we use RowMajor as default.
17 typedef Eigen::Matrix<CPPCTYPE, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor> ComplexMatrix;
18 
19 #ifdef _MSC_VER
20 inline static FILE* popen(const char* command, const char* mode) { return _popen(command, mode); }
21 inline static void pclose(FILE* fp) { _pclose(fp); }
22 #define strncasecmp _strnicmp
23 #define strcasecmp _stricmp
24 #endif
25 
26 
27 #if defined(__MINGW32__) || defined(_MSC_VER)
28 #define DllExport __declspec(dllexport)
29 #else
30 #define DllExport __attribute__((visibility ("default")))
31 #endif
Eigen::VectorXcd ComplexVector
Definition: type.hpp:14
Eigen::Matrix< CPPCTYPE, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor > ComplexMatrix
Definition: type.hpp:17
std::complex< double > CPPCTYPE
Definition: type.hpp:13