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
Often it would be convenient to be able to cast the entire SIMD value to an array reference instead of extracting lanes one by one, in a generic code over any SimdValue.
As far as I can tell, all implementations of SimdValue should be able to support this - AutoSimd<[T; N]> has array easily accessed via .0, primitives can be casted via std::slice::from_ref, num_complex::Complex has repr(C) compatible with [T; 2], std::simd-based implementation has its own as_array, and wide-based implementation has as_array_ref.
With that in mind, can we add as_array to SimdValue trait itself to make writing generic code easier?
The text was updated successfully, but these errors were encountered:
As far as I can tell, this already fails at trying to add as_array to the SimdValue trait, because the return type [Self::Element; Self::LANES] would require the rustc feature generic_const_exprs. And if you add an associated type and fill it in as an array via macro impls, you can't make use of the array in a generic context.
Often it would be convenient to be able to cast the entire SIMD value to an array reference instead of extracting lanes one by one, in a generic code over any
SimdValue
.As far as I can tell, all implementations of
SimdValue
should be able to support this -AutoSimd<[T; N]>
has array easily accessed via.0
, primitives can be casted viastd::slice::from_ref
,num_complex::Complex
hasrepr(C)
compatible with[T; 2]
,std::simd
-based implementation has its ownas_array
, andwide
-based implementation hasas_array_ref
.With that in mind, can we add
as_array
toSimdValue
trait itself to make writing generic code easier?The text was updated successfully, but these errors were encountered: