1 /*
2 * File: diff.c
3 *
4 * MATLAB Coder version : 3.1
5 * C/C++ source code generated on : 22-Apr-2021 15:58:03
6 */
7
8 /* Include Files */
9 #include "rt_nonfinite.h"
10 #include "matlabfindpeaks.h"
11 #include "diff.h"
12 #include "matlabfindpeaks_emxutil.h"
13
14 /* Function Definitions */
15
16 /*
17 * Arguments : const emxArray_real_T *x
18 * emxArray_real_T *y
19 * Return Type : void
20 */
21 void diff(const emxArray_real_T *x, emxArray_real_T *y)
22 {
23 int orderForDim;
24 unsigned short ySize_idx_0;
25 int iyLead;
26 double work_data_idx_0;
27 int m;
28 double tmp1;
29 double tmp2;
30 if (x->size[0] == 0) {
31 orderForDim = y->size[0];
32 y->size[0] = 0;
33 emxEnsureCapacity((emxArray__common *)y, orderForDim, (int)sizeof(double));
34 } else {
35 if (x->size[0] - 1 <= 1) {
36 orderForDim = x->size[0] - 1;
37 } else {
38 orderForDim = 1;
39 }
40
41 if (orderForDim < 1) {
42 orderForDim = y->size[0];
43 y->size[0] = 0;
44 emxEnsureCapacity((emxArray__common *)y, orderForDim, (int)sizeof(double));
45 } else {
46 ySize_idx_0 = (unsigned short)(x->size[0] - 1);
47 orderForDim = y->size[0];
48 y->size[0] = ySize_idx_0;
49 emxEnsureCapacity((emxArray__common *)y, orderForDim, (int)sizeof(double));
50 if (!(y->size[0] == 0)) {
51 orderForDim = 1;
52 iyLead = 0;
53 work_data_idx_0 = x->data[0];
54 for (m = 2; m <= x->size[0]; m++) {
55 tmp1 = x->data[orderForDim];
56 tmp2 = work_data_idx_0;
57 work_data_idx_0 = tmp1;
58 tmp1 -= tmp2;
59 orderForDim++;
60 y->data[iyLead] = tmp1;
61 iyLead++;
62 }
63 }
64 }
65 }
66 }
67
68 /*
69 * File trailer for diff.c
70 *
71 * [EOF]
72 */
73
|