xsimd Logo

INSTALLATION

  • Installation
    • Getting the library
      • Using the conda-forge Package
      • Using the Spack Package
      • From Source with cmake
    • Using the library inside CMake
  • Build Options
    • Changing Default Architecture
    • Enabling emulated architecture
    • Enabling complex support with xtl

USAGE

  • Basic Usage
    • Manipulating Abstract Batches
    • Manipulating Parametric Batches
    • Explicit Use of an Instruction Set Extension
  • Writing Vectorized Code
    • Explicit Use of an Instruction Set
    • Aligned vs Unaligned Memory
    • Memory Alignment and Tag Dispatching
    • Writing Arch-Independent Code
    • Breaking out of xsimd
  • Integration
    • When Targeting a Single Architecture
    • When Targeting Multiple Architectures
  • Try it online

API REFERENCE

  • Instruction Set Macros
    • XSIMD_CPP_VERSION
    • XSIMD_TARGET_X86
    • XSIMD_WITH_INLINE_ASM
    • XSIMD_REASSOCIATIVE_MATH
    • XSIMD_WITH_SSE2
    • XSIMD_WITH_SSE3
    • XSIMD_WITH_SSSE3
    • XSIMD_WITH_SSE4_1
    • XSIMD_WITH_SSE4_2
    • XSIMD_WITH_AVX
    • XSIMD_WITH_AVX2
    • XSIMD_WITH_AVXVNNI
    • XSIMD_WITH_FMA3_SSE
    • XSIMD_WITH_FMA3_AVX
    • XSIMD_WITH_FMA4
    • XSIMD_WITH_AVX512F
    • XSIMD_WITH_AVX512CD
    • XSIMD_WITH_AVX512VL
    • XSIMD_WITH_AVX512DQ
    • XSIMD_WITH_AVX512BW
    • XSIMD_WITH_AVX512ER
    • XSIMD_WITH_AVX512PF
    • XSIMD_WITH_AVX512IFMA
    • XSIMD_WITH_AVX512VBMI
    • XSIMD_WITH_AVX512VBMI2
    • XSIMD_WITH_AVX512VNNI_AVX512VBMI2
    • XSIMD_TARGET_ARM64
    • XSIMD_TARGET_ARM
    • XSIMD_WITH_NEON
    • XSIMD_WITH_NEON64
    • XSIMD_WITH_I8MM_NEON64
    • XSIMD_WITH_SVE
    • XSIMD_TARGET_RISCV
    • XSIMD_WITH_RVV
    • XSIMD_WITH_WASM
    • XSIMD_TARGET_PPC
    • XSIMD_WITH_VSX
    • XSIMD_TARGET_S390X
    • XSIMD_WITH_VXE
    • XSIMD_HAVE_LINUX_GETAUXVAL
  • Batch Types
    • Batch of Scalars
      • xsimd::batch
        • value_type
        • arch_type
        • register_type
        • batch_bool_type
        • batch()
        • batch()
        • batch()
        • batch()
        • batch()
        • to_native()
        • store_aligned()
        • store_unaligned()
        • store()
        • store()
        • scatter()
        • get()
        • first()
        • broadcast()
        • load_aligned()
        • load_unaligned()
        • load()
        • load()
        • gather()
        • size
        • operator+
        • operator-
        • operator*
        • operator/
        • operator&
        • operator|
        • operator^
        • operator&&
        • operator||
      • xsimd::make_sized_batch
    • Batch of Conditions
      • xsimd::batch_bool
        • value_type
        • arch_type
        • register_type
        • batch_type
        • batch_bool()
        • to_native()
        • mask()
        • from_mask()
        • size
      • Logical Operators
        • bitwise_andnot()
        • select()
      • Reducers
        • count()
        • all()
        • any()
        • none()
        • countl_zero()
        • countl_one()
        • countr_zero()
        • countr_one()
    • Batch of Complex Numbers
      • xsimd::batch< std::complex< T >, A >
        • value_type
        • real_batch
        • arch_type
        • batch_bool_type
        • register_type
        • batch()
        • broadcast()
        • load_aligned()
        • load_unaligned()
        • load()
        • load()
        • gather()
        • to_native()
        • scatter()
        • size
        • operator+
        • operator-
        • operator*
        • operator/
        • operator&
        • operator|
        • operator^
        • operator&&
        • operator||
      • Operations Specific to Batches of Complex Numbers
        • abs()
        • arg()
        • conj()
        • imag()
        • norm()
        • proj()
        • real()
    • Batch of Constants
      • xsimd::batch_constant
        • as_batch()
        • operator batch_type()
        • get()
      • xsimd::batch_bool_constant
        • as_batch_bool()
        • as_batch()
        • operator batch_type()
      • make_batch_constant()
      • make_batch_bool_constant()
  • Data Transfers
    • broadcast()
    • broadcast_as()
    • compress()
    • expand()
    • get()
    • insert()
    • load_as()
    • load_as()
    • load()
    • load()
    • load()
    • load()
    • load_aligned()
    • load_unaligned()
    • rotate_left()
    • rotate_right()
    • shuffle()
    • slide_left()
    • slide_right()
    • store_as()
    • store_as()
    • store()
    • store()
    • store()
    • store()
    • store_aligned()
    • store_unaligned()
    • swizzle()
    • swizzle()
    • transpose()
    • zip_hi()
    • zip_lo()
    • xsimd::aligned_mode
    • xsimd::unaligned_mode
  • Arithmetic Operations
    • add()
    • decr()
    • decr_if()
    • div()
    • fma()
    • fms()
    • fnma()
    • fnms()
    • fmas()
    • incr()
    • incr_if()
    • mod()
    • mul()
    • mul_lo()
    • mul_hi()
    • mul_hilo()
    • neg()
    • pos()
    • reciprocal()
    • sadd()
    • ssub()
    • sub()
  • Comparison Operators
    • eq()
    • eq()
    • ge()
    • gt()
    • is_even()
    • is_flint()
    • is_odd()
    • isinf()
    • isfinite()
    • isnan()
    • le()
    • lt()
    • neq()
    • neq()
  • Bitwise Operators
    • bitwise_and()
    • bitwise_and()
    • bitwise_andnot()
    • bitwise_lshift()
    • bitwise_not()
    • bitwise_not()
    • bitwise_or()
    • bitwise_or()
    • bitwise_rshift()
    • bitwise_xor()
    • bitwise_xor()
    • rotl()
    • rotr()
  • Mathematical Functions
    • abs()
    • avg()
    • avgr()
    • cbrt()
    • clip()
    • exp()
    • exp10()
    • exp2()
    • expm1()
    • fabs()
    • fdim()
    • fmax()
    • fmin()
    • fmod()
    • hypot()
    • log()
    • log2()
    • log10()
    • log1p()
    • max()
    • min()
    • polar()
    • pow()
    • pow()
    • pow()
    • pow()
    • remainder()
    • rsqrt()
    • sqrt()
    • acos()
    • acosh()
    • asin()
    • asinh()
    • atan()
    • atan2()
    • atanh()
    • cos()
    • cosh()
    • sin()
    • sincos()
    • sinh()
    • tan()
    • tanh()
    • ceil()
    • floor()
    • nearbyint()
    • nearbyint_as_int()
    • rint()
    • round()
    • trunc()
    • erf()
    • erfc()
    • ldexp()
    • lgamma()
    • nextafter()
    • tgamma()
  • Reduction Operators
    • haddp()
    • reduce()
    • reduce_add()
    • reduce_max()
    • reduce_min()
    • reduce_mul()
  • Type Conversion
    • batch_bool_cast()
    • batch_cast()
    • bitwise_cast()
    • to_float()
    • to_int()
    • bitwise_cast()
    • widen()
  • Type Traits
    • xsimd::batch_traits
    • xsimd::is_batch
    • xsimd::is_batch_bool
    • xsimd::is_any_batch
    • xsimd::is_batch_complex
    • xsimd::scalar_type
    • xsimd::mask_type
  • Conditional Expression
    • select()
    • select()
    • select()
    • select()
  • Miscellaneous
    • bitofsign()
    • copysign()
    • sign()
    • signnz()
    • operator<<()
    • operator<<()
  • Alignment Manipulation
    • Aligned Memory Allocator
      • xsimd::aligned_allocator
        • aligned_allocator()
        • aligned_allocator()
        • ~aligned_allocator()
        • allocate()
        • deallocate()
        • max_size()
        • size_max()
        • construct()
        • destroy()
        • aligned_allocator()
        • xsimd::aligned_allocator::rebind
    • Alignment Checker
      • is_aligned()
  • Architecture Manipulation
    • xsimd::unavailable
    • xsimd::common
      • supported()
      • available()
      • alignment()
      • requires_alignment()
      • name()
    • xsimd::vsx
    • xsimd::avx2
    • xsimd::avx2_128
    • xsimd::avx512bw
    • xsimd::avx512cd
    • xsimd::avx512dq
    • xsimd::avx512f
    • xsimd::avx512vl
    • xsimd::avx512vl_128
    • xsimd::avx512vl_256
    • xsimd::avx
    • xsimd::avx_128
    • xsimd::fma3< avx >
    • xsimd::fma3< avx2 >
    • xsimd::fma3< sse4_2 >
    • xsimd::fma4
    • xsimd::neon64
    • xsimd::neon
    • xsimd::detail::rvv
    • xsimd::sse2
    • xsimd::sse3
    • xsimd::sse4_1
    • xsimd::sse4_2
    • xsimd::ssse3
    • xsimd::detail::sve
    • Emulated Mode
  • Arch Dispatching
    • dispatch()

MIGRATION GUIDE

  • From 7.x to 8.x
    • Why 8.x
    • Most Notable Changes
      • Batch Types
      • Batch of Complex Types
      • Loading Batches
      • Indexing Batches
      • Architecture Detection
xsimd
  • Batch Types
  • View page source

Batch Types

  • Batch of Scalars
  • Batch of Conditions
  • Batch of Complex Numbers
  • Batch of Constants
Previous Next

© Copyright 2016, Johan Mabille and Sylvain Corlay.

Built with Sphinx using a theme provided by Read the Docs.