abstract away cfg
This commit is contained in:
parent
ba420b1554
commit
3ac17995cd
|
@ -252,10 +252,7 @@ impl Field {
|
||||||
x in x,
|
x in x,
|
||||||
y in y)
|
y in y)
|
||||||
{
|
{
|
||||||
#[cfg(feature = "f32")]
|
use crate::consts::PI;
|
||||||
use std::f32::consts::PI;
|
|
||||||
#[cfg(not(feature = "f32"))]
|
|
||||||
use std::f64::consts::PI;
|
|
||||||
|
|
||||||
let dx = (x - vortex_param.x0) - t;
|
let dx = (x - vortex_param.x0) - t;
|
||||||
let dy = y - vortex_param.y0;
|
let dy = y - vortex_param.y0;
|
||||||
|
|
|
@ -3,6 +3,13 @@ pub type Float = f32;
|
||||||
#[cfg(not(feature = "f32"))]
|
#[cfg(not(feature = "f32"))]
|
||||||
pub type Float = f64;
|
pub type Float = f64;
|
||||||
|
|
||||||
|
pub(crate) mod consts {
|
||||||
|
#[cfg(feature = "f32")]
|
||||||
|
pub(crate) use std::f32::consts::*;
|
||||||
|
#[cfg(not(feature = "f32"))]
|
||||||
|
pub(crate) use std::f64::consts::*;
|
||||||
|
}
|
||||||
|
|
||||||
pub mod euler;
|
pub mod euler;
|
||||||
pub mod grid;
|
pub mod grid;
|
||||||
pub mod integrate;
|
pub mod integrate;
|
||||||
|
|
|
@ -142,10 +142,7 @@ impl<UO: UpwindOperator> System<UO> {
|
||||||
}
|
}
|
||||||
|
|
||||||
fn gaussian(x: Float, x0: Float, y: Float, y0: Float) -> Float {
|
fn gaussian(x: Float, x0: Float, y: Float, y0: Float) -> Float {
|
||||||
#[cfg(feature = "f32")]
|
use crate::consts::PI;
|
||||||
use std::f32::consts::PI;
|
|
||||||
#[cfg(not(feature = "f32"))]
|
|
||||||
use std::f64::consts::PI;
|
|
||||||
|
|
||||||
let x = x - x0;
|
let x = x - x0;
|
||||||
let y = y - y0;
|
let y = y - y0;
|
||||||
|
|
|
@ -26,10 +26,6 @@ macro_rules! diff_simd_row_7_47 {
|
||||||
impl $self {
|
impl $self {
|
||||||
#[inline(never)]
|
#[inline(never)]
|
||||||
fn $name(prev: ArrayView2<Float>, mut fut: ArrayViewMut2<Float>) {
|
fn $name(prev: ArrayView2<Float>, mut fut: ArrayViewMut2<Float>) {
|
||||||
#[cfg(feature = "f32")]
|
|
||||||
type SimdIndex = packed_simd::u32x8;
|
|
||||||
#[cfg(not(feature = "f32"))]
|
|
||||||
type SimdIndex = packed_simd::u64x8;
|
|
||||||
assert_eq!(prev.shape(), fut.shape());
|
assert_eq!(prev.shape(), fut.shape());
|
||||||
assert!(prev.len_of(Axis(1)) >= 2 * $BLOCK.len());
|
assert!(prev.len_of(Axis(1)) >= 2 * $BLOCK.len());
|
||||||
assert!(prev.len() >= SimdT::lanes());
|
assert!(prev.len() >= SimdT::lanes());
|
||||||
|
@ -98,7 +94,7 @@ macro_rules! diff_simd_row_7_47 {
|
||||||
|
|
||||||
let last_elems =
|
let last_elems =
|
||||||
unsafe { SimdT::from_slice_unaligned_unchecked(&prev[nx - 8..]) }
|
unsafe { SimdT::from_slice_unaligned_unchecked(&prev[nx - 8..]) }
|
||||||
.shuffle1_dyn(SimdIndex::new(7, 6, 5, 4, 3, 2, 1, 0));
|
.shuffle1_dyn([7, 6, 5, 4, 3, 2, 1, 0].into());
|
||||||
if $symmetric {
|
if $symmetric {
|
||||||
fut[nx - 4] = idx * (block[3] * last_elems).sum();
|
fut[nx - 4] = idx * (block[3] * last_elems).sum();
|
||||||
fut[nx - 3] = idx * (block[2] * last_elems).sum();
|
fut[nx - 3] = idx * (block[2] * last_elems).sum();
|
||||||
|
|
Loading…
Reference in New Issue