1 /*
2 * File: matlabfindpeaks_emxutil.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 "matlabfindpeaks_emxutil.h"
12
13 /* Function Definitions */
14
15 /*
16 * Arguments : emxArray__common *emxArray
17 * int oldNumel
18 * int elementSize
19 * Return Type : void
20 */
21 void emxEnsureCapacity(emxArray__common *emxArray, int oldNumel, int elementSize)
22 {
23 int newNumel;
24 int i;
25 void *newData;
26 newNumel = 1;
27 for (i = 0; i < emxArray->numDimensions; i++) {
28 newNumel *= emxArray->size[i];
29 }
30
31 if (newNumel > emxArray->allocatedSize) {
32 i = emxArray->allocatedSize;
33 if (i < 16) {
34 i = 16;
35 }
36
37 while (i < newNumel) {
38 if (i > 1073741823) {
39 i = MAX_int32_T;
40 } else {
41 i <<= 1;
42 }
43 }
44
45 newData = calloc((unsigned int)i, (unsigned int)elementSize);
46 if (emxArray->data != NULL) {
47 memcpy(newData, emxArray->data, (unsigned int)(elementSize * oldNumel));
48 if (emxArray->canFreeData) {
49 free(emxArray->data);
50 }
51 }
52
53 emxArray->data = newData;
54 emxArray->allocatedSize = i;
55 emxArray->canFreeData = true;
56 }
57 }
58
59 /*
60 * Arguments : emxArray_boolean_T **pEmxArray
61 * Return Type : void
62 */
63 void emxFree_boolean_T(emxArray_boolean_T **pEmxArray)
64 {
65 if (*pEmxArray != (emxArray_boolean_T *)NULL) {
66 if (((*pEmxArray)->data != (boolean_T *)NULL) && (*pEmxArray)->canFreeData)
67 {
68 free((void *)(*pEmxArray)->data);
69 }
70
71 free((void *)(*pEmxArray)->size);
72 free((void *)*pEmxArray);
73 *pEmxArray = (emxArray_boolean_T *)NULL;
74 }
75 }
76
77 /*
78 * Arguments : emxArray_int32_T **pEmxArray
79 * Return Type : void
80 */
81 void emxFree_int32_T(emxArray_int32_T **pEmxArray)
82 {
83 if (*pEmxArray != (emxArray_int32_T *)NULL) {
84 if (((*pEmxArray)->data != (int *)NULL) && (*pEmxArray)->canFreeData) {
85 free((void *)(*pEmxArray)->data);
86 }
87
88 free((void *)(*pEmxArray)->size);
89 free((void *)*pEmxArray);
90 *pEmxArray = (emxArray_int32_T *)NULL;
91 }
92 }
93
94 /*
95 * Arguments : emxArray_real_T **pEmxArray
96 * Return Type : void
97 */
98 void emxFree_real_T(emxArray_real_T **pEmxArray)
99 {
100 if (*pEmxArray != (emxArray_real_T *)NULL) {
101 if (((*pEmxArray)->data != (double *)NULL) && (*pEmxArray)->canFreeData) {
102 free((void *)(*pEmxArray)->data);
103 }
104
105 free((void *)(*pEmxArray)->size);
106 free((void *)*pEmxArray);
107 *pEmxArray = (emxArray_real_T *)NULL;
108 }
109 }
110
111 /*
112 * Arguments : emxArray_boolean_T **pEmxArray
113 * int numDimensions
114 * Return Type : void
115 */
116 void emxInit_boolean_T(emxArray_boolean_T **pEmxArray, int numDimensions)
117 {
118 emxArray_boolean_T *emxArray;
119 int i;
120 *pEmxArray = (emxArray_boolean_T *)malloc(sizeof(emxArray_boolean_T));
121 emxArray = *pEmxArray;
122 emxArray->data = (boolean_T *)NULL;
123 emxArray->numDimensions = numDimensions;
124 emxArray->size = (int *)malloc((unsigned int)(sizeof(int) * numDimensions));
125 emxArray->allocatedSize = 0;
126 emxArray->canFreeData = true;
127 for (i = 0; i < numDimensions; i++) {
128 emxArray->size[i] = 0;
129 }
130 }
131
132 /*
133 * Arguments : emxArray_int32_T **pEmxArray
134 * int numDimensions
135 * Return Type : void
136 */
137 void emxInit_int32_T(emxArray_int32_T **pEmxArray, int numDimensions)
138 {
139 emxArray_int32_T *emxArray;
140 int i;
141 *pEmxArray = (emxArray_int32_T *)malloc(sizeof(emxArray_int32_T));
142 emxArray = *pEmxArray;
143 emxArray->data = (int *)NULL;
144 emxArray->numDimensions = numDimensions;
145 emxArray->size = (int *)malloc((unsigned int)(sizeof(int) * numDimensions));
146 emxArray->allocatedSize = 0;
147 emxArray->canFreeData = true;
148 for (i = 0; i < numDimensions; i++) {
149 emxArray->size[i] = 0;
150 }
151 }
152
153 /*
154 * Arguments : emxArray_real_T **pEmxArray
155 * int numDimensions
156 * Return Type : void
157 */
158 void emxInit_real_T(emxArray_real_T **pEmxArray, int numDimensions)
159 {
160 emxArray_real_T *emxArray;
161 int i;
162 *pEmxArray = (emxArray_real_T *)malloc(sizeof(emxArray_real_T));
163 emxArray = *pEmxArray;
164 emxArray->data = (double *)NULL;
165 emxArray->numDimensions = numDimensions;
166 emxArray->size = (int *)malloc((unsigned int)(sizeof(int) * numDimensions));
167 emxArray->allocatedSize = 0;
168 emxArray->canFreeData = true;
169 for (i = 0; i < numDimensions; i++) {
170 emxArray->size[i] = 0;
171 }
172 }
173
174 /*
175 * Arguments : emxArray_real_T **pEmxArray
176 * int numDimensions
177 * Return Type : void
178 */
179 void emxInit_real_T1(emxArray_real_T **pEmxArray, int numDimensions)
180 {
181 emxArray_real_T *emxArray;
182 int i;
183 *pEmxArray = (emxArray_real_T *)malloc(sizeof(emxArray_real_T));
184 emxArray = *pEmxArray;
185 emxArray->data = (double *)NULL;
186 emxArray->numDimensions = numDimensions;
187 emxArray->size = (int *)malloc((unsigned int)(sizeof(int) * numDimensions));
188 emxArray->allocatedSize = 0;
189 emxArray->canFreeData = true;
190 for (i = 0; i < numDimensions; i++) {
191 emxArray->size[i] = 0;
192 }
193 }
194
195 /*
196 * File trailer for matlabfindpeaks_emxutil.c
197 *
198 * [EOF]
199 */
200
|