ndarray-rand with Complex and default PRNG

Offen
#681 2 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Anfängerfreundlichkeit
25/100
Issue-Typ
Feature
Klarheit
Muss geklärt werden
Aktivitätsstatus
Veraltet
Tech-Stack
rust
Bereich
data

Rechercherichtung

Start by comparing ndarray_linalg::generate::random with the ndarray-rand crate, then review the compatibility concerns in #658 and #659, num-complex's rand support, and rand::thread_rng. Done means the project has a decided API and implementation plan for Complex support and a default PRNG.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

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.
Vorherrschende Sprache
Rust
Sterne
4.3k
Forks
391
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus rust-ndarray/ndarray

Alle Issues in rust-ndarray/ndarray

Ähnliche Issues

Weitere Issues zu Rust

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.