annotate mc.c @ 74:305b7361a5bd default tip @

showalgo: save a snapshot instead of waiting for keyboard input
author Jordi Gutiérrez Hermoso <jordigh@octave.org>
date Sun, 29 May 2016 19:05:01 -0400
parents e374cdd5e1e7
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
1 #include "mex.h"
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
2 #include "mlmc.c"
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
3 #include<stdio.h>
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
4
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
5 void mexFunction( int nlhs, mxArray *plhs[],
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
6 int nrhs, const mxArray*prhs[] )
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
7
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
8 {
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
9 double *yout;
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
10 double *yin;
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
11 long m,n,i;
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
13 /* Check for proper number of arguments */
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
14
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
15 if (nrhs != 1) {
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
16 mexErrMsgTxt("One input argument required.");
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
17 } else if (nlhs > 1) {
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
18 mexErrMsgTxt("Too many output arguments.");
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
19 }
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
20
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
21 m = mxGetM(prhs[0]);
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
22 n = mxGetN(prhs[0]);
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
23
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
24 if (n!=1 && m==1)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
25 {
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
26 mexErrMsgTxt("Input must be a columnvector.");
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
27 }
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
28 /* Create a matrix for the return argument */
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
29 plhs[0] = mxCreateDoubleMatrix(1, n, mxREAL);
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
30
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
31 /* Assign pointers to the various parameters */
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
32 yout = mxGetPr(plhs[0]);
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
33 yin = mxGetPr(prhs[0]);
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
34
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
35 for (i=0;i<n;i++)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
36 mlmc(&yout[i],&yin[i*m],&m);
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
37
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
38 return;
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
39
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
40 }