-
Notifications
You must be signed in to change notification settings - Fork 3
/
transpose.h
40 lines (36 loc) · 1.68 KB
/
transpose.h
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
38
39
40
/**
* Transpose functions.
*
* @author Connor Imes <cimes@isi.edu>
* @author Kaushik Datta <kdatta@isi.edu>
* @date 2019-07-15
*/
#ifndef TRANSPOSE_H
#define TRANSPOSE_H
#include <complex.h>
#include <stdlib.h>
void transpose_flt_naive(const float* restrict A, float* restrict B,
size_t A_rows, size_t A_cols);
void transpose_dbl_naive(const double* restrict A, double* restrict B,
size_t A_rows, size_t A_cols);
void transpose_fcmplx_naive(const float complex* restrict A,
float complex* restrict B,
size_t A_rows, size_t A_cols);
void transpose_dcmplx_naive(const double complex* restrict A,
double complex* restrict B,
size_t A_rows, size_t A_cols);
void transpose_flt_blocked(const float* restrict A, float* restrict B,
size_t A_rows, size_t A_cols,
size_t blk_rows, size_t blk_cols);
void transpose_dbl_blocked(const double* restrict A, double* restrict B,
size_t A_rows, size_t A_cols,
size_t blk_rows, size_t blk_cols);
void transpose_fcmplx_blocked(const float complex* restrict A,
float complex* restrict B,
size_t A_rows, size_t A_cols,
size_t blk_rows, size_t blk_cols);
void transpose_dcmplx_blocked(const double complex* restrict A,
double complex* restrict B,
size_t A_rows, size_t A_cols,
size_t blk_rows, size_t blk_cols);
#endif /* TRANSPOSE_H */