File: stridedOperations.h

package info (click to toggle)
zfp 1.0.1-4
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 4,744 kB
  • sloc: cpp: 20,656; ansic: 18,871; pascal: 1,231; f90: 907; python: 255; makefile: 183; sh: 79; fortran: 70
file content (37 lines) | stat: -rw-r--r-- 926 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#ifndef STRIDED_OPERATIONS_H
#define STRIDED_OPERATIONS_H

#include <stddef.h>
#include "zfp.h"

typedef enum {
  AS_IS = 0,
  PERMUTED = 1,
  INTERLEAVED = 2,
  REVERSED = 3,
} stride_config;

// reversed array ([inputLen - 1], [inputLen - 2], ..., [1], [0])
void
reverseArray(void* inputArr, void* outputArr, size_t inputArrLen, zfp_type zfpType);

// interleaved array ([0], [0], [1], [1], [2], ...)
void
interleaveArray(void* inputArr, void* outputArr, size_t inputArrLen, zfp_type zfpType);

// ijkl -> lkji, or for lower dims (ex. ij -> ji)
// returns 0 on success, 1 on failure
// (defined to fail if dims == 1)
int
permuteSquareArray(void* inputArr, void* outputArr, size_t sideLen, int dims, zfp_type zfpType);

void
getReversedStrides(int dims, size_t n[4], ptrdiff_t s[4]);

void
getInterleavedStrides(int dims, size_t n[4], ptrdiff_t s[4]);

void
getPermutedStrides(int dims, size_t n[4], ptrdiff_t s[4]);

#endif