v0.14.1: Lambert solver, pure Rust NRLMSISE-00, docs overhaul#77
Merged
ssmichael1 merged 23 commits intomainfrom Mar 21, 2026
Merged
v0.14.1: Lambert solver, pure Rust NRLMSISE-00, docs overhaul#77ssmichael1 merged 23 commits intomainfrom
ssmichael1 merged 23 commits intomainfrom
Conversation
- Replace nalgebra dependency with numeris 0.5.5 throughout - Delete src/ode/ module entirely; use numeris built-in ODE solvers (RKF45, RKTS54, RKV65, RKV87, RKV98, RODAS4) - Update mathtypes.rs to alias numeris types (Vector, Matrix, Quaternion, DynMatrix) - Migrate all source files from nalgebra API to numeris API: - Vector3::new() → Vector3::from_array() - Quaternion::from_axis_angle(&axis, θ) → Quaternion::rotz/rotx/roty(θ) - m.fixed_view/fixed_view_mut → m.block/set_block - q.transform_vector(&v) → q * v - Matrix::identity() → Matrix::eye() - Update all Python bindings for numeris types and quaternion component order change (nalgebra [x,y,z,w] → numeris [w,x,y,z]) - Bump version to 0.14.0 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Add detailed changelog entry for the nalgebra→numeris migration - Remove qrot_xcoord/qrot_ycoord/qrot_zcoord wrapper functions, replace with direct Quaternion::rotx/roty/rotz calls - Fix remaining nalgebra references in doc comments Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
… 0.5.6 - Replace all Vector::from_array([...]) with numeris::vector![...] macro - Replace hand-rolled rotation_between() with Quaternion::rotation_between() - Delete src/filters/ module (UKF now available via numeris::estimate::Ukf) - Update numeris dependency to 0.5.6 with estimate and interp features - Update CHANGELOG Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Remove ndarray dependency from both Cargo.toml files (unused;
numpy crate re-exports it)
- Remove cty dependency; use std::ffi::{c_double, c_int} instead
- Remove 6 redundant reference-based Add/Sub operator impls from
ITRFCoord (both ITRFCoord and Vector3 are Copy)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Remove once_cell dependency; use std::sync::OnceLock (stable since Rust 1.70) as a drop-in replacement in all 5 files. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Adds .gitattributes to automatically strip Jupyter notebook outputs via the nbstripout git filter. Run `pip install nbstripout && nbstripout --install` after cloning to enable. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Fix typos: wehre→where, auxilliary→auxiliary, Periaps→Periapsis, quatnerion→quaternion, represention→representing, oreintation→orientation, Celestrial→Celestial, Eplanatory→Explanatory, computatation→computation, instanc→instant, Equinix→Equinox, fo→of Derive Copy for Kepler (6 f64s, 48 bytes). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…lerances) - Coordinate Frame Transforms: fix TLE construction (use from_lines), fix conjugate/angle property access (not method calls), fix SGP4 API - Covariance Propagation: fix quaternion conjugate property access - Atmospheric Density: relax ODE tolerances and shorten propagation duration to avoid step rejection on low-altitude drag orbits All 5 new tutorial notebooks now execute without errors. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Add 5 new tutorials to docs/tutorials/index.md - Replace Haystack Observatory with generic ground station in Coordinate Frame Transforms tutorial Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Implement Lambert's problem solver for orbital transfer design using Izzo's algorithm with Householder 4th-order iteration and multi-revolution support. Includes Rust core, Python bindings, tests, and documentation. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Switch all tutorial plots from Plotly to matplotlib + SciencePlots (STIX fonts, SVG output, colorblind-friendly numeris color palette) - Match numeris site theme (blue grey header, navigation tabs, muted links) - Generate static SVG plots at build time via docs/examples/gen_plots.py - Add Lambert Targeting tutorial with delta-v analysis and pork-chop plot - Fix docstring formatting across all Python stubs for mkdocstrings - Add concrete defs and typing overloads for proper API reference rendering - Update CI/CD: cartopy deps, plot generation, remove plotly Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Fix Notes section in TLE.fit_from_states (was rendering as code block) - Add CelesTrak as public TLE catalog source - Clarify as_euler() returns ZYX intrinsic (aerospace) Tait-Bryan angles Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Translate the NRLMSISE-00 atmospheric density model from C to pure Rust, removing the cc build dependency and extern/nrlmsise C source files. - All functions translated: gtd7d, gts7, globe7, glob7s, densu, densm, spline/splint/splini, ccor/ccor2, dnet, scalh, glatf, tselec - All coefficient tables faithfully transcribed from nrlmsise-00_data.c - Fixed PD[4] (O2 density) data table transcription error (10-element shift) - Mutable state encapsulated in NrlmsiseState struct (no global statics) - 22-case reference test validates against C output to <1e-10 relative error covering altitudes 50-1000km, latitudes, solar activity, and Ap levels - Remove cc crate from build-dependencies Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…st)" This reverts commit 127e63a.
The pure Rust translation is validated against the C output to <1e-10 relative error across 22 reference cases. Safe to remove. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
cc,nalgebra,ndarray,cty,once_cell; replace withnumeris0.5.6Test plan
cargo test— 125 passedpytest python/test/test.py— 58 passed🤖 Generated with Claude Code