97 for(
int n=0; n < handle->frames-1; ++n)
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 = 0;
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 = 0;
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_first",
"raw buffer size not sufficient");
238 return xrif_difference_first_sint16(handle);
242 return xrif_difference_first_sint32(handle);
246 return xrif_difference_first_sint64(handle);
250 XRIF_ERROR_PRINT(
"xrif_difference_first",
"previous differencing not implemented for type");
265 int16_t * rb = (int16_t *) handle->
raw_buffer;
267 for(
int n=1; n < handle->frames; ++n)
269 size_t n_stride0 = 0;
270 size_t n_stride = n * npix*handle->
depth;
272 for(
int kk=0; kk<handle->
depth; ++kk)
274 size_t kk_stride = kk*npix;
276 int16_t * rb0 = &rb[n_stride0 + kk_stride];
277 int16_t * rb1 = &rb[n_stride + kk_stride];
280 #pragma omp parallel if (handle->omp_parallel > 0)
288 for(
int qq=0; qq< handle->
width*handle->
height; ++qq)
290 rb1[qq] = rb1[qq] + rb0[qq];
306 int32_t * rb = (int32_t *) handle->
raw_buffer;
308 for(
int n=1; n < handle->frames; ++n)
310 size_t n_stride0 = 0;
311 size_t n_stride = n * npix*handle->
depth;
313 for(
int kk=0; kk<handle->
depth; ++kk)
315 size_t kk_stride = kk*npix;
317 int32_t * rb0 = &rb[n_stride0 + kk_stride];
318 int32_t * rb1 = &rb[n_stride + kk_stride];
321 #pragma omp parallel if (handle->omp_parallel > 0)
329 for(
int qq=0; qq< handle->
width*handle->
height; ++qq)
331 rb1[qq] = rb1[qq] + rb0[qq];
347 int64_t * rb = (int64_t *) handle->
raw_buffer;
349 for(
int n=1; n < handle->frames; ++n)
351 size_t n_stride0 = 0;
352 size_t n_stride = n * npix*handle->
depth;
354 for(
int kk=0; kk<handle->
depth; ++kk)
356 size_t kk_stride = kk*npix;
358 int64_t * rb0 = &rb[n_stride0 + kk_stride];
359 int64_t * rb1 = &rb[n_stride + kk_stride];
362 #pragma omp parallel if (handle->omp_parallel > 0)
370 for(
int qq=0; qq< npix; ++qq)
372 rb1[qq] = rb1[qq] + rb0[qq];
402 XRIF_ERROR_PRINT(
"xrif_undifference_first",
"raw buffer size not sufficient");
408 return xrif_undifference_first_sint16(handle);
412 return xrif_undifference_first_sint32(handle);
416 return xrif_undifference_first_sint64(handle);
420 XRIF_ERROR_PRINT(
"xrif_difference_first",
"previous undifferencing not implemented for type");