This adds types implementing SIMD-related traits, but without relying on any SIMD intrinsic. This leaves auto-vectorization do all the job.
This is different from what, e.g., wide or packed_simd do because we have:
The guarantee that no explicit SIMD is performed, even on platforms that would support them.
The guarantee that we use the libm carte for all float operations when libm_force is enabled, even on platforms with std enabled (this can be needed for cross-platform determinism).
This adds types implementing SIMD-related traits, but without relying on any SIMD intrinsic. This leaves auto-vectorization do all the job.
This is different from what, e.g.,
wide
orpacked_simd
do because we have:libm
carte for all float operations whenlibm_force
is enabled, even on platforms withstd
enabled (this can be needed for cross-platform determinism).