// Code generated by 'go run -C $GOROOT/src/simd/archsimd/_gen/midway'; DO NOT EDIT. //go:build goexperiment.simd && (amd64 || wasm || arm64) // Computed intersection of methods for supported SIMD architectures and vector widths package simd // internal SIMD marker. type _simd struct { _ [0]func(*_simd) *_simd } // Int8s represents a vector of 8-bit signed integers. type Int8s struct { _ _simd atLeast [2]uint64 // the actual vector size may be larger. } // LoadInt8 loads a slice of int8 into an Int8s vector. func LoadInt8s([]int8) Int8s // LoadInt8Part loads a partial slice of int8 into an Int8s vector, returning the vector and the number of elements loaded. func LoadInt8sPart([]int8) (Int8s, int) // BroadcastInt8 fills the elements of a slice with its argument value. func BroadcastInt8s(int8) Int8s // Abs returns the element-wise absolute value of x. func (x Int8s) Abs() Int8s // Add returns the element-wise sum of x and y. func (x Int8s) Add(y Int8s) Int8s // AddSaturated returns the element-wise saturated sum of x and y. func (x Int8s) AddSaturated(y Int8s) Int8s // And returns the bitwise AND of x and y. func (x Int8s) And(y Int8s) Int8s // AndNot returns the bitwise AND NOT of x and y. func (x Int8s) AndNot(y Int8s) Int8s // ConvertToUint8 converts the vector elements to uint8. func (x Int8s) ConvertToUint8() Uint8s // Equal returns a mask indicating where x and y are equal. func (x Int8s) Equal(y Int8s) Mask8s // Greater returns a mask indicating where x is greater than y. func (x Int8s) Greater(y Int8s) Mask8s // GreaterEqual returns a mask indicating where x is greater than or equal to y. func (x Int8s) GreaterEqual(y Int8s) Mask8s // IfElse returns a new vector with elements from x where mask is true, and y where mask is false. func (x Int8s) IfElse(mask Mask8s, y Int8s) Int8s // Len returns the number of elements in the vector. func (x Int8s) Len() int // Less returns a mask indicating where x is less than y. func (x Int8s) Less(y Int8s) Mask8s // LessEqual returns a mask indicating where x is less than or equal to y. func (x Int8s) LessEqual(y Int8s) Mask8s // Masked returns a new vector with elements from x where mask is true, and zero elsewhere. func (x Int8s) Masked(mask Mask8s) Int8s // Max returns the element-wise maximum of x and y. func (x Int8s) Max(y Int8s) Int8s // Min returns the element-wise minimum of x and y. func (x Int8s) Min(y Int8s) Int8s // Mul returns the element-wise product of x and y. func (x Int8s) Mul(y Int8s) Int8s // Neg returns the element-wise negation of x. func (x Int8s) Neg() Int8s // Not returns the bitwise NOT of x. func (x Int8s) Not() Int8s // NotEqual returns a mask indicating where x and y are not equal. func (x Int8s) NotEqual(y Int8s) Mask8s // Or returns the bitwise OR of x and y. func (x Int8s) Or(y Int8s) Int8s // StoreSlice stores the vector elements into the slice s. func (x Int8s) Store(s []int8) // StoreSlicePart stores a partial vector into the slice s. func (x Int8s) StorePart(s []int8) int // String returns a string representation of the vector. func (x Int8s) String() string // Sub returns the element-wise difference of x and y. func (x Int8s) Sub(y Int8s) Int8s // SubSaturated returns the element-wise saturated difference of x and y. func (x Int8s) SubSaturated(y Int8s) Int8s // ToBits reinterprets the vector bits as an unsigned integer vector. func (x Int8s) ToBits() Uint8s // ToMask returns a mask representation of the vector. func (x Int8s) ToMask() (to Mask8s) // Xor returns the bitwise XOR of x and y. func (x Int8s) Xor(y Int8s) Int8s // Int16s represents a vector of 16-bit signed integers. type Int16s struct { _ _simd atLeast [2]uint64 // the actual vector size may be larger. } // LoadInt16 loads a slice of int16 into an Int16s vector. func LoadInt16s([]int16) Int16s // LoadInt16Part loads a partial slice of int16 into an Int16s vector, returning the vector and the number of elements loaded. func LoadInt16sPart([]int16) (Int16s, int) // BroadcastInt16 fills the elements of a slice with its argument value. func BroadcastInt16s(int16) Int16s // Abs returns the element-wise absolute value of x. func (x Int16s) Abs() Int16s // Add returns the element-wise sum of x and y. func (x Int16s) Add(y Int16s) Int16s // AddSaturated returns the element-wise saturated sum of x and y. func (x Int16s) AddSaturated(y Int16s) Int16s // And returns the bitwise AND of x and y. func (x Int16s) And(y Int16s) Int16s // AndNot returns the bitwise AND NOT of x and y. func (x Int16s) AndNot(y Int16s) Int16s // ConvertToUint16 converts the vector elements to uint16. func (x Int16s) ConvertToUint16() Uint16s // Equal returns a mask indicating where x and y are equal. func (x Int16s) Equal(y Int16s) Mask16s // Greater returns a mask indicating where x is greater than y. func (x Int16s) Greater(y Int16s) Mask16s // GreaterEqual returns a mask indicating where x is greater than or equal to y. func (x Int16s) GreaterEqual(y Int16s) Mask16s // IfElse returns a new vector with elements from x where mask is true, and y where mask is false. func (x Int16s) IfElse(mask Mask16s, y Int16s) Int16s // Len returns the number of elements in the vector. func (x Int16s) Len() int // Less returns a mask indicating where x is less than y. func (x Int16s) Less(y Int16s) Mask16s // LessEqual returns a mask indicating where x is less than or equal to y. func (x Int16s) LessEqual(y Int16s) Mask16s // Masked returns a new vector with elements from x where mask is true, and zero elsewhere. func (x Int16s) Masked(mask Mask16s) Int16s // Max returns the element-wise maximum of x and y. func (x Int16s) Max(y Int16s) Int16s // Min returns the element-wise minimum of x and y. func (x Int16s) Min(y Int16s) Int16s // Mul returns the element-wise product of x and y. func (x Int16s) Mul(y Int16s) Int16s // Neg returns the element-wise negation of x. func (x Int16s) Neg() Int16s // Not returns the bitwise NOT of x. func (x Int16s) Not() Int16s // NotEqual returns a mask indicating where x and y are not equal. func (x Int16s) NotEqual(y Int16s) Mask16s // Or returns the bitwise OR of x and y. func (x Int16s) Or(y Int16s) Int16s // RotatesAllLeft rotates all elements left by y bits. func (x Int16s) RotateAllLeft(dist uint64) Int16s // RotatesAllRight rotates all elements right by y bits. func (x Int16s) RotateAllRight(dist uint64) Int16s // ShiftAllLeft shifts all elements left by y bits. func (x Int16s) ShiftAllLeft(shift uint64) Int16s // ShiftAllRight shifts all elements right by y bits. func (x Int16s) ShiftAllRight(shift uint64) Int16s // StoreSlice stores the vector elements into the slice s. func (x Int16s) Store(s []int16) // StoreSlicePart stores a partial vector into the slice s. func (x Int16s) StorePart(s []int16) int // String returns a string representation of the vector. func (x Int16s) String() string // Sub returns the element-wise difference of x and y. func (x Int16s) Sub(y Int16s) Int16s // SubSaturated returns the element-wise saturated difference of x and y. func (x Int16s) SubSaturated(y Int16s) Int16s // ToBits reinterprets the vector bits as an unsigned integer vector. func (x Int16s) ToBits() Uint16s // ToMask returns a mask representation of the vector. func (x Int16s) ToMask() (to Mask16s) // Xor returns the bitwise XOR of x and y. func (x Int16s) Xor(y Int16s) Int16s // Int32s represents a vector of 32-bit signed integers. type Int32s struct { _ _simd atLeast [2]uint64 // the actual vector size may be larger. } // LoadInt32 loads a slice of int32 into an Int32s vector. func LoadInt32s([]int32) Int32s // LoadInt32Part loads a partial slice of int32 into an Int32s vector, returning the vector and the number of elements loaded. func LoadInt32sPart([]int32) (Int32s, int) // BroadcastInt32 fills the elements of a slice with its argument value. func BroadcastInt32s(int32) Int32s // Abs returns the element-wise absolute value of x. func (x Int32s) Abs() Int32s // Add returns the element-wise sum of x and y. func (x Int32s) Add(y Int32s) Int32s // And returns the bitwise AND of x and y. func (x Int32s) And(y Int32s) Int32s // AndNot returns the bitwise AND NOT of x and y. func (x Int32s) AndNot(y Int32s) Int32s // ConvertToFloat32 converts the vector elements to float32. func (x Int32s) ConvertToFloat32() Float32s // ConvertToUint32 converts the vector elements to uint32. func (x Int32s) ConvertToUint32() Uint32s // Equal returns a mask indicating where x and y are equal. func (x Int32s) Equal(y Int32s) Mask32s // Greater returns a mask indicating where x is greater than y. func (x Int32s) Greater(y Int32s) Mask32s // GreaterEqual returns a mask indicating where x is greater than or equal to y. func (x Int32s) GreaterEqual(y Int32s) Mask32s // IfElse returns a new vector with elements from x where mask is true, and y where mask is false. func (x Int32s) IfElse(mask Mask32s, y Int32s) Int32s // Len returns the number of elements in the vector. func (x Int32s) Len() int // Less returns a mask indicating where x is less than y. func (x Int32s) Less(y Int32s) Mask32s // LessEqual returns a mask indicating where x is less than or equal to y. func (x Int32s) LessEqual(y Int32s) Mask32s // Masked returns a new vector with elements from x where mask is true, and zero elsewhere. func (x Int32s) Masked(mask Mask32s) Int32s // Max returns the element-wise maximum of x and y. func (x Int32s) Max(y Int32s) Int32s // Min returns the element-wise minimum of x and y. func (x Int32s) Min(y Int32s) Int32s // Mul returns the element-wise product of x and y. func (x Int32s) Mul(y Int32s) Int32s // Neg returns the element-wise negation of x. func (x Int32s) Neg() Int32s // Not returns the bitwise NOT of x. func (x Int32s) Not() Int32s // NotEqual returns a mask indicating where x and y are not equal. func (x Int32s) NotEqual(y Int32s) Mask32s // Or returns the bitwise OR of x and y. func (x Int32s) Or(y Int32s) Int32s // RotatesAllLeft rotates all elements left by y bits. func (x Int32s) RotateAllLeft(dist uint64) Int32s // RotatesAllRight rotates all elements right by y bits. func (x Int32s) RotateAllRight(dist uint64) Int32s // ShiftAllLeft shifts all elements left by y bits. func (x Int32s) ShiftAllLeft(shift uint64) Int32s // ShiftAllRight shifts all elements right by y bits. func (x Int32s) ShiftAllRight(shift uint64) Int32s // StoreSlice stores the vector elements into the slice s. func (x Int32s) Store(s []int32) // StoreSlicePart stores a partial vector into the slice s. func (x Int32s) StorePart(s []int32) int // String returns a string representation of the vector. func (x Int32s) String() string // Sub returns the element-wise difference of x and y. func (x Int32s) Sub(y Int32s) Int32s // ToBits reinterprets the vector bits as an unsigned integer vector. func (x Int32s) ToBits() Uint32s // ToMask returns a mask representation of the vector. func (x Int32s) ToMask() (to Mask32s) // Xor returns the bitwise XOR of x and y. func (x Int32s) Xor(y Int32s) Int32s // Int64s represents a vector of 64-bit signed integers. type Int64s struct { _ _simd atLeast [2]uint64 // the actual vector size may be larger. } // LoadInt64 loads a slice of int64 into an Int64s vector. func LoadInt64s([]int64) Int64s // LoadInt64Part loads a partial slice of int64 into an Int64s vector, returning the vector and the number of elements loaded. func LoadInt64sPart([]int64) (Int64s, int) // BroadcastInt64 fills the elements of a slice with its argument value. func BroadcastInt64s(int64) Int64s // Add returns the element-wise sum of x and y. func (x Int64s) Add(y Int64s) Int64s // And returns the bitwise AND of x and y. func (x Int64s) And(y Int64s) Int64s // AndNot returns the bitwise AND NOT of x and y. func (x Int64s) AndNot(y Int64s) Int64s // ConvertToUint64 converts the vector elements to uint64. func (x Int64s) ConvertToUint64() Uint64s // Equal returns a mask indicating where x and y are equal. func (x Int64s) Equal(y Int64s) Mask64s // Greater returns a mask indicating where x is greater than y. func (x Int64s) Greater(y Int64s) Mask64s // GreaterEqual returns a mask indicating where x is greater than or equal to y. func (x Int64s) GreaterEqual(y Int64s) Mask64s // IfElse returns a new vector with elements from x where mask is true, and y where mask is false. func (x Int64s) IfElse(mask Mask64s, y Int64s) Int64s // Len returns the number of elements in the vector. func (x Int64s) Len() int // Less returns a mask indicating where x is less than y. func (x Int64s) Less(y Int64s) Mask64s // LessEqual returns a mask indicating where x is less than or equal to y. func (x Int64s) LessEqual(y Int64s) Mask64s // Masked returns a new vector with elements from x where mask is true, and zero elsewhere. func (x Int64s) Masked(mask Mask64s) Int64s // Neg returns the element-wise negation of x. func (x Int64s) Neg() Int64s // Not returns the bitwise NOT of x. func (x Int64s) Not() Int64s // NotEqual returns a mask indicating where x and y are not equal. func (x Int64s) NotEqual(y Int64s) Mask64s // Or returns the bitwise OR of x and y. func (x Int64s) Or(y Int64s) Int64s // RotatesAllLeft rotates all elements left by y bits. func (x Int64s) RotateAllLeft(dist uint64) Int64s // RotatesAllRight rotates all elements right by y bits. func (x Int64s) RotateAllRight(dist uint64) Int64s // ShiftAllLeft shifts all elements left by y bits. func (x Int64s) ShiftAllLeft(shift uint64) Int64s // StoreSlice stores the vector elements into the slice s. func (x Int64s) Store(s []int64) // StoreSlicePart stores a partial vector into the slice s. func (x Int64s) StorePart(s []int64) int // String returns a string representation of the vector. func (x Int64s) String() string // Sub returns the element-wise difference of x and y. func (x Int64s) Sub(y Int64s) Int64s // ToBits reinterprets the vector bits as an unsigned integer vector. func (x Int64s) ToBits() Uint64s // ToMask returns a mask representation of the vector. func (x Int64s) ToMask() (to Mask64s) // Xor returns the bitwise XOR of x and y. func (x Int64s) Xor(y Int64s) Int64s // Uint8s represents a vector of 8-bit unsigned integers. type Uint8s struct { _ _simd atLeast [2]uint64 // the actual vector size may be larger. } // LoadUint8 loads a slice of uint8 into an Uint8s vector. func LoadUint8s([]uint8) Uint8s // LoadUint8Part loads a partial slice of uint8 into an Uint8s vector, returning the vector and the number of elements loaded. func LoadUint8sPart([]uint8) (Uint8s, int) // BroadcastUint8 fills the elements of a slice with its argument value. func BroadcastUint8s(uint8) Uint8s // Add returns the element-wise sum of x and y. func (x Uint8s) Add(y Uint8s) Uint8s // AddSaturated returns the element-wise saturated sum of x and y. func (x Uint8s) AddSaturated(y Uint8s) Uint8s // And returns the bitwise AND of x and y. func (x Uint8s) And(y Uint8s) Uint8s // AndNot returns the bitwise AND NOT of x and y. func (x Uint8s) AndNot(y Uint8s) Uint8s // Average returns the element-wise average of x and y. func (x Uint8s) Average(y Uint8s) Uint8s // BitsToInt8 reinterprets the vector bits as an Int8s vector. func (x Uint8s) BitsToInt8() Int8s // ConvertToInt8 converts the vector elements to int8. func (x Uint8s) ConvertToInt8() Int8s // Equal returns a mask indicating where x and y are equal. func (x Uint8s) Equal(y Uint8s) Mask8s // IfElse returns a new vector with elements from x where mask is true, and y where mask is false. func (x Uint8s) IfElse(mask Mask8s, y Uint8s) Uint8s // Len returns the number of elements in the vector. func (x Uint8s) Len() int // Masked returns a new vector with elements from x where mask is true, and zero elsewhere. func (x Uint8s) Masked(mask Mask8s) Uint8s // Max returns the element-wise maximum of x and y. func (x Uint8s) Max(y Uint8s) Uint8s // Min returns the element-wise minimum of x and y. func (x Uint8s) Min(y Uint8s) Uint8s // Mul returns the element-wise product of x and y. func (x Uint8s) Mul(y Uint8s) Uint8s // Not returns the bitwise NOT of x. func (x Uint8s) Not() Uint8s // NotEqual returns a mask indicating where x and y are not equal. func (x Uint8s) NotEqual(y Uint8s) Mask8s // Or returns the bitwise OR of x and y. func (x Uint8s) Or(y Uint8s) Uint8s // ReshapeToUint16s reinterprets the vector bits as a Uint16s vector. func (x Uint8s) ReshapeToUint16s() Uint16s // ReshapeToUint32s reinterprets the vector bits as a Uint32s vector. func (x Uint8s) ReshapeToUint32s() Uint32s // ReshapeToUint64s reinterprets the vector bits as a Uint64s vector. func (x Uint8s) ReshapeToUint64s() Uint64s // StoreSlice stores the vector elements into the slice s. func (x Uint8s) Store(s []uint8) // StoreSlicePart stores a partial vector into the slice s. func (x Uint8s) StorePart(s []uint8) int // String returns a string representation of the vector. func (x Uint8s) String() string // Sub returns the element-wise difference of x and y. func (x Uint8s) Sub(y Uint8s) Uint8s // SubSaturated returns the element-wise saturated difference of x and y. func (x Uint8s) SubSaturated(y Uint8s) Uint8s // Xor returns the bitwise XOR of x and y. func (x Uint8s) Xor(y Uint8s) Uint8s // Uint16s represents a vector of 16-bit unsigned integers. type Uint16s struct { _ _simd atLeast [2]uint64 // the actual vector size may be larger. } // LoadUint16 loads a slice of uint16 into an Uint16s vector. func LoadUint16s([]uint16) Uint16s // LoadUint16Part loads a partial slice of uint16 into an Uint16s vector, returning the vector and the number of elements loaded. func LoadUint16sPart([]uint16) (Uint16s, int) // BroadcastUint16 fills the elements of a slice with its argument value. func BroadcastUint16s(uint16) Uint16s // Add returns the element-wise sum of x and y. func (x Uint16s) Add(y Uint16s) Uint16s // AddSaturated returns the element-wise saturated sum of x and y. func (x Uint16s) AddSaturated(y Uint16s) Uint16s // And returns the bitwise AND of x and y. func (x Uint16s) And(y Uint16s) Uint16s // AndNot returns the bitwise AND NOT of x and y. func (x Uint16s) AndNot(y Uint16s) Uint16s // Average returns the element-wise average of x and y. func (x Uint16s) Average(y Uint16s) Uint16s // BitsToInt16 reinterprets the vector bits as an Int16s vector. func (x Uint16s) BitsToInt16() Int16s // ConvertToInt16 converts the vector elements to int16. func (x Uint16s) ConvertToInt16() Int16s // Equal returns a mask indicating where x and y are equal. func (x Uint16s) Equal(y Uint16s) Mask16s // Greater returns a mask indicating where x is greater than y. func (x Uint16s) Greater(y Uint16s) Mask16s // GreaterEqual returns a mask indicating where x is greater than or equal to y. func (x Uint16s) GreaterEqual(y Uint16s) Mask16s // IfElse returns a new vector with elements from x where mask is true, and y where mask is false. func (x Uint16s) IfElse(mask Mask16s, y Uint16s) Uint16s // Len returns the number of elements in the vector. func (x Uint16s) Len() int // Less returns a mask indicating where x is less than y. func (x Uint16s) Less(y Uint16s) Mask16s // LessEqual returns a mask indicating where x is less than or equal to y. func (x Uint16s) LessEqual(y Uint16s) Mask16s // Masked returns a new vector with elements from x where mask is true, and zero elsewhere. func (x Uint16s) Masked(mask Mask16s) Uint16s // Max returns the element-wise maximum of x and y. func (x Uint16s) Max(y Uint16s) Uint16s // Min returns the element-wise minimum of x and y. func (x Uint16s) Min(y Uint16s) Uint16s // Mul returns the element-wise product of x and y. func (x Uint16s) Mul(y Uint16s) Uint16s // Not returns the bitwise NOT of x. func (x Uint16s) Not() Uint16s // NotEqual returns a mask indicating where x and y are not equal. func (x Uint16s) NotEqual(y Uint16s) Mask16s // Or returns the bitwise OR of x and y. func (x Uint16s) Or(y Uint16s) Uint16s // ReshapeToUint32s reinterprets the vector bits as a Uint32s vector. func (x Uint16s) ReshapeToUint32s() Uint32s // ReshapeToUint64s reinterprets the vector bits as a Uint64s vector. func (x Uint16s) ReshapeToUint64s() Uint64s // ReshapeToUint8s reinterprets the vector bits as a Uint8s vector. func (x Uint16s) ReshapeToUint8s() Uint8s // RotatesAllLeft rotates all elements left by y bits. func (x Uint16s) RotateAllLeft(dist uint64) Uint16s // RotatesAllRight rotates all elements right by y bits. func (x Uint16s) RotateAllRight(dist uint64) Uint16s // ShiftAllLeft shifts all elements left by y bits. func (x Uint16s) ShiftAllLeft(shift uint64) Uint16s // ShiftAllRight shifts all elements right by y bits. func (x Uint16s) ShiftAllRight(shift uint64) Uint16s // StoreSlice stores the vector elements into the slice s. func (x Uint16s) Store(s []uint16) // StoreSlicePart stores a partial vector into the slice s. func (x Uint16s) StorePart(s []uint16) int // String returns a string representation of the vector. func (x Uint16s) String() string // Sub returns the element-wise difference of x and y. func (x Uint16s) Sub(y Uint16s) Uint16s // SubSaturated returns the element-wise saturated difference of x and y. func (x Uint16s) SubSaturated(y Uint16s) Uint16s // Xor returns the bitwise XOR of x and y. func (x Uint16s) Xor(y Uint16s) Uint16s // Uint32s represents a vector of 32-bit unsigned integers. type Uint32s struct { _ _simd atLeast [2]uint64 // the actual vector size may be larger. } // LoadUint32 loads a slice of uint32 into an Uint32s vector. func LoadUint32s([]uint32) Uint32s // LoadUint32Part loads a partial slice of uint32 into an Uint32s vector, returning the vector and the number of elements loaded. func LoadUint32sPart([]uint32) (Uint32s, int) // BroadcastUint32 fills the elements of a slice with its argument value. func BroadcastUint32s(uint32) Uint32s // Add returns the element-wise sum of x and y. func (x Uint32s) Add(y Uint32s) Uint32s // And returns the bitwise AND of x and y. func (x Uint32s) And(y Uint32s) Uint32s // AndNot returns the bitwise AND NOT of x and y. func (x Uint32s) AndNot(y Uint32s) Uint32s // BitsToFloat32 reinterprets the vector bits as a Float32s vector. func (x Uint32s) BitsToFloat32() Float32s // BitsToInt32 reinterprets the vector bits as an Int32s vector. func (x Uint32s) BitsToInt32() Int32s // ConvertToInt32 converts the vector elements to int32. func (x Uint32s) ConvertToInt32() Int32s // Equal returns a mask indicating where x and y are equal. func (x Uint32s) Equal(y Uint32s) Mask32s // Greater returns a mask indicating where x is greater than y. func (x Uint32s) Greater(y Uint32s) Mask32s // GreaterEqual returns a mask indicating where x is greater than or equal to y. func (x Uint32s) GreaterEqual(y Uint32s) Mask32s // IfElse returns a new vector with elements from x where mask is true, and y where mask is false. func (x Uint32s) IfElse(mask Mask32s, y Uint32s) Uint32s // Len returns the number of elements in the vector. func (x Uint32s) Len() int // Less returns a mask indicating where x is less than y. func (x Uint32s) Less(y Uint32s) Mask32s // LessEqual returns a mask indicating where x is less than or equal to y. func (x Uint32s) LessEqual(y Uint32s) Mask32s // Masked returns a new vector with elements from x where mask is true, and zero elsewhere. func (x Uint32s) Masked(mask Mask32s) Uint32s // Max returns the element-wise maximum of x and y. func (x Uint32s) Max(y Uint32s) Uint32s // Min returns the element-wise minimum of x and y. func (x Uint32s) Min(y Uint32s) Uint32s // Mul returns the element-wise product of x and y. func (x Uint32s) Mul(y Uint32s) Uint32s // Not returns the bitwise NOT of x. func (x Uint32s) Not() Uint32s // NotEqual returns a mask indicating where x and y are not equal. func (x Uint32s) NotEqual(y Uint32s) Mask32s // Or returns the bitwise OR of x and y. func (x Uint32s) Or(y Uint32s) Uint32s // ReshapeToUint16s reinterprets the vector bits as a Uint16s vector. func (x Uint32s) ReshapeToUint16s() Uint16s // ReshapeToUint64s reinterprets the vector bits as a Uint64s vector. func (x Uint32s) ReshapeToUint64s() Uint64s // ReshapeToUint8s reinterprets the vector bits as a Uint8s vector. func (x Uint32s) ReshapeToUint8s() Uint8s // RotatesAllLeft rotates all elements left by y bits. func (x Uint32s) RotateAllLeft(dist uint64) Uint32s // RotatesAllRight rotates all elements right by y bits. func (x Uint32s) RotateAllRight(dist uint64) Uint32s // ShiftAllLeft shifts all elements left by y bits. func (x Uint32s) ShiftAllLeft(shift uint64) Uint32s // ShiftAllRight shifts all elements right by y bits. func (x Uint32s) ShiftAllRight(shift uint64) Uint32s // StoreSlice stores the vector elements into the slice s. func (x Uint32s) Store(s []uint32) // StoreSlicePart stores a partial vector into the slice s. func (x Uint32s) StorePart(s []uint32) int // String returns a string representation of the vector. func (x Uint32s) String() string // Sub returns the element-wise difference of x and y. func (x Uint32s) Sub(y Uint32s) Uint32s // Xor returns the bitwise XOR of x and y. func (x Uint32s) Xor(y Uint32s) Uint32s // Uint64s represents a vector of 64-bit unsigned integers. type Uint64s struct { _ _simd atLeast [2]uint64 // the actual vector size may be larger. } // LoadUint64 loads a slice of uint64 into an Uint64s vector. func LoadUint64s([]uint64) Uint64s // LoadUint64Part loads a partial slice of uint64 into an Uint64s vector, returning the vector and the number of elements loaded. func LoadUint64sPart([]uint64) (Uint64s, int) // BroadcastUint64 fills the elements of a slice with its argument value. func BroadcastUint64s(uint64) Uint64s // Add returns the element-wise sum of x and y. func (x Uint64s) Add(y Uint64s) Uint64s // And returns the bitwise AND of x and y. func (x Uint64s) And(y Uint64s) Uint64s // AndNot returns the bitwise AND NOT of x and y. func (x Uint64s) AndNot(y Uint64s) Uint64s // BitsToFloat64 reinterprets the vector bits as a Float64s vector. func (x Uint64s) BitsToFloat64() Float64s // BitsToInt64 reinterprets the vector bits as an Int64s vector. func (x Uint64s) BitsToInt64() Int64s // CarrylessMultiplyOdd computes the carryless // multiplications of selected even indexed elements of x and y. // Each product is 128 bits wide and fills the corresponding // even-odd pairs in the result. // // A carryless multiplication uses bitwise XOR instead of // add-with-carry, for example (in base two): // // 11 * 11 = 11 * (10 ^ 1) = (11 * 10) ^ (11 * 1) = 110 ^ 11 = 101 // // This also models multiplication of polynomials with coefficients // from GF(2) -- 11 * 11 models (x+1)*(x+1) = x**2 + (1^1)x + 1 = // x**2 + 0x + 1 = x**2 + 1 modeled by 101. (Note that "+" adds // polynomial terms, but coefficients "add" with XOR.)" func (x Uint64s) CarrylessMultiplyEven(y Uint64s) Uint64s // CarrylessMultiplyOdd computes the carryless // multiplications of selected odd indexed elements of x and y. // Each product is 128 bits wide and fills the corresponding // even-odd pairs in the result. // // A carryless multiplication uses bitwise XOR instead of // add-with-carry, for example (in base two): // // 11 * 11 = 11 * (10 ^ 1) = (11 * 10) ^ (11 * 1) = 110 ^ 11 = 101 // // This also models multiplication of polynomials with coefficients // from GF(2) -- 11 * 11 models (x+1)*(x+1) = x**2 + (1^1)x + 1 = // x**2 + 0x + 1 = x**2 + 1 modeled by 101. (Note that "+" adds // polynomial terms, but coefficients "add" with XOR.)" func (x Uint64s) CarrylessMultiplyOdd(y Uint64s) Uint64s // ConvertToInt64 converts the vector elements to int64. func (x Uint64s) ConvertToInt64() Int64s // Equal returns a mask indicating where x and y are equal. func (x Uint64s) Equal(y Uint64s) Mask64s // Greater returns a mask indicating where x is greater than y. func (x Uint64s) Greater(y Uint64s) Mask64s // GreaterEqual returns a mask indicating where x is greater than or equal to y. func (x Uint64s) GreaterEqual(y Uint64s) Mask64s // IfElse returns a new vector with elements from x where mask is true, and y where mask is false. func (x Uint64s) IfElse(mask Mask64s, y Uint64s) Uint64s // Len returns the number of elements in the vector. func (x Uint64s) Len() int // Less returns a mask indicating where x is less than y. func (x Uint64s) Less(y Uint64s) Mask64s // LessEqual returns a mask indicating where x is less than or equal to y. func (x Uint64s) LessEqual(y Uint64s) Mask64s // Masked returns a new vector with elements from x where mask is true, and zero elsewhere. func (x Uint64s) Masked(mask Mask64s) Uint64s // Not returns the bitwise NOT of x. func (x Uint64s) Not() Uint64s // NotEqual returns a mask indicating where x and y are not equal. func (x Uint64s) NotEqual(y Uint64s) Mask64s // Or returns the bitwise OR of x and y. func (x Uint64s) Or(y Uint64s) Uint64s // ReshapeToUint16s reinterprets the vector bits as a Uint16s vector. func (x Uint64s) ReshapeToUint16s() Uint16s // ReshapeToUint32s reinterprets the vector bits as a Uint32s vector. func (x Uint64s) ReshapeToUint32s() Uint32s // ReshapeToUint8s reinterprets the vector bits as a Uint8s vector. func (x Uint64s) ReshapeToUint8s() Uint8s // RotatesAllLeft rotates all elements left by y bits. func (x Uint64s) RotateAllLeft(dist uint64) Uint64s // RotatesAllRight rotates all elements right by y bits. func (x Uint64s) RotateAllRight(dist uint64) Uint64s // ShiftAllLeft shifts all elements left by y bits. func (x Uint64s) ShiftAllLeft(shift uint64) Uint64s // ShiftAllRight shifts all elements right by y bits. func (x Uint64s) ShiftAllRight(shift uint64) Uint64s // StoreSlice stores the vector elements into the slice s. func (x Uint64s) Store(s []uint64) // StoreSlicePart stores a partial vector into the slice s. func (x Uint64s) StorePart(s []uint64) int // String returns a string representation of the vector. func (x Uint64s) String() string // Sub returns the element-wise difference of x and y. func (x Uint64s) Sub(y Uint64s) Uint64s // Xor returns the bitwise XOR of x and y. func (x Uint64s) Xor(y Uint64s) Uint64s // Float32s represents a vector of 32-bit floating-point numbers. type Float32s struct { _ _simd atLeast [2]uint64 // the actual vector size may be larger. } // LoadFloat32 loads a slice of float32 into an Float32s vector. func LoadFloat32s([]float32) Float32s // LoadFloat32Part loads a partial slice of float32 into an Float32s vector, returning the vector and the number of elements loaded. func LoadFloat32sPart([]float32) (Float32s, int) // BroadcastFloat32 fills the elements of a slice with its argument value. func BroadcastFloat32s(float32) Float32s // Abs returns the element-wise absolute value of x. func (x Float32s) Abs() Float32s // Add returns the element-wise sum of x and y. func (x Float32s) Add(y Float32s) Float32s // ConvertToInt32 converts the vector elements to int32. func (x Float32s) ConvertToInt32() Int32s // Div returns the element-wise quotient of x and y. func (x Float32s) Div(y Float32s) Float32s // Equal returns a mask indicating where x and y are equal. func (x Float32s) Equal(y Float32s) Mask32s // Greater returns a mask indicating where x is greater than y. func (x Float32s) Greater(y Float32s) Mask32s // GreaterEqual returns a mask indicating where x is greater than or equal to y. func (x Float32s) GreaterEqual(y Float32s) Mask32s // IfElse returns a new vector with elements from x where mask is true, and y where mask is false. func (x Float32s) IfElse(mask Mask32s, y Float32s) Float32s // Len returns the number of elements in the vector. func (x Float32s) Len() int // Less returns a mask indicating where x is less than y. func (x Float32s) Less(y Float32s) Mask32s // LessEqual returns a mask indicating where x is less than or equal to y. func (x Float32s) LessEqual(y Float32s) Mask32s // Masked returns a new vector with elements from x where mask is true, and zero elsewhere. func (x Float32s) Masked(mask Mask32s) Float32s // Max returns the element-wise maximum of x and y. func (x Float32s) Max(y Float32s) Float32s // Min returns the element-wise minimum of x and y. func (x Float32s) Min(y Float32s) Float32s // Mul returns the element-wise product of x and y. func (x Float32s) Mul(y Float32s) Float32s // MulAdd returns x * y + z element-wise. func (x Float32s) MulAdd(y Float32s, z Float32s) Float32s // Neg returns the element-wise negation of x. func (x Float32s) Neg() Float32s // NotEqual returns a mask indicating where x and y are not equal. func (x Float32s) NotEqual(y Float32s) Mask32s // Sqrt returns the element-wise square root of x. func (x Float32s) Sqrt() Float32s // StoreSlice stores the vector elements into the slice s. func (x Float32s) Store(s []float32) // StoreSlicePart stores a partial vector into the slice s. func (x Float32s) StorePart(s []float32) int // String returns a string representation of the vector. func (x Float32s) String() string // Sub returns the element-wise difference of x and y. func (x Float32s) Sub(y Float32s) Float32s // ToBits reinterprets the vector bits as an unsigned integer vector. func (x Float32s) ToBits() Uint32s // Float64s represents a vector of 64-bit floating-point numbers. type Float64s struct { _ _simd atLeast [2]uint64 // the actual vector size may be larger. } // LoadFloat64 loads a slice of float64 into an Float64s vector. func LoadFloat64s([]float64) Float64s // LoadFloat64Part loads a partial slice of float64 into an Float64s vector, returning the vector and the number of elements loaded. func LoadFloat64sPart([]float64) (Float64s, int) // BroadcastFloat64 fills the elements of a slice with its argument value. func BroadcastFloat64s(float64) Float64s // Abs returns the element-wise absolute value of x. func (x Float64s) Abs() Float64s // Add returns the element-wise sum of x and y. func (x Float64s) Add(y Float64s) Float64s // Div returns the element-wise quotient of x and y. func (x Float64s) Div(y Float64s) Float64s // Equal returns a mask indicating where x and y are equal. func (x Float64s) Equal(y Float64s) Mask64s // Greater returns a mask indicating where x is greater than y. func (x Float64s) Greater(y Float64s) Mask64s // GreaterEqual returns a mask indicating where x is greater than or equal to y. func (x Float64s) GreaterEqual(y Float64s) Mask64s // IfElse returns a new vector with elements from x where mask is true, and y where mask is false. func (x Float64s) IfElse(mask Mask64s, y Float64s) Float64s // Len returns the number of elements in the vector. func (x Float64s) Len() int // Less returns a mask indicating where x is less than y. func (x Float64s) Less(y Float64s) Mask64s // LessEqual returns a mask indicating where x is less than or equal to y. func (x Float64s) LessEqual(y Float64s) Mask64s // Masked returns a new vector with elements from x where mask is true, and zero elsewhere. func (x Float64s) Masked(mask Mask64s) Float64s // Max returns the element-wise maximum of x and y. func (x Float64s) Max(y Float64s) Float64s // Min returns the element-wise minimum of x and y. func (x Float64s) Min(y Float64s) Float64s // Mul returns the element-wise product of x and y. func (x Float64s) Mul(y Float64s) Float64s // MulAdd returns x * y + z element-wise. func (x Float64s) MulAdd(y Float64s, z Float64s) Float64s // Neg returns the element-wise negation of x. func (x Float64s) Neg() Float64s // NotEqual returns a mask indicating where x and y are not equal. func (x Float64s) NotEqual(y Float64s) Mask64s // Sqrt returns the element-wise square root of x. func (x Float64s) Sqrt() Float64s // StoreSlice stores the vector elements into the slice s. func (x Float64s) Store(s []float64) // StoreSlicePart stores a partial vector into the slice s. func (x Float64s) StorePart(s []float64) int // String returns a string representation of the vector. func (x Float64s) String() string // Sub returns the element-wise difference of x and y. func (x Float64s) Sub(y Float64s) Float64s // ToBits reinterprets the vector bits as an unsigned integer vector. func (x Float64s) ToBits() Uint64s // Mask8s represents a boolean mask for Int8s/Uint8s vectors. type Mask8s struct { _ _simd atLeast [2]uint64 // the actual vector size may be larger. } // And returns the bitwise AND of x and y. func (x Mask8s) And(y Mask8s) Mask8s // Or returns the bitwise OR of x and y. func (x Mask8s) Or(y Mask8s) Mask8s // String returns a string representation of the vector. func (x Mask8s) String() string // ToInt8s converts the mask to an Int8s vector. func (x Mask8s) ToInt8s() (to Int8s) // Mask16s represents a boolean mask for Int16s/Uint16s vectors. type Mask16s struct { _ _simd atLeast [2]uint64 // the actual vector size may be larger. } // And returns the bitwise AND of x and y. func (x Mask16s) And(y Mask16s) Mask16s // Or returns the bitwise OR of x and y. func (x Mask16s) Or(y Mask16s) Mask16s // String returns a string representation of the vector. func (x Mask16s) String() string // ToInt16s converts the mask to an Int16s vector. func (x Mask16s) ToInt16s() (to Int16s) // Mask32s represents a boolean mask for Int32s/Uint32s vectors. type Mask32s struct { _ _simd atLeast [2]uint64 // the actual vector size may be larger. } // And returns the bitwise AND of x and y. func (x Mask32s) And(y Mask32s) Mask32s // Or returns the bitwise OR of x and y. func (x Mask32s) Or(y Mask32s) Mask32s // String returns a string representation of the vector. func (x Mask32s) String() string // ToInt32s converts the mask to an Int32s vector. func (x Mask32s) ToInt32s() (to Int32s) // Mask64s represents a boolean mask for Int64s/Uint64s vectors. type Mask64s struct { _ _simd atLeast [2]uint64 // the actual vector size may be larger. } // And returns the bitwise AND of x and y. func (x Mask64s) And(y Mask64s) Mask64s // Or returns the bitwise OR of x and y. func (x Mask64s) Or(y Mask64s) Mask64s // String returns a string representation of the vector. func (x Mask64s) String() string // ToInt64s converts the mask to an Int64s vector. func (x Mask64s) ToInt64s() (to Int64s)