Skip to content

Commit

Permalink
array::from_fn
Browse files Browse the repository at this point in the history
  • Loading branch information
burrbull committed Aug 5, 2022
1 parent 692e6be commit c19d447
Show file tree
Hide file tree
Showing 3 changed files with 4 additions and 19 deletions.
11 changes: 2 additions & 9 deletions src/f32x.rs
Original file line number Diff line number Diff line change
Expand Up @@ -494,15 +494,8 @@ macro_rules! impl_math_f32 {

#[inline]
fn from_slice_offset(ptr: &[f32], vi: I32x) -> F32x {
use core::mem::MaybeUninit;

const L: usize = F32x::lanes();
let mut ar: [MaybeUninit<f32>; L] = MaybeUninit::uninit_array();
for i in 0..L {
ar[i].write(ptr[vi.extract(i) as usize]);
}

unsafe { MaybeUninit::array_assume_init(ar) }.into()
let ar: [f32; $size] = core::array::from_fn(|i| ptr[vi.extract(i) as usize]);
ar.into()
}

impl SqrtAsDoubled for F32x {
Expand Down
10 changes: 2 additions & 8 deletions src/f64x.rs
Original file line number Diff line number Diff line change
Expand Up @@ -474,14 +474,8 @@ macro_rules! impl_math_f64 {

#[inline]
fn from_slice_offset(ptr: &[f64], vi: Ix) -> F64x {
use core::mem::MaybeUninit;

const L: usize = F64x::lanes();
let mut ar: [MaybeUninit<f64>; L] = MaybeUninit::uninit_array();
for i in 0..L {
ar[i].write(ptr[vi.extract(i) as usize]);
}
unsafe { MaybeUninit::array_assume_init(ar) }.into()
let ar: [f64; $size] = core::array::from_fn(|i| ptr[vi.extract(i) as usize]);
ar.into()
}

#[inline]
Expand Down
2 changes: 0 additions & 2 deletions src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,6 @@
#![allow(clippy::float_cmp)]
#![allow(clippy::cognitive_complexity)]
#![allow(clippy::wrong_self_convention)]
#![feature(maybe_uninit_uninit_array)]
#![feature(maybe_uninit_array_assume_init)]

//! SLEEF stands for SIMD Library for Evaluating Elementary Functions.
//! It implements vectorized versions of all C99 real floating point math functions.
Expand Down

0 comments on commit c19d447

Please sign in to comment.