18
18
**********************************************************************/
19
19
20
20
#include " allheaders.h"
21
- #include " memry.h"
22
21
#include " quadlsq.h"
23
22
#include " quspline.h"
24
23
@@ -43,8 +42,8 @@ QSPLINE::QSPLINE( //constructor
43
42
int32_t index ; // segment index
44
43
45
44
// get memory
46
- xcoords = ( int32_t *) alloc_mem (( count + 1 ) * sizeof ( int32_t )) ;
47
- quadratics = (QUAD_COEFFS *) alloc_mem (count * sizeof ( QUAD_COEFFS)) ;
45
+ xcoords = new int32_t [ count + 1 ] ;
46
+ quadratics = new QUAD_COEFFS[count] ;
48
47
segments = count;
49
48
for (index = 0 ; index < segments; index ++) {
50
49
// copy them
@@ -77,9 +76,9 @@ int degree //fit required
77
76
QLSQ qlsq; /* accumulator */
78
77
79
78
segments = segcount;
80
- xcoords = ( int32_t *) alloc_mem (( segcount + 1 ) * sizeof ( int32_t )) ;
81
- ptcounts = ( int32_t *) alloc_mem (( segcount + 1 ) * sizeof ( int32_t )) ;
82
- quadratics = (QUAD_COEFFS *) alloc_mem (segcount * sizeof ( QUAD_COEFFS)) ;
79
+ xcoords = new int32_t [ segcount + 1 ] ;
80
+ ptcounts = new int32_t [ segcount + 1 ] ;
81
+ quadratics = new QUAD_COEFFS[segcount] ;
83
82
memmove (xcoords, xstarts, (segcount + 1 ) * sizeof (int32_t ));
84
83
ptcounts[0 ] = 0 ; /* none in any yet */
85
84
for (segment = 0 , pointindex = 0 ; pointindex < pointcount; pointindex++) {
@@ -123,7 +122,7 @@ int degree //fit required
123
122
quadratics[segment].b = qlsq.get_b ();
124
123
quadratics[segment].c = qlsq.get_c ();
125
124
}
126
- free_mem ( ptcounts) ;
125
+ delete[] ptcounts;
127
126
}
128
127
129
128
@@ -148,16 +147,9 @@ QSPLINE::QSPLINE( //constructor
148
147
* Destroy a QSPLINE.
149
148
**********************************************************************/
150
149
151
- QSPLINE::~QSPLINE ( // constructor
152
- ) {
153
- if (xcoords != nullptr ) {
154
- free_mem (xcoords);
155
- xcoords = nullptr ;
156
- }
157
- if (quadratics != nullptr ) {
158
- free_mem (quadratics);
159
- quadratics = nullptr ;
160
- }
150
+ QSPLINE::~QSPLINE () {
151
+ delete[] xcoords;
152
+ delete[] quadratics;
161
153
}
162
154
163
155
@@ -169,14 +161,12 @@ QSPLINE::~QSPLINE ( //constructor
169
161
170
162
QSPLINE & QSPLINE::operator = ( // assignment
171
163
const QSPLINE & source) {
172
- if (xcoords != nullptr )
173
- free_mem (xcoords);
174
- if (quadratics != nullptr )
175
- free_mem (quadratics);
164
+ delete[] xcoords;
165
+ delete[] quadratics;
176
166
177
167
segments = source.segments ;
178
- xcoords = ( int32_t *) alloc_mem (( segments + 1 ) * sizeof ( int32_t )) ;
179
- quadratics = (QUAD_COEFFS *) alloc_mem (segments * sizeof ( QUAD_COEFFS)) ;
168
+ xcoords = new int32_t [ segments + 1 ] ;
169
+ quadratics = new QUAD_COEFFS[segments] ;
180
170
memmove (xcoords, source.xcoords , (segments + 1 ) * sizeof (int32_t ));
181
171
memmove (quadratics, source.quadratics , segments * sizeof (QUAD_COEFFS));
182
172
return *this ;
@@ -303,7 +293,7 @@ void QSPLINE::extrapolate( //linear extrapolation
303
293
) {
304
294
int segment; /* current segment of spline */
305
295
int dest_segment; // dest index
306
- int * xstarts; // new boundaries
296
+ int32_t * xstarts; // new boundaries
307
297
QUAD_COEFFS *quads; // new ones
308
298
int increment; // in size
309
299
@@ -312,9 +302,8 @@ void QSPLINE::extrapolate( //linear extrapolation
312
302
increment++;
313
303
if (increment == 0 )
314
304
return ;
315
- xstarts = (int *) alloc_mem ((segments + 1 + increment) * sizeof (int ));
316
- quads =
317
- (QUAD_COEFFS *) alloc_mem ((segments + increment) * sizeof (QUAD_COEFFS));
305
+ xstarts = new int32_t [segments + 1 + increment];
306
+ quads = new QUAD_COEFFS[segments + increment];
318
307
if (xmin < xcoords[0 ]) {
319
308
xstarts[0 ] = xmin;
320
309
quads[0 ].a = 0 ;
@@ -339,9 +328,9 @@ void QSPLINE::extrapolate( //linear extrapolation
339
328
xstarts[dest_segment] = xmax + 1 ;
340
329
}
341
330
segments = dest_segment;
342
- free_mem ( xcoords) ;
343
- free_mem ( quadratics) ;
344
- xcoords = ( int32_t *) xstarts;
331
+ delete[] xcoords;
332
+ delete[] quadratics;
333
+ xcoords = xstarts;
345
334
quadratics = quads;
346
335
}
347
336
0 commit comments