Mercurial > octave-nkf
view examples/code/myset.c @ 20596:87b557ee8e5d
clean up and vectorize code for dense output in ode45
* scripts/ode/private/ode_rk_interpolate.m: new file
* scripts/ode/private/ode_rk_interpolate.m(hermite_quartic_interpolation):
move to internal function, use vectorization and broadcasting.
* scripts/ode/private/hermite_quartic_interpolation.m: remove file
* scripts/ode/module.mk: list added and removed files
* scripts/ode/private/integrate_adaptive.m: use new interpolation code.
author | Carlo de Falco <carlo.defalco@polimi.it> |
---|---|
date | Tue, 06 Oct 2015 19:28:59 +0200 |
parents | 5c42ff6f0eb1 |
children |
line wrap: on
line source
#include "mex.h" void mexFunction (int nlhs, mxArray* plhs[], int nrhs, const mxArray* prhs[]) { char *str; mxArray *v; int found = 0; if (nrhs != 2 || ! mxIsChar (prhs[0])) mexErrMsgTxt ("Arguments must be a symbol name and a value"); str = mxArrayToString (prhs[0]); // FIXME: If variable does not exist, error is reported which prevents // subsequent mexGetArray function from working. v = mexGetArray (str, "global"); if (v) { mexPrintf ("%s is a global variable with the following value:\n", str); mexCallMATLAB (0, NULL, 1, &v, "disp"); found = 1; } if (! found) v = mexGetArray (str, "caller"); if (! found && v) { mexPrintf ("%s is a caller variable with the following value:\n", str); mexCallMATLAB (0, NULL, 1, &v, "disp"); } // WARNING!! Can't do this in MATLAB! Must copy variable first. mexPutVariable ("caller", str, prhs[1]); }