concision_core/params/impls/
impl_params_rand.rs1use crate::params::ParamsBase;
6
7use ndarray::{DataOwned, Dimension, RawData, RemoveAxis, ScalarOperand, ShapeBuilder};
8use num_traits::{Float, FromPrimitive};
9use rand_distr::Distribution;
10
11impl<A, S, D> ParamsBase<S, D>
12where
13 A: Float + FromPrimitive + ScalarOperand,
14 D: Dimension,
15 S: RawData<Elem = A>,
16{
17 pub fn random_with<Dst, Sh>(shape: Sh, distr: Dst) -> Self
20 where
21 D: RemoveAxis,
22 S: DataOwned,
23 Sh: ShapeBuilder<Dim = D>,
24 Dst: Clone + Distribution<A>,
25 {
26 Self::init_from_fn(shape, || distr.sample(&mut rand::rng()))
27 }
28}