Type Alias

simd_double4

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

Declaration

typealias simd_double4 = SIMD4<Double>

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

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.

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.

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

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.

See Also

Vectors: Double-Precision Values

typealias simd_double2

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

typealias simd_double3

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