Skip to main content

Crate hptt

Crate hptt 

Source
Expand description

Rust bindings for HPTT (High-Performance Tensor Transposition)

This crate provides safe Rust bindings to the HPTT C++ library for high-performance out-of-place tensor transpositions.

§Example

use hptt::{transpose_f64, MemoryOrder};

// Transpose a 3D tensor [2, 3, 4] -> [3, 2, 4]
let input = vec![1.0; 2 * 3 * 4];
let mut output = vec![0.0; 3 * 2 * 4];

transpose_f64(
    &[1, 0, 2],           // permutation: swap first two dims
    1.0,                  // alpha
    &input,
    &[2, 3, 4],           // shape
    0.0,                  // beta (overwrite)
    &mut output,
    1,                    // single thread
    MemoryOrder::RowMajor,
).expect("transpose failed");

Enums§

Error
Error type for HPTT operations
MemoryOrder
Memory layout order for tensor data

Functions§

transpose_c32
Transpose a single-precision complex (Complex32) tensor
transpose_c64
Transpose a double-precision complex (Complex64) tensor
transpose_c32_sub
Transpose a sub-tensor of a single-precision complex (Complex32) tensor
transpose_c64_sub
Transpose a sub-tensor of a double-precision complex (Complex64) tensor
transpose_f32
Transpose a single-precision (f32) tensor
transpose_f64
Transpose a double-precision (f64) tensor
transpose_f32_sub
Transpose a sub-tensor of a single-precision (f32) tensor
transpose_f64_sub
Transpose a sub-tensor of a double-precision (f64) tensor

Type Aliases§

Complex32
Alias for a Complex<f32>
Complex64
Alias for a Complex<f64>
Result