00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef _mextool_h_
00010 #define _mextool_h_
00011
00012 #ifdef __cplusplus
00013 extern "C" {
00014 #endif
00015 #ifdef NOT_DEFINED
00016 }
00017 #endif
00018
00019
00020
00021
00022
00023
00024
00025 #ifdef MATLAB_MEX_FILE
00026
00027 #define MX_COMPAT_32
00028
00029 #ifdef MX_COMPAT_32
00030 typedef int mwSize;
00031 typedef int mwIndex;
00032 typedef int mwSignedIndex;
00033 #else
00034 typedef size_t mwSize;
00035 typedef size_t mwIndex;
00036 typedef ptrdiff_t mwSignedIndex;
00037 #endif
00038 #endif
00039
00040
00041
00042
00043
00044
00045
00046 typedef enum {
00047 mxt_SignatureNARG = 1,
00048 mxt_SignatureDocstring,
00049 mxt_SignatureInNames,
00050 mxt_SignatureInSpecs,
00051 mxt_SignatureOutNames
00052 } mxt_Signature;
00053
00054 mxArray *
00055 mxt_PackSignature(mxt_Signature index,
00056 int in_lo, int in_hi, int out_lo, int out_hi,
00057 const char **in_names,
00058 const char **in_specs,
00059 const char **out_names,
00060 const char *docstring);
00061
00062 char **
00063 mxt_ArrayToStrings(const mxArray *a);
00064
00065 int
00066 mxt_put_matrix(char *name,
00067 int inx,
00068 double *dat,
00069 mwSize m,
00070 mwSize n);
00071 double
00072 mxt_make_scalar(
00073 const mxArray *pm,
00074 double default_val);
00075 double *
00076 mxt_make_vector(
00077 const mxArray *pm,
00078 mwSignedIndex M,
00079 double *default_val,
00080 mwSize default_len);
00081 double **
00082 mxt_make_matrix1(
00083 const mxArray *pm,
00084 mwSignedIndex M,
00085 mwSignedIndex N,
00086 double default_val);
00087 double **
00088 mxt_make_matrix2(
00089 const mxArray *pm,
00090 mwSignedIndex M,
00091 mwSignedIndex N,
00092 double default_val);
00093
00094 double **
00095 mxt_matrix_index(double *data, mwSize m, mwSize n);
00096 double ***
00097 mxt_matrix3_index(double *data, mwSize m, mwSize n, mwSize p);
00098 double **
00099 mxt_matrix_alloc(double *data, mwSize m, mwSize n);
00100 double ***
00101 mxt_matrix3_alloc(double *data, mwSize m, mwSize n, mwSize p);
00102
00103 int
00104 mxt_transpose_double_mxArray(mxArray *pa);
00105
00106 #ifdef __cplusplus
00107 }
00108 #endif
00109
00110 #endif
00111