nyx-space / nyx

Nyx is a high fidelity, fast, reliable and validated astrodynamics toolkit library written in Rust and available in Python
https://nyxspace.com
GNU Affero General Public License v3.0
189 stars 20 forks source link

Replace the Gaussian generator with the multivariate generator #336

Closed ChristopherRabotin closed 3 months ago

ChristopherRabotin commented 4 months ago

Maintenance task description

There are two conflicting implementations of the Monte Carlo generator. Only one is mathematically correct: the multivariate generator. Work on #331 adds a spacecraft uncertainty structure to rotate from one frame into any other, and the KfEstimate also computes the uncertainty in any desired frame by using the OrbitDual structure to compute the partials.

The purpose of this issue is to allow a user to build a Multivariate generator using any orbital parameter, rotate that into the Cartesian state space, and disperse using that new inertial covariance.

Scope of work

This will likely lead to a fair amount of code being removed. It will probably lead to the specialization of the Monte Carlo structure to operate solely on spacecraft, but that is not an issue (if anything, it'll speed up the build time).

This issue will also replace the manual re-implementation of the multivariate distribution with nalgebra-mnv.

Priority

High

ChristopherRabotin commented 3 months ago

Follow-on work in #339 .

ChristopherRabotin commented 3 months ago

Done in https://github.com/nyx-space/nyx/pull/340.