GNU Octave  4.2.1
A high-level interpreted language, primarily intended for numerical computations, mostly compatible with Matlab
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
mexproto.h
Go to the documentation of this file.
1 /*
2 
3 Copyright (C) 2006-2017 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 3 of the License, or (at your
10 option) any 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, see
19 <http://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 /* The definition of OCTINTERP_API is normally provided by Octave's
62  config.h file. This is provided for the case of mex.h included by
63  user programs that don't use Octave's config.h. */
64 #if ! defined (OCTINTERP_API)
65 # if defined (_MSC_VER)
66 # define OCTINTERP_API __declspec(dllimport)
67 # else
68  /* All other compilers, at least for now. */
69 # define OCTINTERP_API
70 # endif
71 #endif
72 
73 #define MXARRAY_TYPEDEFS_ONLY
74 #include "mxarray.h"
75 #undef MXARRAY_TYPEDEFS_ONLY
76 
77 /* Interface to the interpreter. */
78 extern OCTINTERP_API const char *mexFunctionName (void);
79 
80 extern OCTINTERP_API int mexCallMATLAB (int nargout, mxArray *argout[],
81  int nargin, mxArray *argin[],
82  const char *fname);
84  mxArray *argout[],
85  int nargin,
86  mxArray *argin[],
87  const char *fname);
88 
89 extern OCTINTERP_API int mexEvalString (const char *s);
90 extern OCTINTERP_API mxArray * mexEvalStringWithTrap (const char *s);
91 
92 extern OCTINTERP_API void mexSetTrapFlag (int flag);
93 
94 extern OCTINTERP_API void mexErrMsgTxt (const char *s);
95 extern OCTINTERP_API void mexErrMsgIdAndTxt (const char *id, const char *s,
96  ...);
97 extern OCTINTERP_API void mexWarnMsgTxt (const char *s);
98 extern OCTINTERP_API void mexWarnMsgIdAndTxt (const char *id, const char *s,
99  ...);
100 extern OCTINTERP_API int mexPrintf (const char *fmt, ...);
101 
102 extern OCTINTERP_API mxArray *mexGetVariable (const char *space,
103  const char *name);
104 extern OCTINTERP_API const mxArray *mexGetVariablePtr (const char *space,
105  const char *name);
106 
107 extern OCTINTERP_API int mexPutVariable (const char *space, const char *name,
108  const mxArray *ptr);
109 
110 extern OCTINTERP_API const mxArray *mexGet (double handle,
111  const char *property);
112 extern OCTINTERP_API int mexSet (double handle, const char *property,
113  mxArray *val);
114 
115 extern OCTINTERP_API void mexMakeArrayPersistent (mxArray *ptr);
116 extern OCTINTERP_API void mexMakeMemoryPersistent (void *ptr);
117 
118 extern OCTINTERP_API void mexLock (void);
119 extern OCTINTERP_API void mexUnlock (void);
120 
121 extern OCTINTERP_API int mexIsGlobal (const mxArray *ptr);
122 extern OCTINTERP_API int mexIsLocked (void);
123 
124 extern OCTINTERP_API int mexAtExit (void (*f) (void));
125 
126 /* Floating point predicates. */
127 extern OCTINTERP_API bool mxIsFinite (double v);
128 extern OCTINTERP_API bool mxIsInf (double v);
129 extern OCTINTERP_API bool mxIsNaN (double v);
130 
131 /* Floating point values. */
132 extern OCTINTERP_API double mxGetEps (void);
133 extern OCTINTERP_API double mxGetInf (void);
134 extern OCTINTERP_API double mxGetNaN (void);
135 
136 /* Memory management. */
137 extern OCTINTERP_API void *mxCalloc (size_t n, size_t size);
138 extern OCTINTERP_API void *mxMalloc (size_t n);
139 extern OCTINTERP_API void *mxRealloc (void *ptr, size_t size);
140 extern OCTINTERP_API void mxFree (void *ptr);
141 
142 /* Constructors. */
144  const mwSize *dims);
147  const mwSize *dims);
149  const char **str);
151  mxComplexity flag);
154  const mwSize *dims);
158  const mwSize *dims,
159  mxClassID class_id,
160  mxComplexity flag);
162  mxClassID class_id,
163  mxComplexity flag);
165  const mwSize *dims,
166  mxClassID class_id,
167  mxComplexity flag);
169  mxClassID class_id,
170  mxComplexity flag);
171 
173  mxComplexity flag);
175  mwSize nzmax);
176 extern OCTINTERP_API mxArray *mxCreateString (const char *str);
178  const mwSize *dims,
179  int num_keys,
180  const char **keys);
182  int num_keys,
183  const char **keys);
184 
185 /* Copy constructor. */
186 extern OCTINTERP_API mxArray *mxDuplicateArray (const mxArray *v);
187 
188 /* Destructor. */
189 extern OCTINTERP_API void mxDestroyArray (mxArray *v);
190 
191 /* Type Predicates. */
192 extern OCTINTERP_API bool mxIsCell (const mxArray *ptr);
193 extern OCTINTERP_API bool mxIsChar (const mxArray *ptr);
194 extern OCTINTERP_API bool mxIsClass (const mxArray *ptr, const char *name);
195 extern OCTINTERP_API bool mxIsComplex (const mxArray *ptr);
196 extern OCTINTERP_API bool mxIsDouble (const mxArray *ptr);
197 /* Matlab seems to have deprecated IsFunctionHandle, but it seems useful */
198 extern OCTINTERP_API bool mxIsFunctionHandle (const mxArray *ptr);
199 extern OCTINTERP_API bool mxIsInt16 (const mxArray *ptr);
200 extern OCTINTERP_API bool mxIsInt32 (const mxArray *ptr);
201 extern OCTINTERP_API bool mxIsInt64 (const mxArray *ptr);
202 extern OCTINTERP_API bool mxIsInt8 (const mxArray *ptr);
203 extern OCTINTERP_API bool mxIsLogical (const mxArray *ptr);
204 extern OCTINTERP_API bool mxIsNumeric (const mxArray *ptr);
205 extern OCTINTERP_API bool mxIsSingle (const mxArray *ptr);
206 extern OCTINTERP_API bool mxIsSparse (const mxArray *ptr);
207 extern OCTINTERP_API bool mxIsStruct (const mxArray *ptr);
208 extern OCTINTERP_API bool mxIsUint16 (const mxArray *ptr);
209 extern OCTINTERP_API bool mxIsUint32 (const mxArray *ptr);
210 extern OCTINTERP_API bool mxIsUint64 (const mxArray *ptr);
211 extern OCTINTERP_API bool mxIsUint8 (const mxArray *ptr);
212 
213 /* Odd type+size predicate. */
214 extern OCTINTERP_API bool mxIsLogicalScalar (const mxArray *ptr);
215 
216 /* Odd type+size+value predicate. */
217 extern OCTINTERP_API bool mxIsLogicalScalarTrue (const mxArray *ptr);
218 
219 /* Size predicates. */
220 extern OCTINTERP_API bool mxIsEmpty (const mxArray *ptr);
221 extern OCTINTERP_API bool mxIsScalar (const mxArray *ptr);
222 
223 /* Just plain odd thing to ask of a value. */
224 extern OCTINTERP_API bool mxIsFromGlobalWS (const mxArray *ptr);
225 
226 /* Dimension extractors. */
227 extern OCTINTERP_API size_t mxGetM (const mxArray *ptr);
228 extern OCTINTERP_API size_t mxGetN (const mxArray *ptr);
229 extern OCTINTERP_API const mwSize *mxGetDimensions (const mxArray *ptr);
231 extern OCTINTERP_API size_t mxGetNumberOfElements (const mxArray *ptr);
232 
233 /* Dimension setters. */
234 extern OCTINTERP_API void mxSetM (mxArray *ptr, mwSize M);
235 extern OCTINTERP_API void mxSetN (mxArray *ptr, mwSize N);
236 extern OCTINTERP_API int mxSetDimensions (mxArray *ptr, const mwSize *dims,
237  mwSize ndims);
238 
239 /* Data extractors. */
240 extern OCTINTERP_API double *mxGetPi (const mxArray *ptr);
241 extern OCTINTERP_API double *mxGetPr (const mxArray *ptr);
242 extern OCTINTERP_API double mxGetScalar (const mxArray *ptr);
243 extern OCTINTERP_API mxChar *mxGetChars (const mxArray *ptr);
244 extern OCTINTERP_API mxLogical *mxGetLogicals (const mxArray *ptr);
245 extern OCTINTERP_API void *mxGetData (const mxArray *ptr);
246 extern OCTINTERP_API void *mxGetImagData (const mxArray *ptr);
247 
248 /* Data setters. */
249 extern OCTINTERP_API void mxSetPr (mxArray *ptr, double *pr);
250 extern OCTINTERP_API void mxSetPi (mxArray *ptr, double *pi);
251 extern OCTINTERP_API void mxSetData (mxArray *ptr, void *data);
252 extern OCTINTERP_API void mxSetImagData (mxArray *ptr, void *pi);
253 
254 /* Classes. */
255 extern OCTINTERP_API mxClassID mxGetClassID (const mxArray *ptr);
256 extern OCTINTERP_API const char *mxGetClassName (const mxArray *ptr);
257 
258 extern OCTINTERP_API void mxSetClassName (mxArray *ptr, const char *name);
259 
260 /* Cell support. */
261 extern OCTINTERP_API mxArray *mxGetCell (const mxArray *ptr, mwIndex idx);
262 
263 extern OCTINTERP_API void mxSetCell (mxArray *ptr, mwIndex idx, mxArray *val);
264 
265 /* Sparse support. */
266 extern OCTINTERP_API mwIndex *mxGetIr (const mxArray *ptr);
267 extern OCTINTERP_API mwIndex *mxGetJc (const mxArray *ptr);
268 extern OCTINTERP_API mwSize mxGetNzmax (const mxArray *ptr);
269 
270 extern OCTINTERP_API void mxSetIr (mxArray *ptr, mwIndex *ir);
271 extern OCTINTERP_API void mxSetJc (mxArray *ptr, mwIndex *jc);
272 extern OCTINTERP_API void mxSetNzmax (mxArray *ptr, mwSize nzmax);
273 
274 /* Structure support. */
275 extern OCTINTERP_API int mxAddField (mxArray *ptr, const char *key);
276 
277 extern OCTINTERP_API void mxRemoveField (mxArray *ptr, int key_num);
278 
279 extern OCTINTERP_API mxArray *mxGetField (const mxArray *ptr, mwIndex index,
280  const char *key);
281 extern OCTINTERP_API mxArray *mxGetFieldByNumber (const mxArray *ptr,
282  mwIndex index, int key_num);
283 
284 extern OCTINTERP_API void mxSetField (mxArray *ptr, mwIndex index,
285  const char *key, mxArray *val);
286 extern OCTINTERP_API void mxSetFieldByNumber (mxArray *ptr, mwIndex index,
287  int key_num, mxArray *val);
288 
289 extern OCTINTERP_API int mxGetNumberOfFields (const mxArray *ptr);
290 
291 extern OCTINTERP_API const char *mxGetFieldNameByNumber (const mxArray *ptr,
292  int key_num);
293 extern OCTINTERP_API int mxGetFieldNumber (const mxArray *ptr, const char *key);
294 
295 extern OCTINTERP_API int mxGetString (const mxArray *ptr, char *buf,
296  mwSize buflen);
297 extern OCTINTERP_API char *mxArrayToString (const mxArray *ptr);
298 
299 /* Miscellaneous. */
301  mwSize nsubs,
302  mwIndex *subs);
303 
304 extern OCTINTERP_API size_t mxGetElementSize (const mxArray *ptr);
305 
306 #if defined (MEX_DEBUG)
307 
308 # define mxAssert(expr, msg) \
309  do \
310  { \
311  if (! (expr)) \
312  { \
313  if (msg != NULL && msg[0] != '\0') \
314  mexErrMsgIdAndTxt ("Octave:MEX", \
315  "Assertion failed: %s, at line %d of file \"%s\".\n%s\n", \
316  #expr, __LINE__, __FILE__, msg); \
317  else \
318  mexErrMsgIdAndTxt ("Octave:MEX", \
319  "Assertion failed: %s, at line %d of file \"%s\".\n", \
320  #expr, __LINE__, __FILE__); \
321  } \
322  } \
323  while (0)
324 
325 # define mxAssertS(expr, msg) \
326  do \
327  { \
328  if (! (expr)) \
329  { \
330  if (msg != NULL && msg[0] != '\0') \
331  mexErrMsgIdAndTxt ("Octave:MEX", \
332  "Assertion failed at line %d of file \"%s\".\n%s\n", \
333  __LINE__, __FILE__, msg); \
334  else \
335  mexErrMsgIdAndTxt ("Octave:MEX", \
336  "Assertion failed at line %d of file \"%s\".\n", \
337  __LINE__, __FILE__); \
338  } \
339  } \
340  while (0)
341 
342 #else
343 # define mxAssert(expr, msg)
344 # define mxAssertS(expr, msg)
345 #endif
346 
347 #if defined (__cplusplus)
348 }
349 #endif
350 
351 #endif
bool mxIsScalar(const mxArray *ptr)
Definition: mex.cc:2774
const mwSize * mxGetDimensions(const mxArray *ptr)
Definition: mex.cc:2803
bool mxIsUint64(const mxArray *ptr)
Definition: mex.cc:2741
bool mxIsInt16(const mxArray *ptr)
Definition: mex.cc:2675
void mxSetField(mxArray *ptr, mwIndex index, const char *key, mxArray *val)
Definition: mex.cc:3008
int mexIsGlobal(const mxArray *ptr)
Definition: mex.cc:3511
mxArray * mxCreateStructMatrix(mwSize rows, mwSize cols, int num_keys, const char **keys)
Definition: mex.cc:2617
unsigned char mxLogical
Definition: mxarray.h:85
bool mxIsFromGlobalWS(const mxArray *ptr)
Definition: mex.cc:2782
const char * mxGetClassName(const mxArray *ptr)
Definition: mex.cc:2920
void mxSetIr(mxArray *ptr, mwIndex *ir)
Definition: mex.cc:2964
void mxSetN(mxArray *ptr, mwSize N)
Definition: mex.cc:2828
bool mxIsChar(const mxArray *ptr)
Definition: mex.cc:2645
fname
Definition: load-save.cc:754
void mexLock(void)
Definition: mex.cc:3534
int mxGetFieldNumber(const mxArray *ptr, const char *key)
Definition: mex.cc:3033
void * mxGetImagData(const mxArray *ptr)
Definition: mex.cc:2882
int mexSet(double handle, const char *property, mxArray *val)
Definition: mex.cc:3550
mxArray * mxCreateCellMatrix(mwSize m, mwSize n)
Definition: mex.cc:2516
void mxRemoveField(mxArray *ptr, int key_num)
Definition: mex.cc:2989
double * mxGetPr(const mxArray *ptr)
Definition: mex.cc:2843
identity matrix If supplied two scalar respectively For allows like xample val
Definition: data.cc:5068
F77_RET_T F77_REAL &F77_RET_T F77_DBLE &F77_RET_T F77_REAL &F77_RET_T F77_DBLE &F77_RET_T F77_REAL &F77_RET_T F77_DBLE &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 F77_REAL &F77_RET_T F77_DBLE &F77_RET_T F77_DBLE &F77_RET_T F77_REAL &F77_RET_T F77_REAL &F77_RET_T F77_DBLE &F77_RET_T const F77_DBLE F77_DBLE &F77_RET_T const F77_REAL F77_REAL &F77_RET_T F77_REAL F77_REAL &F77_RET_T F77_DBLE F77_DBLE &F77_RET_T const F77_DBLE const F77_DBLE * f
double mxGetNaN(void)
Definition: mex.cc:2468
mxComplexity
Definition: mxarray.h:74
void mxSetClassName(mxArray *ptr, const char *name)
Definition: mex.cc:2926
void * mxCalloc(size_t n, size_t size)
Definition: mex.cc:2475
void mexWarnMsgTxt(const char *s)
Definition: mex.cc:3336
bool mxIsNaN(double v)
Definition: mex.cc:2450
bool mxIsComplex(const mxArray *ptr)
Definition: mex.cc:2657
void mexMakeMemoryPersistent(void *ptr)
Definition: mex.cc:3477
bool mxIsLogical(const mxArray *ptr)
Definition: mex.cc:2699
mxLogical * mxGetLogicals(const mxArray *ptr)
Definition: mex.cc:2870
bool mxIsDouble(const mxArray *ptr)
Definition: mex.cc:2663
size_t mxGetM(const mxArray *ptr)
Definition: mex.cc:2791
size_t mxGetN(const mxArray *ptr)
Definition: mex.cc:2797
void mxSetCell(mxArray *ptr, mwIndex idx, mxArray *val)
Definition: mex.cc:2939
mxArray * mxCreateNumericArray(mwSize ndims, const mwSize *dims, mxClassID class_id, mxComplexity flag)
Definition: mex.cc:2564
void mxSetPi(mxArray *ptr, double *pi)
Definition: mex.cc:2895
void mxSetImagData(mxArray *ptr, void *pi)
Definition: mex.cc:2907
s
Definition: file-io.cc:2682
void mexErrMsgTxt(const char *s)
Definition: mex.cc:3301
void mxSetPr(mxArray *ptr, double *pr)
Definition: mex.cc:2889
F77_RET_T const F77_INT const F77_INT const F77_INT const F77_DBLE const F77_DBLE F77_INT & M
char * mxArrayToString(const mxArray *ptr)
Definition: mex.cc:3045
void mxSetJc(mxArray *ptr, mwIndex *jc)
Definition: mex.cc:2970
void mexWarnMsgIdAndTxt(const char *id, const char *s,...)
Definition: mex.cc:3342
void mxSetFieldByNumber(mxArray *ptr, mwIndex index, int key_num, mxArray *val)
Definition: mex.cc:3015
mwIndex * mxGetIr(const mxArray *ptr)
Definition: mex.cc:2946
mxArray * mxCreateSparse(mwSize m, mwSize n, mwSize nzmax, mxComplexity flag)
Definition: mex.cc:2592
bool mxIsFunctionHandle(const mxArray *ptr)
Definition: mex.cc:2669
bool mxIsInf(double v)
Definition: mex.cc:2444
mxArray * mxCreateString(const char *str)
Definition: mex.cc:2604
mwSize mxGetNumberOfDimensions(const mxArray *ptr)
Definition: mex.cc:2809
OCTAVE_EXPORT octave_value_list any number nd example oindent prints the prompt xample Pick a any number!nd example oindent and waits for the user to enter a value The string entered by the user is evaluated as an so it may be a literal a variable name
Definition: input.cc:871
int mexIsLocked(void)
Definition: mex.cc:3517
size_t mxGetNumberOfElements(const mxArray *ptr)
Definition: mex.cc:2815
const mxArray * mexGet(double handle, const char *property)
Definition: mex.cc:3498
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:935
#define OCTINTERP_API
Definition: mexproto.h:69
bool mxIsLogicalScalar(const mxArray *ptr)
Definition: mex.cc:2754
mxArray * mexCallMATLABWithTrap(int nargout, mxArray *argout[], int nargin, mxArray *argin[], const char *fname)
Definition: mex.cc:3207
void mxSetM(mxArray *ptr, mwSize M)
Definition: mex.cc:2822
bool mxIsEmpty(const mxArray *ptr)
Definition: mex.cc:2768
mxChar * mxGetChars(const mxArray *ptr)
Definition: mex.cc:2861
nd deftypefn *octave_map m
Definition: ov-struct.cc:2058
bool mxIsUint32(const mxArray *ptr)
Definition: mex.cc:2735
int nargin
Definition: graphics.cc:10115
std::string str
Definition: hash.cc:118
bool mxIsLogicalScalarTrue(const mxArray *ptr)
Definition: mex.cc:2761
F77_RET_T const F77_INT & N
void mexSetTrapFlag(int flag)
Definition: mex.cc:3231
int mxSetDimensions(mxArray *ptr, const mwSize *dims, mwSize ndims)
Definition: mex.cc:2834
idx subs
Definition: ov.cc:3080
char mxChar
Definition: mxarray.h:83
bool mxIsUint8(const mxArray *ptr)
Definition: mex.cc:2747
void mexMakeArrayPersistent(mxArray *ptr)
Definition: mex.cc:3471
bool mxIsNumeric(const mxArray *ptr)
Definition: mex.cc:2705
mxArray * mxCreateDoubleMatrix(mwSize nr, mwSize nc, mxComplexity flag)
Definition: mex.cc:2534
mxArray * mxCreateDoubleScalar(double val)
Definition: mex.cc:2540
bool mxIsClass(const mxArray *ptr, const char *name)
Definition: mex.cc:2651
void * mxGetData(const mxArray *ptr)
Definition: mex.cc:2876
mxArray * mxCreateLogicalScalar(mxLogical val)
Definition: mex.cc:2558
bool mxIsStruct(const mxArray *ptr)
Definition: mex.cc:2723
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
const mxArray * mexGetVariablePtr(const char *space, const char *name)
Definition: mex.cc:3418
void mxSetData(mxArray *ptr, void *data)
Definition: mex.cc:2901
double * mxGetPi(const mxArray *ptr)
Definition: mex.cc:2849
int mexPutVariable(const char *space, const char *name, const mxArray *ptr)
Definition: mex.cc:3424
mxArray * mxGetFieldByNumber(const mxArray *ptr, mwIndex index, int key_num)
Definition: mex.cc:3002
int mxGetString(const mxArray *ptr, char *buf, mwSize buflen)
Definition: mex.cc:3039
bool mxIsInt32(const mxArray *ptr)
Definition: mex.cc:2681
double mxGetInf(void)
Definition: mex.cc:2462
double mxGetScalar(const mxArray *ptr)
Definition: mex.cc:2855
mwIndex * mxGetJc(const mxArray *ptr)
Definition: mex.cc:2952
bool mxIsFinite(double v)
Definition: mex.cc:2438
void mexUnlock(void)
Definition: mex.cc:3559
int mexCallMATLAB(int nargout, mxArray *argout[], int nargin, mxArray *argin[], const char *fname)
Definition: mex.cc:3144
bool mxIsSparse(const mxArray *ptr)
Definition: mex.cc:2717
mxClassID
Definition: mxarray.h:52
mxArray * mexGetVariable(const char *space, const char *name)
Definition: mex.cc:3372
bool mxIsInt8(const mxArray *ptr)
Definition: mex.cc:2693
double mxGetEps(void)
Definition: mex.cc:2456
mxArray * mxCreateNumericMatrix(mwSize m, mwSize n, mxClassID class_id, mxComplexity flag)
Definition: mex.cc:2571
bool mxIsUint16(const mxArray *ptr)
Definition: mex.cc:2729
bool mxIsSingle(const mxArray *ptr)
Definition: mex.cc:2711
int mwIndex
Definition: mxarray.h:94
const char * mxGetFieldNameByNumber(const mxArray *ptr, int key_num)
Definition: mex.cc:3027
mxArray * mxCreateCellArray(mwSize ndims, const mwSize *dims)
Definition: mex.cc:2510
mxArray * mxDuplicateArray(const mxArray *v)
Definition: mex.cc:2624
bool mxIsCell(const mxArray *ptr)
Definition: mex.cc:2639
mxArray * mxGetField(const mxArray *ptr, mwIndex index, const char *key)
Definition: mex.cc:2995
int mxAddField(mxArray *ptr, const char *key)
Definition: mex.cc:2983
int mexEvalString(const char *s)
Definition: mex.cc:3238
int mexAtExit(void(*f)(void))
Definition: mex.cc:3483
int mexPrintf(const char *fmt,...)
Definition: mex.cc:3361
mxArray * mxCreateLogicalArray(mwSize ndims, const mwSize *dims)
Definition: mex.cc:2546
mxArray * mxCreateCharMatrixFromStrings(mwSize m, const char **str)
Definition: mex.cc:2528
bool mxIsInt64(const mxArray *ptr)
Definition: mex.cc:2687
const char * mexFunctionName(void)
Definition: mex.cc:3138
mwSize mxGetNzmax(const mxArray *ptr)
Definition: mex.cc:2958
OCTAVE_EXPORT octave_value_list any number nd example oindent prints the prompt xample Pick a any number!nd example oindent and waits for the user to enter a value The string entered by the user is evaluated as an so it may be a literal a variable or any other valid Octave code The number of return their size
Definition: input.cc:871
mxArray * mxCreateStructArray(mwSize ndims, const mwSize *dims, int num_keys, const char **keys)
Definition: mex.cc:2610
mxArray * mexEvalStringWithTrap(const char *s)
Definition: mex.cc:3265
int mwSize
Definition: mxarray.h:93
mxArray * mxCreateUninitNumericMatrix(mwSize m, mwSize n, mxClassID class_id, mxComplexity flag)
Definition: mex.cc:2585
mxArray * mxCreateLogicalMatrix(mwSize m, mwSize n)
Definition: mex.cc:2552
void mxFree(void *ptr)
Definition: mex.cc:2494
void * mxRealloc(void *ptr, size_t size)
Definition: mex.cc:2487
mxClassID mxGetClassID(const mxArray *ptr)
Definition: mex.cc:2914
void mexErrMsgIdAndTxt(const char *id, const char *s,...)
Definition: mex.cc:3314
void * mxMalloc(size_t n)
Definition: mex.cc:2481
void mxSetNzmax(mxArray *ptr, mwSize nzmax)
Definition: mex.cc:2976
mxArray * mxCreateUninitNumericArray(mwSize ndims, const mwSize *dims, mxClassID class_id, mxComplexity flag)
Definition: mex.cc:2578
mxArray * mxCreateSparseLogicalMatrix(mwSize m, mwSize n, mwSize nzmax)
Definition: mex.cc:2598
mwIndex mxCalcSingleSubscript(const mxArray *ptr, mwSize nsubs, mwIndex *subs)
Definition: mex.cc:3051
mxArray * mxGetCell(const mxArray *ptr, mwIndex idx)
Definition: mex.cc:2933
mxArray * mxCreateCharArray(mwSize ndims, const mwSize *dims)
Definition: mex.cc:2522
size_t mxGetElementSize(const mxArray *ptr)
Definition: mex.cc:3057
int mxGetNumberOfFields(const mxArray *ptr)
Definition: mex.cc:3021
static const double pi
Definition: lo-specfun.cc:3610
void mxDestroyArray(mxArray *v)
Definition: mex.cc:2631