You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Trigonometry, exponents, etc. (likely needs a separate crate with configurable trade-offs, not part of base fearless_simd)
floating-point remainder: no hardware support, approximations available for special cases, full support complex and expensive (might bundle with trigonometry crate?)
Desirable, needs implementation (vectors)
reduce_sumImplement reduce_sum() #357reduce_max/reduce_minImplement reduce_min()/reduce_max() and their precise variants #358Desirable, needs implementation (masks only)
Not investigated (TODO: move into another category)
reduce_or,reduce_xor, etc. Implement reduce_and, reduce_or, reduce_xor #346reduce_productImplement reduce_product() #361saturating_abs,saturating_neg,is_positive,is_negative,signum.leading_zeros,trailing_zeros,leading_ones,trailing_ones(expensive emulation but maybe still faster than scalar?)to_degrees,to_radianson floatssimd_clampon floatsroundon floats (round-ties-even is supported; ties away from zero has poor hardware support)Compatibilty/convenience wrappers
Not sure if we should add all of these, the API surface is large enough as it is.
to_bits/from_bitson floats (as an API compatibility wrapper aroundbitcast) Add to_bits/from_bits alias to bitcast() #370reverseAdd reverse() to both vectors and masks #356recipfirst_set/last_seton masks (wrapper aroundto_bitmask()+ scalar popcnt?)&,|, and^in either operand order on masksTricky API questions
extractsimd_swizzle!castbetween arbitrary same-lane-count vectors (we have explicit to_float/to_int and widen/narrow but not fully generic cast)abs_diffthat always needs to return unsigned values, and std doesn't implement for floatsNot planned
div,rem: no hardware supportload_or_default,load_or,load_select(only supported on AVX-512)