use num_complex::{Complex32, Complex64};
use std::os::raw::{c_double, c_float, c_int};
#[link(name = "hptt", kind = "static")]
unsafe extern "C" {
pub fn sTensorTranspose(
perm: *const c_int,
dim: c_int,
alpha: c_float,
A: *const c_float,
sizeA: *const c_int,
outerSizeA: *const c_int,
beta: c_float,
B: *mut c_float,
outerSizeB: *const c_int,
numThreads: c_int,
useRowMajor: c_int,
);
pub fn dTensorTranspose(
perm: *const c_int,
dim: c_int,
alpha: c_double,
A: *const c_double,
sizeA: *const c_int,
outerSizeA: *const c_int,
beta: c_double,
B: *mut c_double,
outerSizeB: *const c_int,
numThreads: c_int,
useRowMajor: c_int,
);
pub fn cTensorTranspose(
perm: *const c_int,
dim: c_int,
alpha: Complex32,
conjA: bool,
A: *const Complex32,
sizeA: *const c_int,
outerSizeA: *const c_int,
beta: Complex32,
B: *mut Complex32,
outerSizeB: *const c_int,
numThreads: c_int,
useRowMajor: c_int,
);
pub fn zTensorTranspose(
perm: *const c_int,
dim: c_int,
alpha: Complex64,
conjA: bool,
A: *const Complex64,
sizeA: *const c_int,
outerSizeA: *const c_int,
beta: Complex64,
B: *mut Complex64,
outerSizeB: *const c_int,
numThreads: c_int,
useRowMajor: c_int,
);
}