UnitComplex: make use of UnitCircle where available
This commit is contained in:
parent
2e22821740
commit
16d78f4680
|
@ -3,7 +3,7 @@ use quickcheck::{Arbitrary, Gen};
|
||||||
|
|
||||||
use num::One;
|
use num::One;
|
||||||
use num_complex::Complex;
|
use num_complex::Complex;
|
||||||
use rand::distributions::{Distribution, Standard, uniform::SampleUniform};
|
use rand::distributions::{Distribution, Standard};
|
||||||
use rand::Rng;
|
use rand::Rng;
|
||||||
|
|
||||||
use alga::general::RealField;
|
use alga::general::RealField;
|
||||||
|
@ -275,8 +275,21 @@ impl<N: RealField> One for UnitComplex<N> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[cfg(feature = "std")]
|
||||||
impl<N: RealField> Distribution<UnitComplex<N>> for Standard
|
impl<N: RealField> Distribution<UnitComplex<N>> for Standard
|
||||||
where N: SampleUniform
|
where rand_distr::UnitCircle: Distribution<[N; 2]>
|
||||||
|
{
|
||||||
|
/// Generate a uniformly distributed random `UnitComplex`.
|
||||||
|
#[inline]
|
||||||
|
fn sample<'a, R: Rng + ?Sized>(&self, rng: &mut R) -> UnitComplex<N> {
|
||||||
|
let x = rand_distr::UnitCircle.sample(rng);
|
||||||
|
UnitComplex::new_unchecked(Complex::new(x[0], x[1]))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[cfg(not(feature = "std"))]
|
||||||
|
impl<N: RealField> Distribution<UnitComplex<N>> for Standard
|
||||||
|
where N: rand::distributions::uniform::SampleUniform
|
||||||
{
|
{
|
||||||
/// Generate a uniformly distributed random `UnitComplex`.
|
/// Generate a uniformly distributed random `UnitComplex`.
|
||||||
#[inline]
|
#[inline]
|
||||||
|
|
Loading…
Reference in New Issue