SIMD
A SIMD vector of a fixed number of elements.
protocol SIMD<Scalar> : CustomStringConvertible, Decodable, Encodable, ExpressibleByArrayLiteral, Hashable, SIMDStorage
A SIMD vector of a fixed number of elements.
protocol SIMD<Scalar> : CustomStringConvertible, Decodable, Encodable, ExpressibleByArrayLiteral, Hashable, SIMDStorage
associatedtype MaskStorage : SIMD
The mask type resulting from pointwise comparisons of this vector type.
init<S>(S)
Creates a vector from the given sequence.
init(repeating: Self.Scalar)
A vector with the specified value in all lanes.
static var one: Self
A vector with one in all lanes.
static var one: Self
A vector with one in all lanes.
static var zero: Self
A vector with zero in all lanes.
static var zero: Self
A vector with zero in all lanes.
var indices: Range<Int>
The valid indices for subscripting the vector.
var leadingZeroBitCount: Self
var nonzeroBitCount: Self
var trailingZeroBitCount: Self
static func random(in: Range<Self.Scalar>) -> Self
Returns a vector with random values from within the specified range in all lanes.
static func random(in: ClosedRange<Self.Scalar>) -> Self
Returns a vector with random values from within the specified range in all lanes.
static func random(in: Range<Self.Scalar>) -> Self
Returns a vector with random values from within the specified range in all lanes.
static func random(in: ClosedRange<Self.Scalar>) -> Self
Returns a vector with random values from within the specified range in all lanes.
static func random<T>(in: ClosedRange<Self.Scalar>, using: inout T) -> Self
Returns a vector with random values from within the specified range in all lanes, using the given generator as a source for randomness.
static func random<T>(in: Range<Self.Scalar>, using: inout T) -> Self
Returns a vector with random values from within the specified range in all lanes, using the given generator as a source for randomness.
static func random<T>(in: ClosedRange<Self.Scalar>, using: inout T) -> Self
Returns a vector with random values from within the specified range in all lanes, using the given generator as a source for randomness.
static func random<T>(in: Range<Self.Scalar>, using: inout T) -> Self
Returns a vector with random values from within the specified range in all lanes, using the given generator as a source for randomness.
func addProduct(Self, Self)
func addProduct(Self.Scalar, Self)
func addProduct(Self, Self.Scalar)
func addingProduct(Self, Self) -> Self
func addingProduct(Self.Scalar, Self) -> Self
func addingProduct(Self, Self.Scalar) -> Self
func clamp(lowerBound: Self, upperBound: Self)
func clamp(lowerBound: Self, upperBound: Self)
func clamped(lowerBound: Self, upperBound: Self) -> Self
func clamped(lowerBound: Self, upperBound: Self) -> Self
func formSquareRoot()
func max() -> Self.Scalar
The greatest element in the vector.
func max() -> Self.Scalar
The greatest scalar in the vector.
func min() -> Self.Scalar
The least element in the vector.
func min() -> Self.Scalar
The least scalar in the vector.
func replace(with: Self.Scalar, where: SIMDMask<Self.MaskStorage>)
Replaces elements of this vector with other
in the lanes where mask
is true
.
func replace(with: Self, where: SIMDMask<Self.MaskStorage>)
Replaces elements of this vector with elements of other
in the lanes where mask
is true
.
func replacing(with: Self.Scalar, where: SIMDMask<Self.MaskStorage>) -> Self
Returns a copy of this vector, with elements other
in the lanes where mask
is true
.
func replacing(with: Self, where: SIMDMask<Self.MaskStorage>) -> Self
Returns a copy of this vector, with elements replaced by elements of other
in the lanes where mask
is true
.
func round(FloatingPointRoundingRule)
func rounded(FloatingPointRoundingRule) -> Self
A vector formed by rounding each lane of the source vector to an integral value according to the specified rounding rule
.
func squareRoot() -> Self
func sum() -> Self.Scalar
The sum of the scalars in the vector.
func wrappedSum() -> Self.Scalar
Returns the sum of the scalars in the vector, computed with wrapping addition.
static func % (Self, Self) -> Self
static func % (Self, Self.Scalar) -> Self
static func % (Self.Scalar, Self) -> Self
static func %= (inout Self, Self.Scalar)
static func %= (inout Self, Self)
static func & (Self, Self.Scalar) -> Self
static func & (Self, Self) -> Self
static func & (Self.Scalar, Self) -> Self
static func &* (Self, Self) -> Self
static func &* (Self.Scalar, Self) -> Self
static func &* (Self, Self.Scalar) -> Self
static func &*= (inout Self, Self.Scalar)
static func &*= (inout Self, Self)
static func &+ (Self.Scalar, Self) -> Self
static func &+ (Self, Self.Scalar) -> Self
static func &+ (Self, Self) -> Self
static func &+= (inout Self, Self)
static func &+= (inout Self, Self.Scalar)
static func &- (Self, Self) -> Self
static func &- (Self.Scalar, Self) -> Self
static func &- (Self, Self.Scalar) -> Self
static func &-= (inout Self, Self.Scalar)
static func &-= (inout Self, Self)
static func &<< (Self.Scalar, Self) -> Self
static func &<< (Self, Self.Scalar) -> Self
static func &<< (Self, Self) -> Self
static func &<<= (inout Self, Self)
static func &<<= (inout Self, Self.Scalar)
static func &= (inout Self, Self)
static func &= (inout Self, Self.Scalar)
static func &>> (Self, Self) -> Self
static func &>> (Self.Scalar, Self) -> Self
static func &>> (Self, Self.Scalar) -> Self
static func &>>= (inout Self, Self)
static func &>>= (inout Self, Self.Scalar)
static func * (Self, Self) -> Self
static func * (Self, Self.Scalar) -> Self
static func * (Self.Scalar, Self) -> Self
static func *= (inout Self, Self.Scalar)
static func *= (inout Self, Self)
static func + (Self.Scalar, Self) -> Self
static func + (Self, Self) -> Self
static func + (Self, Self.Scalar) -> Self
static func += (inout Self, Self)
static func += (inout Self, Self)
static func += (inout Self, Self.Scalar)
static func - (Self) -> Self
static func - (Self, Self.Scalar) -> Self
static func - (Self.Scalar, Self) -> Self
static func - (Self, Self) -> Self
static func -= (inout Self, Self.Scalar)
static func -= (inout Self, Self)
static func -= (inout Self, Self)
static func .!= (Self.Scalar, Self) -> SIMDMask<Self.MaskStorage>
Returns a vector mask with the result of a pointwise inequality comparison.
static func .!= (Self, Self.Scalar) -> SIMDMask<Self.MaskStorage>
Returns a vector mask with the result of a pointwise inequality comparison.
static func .!= (Self, Self) -> SIMDMask<Self.MaskStorage>
A vector mask with the result of a pointwise inequality comparison.
static func .< (Self, Self.Scalar) -> SIMDMask<Self.MaskStorage>
Returns a vector mask with the result of a pointwise less than comparison.
static func .< (Self, Self) -> SIMDMask<Self.MaskStorage>
Returns a vector mask with the result of a pointwise less than comparison.
static func .< (Self.Scalar, Self) -> SIMDMask<Self.MaskStorage>
Returns a vector mask with the result of a pointwise less than comparison.
static func .<= (Self, Self) -> SIMDMask<Self.MaskStorage>
Returns a vector mask with the result of a pointwise less than or equal comparison.
static func .<= (Self.Scalar, Self) -> SIMDMask<Self.MaskStorage>
Returns a vector mask with the result of a pointwise less than or equal comparison.
static func .<= (Self, Self.Scalar) -> SIMDMask<Self.MaskStorage>
Returns a vector mask with the result of a pointwise less than or equal comparison.
static func .== (Self.Scalar, Self) -> SIMDMask<Self.MaskStorage>
Returns a vector mask with the result of a pointwise equality comparison.
static func .== (Self, Self.Scalar) -> SIMDMask<Self.MaskStorage>
Returns a vector mask with the result of a pointwise equality comparison.
static func .== (Self, Self) -> SIMDMask<Self.MaskStorage>
A vector mask with the result of a pointwise equality comparison.
static func .> (Self.Scalar, Self) -> SIMDMask<Self.MaskStorage>
Returns a vector mask with the result of a pointwise greater than comparison.
static func .> (Self, Self.Scalar) -> SIMDMask<Self.MaskStorage>
Returns a vector mask with the result of a pointwise greater than comparison.
static func .> (Self, Self) -> SIMDMask<Self.MaskStorage>
Returns a vector mask with the result of a pointwise greater than comparison.
static func .>= (Self, Self) -> SIMDMask<Self.MaskStorage>
Returns a vector mask with the result of a pointwise greater than or equal comparison.
static func .>= (Self.Scalar, Self) -> SIMDMask<Self.MaskStorage>
Returns a vector mask with the result of a pointwise greater than or equal comparison.
static func .>= (Self, Self.Scalar) -> SIMDMask<Self.MaskStorage>
Returns a vector mask with the result of a pointwise greater than or equal comparison.
static func / (Self, Self) -> Self
static func / (Self, Self.Scalar) -> Self
static func / (Self.Scalar, Self) -> Self
static func / (Self, Self.Scalar) -> Self
static func / (Self, Self) -> Self
static func / (Self.Scalar, Self) -> Self
static func /= (inout Self, Self)
static func /= (inout Self, Self.Scalar)
static func /= (inout Self, Self)
static func /= (inout Self, Self.Scalar)
static func == (Self, Self) -> Bool
Returns a Boolean value indicating whether two vectors are equal.
static func ^ (Self, Self) -> Self
static func ^ (Self, Self.Scalar) -> Self
static func ^ (Self.Scalar, Self) -> Self
static func ^= (inout Self, Self)
static func ^= (inout Self, Self.Scalar)
static func | (Self, Self.Scalar) -> Self
static func | (Self.Scalar, Self) -> Self
static func | (Self, Self) -> Self
static func |= (inout Self, Self)
static func |= (inout Self, Self.Scalar)
static func ~ (Self) -> Self
static func * (Self, Self.Scalar) -> Self
static func * (Self, Self) -> Self
static func * (Self.Scalar, Self) -> Self
static func *= (inout Self, Self.Scalar)
static func *= (inout Self, Self)
static func + (Self.Scalar, Self) -> Self
static func + (Self, Self) -> Self
static func + (Self, Self.Scalar) -> Self
static func += (inout Self, Self)
static func += (inout Self, Self.Scalar)
static func - (Self.Scalar, Self) -> Self
static func - (Self, Self.Scalar) -> Self
static func - (Self, Self) -> Self
static func -= (inout Self, Self.Scalar)
static func -= (inout Self, Self)