ProtocolSwift5.9.0
SIMD
A SIMD vector of a fixed number of elements.
protocol SIMD<Scalar> : CustomStringConvertible, Decodable, Encodable, ExpressibleByArrayLiteral, Hashable, SIMDStorage
Supertypes
protocol CustomStringConvertible
A type with a customized textual representation.
protocol Decodable
A type that can decode itself from an external representation.
protocol Encodable
A type that can encode itself to an external representation.
protocol Equatable
A type that can be compared for value equality.
protocol ExpressibleByArrayLiteral
A type that can be initialized using an array literal.
protocol Hashable
A type that can be hashed into a
Hasher
to produce an integer hash value.protocol SIMDStorage
A type that can function as storage for a SIMD vector type.
Requirements
associatedtype MaskStorage : SIMD
The mask type resulting from pointwise comparisons of this vector type.
Citizens in Swift
Members
init<S>(S
) Creates a vector from the given sequence.
init(repeating: Self.Scalar
) A vector with the specified value in all lanes.
var indices: Range<Int>
The valid indices for subscripting the vector.
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
.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, Self
) -> Bool Returns a Boolean value indicating whether two vectors are equal.
func replace(with: Self.Scalar, where: SIMDMask<Self.MaskStorage>
) Replaces elements of this vector with
other
in the lanes wheremask
istrue
.func replace(with: Self, where: SIMDMask<Self.MaskStorage>
) Replaces elements of this vector with elements of
other
in the lanes wheremask
istrue
.func replacing(with: Self.Scalar, where: SIMDMask<Self.MaskStorage>
) -> Self Returns a copy of this vector, with elements
other
in the lanes wheremask
istrue
.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 wheremask
istrue
.
Citizens in Swift
where Self:AdditiveArithmetic, Self.Scalar:FloatingPoint
Members
Citizens in Swift
where Self.Scalar:BinaryFloatingPoint, Self.Scalar.RawSignificand:FixedWidthInteger
Members
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<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.
Citizens in Swift
where Self.Scalar:FloatingPoint
Members
static var one: Self
A vector with one in all lanes.
static var zero: Self
A vector with zero in all lanes.
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
) 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
) static func - (Self
) -> Self 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
) 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
) func addProduct(Self
.Scalar, Self) func addProduct(Self, Self
.Scalar) func addProduct(Self, Self
) func addingProduct(Self
.Scalar, Self) -> Self func addingProduct(Self, Self
.Scalar) -> Self func addingProduct(Self, Self
) -> Self func clamp(lowerBound: Self, upperBound: Self
) func clamped(lowerBound: Self, upperBound: Self
) -> Self func formSquareRoot(
) func max(
) -> Self.Scalar The greatest scalar in the vector.
func min(
) -> Self.Scalar The least scalar in the vector.
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.
Citizens in Swift
where Self.Scalar:Comparable
Members
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
.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 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, 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 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
.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
) -> SIMDMask<Self.MaskStorage> Returns a vector mask with the result of a pointwise greater than or equal comparison.
func clamp(lowerBound: Self, upperBound: Self
) func clamped(lowerBound: Self, upperBound: Self
) -> Self func max(
) -> Self.Scalar The greatest element in the vector.
func min(
) -> Self.Scalar The least element in the vector.
Citizens in Swift
where Self.Scalar:FixedWidthInteger
Members
static var one: Self
A vector with one in all lanes.
static var zero: Self
A vector with zero 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<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.
var leadingZeroBitCount: Self
var nonzeroBitCount: Self
var trailingZeroBitCount: Self
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
) 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 &* (Self, Self
.Scalar) -> Self static func &* (Self, Self
) -> 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
.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
.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
.Scalar) static func &<<= (inout Self, 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
.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
.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
.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
.Scalar) static func |= (inout Self, Self
) static func ~ (Self
) -> Self func wrappedSum(
) -> Self.Scalar Returns the sum of the scalars in the vector, computed with wrapping addition.