Skip to content

Commit

Permalink
rename extract to extract_lane (#1586)
Browse files Browse the repository at this point in the history
- [x] Added a `CHANGELOG.md` entry

# Summary

Rename a function which is only used for testing because it clashes with
`std::simd`

# Motivation

CI fails otherwise

# Details
  • Loading branch information
benjamin-lieser authored Feb 12, 2025
1 parent e0a70fd commit 49d76cd
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 16 deletions.
3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,9 @@ A [separate changelog is kept for rand_core](rand_core/CHANGELOG.md).

You may also find the [Upgrade Guide](https://rust-random.github.io/book/update.html) useful.

## [Unreleased]
- Fix feature `simd_support` for recent nightly rust (#1586)

## [0.9.0] - 2025-01-27
### Security and unsafe
- Policy: "rand is not a crypto library" (#1514)
Expand Down
29 changes: 16 additions & 13 deletions src/distr/uniform_float.rs
Original file line number Diff line number Diff line change
Expand Up @@ -248,39 +248,42 @@ mod tests {
let my_uniform = Uniform::new(low, high).unwrap();
let my_incl_uniform = Uniform::new_inclusive(low, high).unwrap();
for _ in 0..100 {
let v = rng.sample(my_uniform).extract(lane);
let v = rng.sample(my_uniform).extract_lane(lane);
assert!(low_scalar <= v && v <= high_scalar);
let v = rng.sample(my_incl_uniform).extract(lane);
let v = rng.sample(my_incl_uniform).extract_lane(lane);
assert!(low_scalar <= v && v <= high_scalar);
let v =
<$ty as SampleUniform>::Sampler::sample_single(low, high, &mut rng)
.unwrap()
.extract(lane);
.extract_lane(lane);
assert!(low_scalar <= v && v <= high_scalar);
let v = <$ty as SampleUniform>::Sampler::sample_single_inclusive(
low, high, &mut rng,
)
.unwrap()
.extract(lane);
.extract_lane(lane);
assert!(low_scalar <= v && v <= high_scalar);
}

assert_eq!(
rng.sample(Uniform::new_inclusive(low, low).unwrap())
.extract(lane),
.extract_lane(lane),
low_scalar
);

assert_eq!(zero_rng.sample(my_uniform).extract(lane), low_scalar);
assert_eq!(zero_rng.sample(my_incl_uniform).extract(lane), low_scalar);
assert_eq!(zero_rng.sample(my_uniform).extract_lane(lane), low_scalar);
assert_eq!(
zero_rng.sample(my_incl_uniform).extract_lane(lane),
low_scalar
);
assert_eq!(
<$ty as SampleUniform>::Sampler::sample_single(
low,
high,
&mut zero_rng
)
.unwrap()
.extract(lane),
.extract_lane(lane),
low_scalar
);
assert_eq!(
Expand All @@ -290,12 +293,12 @@ mod tests {
&mut zero_rng
)
.unwrap()
.extract(lane),
.extract_lane(lane),
low_scalar
);

assert!(max_rng.sample(my_uniform).extract(lane) <= high_scalar);
assert!(max_rng.sample(my_incl_uniform).extract(lane) <= high_scalar);
assert!(max_rng.sample(my_uniform).extract_lane(lane) <= high_scalar);
assert!(max_rng.sample(my_incl_uniform).extract_lane(lane) <= high_scalar);
// sample_single cannot cope with max_rng:
// assert!(<$ty as SampleUniform>::Sampler
// ::sample_single(low, high, &mut max_rng).unwrap()
Expand All @@ -307,7 +310,7 @@ mod tests {
&mut max_rng
)
.unwrap()
.extract(lane)
.extract_lane(lane)
<= high_scalar
);

Expand All @@ -326,7 +329,7 @@ mod tests {
&mut lowering_max_rng
)
.unwrap()
.extract(lane)
.extract_lane(lane)
<= high_scalar
);
}
Expand Down
6 changes: 3 additions & 3 deletions src/distr/utils.rs
Original file line number Diff line number Diff line change
Expand Up @@ -236,7 +236,7 @@ pub(crate) trait FloatSIMDScalarUtils: FloatSIMDUtils {
type Scalar;

fn replace(self, index: usize, new_value: Self::Scalar) -> Self;
fn extract(self, index: usize) -> Self::Scalar;
fn extract_lane(self, index: usize) -> Self::Scalar;
}

/// Implement functions on f32/f64 to give them APIs similar to SIMD types
Expand Down Expand Up @@ -320,7 +320,7 @@ macro_rules! scalar_float_impl {
}

#[inline]
fn extract(self, index: usize) -> Self::Scalar {
fn extract_lane(self, index: usize) -> Self::Scalar {
debug_assert_eq!(index, 0);
self
}
Expand Down Expand Up @@ -395,7 +395,7 @@ macro_rules! simd_impl {
}

#[inline]
fn extract(self, index: usize) -> Self::Scalar {
fn extract_lane(self, index: usize) -> Self::Scalar {
self.as_array()[index]
}
}
Expand Down

0 comments on commit 49d76cd

Please sign in to comment.