Qucs-core
0.0.19
|
00001 #include "mex.h" 00002 #include <qucs-core/qucs_interface.h> 00003 00004 00005 #ifndef MEXTRSOLVER_H 00006 #define MEXTRSOLVER_H 00007 00008 // mex interface class 00009 class mextrsolver 00010 { 00011 public: 00012 mextrsolver(); 00013 virtual ~mextrsolver(); 00014 00015 // test method 00016 //void debug(void); 00017 void printx(void); 00018 00019 // the interface methods 00020 int prepare_netlist(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]); 00021 void init_sync(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]); 00022 void init_async(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]); 00023 int stepsolve_sync(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]); 00024 void acceptstep_sync(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]); 00025 int stepsolve_async(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]); 00026 void acceptstep_async(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]); 00027 void rejectstep_async(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]); 00028 int getsolution(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]); 00029 int getN(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]); 00030 int getM(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]); 00031 void getJac(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]); 00032 void setecvs(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]); 00033 void getiprobe(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]); 00034 void getvprobe(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]); 00035 void getnodev(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]); 00036 00037 private: 00038 // the one and only trsolver_interface object, interface to the 00039 // qucs transient solver 00040 qucs::trsolver_interface qtr; 00041 }; 00042 00043 // function to display messages 00044 void mextrsolvermessage(int, const char*, ...); 00045 00046 #endif // MEXTRSOLVER_H