GNU Octave  4.4.1
A high-level interpreted language, primarily intended for numerical computations, mostly compatible with Matlab
mexproto.h
Go to the documentation of this file.
1 /*
2 
3 Copyright (C) 2006-2018 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
9 the Free Software Foundation, either version 3 of the License, or
10 (at your option) any later version.
11 
12 Octave is distributed in the hope that it will be useful, but
13 WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License 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, see
19 <https://www.gnu.org/licenses/>.
20 
21 */
22 
23 /*
24 
25 This code was originally distributed as part of Octave Forge under
26 the following terms:
27 
28 Author: Paul Kienzle
29 I grant this code to the public domain.
30 2001-03-22
31 
32 THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
33 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
34 IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
35 ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
36 FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
37 DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
38 OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
39 HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
40 LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
41 OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
42 SUCH DAMAGE.
43 
44 */
45 
46 /* mex.h is for use in C-programs only; do NOT include it in mex.cc */
47 
48 #if ! defined (octave_mexproto_h)
49 #define octave_mexproto_h 1
50 
51 #include "octave-config.h"
52 
53 #if defined (__cplusplus)
54 # include <cstdlib>
55 extern "C" {
56 #else
57 # include <stdlib.h>
58 # include <stdbool.h>
59 #endif
60 
61 #define MXARRAY_TYPEDEFS_ONLY
62 #include "mxarray.h"
63 #undef MXARRAY_TYPEDEFS_ONLY
64 
65 /* Interface to the interpreter. */
66 extern OCTINTERP_API const char * mexFunctionName (void);
67 
68 extern OCTINTERP_API int mexCallMATLAB (int nargout, mxArray *argout[],
69  int nargin, mxArray *argin[],
70  const char *fname);
71 extern OCTINTERP_API mxArray * mexCallMATLABWithTrap (int nargout,
72  mxArray *argout[],
73  int nargin,
74  mxArray *argin[],
75  const char *fname);
76 
77 extern OCTINTERP_API int mexEvalString (const char *s);
78 extern OCTINTERP_API mxArray * mexEvalStringWithTrap (const char *s);
79 
80 extern OCTINTERP_API void mexSetTrapFlag (int flag);
81 
82 extern OCTINTERP_API void mexErrMsgTxt (const char *s);
83 extern OCTINTERP_API void mexErrMsgIdAndTxt (const char *id, const char *s,
84  ...);
85 extern OCTINTERP_API void mexWarnMsgTxt (const char *s);
86 extern OCTINTERP_API void mexWarnMsgIdAndTxt (const char *id, const char *s,
87  ...);
88 extern OCTINTERP_API int mexPrintf (const char *fmt, ...);
89 
90 extern OCTINTERP_API mxArray * mexGetVariable (const char *space,
91  const char *name);
92 extern OCTINTERP_API const mxArray * mexGetVariablePtr (const char *space,
93  const char *name);
94 
95 extern OCTINTERP_API int mexPutVariable (const char *space, const char *name,
96  const mxArray *ptr);
97 
98 extern OCTINTERP_API const mxArray * mexGet (double handle,
99  const char *property);
100 extern OCTINTERP_API int mexSet (double handle, const char *property,
101  mxArray *val);
102 
103 extern OCTINTERP_API void mexMakeArrayPersistent (mxArray *ptr);
104 extern OCTINTERP_API void mexMakeMemoryPersistent (void *ptr);
105 
106 extern OCTINTERP_API void mexLock (void);
107 extern OCTINTERP_API void mexUnlock (void);
108 
109 extern OCTINTERP_API int mexIsGlobal (const mxArray *ptr);
110 extern OCTINTERP_API int mexIsLocked (void);
111 
112 extern OCTINTERP_API int mexAtExit (void (*f) (void));
113 
114 /* Floating point predicates. */
115 extern OCTINTERP_API bool mxIsFinite (double v);
116 extern OCTINTERP_API bool mxIsInf (double v);
117 extern OCTINTERP_API bool mxIsNaN (double v);
118 
119 /* Floating point values. */
120 extern OCTINTERP_API double mxGetEps (void);
121 extern OCTINTERP_API double mxGetInf (void);
122 extern OCTINTERP_API double mxGetNaN (void);
123 
124 /* Memory management. */
125 extern OCTINTERP_API void * mxCalloc (size_t n, size_t size);
126 extern OCTINTERP_API void * mxMalloc (size_t n);
127 extern OCTINTERP_API void * mxRealloc (void *ptr, size_t size);
128 extern OCTINTERP_API void mxFree (void *ptr);
129 
130 /* Constructors. */
131 extern OCTINTERP_API mxArray * mxCreateCellArray (mwSize ndims,
132  const mwSize *dims);
133 extern OCTINTERP_API mxArray * mxCreateCellMatrix (mwSize m, mwSize n);
134 extern OCTINTERP_API mxArray * mxCreateCharArray (mwSize ndims,
135  const mwSize *dims);
136 extern OCTINTERP_API mxArray * mxCreateCharMatrixFromStrings (mwSize m,
137  const char **str);
138 extern OCTINTERP_API mxArray * mxCreateDoubleMatrix (mwSize nr, mwSize nc,
139  mxComplexity flag);
140 extern OCTINTERP_API mxArray * mxCreateDoubleScalar (double val);
141 extern OCTINTERP_API mxArray * mxCreateLogicalArray (mwSize ndims,
142  const mwSize *dims);
143 extern OCTINTERP_API mxArray * mxCreateLogicalMatrix (mwSize m, mwSize n);
144 extern OCTINTERP_API mxArray * mxCreateLogicalScalar (mxLogical val);
145 extern OCTINTERP_API mxArray * mxCreateNumericArray (mwSize ndims,
146  const mwSize *dims,
147  mxClassID class_id,
148  mxComplexity flag);
149 extern OCTINTERP_API mxArray * mxCreateNumericMatrix (mwSize m, mwSize n,
150  mxClassID class_id,
151  mxComplexity flag);
152 extern OCTINTERP_API mxArray * mxCreateUninitNumericArray (mwSize ndims,
153  const mwSize *dims,
154  mxClassID class_id,
155  mxComplexity flag);
156 extern OCTINTERP_API mxArray * mxCreateUninitNumericMatrix (mwSize m, mwSize n,
157  mxClassID class_id,
158  mxComplexity flag);
159 
160 extern OCTINTERP_API mxArray * mxCreateSparse (mwSize m, mwSize n, mwSize nzmax,
161  mxComplexity flag);
162 extern OCTINTERP_API mxArray * mxCreateSparseLogicalMatrix (mwSize m, mwSize n,
163  mwSize nzmax);
164 extern OCTINTERP_API mxArray * mxCreateString (const char *str);
165 extern OCTINTERP_API mxArray * mxCreateStructArray (mwSize ndims,
166  const mwSize *dims,
167  int num_keys,
168  const char **keys);
169 extern OCTINTERP_API mxArray * mxCreateStructMatrix (mwSize rows, mwSize cols,
170  int num_keys,
171  const char **keys);
172 
173 /* Copy constructor. */
174 extern OCTINTERP_API mxArray * mxDuplicateArray (const mxArray *v);
175 
176 /* Destructor. */
177 extern OCTINTERP_API void mxDestroyArray (mxArray *v);
178 
179 /* Type Predicates. */
180 extern OCTINTERP_API bool mxIsCell (const mxArray *ptr);
181 extern OCTINTERP_API bool mxIsChar (const mxArray *ptr);
182 extern OCTINTERP_API bool mxIsClass (const mxArray *ptr, const char *name);
183 extern OCTINTERP_API bool mxIsComplex (const mxArray *ptr);
184 extern OCTINTERP_API bool mxIsDouble (const mxArray *ptr);
185 /* Matlab seems to have deprecated IsFunctionHandle, but it seems useful */
186 extern OCTINTERP_API bool mxIsFunctionHandle (const mxArray *ptr);
187 extern OCTINTERP_API bool mxIsInt16 (const mxArray *ptr);
188 extern OCTINTERP_API bool mxIsInt32 (const mxArray *ptr);
189 extern OCTINTERP_API bool mxIsInt64 (const mxArray *ptr);
190 extern OCTINTERP_API bool mxIsInt8 (const mxArray *ptr);
191 extern OCTINTERP_API bool mxIsLogical (const mxArray *ptr);
192 extern OCTINTERP_API bool mxIsNumeric (const mxArray *ptr);
193 extern OCTINTERP_API bool mxIsSingle (const mxArray *ptr);
194 extern OCTINTERP_API bool mxIsSparse (const mxArray *ptr);
195 extern OCTINTERP_API bool mxIsStruct (const mxArray *ptr);
196 extern OCTINTERP_API bool mxIsUint16 (const mxArray *ptr);
197 extern OCTINTERP_API bool mxIsUint32 (const mxArray *ptr);
198 extern OCTINTERP_API bool mxIsUint64 (const mxArray *ptr);
199 extern OCTINTERP_API bool mxIsUint8 (const mxArray *ptr);
200 
201 /* Odd type+size predicate. */
202 extern OCTINTERP_API bool mxIsLogicalScalar (const mxArray *ptr);
203 
204 /* Odd type+size+value predicate. */
205 extern OCTINTERP_API bool mxIsLogicalScalarTrue (const mxArray *ptr);
206 
207 /* Size predicates. */
208 extern OCTINTERP_API bool mxIsEmpty (const mxArray *ptr);
209 extern OCTINTERP_API bool mxIsScalar (const mxArray *ptr);
210 
211 /* Just plain odd thing to ask of a value. */
212 extern OCTINTERP_API bool mxIsFromGlobalWS (const mxArray *ptr);
213 
214 /* Dimension extractors. */
215 extern OCTINTERP_API size_t mxGetM (const mxArray *ptr);
216 extern OCTINTERP_API size_t mxGetN (const mxArray *ptr);
217 extern OCTINTERP_API const mwSize * mxGetDimensions (const mxArray *ptr);
218 extern OCTINTERP_API mwSize mxGetNumberOfDimensions (const mxArray *ptr);
219 extern OCTINTERP_API size_t mxGetNumberOfElements (const mxArray *ptr);
220 
221 /* Dimension setters. */
222 extern OCTINTERP_API void mxSetM (mxArray *ptr, mwSize M);
223 extern OCTINTERP_API void mxSetN (mxArray *ptr, mwSize N);
224 extern OCTINTERP_API int mxSetDimensions (mxArray *ptr, const mwSize *dims,
225  mwSize ndims);
226 
227 /* Data extractors. */
228 extern OCTINTERP_API double * mxGetPi (const mxArray *ptr);
229 extern OCTINTERP_API double * mxGetPr (const mxArray *ptr);
230 extern OCTINTERP_API double mxGetScalar (const mxArray *ptr);
231 extern OCTINTERP_API mxChar * mxGetChars (const mxArray *ptr);
232 extern OCTINTERP_API mxLogical * mxGetLogicals (const mxArray *ptr);
233 extern OCTINTERP_API void * mxGetData (const mxArray *ptr);
234 extern OCTINTERP_API void * mxGetImagData (const mxArray *ptr);
235 
236 /* Data setters. */
237 extern OCTINTERP_API void mxSetPr (mxArray *ptr, double *pr);
238 extern OCTINTERP_API void mxSetPi (mxArray *ptr, double *pi);
239 extern OCTINTERP_API void mxSetData (mxArray *ptr, void *data);
240 extern OCTINTERP_API void mxSetImagData (mxArray *ptr, void *pi);
241 
242 /* Classes. */
243 extern OCTINTERP_API mxClassID mxGetClassID (const mxArray *ptr);
244 extern OCTINTERP_API const char * mxGetClassName (const mxArray *ptr);
245 extern OCTINTERP_API void mxSetClassName (mxArray *ptr, const char *name);
246 extern OCTINTERP_API mxArray * mxGetProperty (const mxArray *ptr, mwIndex idx,
247  const char *property_name);
248 extern OCTINTERP_API void mxSetProperty (mxArray *ptr, mwIndex idx,
249  const char *property_name,
250  const mxArray *property_value);
251 
252 /* Cell support. */
253 extern OCTINTERP_API mxArray * mxGetCell (const mxArray *ptr, mwIndex idx);
254 
255 extern OCTINTERP_API void mxSetCell (mxArray *ptr, mwIndex idx, mxArray *val);
256 
257 /* Sparse support. */
258 extern OCTINTERP_API mwIndex * mxGetIr (const mxArray *ptr);
259 extern OCTINTERP_API mwIndex * mxGetJc (const mxArray *ptr);
260 extern OCTINTERP_API mwSize mxGetNzmax (const mxArray *ptr);
261 
262 extern OCTINTERP_API void mxSetIr (mxArray *ptr, mwIndex *ir);
263 extern OCTINTERP_API void mxSetJc (mxArray *ptr, mwIndex *jc);
264 extern OCTINTERP_API void mxSetNzmax (mxArray *ptr, mwSize nzmax);
265 
266 /* Structure support. */
267 extern OCTINTERP_API int mxAddField (mxArray *ptr, const char *key);
268 
269 extern OCTINTERP_API void mxRemoveField (mxArray *ptr, int key_num);
270 
271 extern OCTINTERP_API mxArray * mxGetField (const mxArray *ptr, mwIndex index,
272  const char *key);
273 extern OCTINTERP_API mxArray * mxGetFieldByNumber (const mxArray *ptr,
274  mwIndex index, int key_num);
275 
276 extern OCTINTERP_API void mxSetField (mxArray *ptr, mwIndex index,
277  const char *key, mxArray *val);
278 extern OCTINTERP_API void mxSetFieldByNumber (mxArray *ptr, mwIndex index,
279  int key_num, mxArray *val);
280 
281 extern OCTINTERP_API int mxGetNumberOfFields (const mxArray *ptr);
282 
283 extern OCTINTERP_API const char * mxGetFieldNameByNumber (const mxArray *ptr,
284  int key_num);
285 extern OCTINTERP_API int mxGetFieldNumber (const mxArray *ptr, const char *key);
286 
287 extern OCTINTERP_API int mxGetString (const mxArray *ptr, char *buf,
288  mwSize buflen);
289 extern OCTINTERP_API char * mxArrayToString (const mxArray *ptr);
290 
291 /* Miscellaneous. */
292 extern OCTINTERP_API mwIndex mxCalcSingleSubscript (const mxArray *ptr,
293  mwSize nsubs,
294  mwIndex *subs);
295 
296 extern OCTINTERP_API size_t mxGetElementSize (const mxArray *ptr);
297 
298 #if defined (MEX_DEBUG)
299 
300 # define mxAssert(expr, msg) \
301  do \
302  { \
303  if (! (expr)) \
304  { \
305  if (msg && msg[0]) \
306  mexErrMsgIdAndTxt \
307  ("Octave:MEX", \
308  "Assertion failed: %s, at line %d of file \"%s\".\n%s\n", \
309  #expr, __LINE__, __FILE__, msg); \
310  else \
311  mexErrMsgIdAndTxt \
312  ("Octave:MEX", \
313  "Assertion failed: %s, at line %d of file \"%s\".\n", \
314  #expr, __LINE__, __FILE__); \
315  } \
316  } \
317  while (0)
318 
319 # define mxAssertS(expr, msg) \
320  do \
321  { \
322  if (! (expr)) \
323  { \
324  if (msg && msg[0]) \
325  mexErrMsgIdAndTxt \
326  ("Octave:MEX", \
327  "Assertion failed at line %d of file \"%s\".\n%s\n", \
328  __LINE__, __FILE__, msg); \
329  else \
330  mexErrMsgIdAndTxt \
331  ("Octave:MEX", \
332  "Assertion failed at line %d of file \"%s\".\n", \
333  __LINE__, __FILE__); \
334  } \
335  } \
336  while (0)
337 
338 #else
339 # define mxAssert(expr, msg)
340 # define mxAssertS(expr, msg)
341 #endif
342 
343 #if defined (__cplusplus)
344 }
345 #endif
346 
347 #endif
OCTINTERP_API void * mxCalloc(size_t n, size_t size)
Definition: mex.cc:2534
OCTINTERP_API mwIndex * mxGetJc(const mxArray *ptr)
Definition: mex.cc:3024
OCTINTERP_API bool mxIsUint8(const mxArray *ptr)
Definition: mex.cc:2806
OCTINTERP_API void mxSetN(mxArray *ptr, mwSize N)
Definition: mex.cc:2887
OCTINTERP_API void mexUnlock(void)
Definition: mex.cc:3659
OCTINTERP_API void mxSetPr(mxArray *ptr, double *pr)
Definition: mex.cc:2948
OCTINTERP_API mwIndex * mxGetIr(const mxArray *ptr)
Definition: mex.cc:3018
OCTINTERP_API bool mxIsNaN(double v)
Definition: mex.cc:2509
OCTINTERP_API bool mxIsStruct(const mxArray *ptr)
Definition: mex.cc:2782
OCTINTERP_API bool mxIsInt64(const mxArray *ptr)
Definition: mex.cc:2746
mxComplexity
Definition: mxarray.in.h:74
OCTINTERP_API int mexAtExit(void(*f)(void))
Definition: mex.cc:3579
fname
Definition: load-save.cc:767
OCTINTERP_API void * mxGetData(const mxArray *ptr)
Definition: mex.cc:2935
OCTINTERP_API void mxSetProperty(mxArray *ptr, mwIndex idx, const char *property_name, const mxArray *property_value)
Definition: mex.cc:2991
OCTINTERP_API int mxSetDimensions(mxArray *ptr, const mwSize *dims, mwSize ndims)
Definition: mex.cc:2893
OCTAVE_IDX_TYPE mwSize
Definition: mxarray.in.h:93
OCTINTERP_API void mexWarnMsgTxt(const char *s)
Definition: mex.cc:3410
OCTINTERP_API void mxSetM(mxArray *ptr, mwSize M)
Definition: mex.cc:2881
OCTINTERP_API mwIndex mxCalcSingleSubscript(const mxArray *ptr, mwSize nsubs, mwIndex *subs)
Definition: mex.cc:3123
OCTINTERP_API mxArray * mexCallMATLABWithTrap(int nargout, mxArray *argout[], int nargin, mxArray *argin[], const char *fname)
Definition: mex.cc:3281
F77_RET_T const F77_INT & N
OCTINTERP_API mxArray * mxCreateString(const char *str)
Definition: mex.cc:2663
OCTINTERP_API mwSize mxGetNumberOfDimensions(const mxArray *ptr)
Definition: mex.cc:2868
identity matrix If supplied two scalar respectively For allows like xample val
Definition: data.cc:4986
F77_RET_T const F77_REAL const F77_REAL F77_REAL &F77_RET_T const F77_DBLE const F77_DBLE F77_DBLE &F77_RET_T const F77_DBLE F77_DBLE &F77_RET_T const F77_REAL F77_REAL &F77_RET_T const F77_DBLE const F77_DBLE * f
OCTINTERP_API int mxAddField(mxArray *ptr, const char *key)
Definition: mex.cc:3055
OCTINTERP_API bool mxIsSingle(const mxArray *ptr)
Definition: mex.cc:2770
OCTINTERP_API bool mxIsInf(double v)
Definition: mex.cc:2503
OCTINTERP_API bool mxIsLogicalScalar(const mxArray *ptr)
Definition: mex.cc:2813
OCTINTERP_API bool mxIsLogicalScalarTrue(const mxArray *ptr)
Definition: mex.cc:2820
OCTINTERP_API int mxGetNumberOfFields(const mxArray *ptr)
Definition: mex.cc:3093
OCTINTERP_API const char * mxGetFieldNameByNumber(const mxArray *ptr, int key_num)
Definition: mex.cc:3099
OCTINTERP_API mxArray * mxCreateUninitNumericMatrix(mwSize m, mwSize n, mxClassID class_id, mxComplexity flag)
Definition: mex.cc:2644
OCTINTERP_API bool mxIsFunctionHandle(const mxArray *ptr)
Definition: mex.cc:2728
OCTINTERP_API int mexSet(double handle, const char *property, mxArray *val)
Definition: mex.cc:3650
OCTINTERP_API void mxSetFieldByNumber(mxArray *ptr, mwIndex index, int key_num, mxArray *val)
Definition: mex.cc:3087
OCTINTERP_API void mxSetPi(mxArray *ptr, double *pi)
Definition: mex.cc:2954
OCTINTERP_API int mexPrintf(const char *fmt,...)
Definition: mex.cc:3435
OCTINTERP_API mxArray * mexGetVariable(const char *space, const char *name)
Definition: mex.cc:3446
OCTINTERP_API void mexSetTrapFlag(int flag)
Definition: mex.cc:3305
OCTINTERP_API mxArray * mxCreateNumericMatrix(mwSize m, mwSize n, mxClassID class_id, mxComplexity flag)
Definition: mex.cc:2630
OCTINTERP_API bool mxIsScalar(const mxArray *ptr)
Definition: mex.cc:2833
OCTINTERP_API bool mxIsSparse(const mxArray *ptr)
Definition: mex.cc:2776
OCTINTERP_API mxArray * mxGetField(const mxArray *ptr, mwIndex index, const char *key)
Definition: mex.cc:3067
s
Definition: file-io.cc:2729
OCTINTERP_API mxArray * mxCreateLogicalScalar(mxLogical val)
Definition: mex.cc:2617
OCTINTERP_API mxArray * mxCreateLogicalArray(mwSize ndims, const mwSize *dims)
Definition: mex.cc:2605
OCTINTERP_API mxArray * mxCreateLogicalMatrix(mwSize m, mwSize n)
Definition: mex.cc:2611
OCTINTERP_API bool mxIsEmpty(const mxArray *ptr)
Definition: mex.cc:2827
OCTINTERP_API int mexCallMATLAB(int nargout, mxArray *argout[], int nargin, mxArray *argin[], const char *fname)
Definition: mex.cc:3218
OCTINTERP_API bool mxIsFinite(double v)
Definition: mex.cc:2497
OCTINTERP_API bool mxIsUint32(const mxArray *ptr)
Definition: mex.cc:2794
OCTINTERP_API bool mxIsUint16(const mxArray *ptr)
Definition: mex.cc:2788
OCTINTERP_API void mexWarnMsgIdAndTxt(const char *id, const char *s,...)
Definition: mex.cc:3416
mxClassID
Definition: mxarray.in.h:52
OCTINTERP_API mwSize mxGetNzmax(const mxArray *ptr)
Definition: mex.cc:3030
OCTINTERP_API const mxArray * mexGetVariablePtr(const char *space, const char *name)
Definition: mex.cc:3503
OCTINTERP_API bool mxIsInt8(const mxArray *ptr)
Definition: mex.cc:2752
nd deftypefn *std::string name
Definition: sysdep.cc:647
OCTINTERP_API mxChar * mxGetChars(const mxArray *ptr)
Definition: mex.cc:2920
OCTINTERP_API mxArray * mxCreateDoubleMatrix(mwSize nr, mwSize nc, mxComplexity flag)
Definition: mex.cc:2593
OCTINTERP_API double mxGetInf(void)
Definition: mex.cc:2521
OCTAVE_EXPORT octave_value_list return the number of command line arguments passed to Octave If called with the optional argument the function xample nargout(@histc)
Definition: ov-usr-fcn.cc:997
OCTINTERP_API double mxGetEps(void)
Definition: mex.cc:2515
OCTINTERP_API bool mxIsNumeric(const mxArray *ptr)
Definition: mex.cc:2764
OCTINTERP_API mxLogical * mxGetLogicals(const mxArray *ptr)
Definition: mex.cc:2929
OCTINTERP_API mxClassID mxGetClassID(const mxArray *ptr)
Definition: mex.cc:2973
OCTINTERP_API const mxArray * mexGet(double handle, const char *property)
Definition: mex.cc:3594
OCTINTERP_API const char * mxGetClassName(const mxArray *ptr)
Definition: mex.cc:2979
OCTINTERP_API bool mxIsInt16(const mxArray *ptr)
Definition: mex.cc:2734
OCTINTERP_API int mexIsGlobal(const mxArray *ptr)
Definition: mex.cc:3607
OCTINTERP_API mxArray * mxCreateUninitNumericArray(mwSize ndims, const mwSize *dims, mxClassID class_id, mxComplexity flag)
Definition: mex.cc:2637
OCTINTERP_API bool mxIsClass(const mxArray *ptr, const char *name)
Definition: mex.cc:2710
std::string str
Definition: hash.cc:118
OCTINTERP_API mxArray * mxGetCell(const mxArray *ptr, mwIndex idx)
Definition: mex.cc:3005
OCTINTERP_API int mxGetFieldNumber(const mxArray *ptr, const char *key)
Definition: mex.cc:3105
idx subs
Definition: ov.cc:3065
OCTINTERP_API mxArray * mxCreateSparse(mwSize m, mwSize n, mwSize nzmax, mxComplexity flag)
Definition: mex.cc:2651
OCTINTERP_API void mxSetIr(mxArray *ptr, mwIndex *ir)
Definition: mex.cc:3036
OCTINTERP_API mxArray * mexEvalStringWithTrap(const char *s)
Definition: mex.cc:3339
OCTINTERP_API void mxSetClassName(mxArray *ptr, const char *name)
Definition: mex.cc:2985
OCTINTERP_API void mxDestroyArray(mxArray *v)
Definition: mex.cc:2690
OCTINTERP_API char * mxArrayToString(const mxArray *ptr)
Definition: mex.cc:3117
OCTINTERP_API bool mxIsChar(const mxArray *ptr)
Definition: mex.cc:2704
OCTINTERP_API void * mxMalloc(size_t n)
Definition: mex.cc:2540
OCTINTERP_API void mexErrMsgIdAndTxt(const char *id, const char *s,...)
Definition: mex.cc:3388
the exceeded dimensions are set to if fewer subscripts than dimensions are the exceeding dimensions are merged into the final requested dimension For consider the following dims
Definition: sub2ind.cc:255
OCTINTERP_API void mxSetCell(mxArray *ptr, mwIndex idx, mxArray *val)
Definition: mex.cc:3011
OCTINTERP_API size_t mxGetM(const mxArray *ptr)
Definition: mex.cc:2850
OCTINTERP_API mxArray * mxDuplicateArray(const mxArray *v)
Definition: mex.cc:2683
OCTINTERP_API double * mxGetPi(const mxArray *ptr)
Definition: mex.cc:2908
OCTINTERP_API void mxSetData(mxArray *ptr, void *data)
Definition: mex.cc:2960
OCTINTERP_API mxArray * mxCreateCharArray(mwSize ndims, const mwSize *dims)
Definition: mex.cc:2581
OCTINTERP_API void * mxGetImagData(const mxArray *ptr)
Definition: mex.cc:2941
OCTINTERP_API void mexErrMsgTxt(const char *s)
Definition: mex.cc:3375
OCTINTERP_API bool mxIsFromGlobalWS(const mxArray *ptr)
Definition: mex.cc:2841
OCTINTERP_API mxArray * mxCreateDoubleScalar(double val)
Definition: mex.cc:2599
OCTINTERP_API bool mxIsDouble(const mxArray *ptr)
Definition: mex.cc:2722
OCTINTERP_API bool mxIsInt32(const mxArray *ptr)
Definition: mex.cc:2740
OCTINTERP_API int mxGetString(const mxArray *ptr, char *buf, mwSize buflen)
Definition: mex.cc:3111
OCTINTERP_API mxArray * mxCreateStructMatrix(mwSize rows, mwSize cols, int num_keys, const char **keys)
Definition: mex.cc:2676
OCTINTERP_API bool mxIsUint64(const mxArray *ptr)
Definition: mex.cc:2800
OCTINTERP_API double * mxGetPr(const mxArray *ptr)
Definition: mex.cc:2902
char mxChar
Definition: mxarray.in.h:83
OCTINTERP_API bool mxIsCell(const mxArray *ptr)
Definition: mex.cc:2698
OCTINTERP_API void mxSetField(mxArray *ptr, mwIndex index, const char *key, mxArray *val)
Definition: mex.cc:3080
OCTINTERP_API mxArray * mxGetProperty(const mxArray *ptr, mwIndex idx, const char *property_name)
Definition: mex.cc:2998
OCTINTERP_API void mexMakeArrayPersistent(mxArray *ptr)
Definition: mex.cc:3567
OCTINTERP_API mxArray * mxCreateNumericArray(mwSize ndims, const mwSize *dims, mxClassID class_id, mxComplexity flag)
Definition: mex.cc:2623
OCTINTERP_API mxArray * mxCreateCellMatrix(mwSize m, mwSize n)
Definition: mex.cc:2575
F77_RET_T const F77_INT const F77_INT const F77_INT const F77_DBLE const F77_DBLE F77_INT & M
OCTINTERP_API bool mxIsComplex(const mxArray *ptr)
Definition: mex.cc:2716
OCTINTERP_API void mexLock(void)
Definition: mex.cc:3632
OCTINTERP_API void * mxRealloc(void *ptr, size_t size)
Definition: mex.cc:2546
OCTINTERP_API size_t mxGetElementSize(const mxArray *ptr)
Definition: mex.cc:3129
OCTINTERP_API void mxSetImagData(mxArray *ptr, void *pi)
Definition: mex.cc:2966
OCTINTERP_API size_t mxGetN(const mxArray *ptr)
Definition: mex.cc:2856
OCTINTERP_API void mxSetNzmax(mxArray *ptr, mwSize nzmax)
Definition: mex.cc:3048
OCTINTERP_API void mxSetJc(mxArray *ptr, mwIndex *jc)
Definition: mex.cc:3042
args.length() nargin
Definition: file-io.cc:589
OCTINTERP_API size_t mxGetNumberOfElements(const mxArray *ptr)
Definition: mex.cc:2874
OCTINTERP_API bool mxIsLogical(const mxArray *ptr)
Definition: mex.cc:2758
OCTINTERP_API int mexIsLocked(void)
Definition: mex.cc:3613
OCTINTERP_API void mxFree(void *ptr)
Definition: mex.cc:2553
unsigned char mxLogical
Definition: mxarray.in.h:85
OCTINTERP_API const mwSize * mxGetDimensions(const mxArray *ptr)
Definition: mex.cc:2862
OCTINTERP_API const char * mexFunctionName(void)
Definition: mex.cc:3212
OCTINTERP_API void mexMakeMemoryPersistent(void *ptr)
Definition: mex.cc:3573
is a function handle
Definition: bsxfun.cc:337
OCTINTERP_API void mxRemoveField(mxArray *ptr, int key_num)
Definition: mex.cc:3061
OCTAVE_IDX_TYPE mwIndex
Definition: mxarray.in.h:94
OCTINTERP_API mxArray * mxCreateStructArray(mwSize ndims, const mwSize *dims, int num_keys, const char **keys)
Definition: mex.cc:2669
OCTINTERP_API mxArray * mxCreateCellArray(mwSize ndims, const mwSize *dims)
Definition: mex.cc:2569
OCTINTERP_API double mxGetNaN(void)
Definition: mex.cc:2527
OCTINTERP_API int mexPutVariable(const char *space, const char *name, const mxArray *ptr)
Definition: mex.cc:3509
OCTINTERP_API int mexEvalString(const char *s)
Definition: mex.cc:3312
OCTINTERP_API mxArray * mxGetFieldByNumber(const mxArray *ptr, mwIndex index, int key_num)
Definition: mex.cc:3074
static const double pi
Definition: lo-specfun.cc:1996
OCTINTERP_API double mxGetScalar(const mxArray *ptr)
Definition: mex.cc:2914
OCTINTERP_API mxArray * mxCreateCharMatrixFromStrings(mwSize m, const char **str)
Definition: mex.cc:2587
OCTINTERP_API mxArray * mxCreateSparseLogicalMatrix(mwSize m, mwSize n, mwSize nzmax)
Definition: mex.cc:2657