countTrues
Function parameters
Parameters
- vec:anytype
Functions in this namespace
Functions
- suggestVectorLength
- Suggests a target-dependant vector length for a given type, or null if scalars are recommended.
- VectorIndex
- Returns the smallest type of unsigned ints capable of indexing any element within the given vector type.
- VectorCount
- Returns the smallest type of unsigned ints capable of holding the length of the given vector type.
- iota
- Returns a vector containing the first `len` integers in order from 0 to `len`-1.
- repeat
- Returns a vector containing the same elements as the input, but repeated until the desired length is reached.
- join
- Returns a vector containing all elements of the first vector at the lower indices followed by all elements of the second vector
- interlace
- Returns a vector whose elements alternates between those of each input vector.
- deinterlace
- The contents of `interlaced` is evenly split between vec_count vectors that are returned as an array.
- mergeShift
- Joins two vectors, shifts them leftwards (towards lower indices) and extracts the leftmost elements into a vector the length of a and b.
- shiftElementsRight
- Elements are shifted rightwards (towards higher indices).
- shiftElementsLeft
- Elements are shifted leftwards (towards lower indices).
- rotateElementsLeft
- Elements are shifted leftwards (towards lower indices).
- rotateElementsRight
- Elements are shifted rightwards (towards higher indices).
- prefixScanWithFunc
- Same as prefixScan, but with a user-provided, mathematically associative function.
- prefixScan
- Returns a vector whose elements are the result of performing the specified operation on the corresponding
Source
Implementation
pub fn countTrues(vec: anytype) VectorCount(@TypeOf(vec)) {
const len = vectorLength(@TypeOf(vec));
const CountIntType = VectorCount(@TypeOf(vec));
const all_ones: @Vector(len, CountIntType) = @splat(1);
const all_zeroes: @Vector(len, CountIntType) = @splat(0);
const one_if_true = @select(CountIntType, vec, all_ones, all_zeroes);
return @reduce(.Add, one_if_true);
}