File: diff.c

    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