23 unstable releases (6 breaking)

new 0.6.1 Oct 15, 2020
0.5.6 Oct 11, 2020
0.4.6 May 4, 2020
0.4.3 Jan 8, 2020
0.3.2 Nov 27, 2019

#79 in Data structures

Download history 1316/week @ 2020-07-02 1239/week @ 2020-07-09 1668/week @ 2020-07-16 1235/week @ 2020-07-23 1282/week @ 2020-07-30 1395/week @ 2020-08-06 1469/week @ 2020-08-13 1505/week @ 2020-08-20 1640/week @ 2020-08-27 1579/week @ 2020-09-03 1465/week @ 2020-09-10 838/week @ 2020-09-17 426/week @ 2020-09-24 595/week @ 2020-10-01 514/week @ 2020-10-08 535/week @ 2020-10-15

5,181 downloads per month
Used in 22 crates (3 directly)

Zlib OR Apache-2.0 OR MIT

340KB
9K SLoC

License:Zlib Minimum Rust Version crates.io docs.rs

wide

A crate to help you go wide.

Specifically, this has portable "wide" data types that do their best to be SIMD when possible.

On x86 and x86_64 this is done with explicit intrinsic usage (via safe_arch), and on other architectures this is done by carefully writing functions so that LLVM hopefully does the right thing. When Rust stabilizes more explicit intrinsics then they can go into safe_arch and then they can get used here.


lib.rs:

A crate to help you go wide.

This crate provides SIMD-compatible data types.

When possible, explicit SIMD is used with all the math operations here. As a fallback, the fact the fact that all the lengths of a fixed length array are doing the same thing will often make LLVM notice that it should use SIMD instructions to complete the task. In the worst case, the code just becomes totally scalar (though the math is still correct, at least).

Crate Features

  • std: This causes the feature to link to std.
    • Currently this just improves the performance of sqrt when an explicit SIMD sqrt isn't available.

Dependencies

~635KB