comparison src/mexproto.h @ 5864:e884ab4f29ee

[project @ 2006-06-22 00:57:27 by jwe]
author jwe
date Thu, 22 Jun 2006 00:57:28 +0000
parents
children 4f1112bfafce
comparison
equal deleted inserted replaced
5863:4c16f3104aa5 5864:e884ab4f29ee
1 /*
2
3 Copyright (C) 2006 Paul Kienzle
4
5 This file is part of Octave.
6
7 Octave is free software; you can redistribute it and/or modify it
8 under the terms of the GNU General Public License as published by the
9 Free Software Foundation; either version 2, or (at your option) any
10 later version.
11
12 Octave is distributed in the hope that it will be useful, but WITHOUT
13 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
14 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
15 for more details.
16
17 You should have received a copy of the GNU General Public License
18 along with Octave; see the file COPYING. If not, write to the Free
19 Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
20 02110-1301, USA.
21
22 */
23
24 /*
25
26 This code was originally distributed as part of Octave Forge under
27 the follwoing terms:
28
29 Author: Paul Kienzle
30 I grant this code to the public domain.
31 2001-03-22
32
33 THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
34 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
35 IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
36 ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
37 FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
38 DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
39 OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
40 HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
41 LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
42 OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
43 SUCH DAMAGE.
44
45 */
46
47 /* mex.h is for use in C-programs only; do NOT include it in mex.cc */
48
49 #if ! defined (MEXPROTO_H)
50 #define MEXPROTO_H
51
52 #if defined (__cplusplus)
53 extern "C" {
54 #endif
55
56 /* Floating point representation. */
57 extern int mxIsNaN (double v);
58 extern int mxIsFinite (double v);
59 extern int mxIsInf (double v);
60 extern double mxGetEps (void);
61 extern double mxGetInf (void);
62 extern double mxGetNaN (void);
63
64 /* Interface to the interpreter */
65 extern const char *mexFunctionName (void);
66
67 extern int mexCallMATLAB (int nargout, mxArray *argout[], int nargin,
68 mxArray *argin[], const char *fname);
69
70 extern void mexSetTrapFlag (int flag);
71 extern int mexEvalString (const char *s);
72 extern void mexErrMsgTxt (const char *s);
73 extern void mexWarnMsgTxt (const char *s);
74 extern void mexPrintf (const char *fmt, ...);
75
76 extern mxArray *mexGetArray (const char *name, const char *space);
77 extern mxArray *mexGetArrayPtr (const char *name, const char *space);
78
79 extern int mexPutVariable (const char *space, const char *name, mxArray *ptr);
80
81 /* Memory. */
82 extern void *mxMalloc (int n);
83 extern void *mxCalloc (int n, int size);
84 extern void mxFree (void *ptr);
85 extern void mexMakeArrayPersistent (mxArray *ptr);
86 extern void mexMakeMemoryPersistent (void *ptr);
87
88 /* Interpreter values. */
89 extern mxArray *mxCreateDoubleMatrix (int nr, int nc, int iscomplex);
90 extern mxArray *mxCreateDoubleScalar (double val);
91 extern mxArray *mxCreateLogicalScalar (int val);
92
93 extern void mxDestroyArray (mxArray *v);
94
95 extern mxArray *mxDuplicateArray (const mxArray *v);
96
97 extern int mxIsChar (const mxArray *ptr);
98
99 extern int mxIsSparse (const mxArray *ptr);
100 extern int mxIsStruct (const mxArray *ptr);
101 extern int mxIsFull (const mxArray *ptr);
102 extern int mxIsDouble (const mxArray *ptr);
103 extern int mxIsNumeric (const mxArray *ptr);
104 extern int mxIsComplex (const mxArray *ptr);
105 extern int mxIsEmpty (const mxArray *ptr);
106 extern int mxIsLogicalScalar (const mxArray *ptr);
107 extern int mxGetM (const mxArray *ptr);
108 extern int mxGetN (const mxArray *ptr);
109 extern int mxGetNumberOfDimensions (const mxArray *ptr);
110 extern int mxGetNumberOfElements (const mxArray *ptr);
111 extern double *mxGetPr (const mxArray *ptr);
112
113 /* Structure support. */
114 extern int mxIsStruct (const mxArray *ptr);
115 extern mxArray *mxGetField (const mxArray *ptr, int index, const char *key);
116 extern void mxSetField (mxArray *ptr, int index, const char *key, mxArray *val);
117 extern int mxGetNumberOfFields (const mxArray *ptr);
118 extern const char *mxGetFieldNameByNumber (const mxArray *ptr, int key_num);
119 extern int mxGetFieldNumber (const mxArray *ptr, const char *key);
120 extern mxArray *mxGetFieldByNumber (const mxArray *ptr, int index, int key_num);
121 extern void mxSetFieldByNumber (mxArray *ptr, int index, int key_num,
122 mxArray *val);
123 extern mxArray *mxCreateStructMatrix (int rows, int cols, int num_keys,
124 const char **keys);
125 #if 0
126 extern mxArray *mxCreateStructArray (int num_dims, const int *dims,
127 int numkeys, const char **keys);
128 #endif
129
130 extern double *mxGetPi (const mxArray *ptr);
131 extern void mxSetM (mxArray *ptr, int M);
132 extern void mxSetN (mxArray *ptr, int N);
133 extern void mxSetPr (mxArray *ptr, double *pr);
134 extern void mxSetPi (mxArray *ptr, double *pi);
135
136 extern int mxGetString (const mxArray *ptr, char *buf, int buflen);
137 extern char *mxArrayToString (const mxArray *ptr);
138 extern mxArray *mxCreateString (const char *str);
139
140 extern double mxGetScalar (const mxArray *ptr);
141
142 #if defined (__cplusplus)
143 }
144 #endif
145
146 #endif
147
148 /*
149 ;;; Local Variables: ***
150 ;;; mode: C ***
151 ;;; End: ***
152 */