SIMD provides vector and matrix types together with vectorized math, geometry, and linear-algebra operations for high-performance computation. Use fixed-size matrix structures such as simd_float4x4, simd_double3x3, and their half-precision counterparts like simd_half4x4 to represent and transform geometric data across two, three, and four dimensions. Quaternion types simd_quatf, simd_quatd, and simd_quath express rotations in single, double, and half precision. The framework is available on iOS, macOS, tvOS, watchOS, and visionOS.
Half-Precision Matrices 9
Fixed-size matrix structures of 16-bit half-precision floating-point values for compact geometric and linear-algebra data.
- Stsimd_half2x2@abstract A matrix with 2 rows and 2 columns.
- Stsimd_half3x2@abstract A matrix with 2 rows and 3 columns.
- Stsimd_half4x2@abstract A matrix with 2 rows and 4 columns.
- Stsimd_half2x3@abstract A matrix with 3 rows and 2 columns.
- Stsimd_half3x3@abstract A matrix with 3 rows and 3 columns.
- Stsimd_half4x3@abstract A matrix with 3 rows and 4 columns.
- Stsimd_half2x4@abstract A matrix with 4 rows and 2 columns.
- Stsimd_half3x4@abstract A matrix with 4 rows and 3 columns.
- Stsimd_half4x4@abstract A matrix with 4 rows and 4 columns.
Single-Precision Matrices 9
Fixed-size matrix structures of 32-bit single-precision floating-point values for transforming geometric data.
- Stsimd_float2x2@abstract A matrix with 2 rows and 2 columns.
- Stsimd_float3x2@abstract A matrix with 2 rows and 3 columns.
- Stsimd_float4x2@abstract A matrix with 2 rows and 4 columns.
- Stsimd_float2x3@abstract A matrix with 3 rows and 2 columns.
- Stsimd_float3x3@abstract A matrix with 3 rows and 3 columns.
- Stsimd_float4x3@abstract A matrix with 3 rows and 4 columns.
- Stsimd_float2x4@abstract A matrix with 4 rows and 2 columns.
- Stsimd_float3x4@abstract A matrix with 4 rows and 3 columns.
- Stsimd_float4x4@abstract A matrix with 4 rows and 4 columns.
Double-Precision Matrices 9
Fixed-size matrix structures of 64-bit double-precision floating-point values for high-accuracy linear algebra.
- Stsimd_double2x2@abstract A matrix with 2 rows and 2 columns.
- Stsimd_double3x2@abstract A matrix with 2 rows and 3 columns.
- Stsimd_double4x2@abstract A matrix with 2 rows and 4 columns.
- Stsimd_double2x3@abstract A matrix with 3 rows and 2 columns.
- Stsimd_double3x3@abstract A matrix with 3 rows and 3 columns.
- Stsimd_double4x3@abstract A matrix with 3 rows and 4 columns.
- Stsimd_double2x4@abstract A matrix with 4 rows and 2 columns.
- Stsimd_double3x4@abstract A matrix with 4 rows and 3 columns.
- Stsimd_double4x4@abstract A matrix with 4 rows and 4 columns.
Quaternions 3
Types that represent rotations in three-dimensional space across half, single, and double precision.
- Stsimd_quath@abstract A half-precision quaternion.
- Stsimd_quatf@abstract A single-precision quaternion.
- Stsimd_quatd@abstract A double-precision quaternion.
Type Aliases 273
- Tysimd_bool@abstract A boolean scalar.
- Ty__SIMD_BOOLEAN_TYPE__@abstract A boolean scalar.
- Tymatrix_half2x2
- Tymatrix_half3x2
- Tymatrix_half4x2
- Tymatrix_half2x3
- Tymatrix_half3x3
- Tymatrix_half4x3
- Tymatrix_half2x4
- Tymatrix_half3x4
- Tymatrix_half4x4
- Tymatrix_float2x2
- Tymatrix_float3x2
- Tymatrix_float4x2
- Tymatrix_float2x3
- Tymatrix_float3x3
Show 257 more
- Tymatrix_float4x3
- Tymatrix_float2x4
- Tymatrix_float3x4
- Tymatrix_float4x4
- Tymatrix_double2x2
- Tymatrix_double3x2
- Tymatrix_double4x2
- Tymatrix_double2x3
- Tymatrix_double3x3
- Tymatrix_double4x3
- Tymatrix_double2x4
- Tymatrix_double3x4
- Tymatrix_double4x4
- Tysimd_packed_char2@abstract A vector of two 8-bit signed (twos-complement) integers with
- Tysimd_packed_char4@abstract A vector of four 8-bit signed (twos-complement) integers with
- Tysimd_packed_char8@abstract A vector of eight 8-bit signed (twos-complement) integers with
- Tysimd_packed_char16@abstract A vector of sixteen 8-bit signed (twos-complement) integers
- Tysimd_packed_char32@abstract A vector of thirty-two 8-bit signed (twos-complement) integers
- Tysimd_packed_char64@abstract A vector of sixty-four 8-bit signed (twos-complement) integers
- Tysimd_packed_uchar2@abstract A vector of two 8-bit unsigned integers with relaxed
- Tysimd_packed_uchar4@abstract A vector of four 8-bit unsigned integers with relaxed
- Tysimd_packed_uchar8@abstract A vector of eight 8-bit unsigned integers with relaxed
- Tysimd_packed_uchar16@abstract A vector of sixteen 8-bit unsigned integers with relaxed
- Tysimd_packed_uchar32@abstract A vector of thirty-two 8-bit unsigned integers with relaxed
- Tysimd_packed_uchar64@abstract A vector of sixty-four 8-bit unsigned integers with relaxed
- Tysimd_packed_short2@abstract A vector of two 16-bit signed (twos-complement) integers with
- Tysimd_packed_short4@abstract A vector of four 16-bit signed (twos-complement) integers with
- Tysimd_packed_short8@abstract A vector of eight 16-bit signed (twos-complement) integers
- Tysimd_packed_short16@abstract A vector of sixteen 16-bit signed (twos-complement) integers
- Tysimd_packed_short32@abstract A vector of thirty-two 16-bit signed (twos-complement)
- Tysimd_packed_ushort2@abstract A vector of two 16-bit unsigned integers with relaxed
- Tysimd_packed_ushort4@abstract A vector of four 16-bit unsigned integers with relaxed
- Tysimd_packed_ushort8@abstract A vector of eight 16-bit unsigned integers with relaxed
- Tysimd_packed_ushort16@abstract A vector of sixteen 16-bit unsigned integers with relaxed
- Tysimd_packed_ushort32@abstract A vector of thirty-two 16-bit unsigned integers with relaxed
- Tysimd_packed_half2@abstract A vector of two 16-bit floating-point numbers with relaxed
- Tysimd_packed_half4@abstract A vector of four 16-bit floating-point numbers with relaxed
- Tysimd_packed_half8@abstract A vector of eight 16-bit floating-point numbers with relaxed
- Tysimd_packed_half16@abstract A vector of sixteen 16-bit floating-point numbers with relaxed
- Tysimd_packed_half32@abstract A vector of thirty-two 16-bit floating-point numbers with
- Tysimd_packed_int2@abstract A vector of two 32-bit signed (twos-complement) integers with
- Tysimd_packed_int4@abstract A vector of four 32-bit signed (twos-complement) integers with
- Tysimd_packed_int8@abstract A vector of eight 32-bit signed (twos-complement) integers
- Tysimd_packed_int16@abstract A vector of sixteen 32-bit signed (twos-complement) integers
- Tysimd_packed_uint2@abstract A vector of two 32-bit unsigned integers with relaxed
- Tysimd_packed_uint4@abstract A vector of four 32-bit unsigned integers with relaxed
- Tysimd_packed_uint8@abstract A vector of eight 32-bit unsigned integers with relaxed
- Tysimd_packed_uint16@abstract A vector of sixteen 32-bit unsigned integers with relaxed
- Tysimd_packed_float2@abstract A vector of two 32-bit floating-point numbers with relaxed
- Tysimd_packed_float4@abstract A vector of four 32-bit floating-point numbers with relaxed
- Tysimd_packed_float8@abstract A vector of eight 32-bit floating-point numbers with relaxed
- Tysimd_packed_float16@abstract A vector of sixteen 32-bit floating-point numbers with relaxed
- Tysimd_packed_long2
- Tysimd_packed_long4
- Tysimd_packed_long8
- Tysimd_packed_ulong2
- Tysimd_packed_ulong4
- Tysimd_packed_ulong8
- Tysimd_packed_double2
- Tysimd_packed_double4
- Tysimd_packed_double8
- Typacked_char2! @abstract A vector of two 8-bit signed (twos-complement) integers with
- Typacked_char4@abstract A vector of four 8-bit signed (twos-complement) integers with
- Typacked_char8@abstract A vector of eight 8-bit signed (twos-complement) integers with
- Typacked_char16@abstract A vector of sixteen 8-bit signed (twos-complement) integers
- Typacked_char32@abstract A vector of thirty-two 8-bit signed (twos-complement) integers
- Typacked_char64@abstract A vector of sixty-four 8-bit signed (twos-complement) integers
- Typacked_uchar2@abstract A vector of two 8-bit unsigned integers with relaxed
- Typacked_uchar4@abstract A vector of four 8-bit unsigned integers with relaxed
- Typacked_uchar8@abstract A vector of eight 8-bit unsigned integers with relaxed
- Typacked_uchar16@abstract A vector of sixteen 8-bit unsigned integers with relaxed
- Typacked_uchar32@abstract A vector of thirty-two 8-bit unsigned integers with relaxed
- Typacked_uchar64@abstract A vector of sixty-four 8-bit unsigned integers with relaxed
- Typacked_short2@abstract A vector of two 16-bit signed (twos-complement) integers with
- Typacked_short4@abstract A vector of four 16-bit signed (twos-complement) integers with
- Typacked_short8@abstract A vector of eight 16-bit signed (twos-complement) integers
- Typacked_short16@abstract A vector of sixteen 16-bit signed (twos-complement) integers
- Typacked_short32@abstract A vector of thirty-two 16-bit signed (twos-complement)
- Typacked_ushort2@abstract A vector of two 16-bit unsigned integers with relaxed
- Typacked_ushort4@abstract A vector of four 16-bit unsigned integers with relaxed
- Typacked_ushort8@abstract A vector of eight 16-bit unsigned integers with relaxed
- Typacked_ushort16@abstract A vector of sixteen 16-bit unsigned integers with relaxed
- Typacked_ushort32@abstract A vector of thirty-two 16-bit unsigned integers with relaxed
- Typacked_int2@abstract A vector of two 32-bit signed (twos-complement) integers with
- Typacked_int4@abstract A vector of four 32-bit signed (twos-complement) integers with
- Typacked_int8@abstract A vector of eight 32-bit signed (twos-complement) integers
- Typacked_int16@abstract A vector of sixteen 32-bit signed (twos-complement) integers
- Typacked_uint2@abstract A vector of two 32-bit unsigned integers with relaxed
- Typacked_uint4@abstract A vector of four 32-bit unsigned integers with relaxed
- Typacked_uint8@abstract A vector of eight 32-bit unsigned integers with relaxed
- Typacked_uint16@abstract A vector of sixteen 32-bit unsigned integers with relaxed
- Typacked_float2@abstract A vector of two 32-bit floating-point numbers with relaxed
- Typacked_float4@abstract A vector of four 32-bit floating-point numbers with relaxed
- Typacked_float8@abstract A vector of eight 32-bit floating-point numbers with relaxed
- Typacked_float16@abstract A vector of sixteen 32-bit floating-point numbers with relaxed
- Typacked_long2@abstract A vector of two 64-bit signed (twos-complement) integers with
- Typacked_long4@abstract A vector of four 64-bit signed (twos-complement) integers with
- Typacked_long8@abstract A vector of eight 64-bit signed (twos-complement) integers
- Typacked_ulong2@abstract A vector of two 64-bit unsigned integers with relaxed
- Typacked_ulong4@abstract A vector of four 64-bit unsigned integers with relaxed
- Typacked_ulong8@abstract A vector of eight 64-bit unsigned integers with relaxed
- Typacked_double2@abstract A vector of two 64-bit floating-point numbers with relaxed
- Typacked_double4@abstract A vector of four 64-bit floating-point numbers with relaxed
- Typacked_double8@abstract A vector of eight 64-bit floating-point numbers with relaxed
- Tysimd_char1@abstract A scalar 8-bit signed (twos-complement) integer.
- Tysimd_char2@abstract A vector of two 8-bit signed (twos-complement) integers.
- Tysimd_char3@abstract A vector of three 8-bit signed (twos-complement) integers.
- Tysimd_char4@abstract A vector of four 8-bit signed (twos-complement) integers.
- Tysimd_char8@abstract A vector of eight 8-bit signed (twos-complement) integers.
- Tysimd_char16@abstract A vector of sixteen 8-bit signed (twos-complement) integers.
- Tysimd_char32@abstract A vector of thirty-two 8-bit signed (twos-complement)
- Tysimd_char64@abstract A vector of sixty-four 8-bit signed (twos-complement)
- Tysimd_uchar1@abstract A scalar 8-bit unsigned integer.
- Tysimd_uchar2@abstract A vector of two 8-bit unsigned integers.
- Tysimd_uchar3@abstract A vector of three 8-bit unsigned integers.
- Tysimd_uchar4@abstract A vector of four 8-bit unsigned integers.
- Tysimd_uchar8@abstract A vector of eight 8-bit unsigned integers.
- Tysimd_uchar16@abstract A vector of sixteen 8-bit unsigned integers.
- Tysimd_uchar32@abstract A vector of thirty-two 8-bit unsigned integers.
- Tysimd_uchar64@abstract A vector of sixty-four 8-bit unsigned integers.
- Tysimd_short1@abstract A scalar 16-bit signed (twos-complement) integer.
- Tysimd_short2@abstract A vector of two 16-bit signed (twos-complement) integers.
- Tysimd_short3@abstract A vector of three 16-bit signed (twos-complement) integers.
- Tysimd_short4@abstract A vector of four 16-bit signed (twos-complement) integers.
- Tysimd_short8@abstract A vector of eight 16-bit signed (twos-complement) integers.
- Tysimd_short16@abstract A vector of sixteen 16-bit signed (twos-complement) integers.
- Tysimd_short32@abstract A vector of thirty-two 16-bit signed (twos-complement)
- Tysimd_ushort1@abstract A scalar 16-bit unsigned integer.
- Tysimd_ushort2@abstract A vector of two 16-bit unsigned integers.
- Tysimd_ushort3@abstract A vector of three 16-bit unsigned integers.
- Tysimd_ushort4@abstract A vector of four 16-bit unsigned integers.
- Tysimd_ushort8@abstract A vector of eight 16-bit unsigned integers.
- Tysimd_ushort16@abstract A vector of sixteen 16-bit unsigned integers.
- Tysimd_ushort32@abstract A vector of thirty-two 16-bit unsigned integers.
- Tysimd_half1@abstract A scalar 16-bit floating-point number.
- Tysimd_half2@abstract A vector of two 16-bit floating-point numbers.
- Tysimd_half3@abstract A vector of three 16-bit floating-point numbers.
- Tysimd_half4@abstract A vector of four 16-bit floating-point numbers.
- Tysimd_half8@abstract A vector of eight 16-bit floating-point numbers.
- Tysimd_half16@abstract A vector of sixteen 16-bit floating-point numbers.
- Tysimd_half32@abstract A vector of thirty-two 16-bit floating-point numbers.
- Tysimd_int1@abstract A scalar 32-bit signed (twos-complement) integer.
- Tysimd_int2@abstract A vector of two 32-bit signed (twos-complement) integers.
- Tysimd_int3@abstract A vector of three 32-bit signed (twos-complement) integers.
- Tysimd_int4@abstract A vector of four 32-bit signed (twos-complement) integers.
- Tysimd_int8@abstract A vector of eight 32-bit signed (twos-complement) integers.
- Tysimd_int16@abstract A vector of sixteen 32-bit signed (twos-complement) integers.
- Tysimd_uint1@abstract A scalar 32-bit unsigned integer.
- Tysimd_uint2@abstract A vector of two 32-bit unsigned integers.
- Tysimd_uint3@abstract A vector of three 32-bit unsigned integers.
- Tysimd_uint4@abstract A vector of four 32-bit unsigned integers.
- Tysimd_uint8@abstract A vector of eight 32-bit unsigned integers.
- Tysimd_uint16@abstract A vector of sixteen 32-bit unsigned integers.
- Tysimd_float1@abstract A scalar 32-bit floating-point number.
- Tysimd_float2@abstract A vector of two 32-bit floating-point numbers.
- Tysimd_float3@abstract A vector of three 32-bit floating-point numbers.
- Tysimd_float4@abstract A vector of four 32-bit floating-point numbers.
- Tysimd_float8@abstract A vector of eight 32-bit floating-point numbers.
- Tysimd_float16@abstract A vector of sixteen 32-bit floating-point numbers.
- Tysimd_long1
- Tysimd_long2@abstract A vector of two 64-bit signed (twos-complement) integers.
- Tysimd_long3@abstract A vector of three 64-bit signed (twos-complement) integers.
- Tysimd_long4@abstract A vector of four 64-bit signed (twos-complement) integers.
- Tysimd_long8@abstract A vector of eight 64-bit signed (twos-complement) integers.
- Tysimd_ulong1
- Tysimd_ulong2@abstract A vector of two 64-bit unsigned integers.
- Tysimd_ulong3@abstract A vector of three 64-bit unsigned integers.
- Tysimd_ulong4@abstract A vector of four 64-bit unsigned integers.
- Tysimd_ulong8@abstract A vector of eight 64-bit unsigned integers.
- Tysimd_double1@abstract A scalar 64-bit floating-point number.
- Tysimd_double2@abstract A vector of two 64-bit floating-point numbers.
- Tysimd_double3@abstract A vector of three 64-bit floating-point numbers.
- Tysimd_double4@abstract A vector of four 64-bit floating-point numbers.
- Tysimd_double8@abstract A vector of eight 64-bit floating-point numbers.
- Tyvector_char2@abstract A vector of two 8-bit signed (twos-complement) integers.
- Tyvector_char3@abstract A vector of three 8-bit signed (twos-complement) integers.
- Tyvector_char4@abstract A vector of four 8-bit signed (twos-complement) integers.
- Tyvector_char8@abstract A vector of eight 8-bit signed (twos-complement) integers.
- Tyvector_char16@abstract A vector of sixteen 8-bit signed (twos-complement) integers.
- Tyvector_char32@abstract A vector of thirty-two 8-bit signed (twos-complement)
- Tyvector_uchar2@abstract A vector of two 8-bit unsigned integers.
- Tyvector_uchar3@abstract A vector of three 8-bit unsigned integers.
- Tyvector_uchar4@abstract A vector of four 8-bit unsigned integers.
- Tyvector_uchar8@abstract A vector of eight 8-bit unsigned integers.
- Tyvector_uchar16@abstract A vector of sixteen 8-bit unsigned integers.
- Tyvector_uchar32@abstract A vector of thirty-two 8-bit unsigned integers.
- Tyvector_short2@abstract A vector of two 16-bit signed (twos-complement) integers.
- Tyvector_short3@abstract A vector of three 16-bit signed (twos-complement) integers.
- Tyvector_short4@abstract A vector of four 16-bit signed (twos-complement) integers.
- Tyvector_short8@abstract A vector of eight 16-bit signed (twos-complement) integers.
- Tyvector_short16@abstract A vector of sixteen 16-bit signed (twos-complement) integers.
- Tyvector_short32@abstract A vector of thirty-two 16-bit signed (twos-complement)
- Tyvector_ushort2@abstract A vector of two 16-bit unsigned integers.
- Tyvector_ushort3@abstract A vector of three 16-bit unsigned integers.
- Tyvector_ushort4@abstract A vector of four 16-bit unsigned integers.
- Tyvector_ushort8@abstract A vector of eight 16-bit unsigned integers.
- Tyvector_ushort16@abstract A vector of sixteen 16-bit unsigned integers.
- Tyvector_ushort32@abstract A vector of thirty-two 16-bit unsigned integers.
- Tyvector_int2@abstract A vector of two 32-bit signed (twos-complement) integers.
- Tyvector_int3@abstract A vector of three 32-bit signed (twos-complement) integers.
- Tyvector_int4@abstract A vector of four 32-bit signed (twos-complement) integers.
- Tyvector_int8@abstract A vector of eight 32-bit signed (twos-complement) integers.
- Tyvector_int16@abstract A vector of sixteen 32-bit signed (twos-complement) integers.
- Tyvector_uint2@abstract A vector of two 32-bit unsigned integers.
- Tyvector_uint3@abstract A vector of three 32-bit unsigned integers.
- Tyvector_uint4@abstract A vector of four 32-bit unsigned integers.
- Tyvector_uint8@abstract A vector of eight 32-bit unsigned integers.
- Tyvector_uint16@abstract A vector of sixteen 32-bit unsigned integers.
- Tyvector_float2@abstract A vector of two 32-bit floating-point numbers.
- Tyvector_float3@abstract A vector of three 32-bit floating-point numbers.
- Tyvector_float4@abstract A vector of four 32-bit floating-point numbers.
- Tyvector_float8@abstract A vector of eight 32-bit floating-point numbers.
- Tyvector_float16@abstract A vector of sixteen 32-bit floating-point numbers.
- Tyvector_long1@abstract A scalar 64-bit signed (twos-complement) integer.
- Tyvector_long2@abstract A vector of two 64-bit signed (twos-complement) integers.
- Tyvector_long3@abstract A vector of three 64-bit signed (twos-complement) integers.
- Tyvector_long4@abstract A vector of four 64-bit signed (twos-complement) integers.
- Tyvector_long8@abstract A vector of eight 64-bit signed (twos-complement) integers.
- Tyvector_ulong1@abstract A scalar 64-bit unsigned integer.
- Tyvector_ulong2@abstract A vector of two 64-bit unsigned integers.
- Tyvector_ulong3@abstract A vector of three 64-bit unsigned integers.
- Tyvector_ulong4@abstract A vector of four 64-bit unsigned integers.
- Tyvector_ulong8@abstract A vector of eight 64-bit unsigned integers.
- Tyvector_double2@abstract A vector of two 64-bit floating-point numbers.
- Tyvector_double3@abstract A vector of three 64-bit floating-point numbers.
- Tyvector_double4@abstract A vector of four 64-bit floating-point numbers.
- Tyvector_double8@abstract A vector of eight 64-bit floating-point numbers.
- Tydouble2
- Tydouble2x2
- Tydouble2x3
- Tydouble2x4
- Tydouble3
- Tydouble3x2
- Tydouble3x3
- Tydouble3x4
- Tydouble4
- Tydouble4x2
- Tydouble4x3
- Tydouble4x4
- Tyfloat2
- Tyfloat2x2
- Tyfloat2x3
- Tyfloat2x4
- Tyfloat3
- Tyfloat3x2
- Tyfloat3x3
- Tyfloat3x4
- Tyfloat4
- Tyfloat4x2
- Tyfloat4x3
- Tyfloat4x4
- Tyint2
- Tyint3
- Tyint4
- Tyuint2
- Tyuint3
- Tyuint4