A vector of four 64-bit double-precision values.

SDKs

- iOS 11.0+
- macOS 10.13+
- Mac Catalyst 13.0+
- tvOS 11.0+
- watchOS 4.0+

Framework

- simd

Type Alias# simd_double4

A vector of four 64-bit double-precision values.

SDKs

- iOS 11.0+
- macOS 10.13+
- Mac Catalyst 13.0+
- tvOS 11.0+
- watchOS 4.0+

Framework

- simd

`func simd`_make_double4 (simd_double8) -> simd_double4

Returns a new vector by truncating the specified vector.

`func simd`_make_double4 (Double) -> simd_double4

Returns a new vector with the first element set to a scalar value, and other elements set to zero.

`func simd`_make_double4 (simd_double2) -> simd_double4

Returns a new vector with the first and second elements from a two-element vector, and other elements set to zero.

`func simd`_make_double4 (simd_double3) -> simd_double4

Returns a new vector with the first, second, and third elements from a three-element vector, and other elements set to zero.

`func simd`_make_double4 (simd_double4) -> simd_double4

Returns a new vector from a four-element vector.

`func simd`_make_double4 (Double, Double, Double, Double) -> simd_double4

Returns a new vector from 4 scalar values.

`func simd`_make_double4 (Double, Double, simd_double2) -> simd_double4

Returns a new vector from 2 scalar values and a two-element vector.

`func simd`_make_double4 (Double, simd_double2, Double) -> simd_double4

Returns a new vector from 2 scalar values and a two-element vector.

`func simd`_make_double4 (simd_double2, Double, Double) -> simd_double4

Returns a new vector from 2 scalar values and a two-element vector.

`func simd`_make_double4 (simd_double2, simd_double2) -> simd_double4

Returns a new vector from 2 two-element vectors.

`func simd`_make_double4 (Double, simd_double3) -> simd_double4

Returns a new vector from a scalar value and a three-element vector.

`func simd`_make_double4 (simd_double3, Double) -> simd_double4

Returns a new vector from a scalar value and a three-element vector.

`func simd`_make_double4_undef (Double) -> simd_double4

Returns a new vector with the first element set to a scalar value, and other elements undefined.

`func simd`_make_double4_undef (simd_double2) -> simd_double4

Returns a new vector with the first and second elements from a two-element vector, and other elements undefined.

`func simd`_make_double4_undef (simd_double3) -> simd_double4

Returns a new vector with the first, second, and third elements from a three-element vector, and other elements undefined.

`func simd`_abs (simd_double4) -> simd_double4

Returns the absolute value of each element in a vector.

`func simd`_clamp (simd_double4, simd_double4, simd_double4) -> simd_double4

Returns each element in a vector clamped to a specified range.

`func simd`_sign (simd_double4) -> simd_double4

Returns the sign of each element in a vector.

`func simd`_fract (simd_double4) -> simd_double4

Returns the fractional part of each element in a vector.

`func simd`_step (simd_double4, simd_double4) -> simd_double4

Returns zero for each element in a vector less than a specified edge; one otherwise.

`func simd`_equal (simd_double4, simd_double4) -> simd_bool

Returns true if all elements of a vector are equal; false otherwise.

`func simd`_reduce_add (simd_double4) -> Double

Returns the sum of all elements in a vector.

`func simd`_reduce_max (simd_double4) -> Double

Returns the maximum value in a vector.

`func simd`_reduce_min (simd_double4) -> Double

Returns the minimum value in a vector.

`func simd`_mix (simd_double4, simd_double4, simd_double4) -> simd_double4

Returns an elementwise linearly interpolated value between two vectors.

`func simd`_smoothstep (simd_double4, simd_double4, simd_double4) -> simd_double4

Returns an elementwise smoothly interpolated value between two vectors.

`func simd`_max (simd_double4, simd_double4) -> simd_double4

Returns the maximum value of each element in a vector.

`func simd`_min (simd_double4, simd_double4) -> simd_double4

Returns the minimum value of each element in a vector.

`func simd`_recip (simd_double4) -> simd_double4

Returns the reciprocal of each element in a vector.

`func simd`_rsqrt (simd_double4) -> simd_double4

Returns the reciprocal square root of each element in a vector.

`func simd`_precise_recip (simd_double4) -> simd_double4

Returns the precise reciprocal of each element in a vector.

`func simd`_precise_rsqrt (simd_double4) -> simd_double4

Returns the precise reciprocal square root of each element in a vector.

`func simd`_fast_recip (simd_double4) -> simd_double4

Returns the fast reciprocal of each element in a vector.

`func simd`_fast_rsqrt (simd_double4) -> simd_double4

Returns the fast reciprocal square root of each element in a vector.

`func simd`_dot (simd_double4, simd_double4) -> Double

Returns the dot product of two vectors.

`func simd`_normalize (simd_double4) -> simd_double4

Returns a vector pointing in the same direction of the supplied vector with a length of 1.

`func simd`_project (simd_double4, simd_double4) -> simd_double4

Returns the first vector projected onto the second vector.

`func simd`_precise_normalize (simd_double4) -> simd_double4

Returns the precise normalized vector.

`func simd`_precise_project (simd_double4, simd_double4) -> simd_double4

Returns the precise projected vector.

`func simd`_fast_normalize (simd_double4) -> simd_double4

Returns the fast normalized vector.

`func simd`_fast_project (simd_double4, simd_double4) -> simd_double4

Returns the fast projected vector.

`func simd`_distance_squared (simd_double4, simd_double4) -> Double

Returns the square of the distance between two vectors.

`func simd`_length (simd_double4) -> Double

Returns the length of a vector.

`func simd`_length_squared (simd_double4) -> Double

Returns the square of the length of a vector.

`func simd`_norm_inf (simd_double4) -> Double

Returns the *inf-norm* (the maximum absolute value) of a vector.

`func simd`_norm_one (simd_double4) -> Double

Returns the *one-norm* (the sum of absolute values) of a vector.

`func simd`_refract (simd_double4, simd_double4, Double) -> simd_double4

Returns the refraction direction of an incident vector, a unit normal vector, and an index of refraction eta.

`func simd`_reflect (simd_double4, simd_double4) -> simd_double4

Returns the reflection direction of an incident vector and a unit normal vector.

`func ceil(SIMD4<Double>) -> SIMD4<Double>`

Returns the ceiling of each element in a vector.

`func floor(SIMD4<Double>) -> SIMD4<Double>`

Returns the floor of each element in a vector.

`func simd`_muladd (simd_double4, simd_double4, simd_double4) -> simd_double4

Returns the multiply-add result for corresponding elements in three vectors.

`func trunc(SIMD4<Double>) -> SIMD4<Double>`

Returns each element in a vector rounded toward zero to the nearest integer.

`typealias simd`_double2

A vector of two 64-bit double-precision values.

`typealias simd`_double3

A vector of three 64-bit double-precision values.