/* * MATLAB Compiler: 4.11 (R2009b) * Date: Wed Jan 13 16:03:50 2010 * Arguments: "-B" "macro_default" "-B" "csharedlib:libmatrix" "-W" * "lib:libmatrix" "-T" "link:lib" "addmatrix.m" "multiplymatrix.m" * "eigmatrix.m" "-v" */ #include #define EXPORTING_libmatrix 1 #include "libmatrix.h" #ifdef __cplusplus extern "C" { #endif extern mclComponentData __MCC_libmatrix_component_data; #ifdef __cplusplus } #endif static HMCRINSTANCE _mcr_inst = NULL; #ifdef __cplusplus extern "C" { #endif static int mclDefaultPrintHandler(const char *s) { return mclWrite(1 /* stdout */, s, sizeof(char)*strlen(s)); } #ifdef __cplusplus } /* End extern "C" block */ #endif #ifdef __cplusplus extern "C" { #endif static int mclDefaultErrorHandler(const char *s) { int written = 0; size_t len = 0; len = strlen(s); written = mclWrite(2 /* stderr */, s, sizeof(char)*len); if (len > 0 && s[ len-1 ] != '\n') written += mclWrite(2 /* stderr */, "\n", sizeof(char)); return written; } #ifdef __cplusplus } /* End extern "C" block */ #endif /* This symbol is defined in shared libraries. Define it here * (to nothing) in case this isn't a shared library. */ #ifndef LIB_libmatrix_C_API #define LIB_libmatrix_C_API /* No special import/export declaration */ #endif LIB_libmatrix_C_API bool MW_CALL_CONV libmatrixInitializeWithHandlers( mclOutputHandlerFcn error_handler, mclOutputHandlerFcn print_handler) { if (_mcr_inst != NULL) return true; if (!mclmcrInitialize()) return false; if (!mclInitializeComponentInstanceWithEmbeddedCTF(&_mcr_inst, &__MCC_libmatrix_component_data, true, NoObjectType, LibTarget, error_handler, print_handler, 62361, (void *)(libmatrixInitializeWithHandlers))) return false; return true; } LIB_libmatrix_C_API bool MW_CALL_CONV libmatrixInitialize(void) { return libmatrixInitializeWithHandlers(mclDefaultErrorHandler, mclDefaultPrintHandler); } LIB_libmatrix_C_API void MW_CALL_CONV libmatrixTerminate(void) { if (_mcr_inst != NULL) mclTerminateInstance(&_mcr_inst); } LIB_libmatrix_C_API long MW_CALL_CONV libmatrixGetMcrID() { return mclGetID(_mcr_inst); } LIB_libmatrix_C_API void MW_CALL_CONV libmatrixPrintStackTrace(void) { char** stackTrace; int stackDepth = mclGetStackTrace(_mcr_inst, &stackTrace); int i; for(i=0; i