Máscaras SIMD en Mojo
Comparar da una máscara por carril, y select la usa para mezclar dos vectores.
comptime F4 = SIMD[DType.float64, 4]
def main():
var readings = F4(0.5, 2.5, 3.5, 1.0)
var limit = F4(2.0)
var hot = readings.gt(limit)
print(hot)
print(hot.select(limit, readings))
print(hot.reduce_or(), hot.reduce_and())
Cómo funciona
readings.gt(limit)da un booleano por carril;>a secas da un soloBool.hot.select(limit, readings)tomalimitdonde la máscara es verdadera.reduce_oryreduce_andpreguntan si algún carril coincidió, o si todos.
Palabras clave y builtins usados aquí
DTypeSIMDdefprintvar
El intento, en números
- Líneas
- 10
- Caracteres a escribir
- 224
- Tokens
- 67
- Ritmo de tres estrellas
- 65 tpm
Al ritmo de tres estrellas de 65 tokens por minuto, este intento toma unos 62 segundos.
Paso 4 de 6 en SIMD; paso 9 de 22 en Parámetros y SIMD.