Skip to content

v0.5.0

Latest

Choose a tag to compare

@rhannequin rhannequin released this 22 Jun 22:38
8ca9b82

[0.5.0] - 2026-06-23

Features

  • Read binary PCK (DAF/PCK) orientation kernels via Ephem::PCK, exposing a
    body's Euler angles and rates over time (angles_at, orientation_at), the
    foundation for DE440-grade lunar libration (#76, #80)
  • Add Ephem::Core::Orientation (Euler angles + optional rates) and
    Ephem::Core::Rotation (kernel-agnostic rotation-matrix helpers), plus
    Orientation#to_matrix / OrientationSegment#matrix_at for the built-in
    3-1-3 (Z-X-Z) reference→body convention
  • Excerpt and the excerpt CLI now support binary PCK kernels, detecting the
    kernel kind automatically
  • Download binary PCK lunar orientation kernels from NAIF via Ephem::Download
  • Add #inspect and #to_s to State for easier debugging (#67)

Improvements

  • Route queries to the covering segment when a body/pair spans multiple
    time-split segments (SPK and PCK), with no overhead for single-segment keys
  • Share the type-2 Chebyshev machinery between SPK and PCK segments
  • Evaluate position and velocity in a single Chebyshev pass
    (ChebyshevPolynomial.evaluate_with_derivative), speeding up every state /
    orientation query (compute_and_differentiate, state_at, orientation_at)
    with bit-for-bit identical results
  • Correct the documented velocity unit to km/day (the actual, validated value)
  • Remove the numo-narray dependency (#65)
  • Skip derivative evaluation in Segment#compute (#57)
  • Hoist loop-invariant t2 computation in Chebyshev evaluation (#58)
  • Cache the RecordParser instance in SummaryManager (#63)
  • Eliminate a redundant read_record call in SummaryManager (#62)
  • Replace duplicated endianness format lookups with shared constants (#64)
  • Replace instance_variable_get with proper attr_readers in Excerpt
    (#66)
  • Use separate error margins for position and velocity validation (#61)
  • Add a comprehensive benchmark suite (#68)
  • Upgrade default Ruby to 4.0.5 (#81)
  • Match SPICE last-loaded-wins precedence for overlapping segments (#83)
  • Add a dedicated spec for the shared type-2 Chebyshev evaluation (#84)
  • Bump standard from 1.50.0 to 1.55.0 by @dependabot (#45, #46, #56,
    #78)
  • Bump actions/checkout from 4 to 7 by @dependabot (#44, #52, #79)
  • Bump rake from 13.3.0 to 13.4.2 by @dependabot (#48, #73)
  • Bump zlib from 3.2.1 to 3.2.3 by @dependabot (#49, #70)
  • Bump rspec from 3.13.1 to 3.13.2 by @dependabot (#47)
  • Bump parallel from 1.27.0 to 1.28.0 by @dependabot (#71)
  • Bump benchmark-ips from 2.14.0 to 2.15.1 by @dependabot (#75)
  • Bump json from 2.18.1 to 2.19.2 by @dependabot (#77)

Bug fixes

  • Fix compute_and_differentiate returning mismatched velocities for an array
    of times
  • Fix precision loss in time_to_seconds for dates far from J2000 (#60)

Full Changelog: v0.4.1...v0.5.0