Type Alias

simd_double3

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

Declaration

typealias simd_double3 = SIMD3<Double>

Topics

Vector Creation Functions

func simd_make_double3(simd_double8) -> simd_double3

Returns a new vector by truncating the specified vector.

func simd_make_double3(Double) -> simd_double3

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

func simd_make_double3(simd_double2) -> simd_double3

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

func simd_make_double3(simd_double3) -> simd_double3

Returns a new vector from a three-element vector.

func simd_make_double3(simd_double4) -> simd_double3

Returns a new vector from the first, second, and third elements of a four-element vector.

func simd_make_double3(Double, Double, Double) -> simd_double3

Returns a new vector from 3 scalar values.

func simd_make_double3(Double, simd_double2) -> simd_double3

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

func simd_make_double3(simd_double2, Double) -> simd_double3

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

func simd_make_double3_undef(Double) -> simd_double3

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

func simd_make_double3_undef(simd_double2) -> simd_double3

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

Common Functions

func simd_abs(simd_double3) -> simd_double3

Returns the absolute value of each element in a vector.

func simd_clamp(simd_double3, simd_double3, simd_double3) -> simd_double3

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

func simd_sign(simd_double3) -> simd_double3

Returns the sign of each element in a vector.

func simd_fract(simd_double3) -> simd_double3

Returns the fractional part of each element in a vector.

func simd_step(simd_double3, simd_double3) -> simd_double3

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

func simd_equal(simd_double3, simd_double3) -> simd_bool

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

Reduce Functions

func simd_reduce_add(simd_double3) -> Double

Returns the sum of all elements in a vector.

func simd_reduce_max(simd_double3) -> Double

Returns the maximum value in a vector.

func simd_reduce_min(simd_double3) -> Double

Returns the miniumum value in a vector.

Interpolation Functions

func simd_mix(simd_double3, simd_double3, simd_double3) -> simd_double3

Returns an elementwise linearly interpolated value between two vectors.

func simd_smoothstep(simd_double3, simd_double3, simd_double3) -> simd_double3

Returns an elementwise smoothly interpolated value between two vectors.

Extrema Functions

func simd_max(simd_double3, simd_double3) -> simd_double3

Returns the maximum value of each element in a vector.

func simd_min(simd_double3, simd_double3) -> simd_double3

Returns the minimum value of each element in a vector.

Reciprocal and Reciprocal Square Root Functions

func simd_recip(simd_double3) -> simd_double3

Returns the reciprocal of each element in a vector.

func simd_rsqrt(simd_double3) -> simd_double3

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

func simd_precise_recip(simd_double3) -> simd_double3

Returns the precise reciprocal of each element in a vector.

func simd_precise_rsqrt(simd_double3) -> simd_double3

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

func simd_fast_recip(simd_double3) -> simd_double3

Returns the fast reciprocal of each element in a vector.

func simd_fast_rsqrt(simd_double3) -> simd_double3

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

Geometry Functions

func simd_cross(simd_double3, simd_double3) -> simd_double3

Returns the cross product of two vectors.

func simd_dot(simd_double3, simd_double3) -> Double

Returns the dot product of two vectors.

func simd_normalize(simd_double3) -> simd_double3

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

func simd_orient(simd_double3, simd_double3, simd_double3) -> Double

Tests the orientation of the three supplied vectors.

func simd_project(simd_double3, simd_double3) -> simd_double3

Returns the first vector projected onto the second vector.

func simd_precise_normalize(simd_double3) -> simd_double3

Returns the precise normalized vector.

func simd_distance_squared(simd_double3, simd_double3) -> Double

Returns the square of the distance between two vectors.

func simd_length(simd_double3) -> Double

Returns the length of a vector.

func simd_length_squared(simd_double3) -> Double

Returns the square of the length of a vector.

func simd_norm_inf(simd_double3) -> Double

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

func simd_norm_one(simd_double3) -> Double

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

func simd_refract(simd_double3, simd_double3, Double) -> simd_double3

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

func simd_reflect(simd_double3, simd_double3) -> simd_double3

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

Math Functions

func ceil(SIMD3<Double>) -> SIMD3<Double>

Returns the ceiling of each element in a vector.

func floor(SIMD3<Double>) -> SIMD3<Double>

Returns the floor of each element in a vector.

func simd_muladd(simd_double3, simd_double3, simd_double3) -> simd_double3

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

func trunc(SIMD3<Double>) -> SIMD3<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_double4

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