NGSolve
4.9
|
00001 #ifndef FILE_NGBLA 00002 #define FILE_NGBLA 00003 00004 00005 #ifdef USE_BLAS 00006 00007 extern "C" 00008 { 00009 // #include <cblas.h> 00010 #include <mkl_cblas.h> 00011 } 00012 #endif 00013 00014 00015 #include <ngstd.hpp> 00016 00017 00019 namespace ngbla 00020 { 00021 using namespace std; 00022 using namespace ngstd; 00023 00024 using ngstd::CArray; 00025 00026 typedef std::complex<double> Complex; 00027 inline double fabs (Complex v) { return std::abs (v); } 00028 00029 inline bool IsComplex(double v) { return false; } 00030 inline bool IsComplex(Complex v) { return true; } 00031 } 00032 00033 00034 #ifdef PARALLEL 00035 namespace ngstd 00036 { 00037 template <> 00038 class MPI_Traits<ngbla::Complex> 00039 { 00040 public: 00041 static MPI_Datatype MPIType () 00042 { 00043 // return MPI_C_DOUBLE_COMPLEX; // no MPI_SUM defined ?? 00044 return MPI_DOUBLE_COMPLEX; 00045 } 00046 }; 00047 } 00048 #endif 00049 00050 00051 00052 00053 #include "expr.hpp" 00054 #include "vector.hpp" 00055 #include "matrix.hpp" 00056 #include "cholesky.hpp" 00057 #include "symmetricmatrix.hpp" 00058 #include "bandmatrix.hpp" 00059 00060 00061 namespace ngbla 00062 { 00063 00065 extern void CalcEigenSystem (const FlatMatrix<double> & mat, 00066 FlatVector<double> & lami, 00067 FlatMatrix<double> & eigenvecs); 00068 00069 00070 00072 extern void CalcSchurComplement (const FlatMatrix<double> a, 00073 FlatMatrix<double> s, 00074 const BitArray & used, 00075 LocalHeap & lh); 00076 } 00077 00078 #include "ng_lapack.hpp" 00079 00080 #endif