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§
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.