Module simd

Module simd 

Source
Expand description

SIMD-accelerated conversion functions.

Provides full control over CPU dispatch with _dispatch and _inline variants. SIMD-accelerated sRGB ↔ linear conversion.

This module provides high-performance conversion functions using AVX2/SSE SIMD instructions via the wide crate with runtime CPU feature detection.

§API Overview

§x8 Functions (process 8 values at once)

  • [srgb_to_linear_x8] - f32x8 sRGB → f32x8 linear
  • [linear_to_srgb_x8] - f32x8 linear → f32x8 sRGB
  • [srgb_u8_to_linear_x8] - [u8; 8] sRGB → f32x8 linear
  • [linear_to_srgb_u8_x8] - f32x8 linear → [u8; 8] sRGB

§Slice Functions (process entire slices)

  • [srgb_to_linear_slice] - &mut [f32] sRGB → linear in-place
  • [linear_to_srgb_slice] - &mut [f32] linear → sRGB in-place
  • [srgb_u8_to_linear_slice] - &[u8] sRGB → &mut [f32] linear
  • [linear_to_srgb_u8_slice] - &[f32] linear → &mut [u8] sRGB

Functions§

gamma_to_linear_slice
Convert gamma-encoded f32 values to linear in-place using a custom gamma.
gamma_to_linear_x8
Convert 8 gamma-encoded f32 values to linear.
gamma_to_linear_x8_dispatch
Convert 8 gamma-encoded f32 values to linear (with CPU dispatch).
gamma_to_linear_x8_inline
Convert 8 gamma-encoded f32 values to linear (always inlined).
gamma_to_linear_x8_slice
Convert gamma-encoded f32x8 values to linear in-place using a custom gamma.
gamma_to_linear_x8_slice_inline
Convert gamma-encoded f32x8 values to linear in-place (always inlined).
linear_to_gamma_slice
Convert linear f32 values to gamma-encoded in-place using a custom gamma.
linear_to_gamma_x8
Convert 8 linear f32 values to gamma-encoded.
linear_to_gamma_x8_dispatch
Convert 8 linear f32 values to gamma-encoded (with CPU dispatch).
linear_to_gamma_x8_inline
Convert 8 linear f32 values to gamma-encoded (always inlined).
linear_to_gamma_x8_slice
Convert linear f32x8 values to gamma-encoded in-place using a custom gamma.
linear_to_gamma_x8_slice_inline
Convert linear f32x8 values to gamma-encoded in-place (always inlined).
linear_to_srgb_slice
Convert linear f32 values to sRGB in-place.
linear_to_srgb_u8_slice
Convert linear f32 values to sRGB u8.
linear_to_srgb_u8_x8
Convert 8 linear f32 values to sRGB u8.
linear_to_srgb_u8_x8_dispatch
Convert 8 linear f32 values to sRGB u8 (with CPU dispatch).
linear_to_srgb_u8_x8_inline
Convert 8 linear f32 values to sRGB u8 (always inlined).
linear_to_srgb_x8
Convert 8 linear f32 values to sRGB.
linear_to_srgb_x8_dispatch
Convert 8 linear f32 values to sRGB (with CPU dispatch).
linear_to_srgb_x8_inline
Convert 8 linear f32 values to sRGB (always inlined).
linear_to_srgb_x8_slice
Convert linear f32x8 values to sRGB in-place.
linear_to_srgb_x8_slice_inline
Convert linear f32x8 values to sRGB in-place (always inlined).
srgb_to_linear_slice
Convert sRGB f32 values to linear in-place.
srgb_to_linear_x8
Convert 8 sRGB f32 values to linear.
srgb_to_linear_x8_dispatch
Convert 8 sRGB f32 values to linear (with CPU dispatch).
srgb_to_linear_x8_inline
Convert 8 sRGB f32 values to linear (always inlined).
srgb_to_linear_x8_slice
Convert sRGB f32x8 values to linear in-place.
srgb_to_linear_x8_slice_inline
Convert sRGB f32x8 values to linear in-place (always inlined).
srgb_u8_to_linear
Convert a single sRGB u8 value to linear f32 using LUT lookup.
srgb_u8_to_linear_slice
Convert sRGB u8 values to linear f32.
srgb_u8_to_linear_x8
Convert 8 sRGB u8 values to linear f32 using LUT lookup.