97 for(
int n=0; n < handle->frames-1; ++n)
99 size_t n_stride0 = (handle->
frames - 2 - n) * npix*handle->
depth;
100 size_t n_stride = (handle->
frames - 1 - n) * npix*handle->
depth;
102 for(
int kk=0; kk< handle->
depth; ++kk)
104 size_t kk_stride = kk*npix;
106 int16_t * rb0 = &rb[n_stride0 + kk_stride];
107 int16_t * rb1 = &rb[n_stride + kk_stride];
110 #pragma omp parallel if (handle->omp_parallel > 0)
118 for(
int qq=0; qq < npix; ++qq)
120 rb1[qq] = (rb1[qq] - rb0[qq]);
136 int32_t * rb = (int32_t *) handle->
raw_buffer;
138 for(
int n=0; n < handle->frames-1; ++n)
140 size_t n_stride0 = (handle->
frames - 2 - n) * npix*handle->
depth;
141 size_t n_stride = (handle->
frames - 1 - n) * npix*handle->
depth;
143 for(
int kk=0; kk< handle->
depth; ++kk)
145 size_t kk_stride = kk*npix;
147 int32_t * rb0 = &rb[n_stride0 + kk_stride];
148 int32_t * rb1 = &rb[n_stride + kk_stride];
151 #pragma omp parallel if (handle->omp_parallel > 0)
159 for(
int qq=0; qq < npix; ++qq)
161 rb1[qq] = (rb1[qq] - rb0[qq]);
177 int64_t * rb = (int64_t *) handle->
raw_buffer;
179 for(
int n=0; n < handle->frames-1; ++n)
181 size_t n_stride0 = (handle->
frames - 2 - n) * npix*handle->
depth;
182 size_t n_stride = (handle->
frames - 1 - n) * npix*handle->
depth;
184 for(
int kk=0; kk< handle->
depth; ++kk)
186 size_t kk_stride = kk*npix;
188 int64_t * rb0 = &rb[n_stride0 + kk_stride];
189 int64_t * rb1 = &rb[n_stride + kk_stride];
192 #pragma omp parallel if (handle->omp_parallel > 0)
200 for(
int qq=0; qq< npix;++qq)
202 rb1[qq] = (rb1[qq] - rb0[qq]);
232 XRIF_ERROR_PRINT(
"xrif_difference_previous",
"raw buffer size not sufficient");
238 return xrif_difference_previous_sint16(handle);
242 return xrif_difference_previous_sint32(handle);
246 return xrif_difference_previous_sint64(handle);
250 XRIF_ERROR_PRINT(
"xrif_difference_previous",
"previous differencing not implemented for type");
263 int16_t * rb = (int16_t *) handle->
raw_buffer;
265 for(
int n=1; n < handle->frames; ++n)
267 size_t n_stride0 = (n-1) * npix*handle->
depth;
268 size_t n_stride = n * npix*handle->
depth;
270 for(
int kk=0; kk<handle->depth; ++kk)
272 size_t kk_stride = kk*npix;
274 int16_t * rb0 = &rb[n_stride0 + kk_stride];
275 int16_t * rb1 = &rb[n_stride + kk_stride];
278 #pragma omp parallel if (handle->omp_parallel > 0)
286 for(
int qq=0; qq< handle->
width*handle->
height; ++qq)
288 rb1[qq] = rb1[qq] + rb0[qq];
304 int32_t * rb = (int32_t *) handle->
raw_buffer;
306 for(
int n=1; n < handle->frames; ++n)
308 size_t n_stride0 = (n-1) * npix*handle->
depth;
309 size_t n_stride = n * npix*handle->
depth;
311 for(
int kk=0; kk<handle->depth; ++kk)
313 size_t kk_stride = kk*npix;
315 int32_t * rb0 = &rb[n_stride0 + kk_stride];
316 int32_t * rb1 = &rb[n_stride + kk_stride];
319 #pragma omp parallel if (handle->omp_parallel > 0)
327 for(
int qq=0; qq< handle->
width*handle->
height; ++qq)
329 rb1[qq] = rb1[qq] + rb0[qq];
345 int64_t * rb = (int64_t *) handle->
raw_buffer;
347 for(
int n=1; n < handle->frames; ++n)
349 size_t n_stride0 = (n-1) * npix*handle->
depth;
350 size_t n_stride = n * npix*handle->
depth;
352 for(
int kk=0; kk<handle->depth; ++kk)
354 size_t kk_stride = kk*npix;
356 int64_t * rb0 = &rb[n_stride0 + kk_stride];
357 int64_t * rb1 = &rb[n_stride + kk_stride];
360 #pragma omp parallel if (handle->omp_parallel > 0)
368 for(
int qq=0; qq< npix; ++qq)
370 rb1[qq] = rb1[qq] + rb0[qq];
388 XRIF_ERROR_PRINT(
"xrif_undifference_previous",
"can not use a null pointer");
400 XRIF_ERROR_PRINT(
"xrif_undifference_previous",
"raw buffer size not sufficient");
406 return xrif_undifference_previous_sint16(handle);
410 return xrif_undifference_previous_sint32(handle);
414 return xrif_undifference_previous_sint64(handle);
418 XRIF_ERROR_PRINT(
"xrif_difference_previous",
"previous undifferencing not implemented for type");