Crate volk

Crate volk 

Source
Expand description

§volk-rs

Rust bindings for the volk library.

https://github.com/ThomasHabets/volk-rs

VOLK is the Vector-Optimized Library of Kernels. It is a library that contains kernels of hand-written SIMD code for different mathematical operations. Since each SIMD architecture can be very different and no compiler has yet come along to handle vectorization properly or highly efficiently, VOLK approaches the problem differently.

For each architecture or platform that a developer wishes to vectorize for, a new proto-kernel is added to VOLK. At runtime, VOLK will select the correct proto-kernel. In this way, the users of VOLK call a kernel for performing the operation that is platform/architecture agnostic. This allows us to write portable SIMD code.

Structs§

Allocation
Allocation allocated using volk_malloc().

Enums§

VolkError

Functions§

try_volk_32f_atan_32f
Computes the arctan for each value in a complex vector and applies a normalization factor.
try_volk_32f_sqrt_32f
Take square root of a vector of floats.
try_volk_32fc_s32f_atan2_32f
Computes the arctan for each value in a complex vector and applies a normalization factor.
try_volk_32fc_x2_multiply_32fc
Multiply two complex vectors.
try_volk_32fc_x2_multiply_32fc_inplace
Multiply two complex vectors in place.
try_volk_32fc_x2_multiply_conjugate_32fc
Multiplies a complex vector by the conjugate of a second complex vector and returns the complex result.
volk_32f_atan_32f
Computes the arctan for each value in a complex vector and applies a normalization factor.
volk_32f_atan_32f_unchecked
Computes the arctan for each value in a complex vector and applies a normalization factor.
volk_32f_sqrt_32f
Take square root of a vector of floats.
volk_32f_sqrt_32f_unchecked
Take square root of a vector of floats.
volk_32fc_s32f_atan2_32f
Computes the arctan for each value in a complex vector and applies a normalization factor.
volk_32fc_s32f_atan2_32f_unchecked
Computes the arctan for each value in a complex vector and applies a normalization factor.
volk_32fc_x2_multiply_32fc
Multiply two complex vectors.
volk_32fc_x2_multiply_32fc_inplace
Multiply two complex vectors in place.
volk_32fc_x2_multiply_32fc_inplace_unchecked
Multiply two complex vectors in place.
volk_32fc_x2_multiply_32fc_unchecked
Multiply two complex vectors.
volk_32fc_x2_multiply_conjugate_32fc
Multiplies a complex vector by the conjugate of a second complex vector and returns the complex result.
volk_32fc_x2_multiply_conjugate_32fc_unchecked
Multiplies a complex vector by the conjugate of a second complex vector and returns the complex result.
volk_available_machines
Returns the list of machine names that this volk library supports.
volk_c_compiler
Returns the C compiler used to build volk.
volk_compiler_flags
Returns the C compiler flags used to build volk.
volk_get_alignment
Get the machine alignment in bytes.
volk_get_machine
Returns the name of the machine this instance will use.
volk_is_aligned
Is the pointer on a machine alignment boundary?
volk_is_aligned_unsafe
Is the pointer on a machine alignment boundary?
volk_malloc
Allocate size bytes of data aligned to alignment.
volk_prefix
Returns the prefix of the path where volk is installed.
volk_version
Returns the volk version string.