/src/c-blosc2/plugins/codecs/zfp/src/template/decode4.c
Line | Count | Source |
1 | | /* private functions ------------------------------------------------------- */ |
2 | | |
3 | | /* scatter 4*4*4*4 block to strided array */ |
4 | | static void |
5 | | _t2(scatter, Scalar, 4)(const Scalar* q, Scalar* p, ptrdiff_t sx, ptrdiff_t sy, ptrdiff_t sz, ptrdiff_t sw) |
6 | 0 | { |
7 | 0 | uint x, y, z, w; |
8 | 0 | for (w = 0; w < 4; w++, p += sw - 4 * sz) |
9 | 0 | for (z = 0; z < 4; z++, p += sz - 4 * sy) |
10 | 0 | for (y = 0; y < 4; y++, p += sy - 4 * sx) |
11 | 0 | for (x = 0; x < 4; x++, p += sx) |
12 | 0 | *p = *q++; |
13 | 0 | } Unexecuted instantiation: decode4d.c:scatter_double_4 Unexecuted instantiation: decode4f.c:scatter_float_4 Unexecuted instantiation: decode4i.c:scatter_int32_4 Unexecuted instantiation: decode4l.c:scatter_int64_4 |
14 | | |
15 | | /* scatter nx*ny*nz*nw block to strided array */ |
16 | | static void |
17 | | _t2(scatter_partial, Scalar, 4)(const Scalar* q, Scalar* p, size_t nx, size_t ny, size_t nz, size_t nw, ptrdiff_t sx, ptrdiff_t sy, ptrdiff_t sz, ptrdiff_t sw) |
18 | 0 | { |
19 | 0 | size_t x, y, z, w; |
20 | 0 | for (w = 0; w < nw; w++, p += sw - (ptrdiff_t)nz * sz, q += 16 * (4 - nz)) |
21 | 0 | for (z = 0; z < nz; z++, p += sz - (ptrdiff_t)ny * sy, q += 4 * (4 - ny)) |
22 | 0 | for (y = 0; y < ny; y++, p += sy - (ptrdiff_t)nx * sx, q += 1 * (4 - nx)) |
23 | 0 | for (x = 0; x < nx; x++, p += sx, q++) |
24 | 0 | *p = *q; |
25 | 0 | } Unexecuted instantiation: decode4d.c:scatter_partial_double_4 Unexecuted instantiation: decode4f.c:scatter_partial_float_4 Unexecuted instantiation: decode4i.c:scatter_partial_int32_4 Unexecuted instantiation: decode4l.c:scatter_partial_int64_4 |
26 | | |
27 | | /* inverse decorrelating 4D transform */ |
28 | | static void |
29 | | _t2(inv_xform, Int, 4)(Int* p) |
30 | 0 | { |
31 | 0 | uint x, y, z, w; |
32 | | /* transform along w */ |
33 | 0 | for (z = 0; z < 4; z++) |
34 | 0 | for (y = 0; y < 4; y++) |
35 | 0 | for (x = 0; x < 4; x++) |
36 | 0 | _t1(inv_lift, Int)(p + 1 * x + 4 * y + 16 * z, 64); |
37 | | /* transform along z */ |
38 | 0 | for (y = 0; y < 4; y++) |
39 | 0 | for (x = 0; x < 4; x++) |
40 | 0 | for (w = 0; w < 4; w++) |
41 | 0 | _t1(inv_lift, Int)(p + 64 * w + 1 * x + 4 * y, 16); |
42 | | /* transform along y */ |
43 | 0 | for (x = 0; x < 4; x++) |
44 | 0 | for (w = 0; w < 4; w++) |
45 | 0 | for (z = 0; z < 4; z++) |
46 | 0 | _t1(inv_lift, Int)(p + 16 * z + 64 * w + 1 * x, 4); |
47 | | /* transform along x */ |
48 | 0 | for (w = 0; w < 4; w++) |
49 | 0 | for (z = 0; z < 4; z++) |
50 | 0 | for (y = 0; y < 4; y++) |
51 | 0 | _t1(inv_lift, Int)(p + 4 * y + 16 * z + 64 * w, 1); |
52 | 0 | } Unexecuted instantiation: decode4d.c:inv_xform_int64_4 Unexecuted instantiation: decode4f.c:inv_xform_int32_4 Unexecuted instantiation: decode4i.c:inv_xform_int32_4 Unexecuted instantiation: decode4l.c:inv_xform_int64_4 |
53 | | |
54 | | /* public functions -------------------------------------------------------- */ |
55 | | |
56 | | /* decode 4*4*4*4 block and store at p using strides (sx, sy, sz, sw) */ |
57 | | size_t |
58 | | _t2(zfp_decode_block_strided, Scalar, 4)(zfp_stream* stream, Scalar* p, ptrdiff_t sx, ptrdiff_t sy, ptrdiff_t sz, ptrdiff_t sw) |
59 | 0 | { |
60 | | /* decode contiguous block */ |
61 | 0 | cache_align_(Scalar block[256]); |
62 | 0 | size_t bits = _t2(zfp_decode_block, Scalar, 4)(stream, block); |
63 | | /* scatter block to strided array */ |
64 | 0 | _t2(scatter, Scalar, 4)(block, p, sx, sy, sz, sw); |
65 | 0 | return bits; |
66 | 0 | } Unexecuted instantiation: zfp_decode_block_strided_double_4 Unexecuted instantiation: zfp_decode_block_strided_float_4 Unexecuted instantiation: zfp_decode_block_strided_int32_4 Unexecuted instantiation: zfp_decode_block_strided_int64_4 |
67 | | |
68 | | /* decode nx*ny*nz*nw block and store at p using strides (sx, sy, sz, sw) */ |
69 | | size_t |
70 | | _t2(zfp_decode_partial_block_strided, Scalar, 4)(zfp_stream* stream, Scalar* p, size_t nx, size_t ny, size_t nz, size_t nw, ptrdiff_t sx, ptrdiff_t sy, ptrdiff_t sz, ptrdiff_t sw) |
71 | 0 | { |
72 | | /* decode contiguous block */ |
73 | 0 | cache_align_(Scalar block[256]); |
74 | 0 | size_t bits = _t2(zfp_decode_block, Scalar, 4)(stream, block); |
75 | | /* scatter block to strided array */ |
76 | 0 | _t2(scatter_partial, Scalar, 4)(block, p, nx, ny, nz, nw, sx, sy, sz, sw); |
77 | 0 | return bits; |
78 | 0 | } Unexecuted instantiation: zfp_decode_partial_block_strided_double_4 Unexecuted instantiation: zfp_decode_partial_block_strided_float_4 Unexecuted instantiation: zfp_decode_partial_block_strided_int32_4 Unexecuted instantiation: zfp_decode_partial_block_strided_int64_4 |