I am considering a plan to port ndarray_linalg::generate::random feature into ndarray-rand crate. It is not depends on non-Ruat code (=LAPACK), and I think it will be useful for non-linalg users.
I'd like to improve the current API in the following two points. These are partially done in ndarray-linalg implementation.
Complex support
Default PRNG
- Most ndarray users will seek
ndarray_rand::random((n, n)) which does not need to initialize PRNG manually.
- They will not need CSPRNG, but rand::thread_rng returns CSPRNG. For Monte-Calro or randomized algorithm usage, Mersenne twister will be good choice. I've re-implement SFMT in pure-Rust with std::arch.
I am considering a plan to port
ndarray_linalg::generate::randomfeature into ndarray-rand crate. It is not depends on non-Ruat code (=LAPACK), and I think it will be useful for non-linalg users.I'd like to improve the current API in the following two points. These are partially done in ndarray-linalg implementation.
Complex support
randfeature which implDistribution<Complex> for StandardDefault PRNG
ndarray_rand::random((n, n))which does not need to initialize PRNG manually.