Type Alias

simd_double4

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

Topics

Vector Creation Functions

`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, 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(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.

Common Functions

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

Reduce Functions

`func simd_reduce_add(simd_double4) -> Double`

Returns the sum of all elements in a vector.

Interpolation Functions

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

Extrema Functions

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

Reciprocal and Reciprocal Square Root Functions

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

Geometry Functions

`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_distance_squared(simd_double4, simd_double4) -> Double`

Returns the square of the distance between two vectors.

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

Math Functions

`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`
`typealias simd_double3`