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 #ifndef MX_API_VER
00028
00029 #ifndef MX_COMPAT_32
00030 #define MX_COMPAT_32
00031 #endif
00032
00033 #ifdef MX_COMPAT_32
00034 typedef int mwSize;
00035 typedef int mwIndex;
00036 typedef int mwSignedIndex;
00037 #else
00038 typedef size_t mwSize;
00039 typedef size_t mwIndex;
00040 typedef ptrdiff_t mwSignedIndex;
00041 #endif
00042 #endif
00043 #endif
00044
00045
00046
00047
00048
00049
00050
00051 typedef enum {
00052 mxt_SignatureNARG = 1,
00053 mxt_SignatureDocstring,
00054 mxt_SignatureInNames,
00055 mxt_SignatureInSpecs,
00056 mxt_SignatureOutNames
00057 } mxt_Signature;
00058
00059 mxArray *
00060 mxt_PackSignature(mxt_Signature index,
00061 int in_lo, int in_hi, int out_lo, int out_hi,
00062 const char **in_names,
00063 const char **in_specs,
00064 const char **out_names,
00065 const char *docstring);
00066
00067 char **
00068 mxt_ArrayToStrings(const mxArray *a);
00069
00070 int
00071 mxt_put_matrix(char *name,
00072 int inx,
00073 double *dat,
00074 mwSize m,
00075 mwSize n);
00076 double
00077 mxt_make_scalar(
00078 const mxArray *pm,
00079 double default_val);
00080 double *
00081 mxt_make_vector(
00082 const mxArray *pm,
00083 mwSignedIndex M,
00084 double *default_val,
00085 mwSize default_len);
00086 double **
00087 mxt_make_matrix1(
00088 const mxArray *pm,
00089 mwSignedIndex M,
00090 mwSignedIndex N,
00091 double default_val);
00092 double **
00093 mxt_make_matrix2(
00094 const mxArray *pm,
00095 mwSignedIndex M,
00096 mwSignedIndex N,
00097 double default_val);
00098
00099 double **
00100 mxt_matrix_index(double *data, mwSize m, mwSize n);
00101 double ***
00102 mxt_matrix3_index(double *data, mwSize m, mwSize n, mwSize p);
00103 double **
00104 mxt_matrix_alloc(double *data, mwSize m, mwSize n);
00105 double ***
00106 mxt_matrix3_alloc(double *data, mwSize m, mwSize n, mwSize p);
00107
00108 int
00109 mxt_transpose_double_mxArray(mxArray *pa);
00110
00111 #ifdef __cplusplus
00112 }
00113 #endif
00114
00115 #endif
00116