Add a prelude
This commit is contained in:
parent
891ba43605
commit
32d9111232
|
@ -11,6 +11,6 @@
|
|||
#![feature(stdsimd)]
|
||||
|
||||
pub mod simd;
|
||||
|
||||
pub mod util;
|
||||
pub use util::{array_op, defer_impl, unroll};
|
||||
|
||||
pub mod prelude;
|
||||
|
|
|
@ -0,0 +1,7 @@
|
|||
pub use crate::simd::SimdBitwise;
|
||||
pub use crate::simd::SimdLoad;
|
||||
pub use crate::simd::SimdSplat;
|
||||
pub use crate::simd::SimdTestAnd;
|
||||
|
||||
pub use crate::util::array_op;
|
||||
pub use crate::util::unroll;
|
13
src/util.rs
13
src/util.rs
|
@ -20,7 +20,7 @@ pub const unsafe fn __array_op__array_assume_init<T, const LEN: usize>(array: [M
|
|||
/// # Generation
|
||||
///
|
||||
/// ```rust
|
||||
/// # use brisk::array_op;
|
||||
/// # use brisk::util::array_op;
|
||||
/// const I_TIMES_2: [usize; 8] = array_op!(gen[8] |i| i * 2);
|
||||
///
|
||||
/// assert_eq!(I_TIMES_2, [0, 2, 4, 6, 8, 10, 12, 14]);
|
||||
|
@ -29,7 +29,7 @@ pub const unsafe fn __array_op__array_assume_init<T, const LEN: usize>(array: [M
|
|||
/// # Mapping
|
||||
///
|
||||
/// ```rust
|
||||
/// # use brisk::array_op;
|
||||
/// # use brisk::util::array_op;
|
||||
/// # const I_TIMES_2: [usize; 8] = array_op!(gen[8] |i| i * 2);
|
||||
/// const I_TIMES_2_PLUS_1: [usize; 8] = array_op!(map[8, I_TIMES_2] |i, x| x + 1);
|
||||
///
|
||||
|
@ -51,7 +51,7 @@ macro_rules! __array_op {
|
|||
}
|
||||
}};
|
||||
(map[$len:expr, $src:expr] |$i:pat_param, $s:pat_param| $val:expr) => {{
|
||||
$crate::array_op!(
|
||||
$crate::util::array_op!(
|
||||
gen[$len]
|
||||
| i
|
||||
| match i {
|
||||
|
@ -191,10 +191,10 @@ pub unsafe fn alloc_aligned(len: NonZeroUsize, align: usize) -> *mut u8 {
|
|||
#[macro_export]
|
||||
macro_rules! __unroll {
|
||||
(let [$( $x:ident ),+] => |$y:pat_param| $expr:expr) => {
|
||||
$crate::unroll!(let [$( $x: ($x) ),+] => |$y| $expr);
|
||||
$crate::util::unroll!(let [$( $x: ($x) ),+] => |$y| $expr);
|
||||
};
|
||||
(let [$( $id:ident: ($( $x:expr ),+) ),+] => |$( $y:pat_param ),+| $($expr:tt)+) => {
|
||||
$crate::unroll!(@ [$] [$( $id: ($( $x ),+) ),+] => |$( $y ),+| $($expr)+)
|
||||
$crate::util::unroll!(@ [$] [$( $id: ($( $x ),+) ),+] => |$( $y ),+| $($expr)+)
|
||||
};
|
||||
(@ [$dollar:tt] [$( $id:ident: ($( $x:expr ),+) ),+] => |$( $y:pat_param ),+| $($expr:tt)+) => {
|
||||
macro_rules! __unrolled {
|
||||
|
@ -211,7 +211,7 @@ macro_rules! __unroll {
|
|||
//)+
|
||||
};
|
||||
([$( ($( $x:expr ),+) ),+] => |$( $y:pat_param ),+| $($expr:tt)+) => {
|
||||
$crate::unroll!(@ [$] [$( ($( $x ),+) ),+] => |$( $y ),+| $($expr)+)
|
||||
$crate::util::unroll!(@ [$] [$( ($( $x ),+) ),+] => |$( $y ),+| $($expr)+)
|
||||
};
|
||||
(@ [$dollar:tt] [$( ($( $x:expr ),+) ),+] => |$( $y:pat_param ),+| $($expr:tt)+) => {
|
||||
macro_rules! __unrolled {
|
||||
|
@ -237,7 +237,6 @@ pub use __unroll as unroll;
|
|||
#[cfg(test)]
|
||||
mod test {
|
||||
use super::*;
|
||||
use crate::array_op;
|
||||
|
||||
#[test]
|
||||
pub fn test_align_down_to() {
|
||||
|
|
Loading…
Reference in New Issue