Releases: FlorianPfaff/PyRecEst
Releases · FlorianPfaff/PyRecEst
Release 2.2.3
📚 Docs
- Clarify the
InformationFormDistributedKalmanNode/IDKFNodeprediction-input conventions in the API docs so node-local inputs are interpreted correctly. (#2088) - Expand the documentation with API-selection, distribution-taxonomy, error-handling, and install-footprint guidance for choosing and deploying PyRecEst. (#2102)
- Document the public API registry and backend capability matrix so supported modules and examples are easier to discover. (#2105)
- Add scientific validation documentation, a backend-portable workflows tutorial, and backend API matrix checks for cross-backend usage. (#2109)
- Document backend contracts and advanced tracking behavior while tightening distribution API and scientific-invariant coverage. (#2111)
📦 Dependencies
- Update generated requirements to use NumPy 2.4.6. (#2089)
- Refresh the locked
pymdown-extensionsversion for documentation builds. (#2093) - Refresh the locked
idnaversion in Poetry installs to 3.15. (#2094) - Raise the runtime and development
idnapins to 3.15 and add a temporary OSV override so dependency scans report the fixed version. (#2095) - Regenerate the dependency files, including new
requirements-all.txtandrequirements-min.txtinstall variants. (#2097) - Refresh generated requirement files after the dependency set changes. (#2099)
- Update generated requirements to use
idna3.15. (#2100) - Refresh the Poetry lockfile to keep packaged dependencies in sync. (#2115)
- Refresh the generated requirements and lockfile entries after dependency changes. (#2122)
- Update generated requirements to use the latest
astropy-iers-datatables package. (#2125) - Update generated requirements to use
requests2.34.2. (#2126) - Update generated requirements to use
networkx3.6.1. (#2127) - Update generated requirements to use
boule0.6.0. (#2128) - Update generated requirements to use
packaging26.2. (#2129) - Refresh the generated requirements for the Healpy, JAX, and PyTorch install variants. (#2131)
- Update generated requirements to use
requests2.34.2. (#2133) - Update generated requirements to use
pandas3.0.3. (#2134) - Update generated requirements to use
setuptools82.0.1. (#2135) - Update generated requirements to use
packaging26.2. (#2136) - Update generated requirements to use
idna3.16. (#2137) - Refresh the generated requirements for the Healpy, JAX, and PyTorch install variants after the latest dependency bumps. (#2140)
🐛 Fixes
- Make the JAX
array_from_sparseconversion place multidimensional entries correctly when rebuilding dense arrays. (#2091) - Make
HypersphericalGridDistribution.to_hemisphere()reject invalid even-sized grids with a clearValueError. (#2092) - Make NumPy and JAX backend contract operations such as reductions,
take,cross,scatter_add, and slicing behave more consistently. (#2104) - Resolve hyperrectangular distribution edge cases so NumPy, JAX, and PyTorch backends handle them consistently. (#2108)
- Restore custom distribution behavior and filter lazy exports so distributions and filter modules load consistently again. (#2110)
- Make Fibonacci, spherical, circular, and Driscoll-Healy samplers return valid grids for singleton and low-density edge cases. (#2117)
- Make evaluation runs pass Kalman process noise correctly, honor likelihood-based updates, and accept simulator-produced MTT ground-truth arrays. (#2119)
- Resolve evaluation distance selection and object-array estimate extraction so filter evaluations use the intended metrics and mean extractors. (#2121)
✨ Features
- Add CLI scenario tooling and backend-support utilities while resolving several tracking, distribution, and Gaussian numerics edge cases across PyRecEst. (#2096)
⚡ Improvements
- Add backend portability, optional-dependency, and numerical-stability utilities plus compatibility and release-note tooling for easier setup across environments. (#2103)
- Add backend capability and public API contract checks plus benchmark baselines to make supported features and regressions easier to track. (#2107)
- Add
pyrecest.api_registryand install, benchmark, and public-API checks so supported imports and dependency footprints are easier to audit. (#2112) - Add reproducibility and scenario-registry helpers and improve diagnostics, CLI discovery, and evaluation/filter backend boundaries. (#2114)
Release 2.2.2
What's Changed
- Fix MegaLinter lint errors across three files by @Copilot in #2067
- [MegaLinter] Apply linters automatic fixes by @github-actions[bot] in #2069
- Add fixed-lag and fixed-interval smoothers for MEM-QKF trackers by @FlorianPfaff in #2068
- [MegaLinter] Apply linters automatic fixes by @github-actions[bot] in #2070
- Add RB-FFBSi smoother for MEM-RBPF trackers by @FlorianPfaff in #2071
- [MegaLinter] Apply linters automatic fixes by @github-actions[bot] in #2072
- Align LOMEM update with paper reduction by @FlorianPfaff in #2074
- Fix MegaLinter E402 and invalid parameterized test case causing CI failures by @Copilot in #2078
- Ensure hypertoroidal wrapped-normal mean is 1-D by @FlorianPfaff in #2082
- Fix von Mises moment inversion by @FlorianPfaff in #2081
- Fix JAX wrapped-normal PDF convergence check by @FlorianPfaff in #2079
- Bump numpy from 2.4.4 to 2.4.5 by @dependabot[bot] in #2073
- Handle undefined hyperspherical mean directions by @FlorianPfaff in #2080
- Guard undefined hyperspherical mean directions by @FlorianPfaff in #2077
- Fix von Mises moment inversion edge cases by @FlorianPfaff in #2075
- Adapt RM smoother to Granstrom extent recursion by @FlorianPfaff in #2076
- [MegaLinter] Apply linters automatic fixes by @github-actions[bot] in #2085
- Bump version from 2.2.1 to 2.2.2 by @FlorianPfaff in #2086
- Update requirements by @github-actions[bot] in #2087
Full Changelog: 2.2.1...2.2.2
Release 2.2.1
What's Changed
- Add tracking performance metrics by @FlorianPfaff in #2011
- Add fixed-lag out-of-sequence measurement utilities by @FlorianPfaff in #2010
- Add ready-made dynamic and sensor model catalog by @FlorianPfaff in #2014
- Add association hypothesis and gating helpers by @FlorianPfaff in #2016
- Use matvec for camera projection helpers by @FlorianPfaff in #2017
- Add association hypothesis smoke workflow by @FlorianPfaff in #2019
- [MegaLinter] Apply linters automatic fixes by @github-actions[bot] in #2021
- Bump urllib3 from 2.6.3 to 2.7.0 by @dependabot[bot] in #2022
- Add Euclidean boxed particle filter by @FlorianPfaff in #2023
- Fix block particle filter lint issues by @FlorianPfaff in #2025
- [MegaLinter] Apply linters automatic fixes by @github-actions[bot] in #2026
- Fix MEM-RBPF tracker lint issue by @FlorianPfaff in #2027
- Bump urllib3 requirements to 2.7.0 by @FlorianPfaff in #2028
- Add VBRM extended object tracker by @FlorianPfaff in #2031
- Add MEM-QKF tracker by @FlorianPfaff in #2033
- [MegaLinter] Apply linters automatic fixes by @github-actions[bot] in #2034
- Update MEM-QKF robustness by @FlorianPfaff in #2035
- Add LOMEM extended object tracker by @FlorianPfaff in #2036
- Reuse MegaLinter autofix PR branch by @FlorianPfaff in #2041
- Add MEM-QKF batch update mode by @FlorianPfaff in #2037
- [MegaLinter] Apply linters automatic fixes by @github-actions[bot] in #2043
- Use backend in MEM-RBPF tracker by @FlorianPfaff in #2044
- [MegaLinter] Apply linters automatic fixes by @github-actions[bot] in #2045
- Restore velocity locked MEM-QKF aliases by @FlorianPfaff in #2047
- Bump torch from 2.11.0 to 2.12.0 by @dependabot[bot] in #2049
- [MegaLinter] Apply linters automatic fixes by @github-actions[bot] in #2048
- Add tests and exports for VL-MEM-QKF smoother by @FlorianPfaff in #2053
- [MegaLinter] Apply linters automatic fixes by @github-actions[bot] in #2050
- Add velocity-aided MEM-QKF tracker by @FlorianPfaff in #2051
- Add mode RBPF manifold UKF tracker by @FlorianPfaff in #2052
- [MegaLinter] Apply linters automatic fixes by @github-actions[bot] in #2054
- Fix vMF deterministic sigma-point sampler by @FlorianPfaff in #2055
- [MegaLinter] Apply linters automatic fixes by @github-actions[bot] in #2056
- Fix hypertoroidal Dirac marginalization typing by @FlorianPfaff in #2058
- [MegaLinter] Apply linters automatic fixes by @github-actions[bot] in #2059
- [MegaLinter] Apply linters automatic fixes by @github-actions[bot] in #2060
- Fix JAX backend failures in mixture pruning and vMF deterministic sampling by @Copilot in #2061
- [MegaLinter] Apply linters automatic fixes by @github-actions[bot] in #2062
- Bump version from 2.2.0 to 2.2.1 by @FlorianPfaff in #2063
- Update requirements by @github-actions[bot] in #2064
- [MegaLinter] Apply linters automatic fixes by @github-actions[bot] in #2065
Full Changelog: 2.2.0...2.2.1
Release 2.2.0
⚡ Improvements
- Expose linear Gaussian innovation diagnostics through
KalmanFilter.innovation_linear(...)andKalmanFilter.normalized_innovation_squared_linear(...)for backend-native Kalman consistency checks. (#1999) - Add
KalmanFilter.update_model_robust(...)so model-based Kalman filters can use robust linear-Gaussian updates with gating, Huber, and Student-t scaling. (#2002) - Add optional diagnostics to linear Gaussian and Kalman updates, including residuals, normalized innovation squared, measurement-noise scale, and action labels. (#1987)
- Add inverse and composition helpers to
AffineTransformfor point-set registration workflows. (#1991) - Add
student_t_covariance_scale(...)to compute robust measurement-covariance inflation for Student-t Kalman updates. (#1988)
✨ Features
- Add
NamedPairwiseFeatureSchemaandCalibratedPairwiseAssociationModelto define named pairwise association features and turn them into calibrated match probabilities or costs. (#2004) - Add
pairwise_mahalanobis_distancesandpairwise_covariance_shape_componentsinpyrecest.utilsfor generic covariance-based association features. (#2003) - Add
linear_gaussian_update_robust(...)andKalmanFilter.update_linear_robust(...)for gated, Student-t, Huber, and NIS-inflated linear-Gaussian measurement updates. (#1992) - Add
pyrecest.filters.relaxed_s3f_so3with relaxed S3F prediction helpers for SO(3) and S3+ x R3 state spaces. (#1998) - Add generic track-evaluation utilities in
pyrecest.utilsfor scoring links, complete tracks, fragmentation, and aggregate track matrices across sessions. (#1997) - Add confidence-aware, heteroskedastic geodesic log-likelihood updates for
SO3ProductParticleFilterandPartitionedSO3ProductParticleFilter. (#1996) - Expose a public
pyrecest.distributions.so3_helpersmodule for quaternion normalization, exp/log maps, rotation conversion, geodesic distance, and vector rotation on SO(3). (#1990) - Add
so3_right_multiplication_grid_transition(...)andquaternion_grid_transition_density(...)for quaternion-grid prediction on SO(3). (#1995)
🐛 Fixes
- Resolve scalar SO(3) geodesic-distance handling and keep quaternion-grid transition densities normalized for SO(3) particle-filter workflows. (#2000)
Release 2.1.0
✨ Features
- Add
PartitionedSO3ProductParticleFilterforSO(3)^Kstates with configurable partitions, per-block weights, and block-wise resampling. (#1980) - Add configurable post-update resampling to particle filters so users can keep weighted particles, trigger resampling manually, or apply a custom resampling rule. (#1978)
- Let
FullSCGPTracker.update()weight or mask individual measurements so unreliable detections can be down-weighted or ignored during shape and kinematic updates. (#1976) - Add
SphericalHarmonicsEOTTrackerfor 3-D star-convex extended-object tracking with spherical-harmonic extent coefficients. (#1973)
⚡ Improvements
- Speed up
BinghamDistributionnormalization and moment fitting, especially for 2D and 4D cases, to make Bingham-based estimation much faster. (#1972) - Make
HyperhemisphericalGridFilter.get_point_estimate()return the dominant scatter-matrix eigenvector directly for much faster point estimates. (#1970)
Release 2.0.0
✨ Features
- Introduce
AdditiveNoiseTransitionModelandAdditiveNoiseMeasurementModelso nonlinear additive-noise dynamics and sensor models can be defined once and reused across compatible filters. (#1950) - Add SO(3) and SO(3)^K representation conversion support, including aliases and tangent-Gaussian and Dirac approximations for rotation distributions. (#1939)
- Add reusable model adapters for grid filters so
AbstractGridFiltercan update from likelihood models and predict from transition-density models. (#1948) - Expand representation conversion aliases with domain-specific targets, custom alias registration, and a runnable conversion example for more distribution families. (#1964)
- Add
predict_model(...)andupdate_model(...)support to particle filters for reusable transition-sampling and likelihood model objects. (#1947) - Add
predict_model(...)andupdate_model(...)support toUnscentedKalmanFilterfor reusable additive-noise transition and measurement models. (#1944) - Add
KalmanFilter.predict_model(...)andupdate_model(...)so linear Gaussian model objects can be passed directly to the filter. (#1945) - Add reusable likelihood, transition-sampling, and transition-density model objects in
pyrecest.modelsfor particle, grid, and related estimators. (#1949) - Add reusable linear Gaussian transition and measurement model classes in
pyrecest.modelswith prediction and noise helper methods. (#1946) - Add string-based representation conversion aliases such as
particles,gaussian,grid, andfourier, plusconvert_to(...)convenience methods on distributions. (#1931) - Introduce a distribution representation-conversion layer with
convert_distribution(...), conversion registration helpers, and method-formconvert_to(...)access on distributions. (#1929) - Add proposal-based rejuvenation for goal-conditioned replay particle filters so particles can be pulled back onto high-likelihood position hypotheses after an update. (#1928)
- Add
GoalConditionedReplayParticleIMMFilterwith per-particle motion modes for stationary, diffusion, momentum, goal-directed, and jump replay dynamics. (#1927)
⚡ Improvements
- Make the representation conversion API available directly from
pyrecest.distributions, including package-level exports forconvert_distribution(...)and related helpers. (#1940) - Add
pyrecest.protocols.testinghelpers that make it easier to check whether custom distributions, filters, and models satisfy PyRecEst capability protocols. (#1953) - Add public model capability protocols and adapter helpers that let existing Kalman-style APIs accept structurally compatible model objects. (#1962)
- Add a protocol capability matrix for representative distributions and filters, and ensure batched particle-model predictions keep the expected particle layout. (#1965)
- Ship a
py.typedmarker so PyRecEst exposes its type information to external type checkers and typed downstream projects. (#1954) - Introduce the public
pyrecest.protocolspackage with common array and dimension contracts plus filter capability protocols for extension code. (#1952) - Add backend-aware validation utilities for model vectors, matrices, covariances, and inferred state dimensions to make reusable model objects safer to construct. (#1942)
- Speed up
StateSpaceSubdivisionFilterlinear updates and relaxed S3F covariance calculations with vectorized implementations. (#1926)
📚 Docs
Release 1.1.2
What's Changed
- [codex] improve docs and examples by @FlorianPfaff in #1886
- [codex] add von Mises-Fisher multiplication example by @FlorianPfaff in #1888
- [codex] add gaussian multiplication example by @FlorianPfaff in #1887
- [MegaLinter] Apply linters automatic fixes by @FlorianPfaff in #1890
- [codex] add multi-target tracking example by @FlorianPfaff in #1889
- Add initial documentation pages by @FlorianPfaff in #1891
- Add Poetry build backend by @FlorianPfaff in #1898
- Add Sobol and Halton proposal grid samplers by @FlorianPfaff in #1901
- Add docstring references for distributions and filters by @FlorianPfaff in #1897
- Document common shapes and conventions by @FlorianPfaff in #1892
- Improve core API docstrings by @FlorianPfaff in #1893
- [MegaLinter] Apply linters automatic fixes by @FlorianPfaff in #1903
- Add generated API docs by @FlorianPfaff in #1896
- [MegaLinter] Apply linters automatic fixes by @FlorianPfaff in #1907
- Add manifold exponential moving average by @FlorianPfaff in #1905
- Add Fibonacci rejection sampler by @FlorianPfaff in #1902
- Move UKF sigma points to sampling by @FlorianPfaff in #1900
- Document backend compatibility by @FlorianPfaff in #1894
- Add SO3 chordal mean smoother by @FlorianPfaff in #1906
- [MegaLinter] Apply linters automatic fixes by @FlorianPfaff in #1908
- Add sliding-window manifold mean smoother by @FlorianPfaff in #1904
- [MegaLinter] Apply linters automatic fixes by @FlorianPfaff in #1909
- Add task tutorial documentation by @FlorianPfaff in #1895
- Add SO3 Dirac distribution by @FlorianPfaff in #1910
- Add circular relaxed S3F prediction helpers by @FlorianPfaff in #1899
- [MegaLinter] Apply linters automatic fixes by @FlorianPfaff in #1916
- Add SO3 distance helpers by @FlorianPfaff in #1917
- Add SO3 tangent Gaussian distribution by @FlorianPfaff in #1911
- Bump version from 1.1.1 to 1.1.2 by @FlorianPfaff in #1919
- Fix hyperhemispherical uniform sampling by @FlorianPfaff in #1918
- Add SO3 Bingham distribution by @FlorianPfaff in #1912
- [MegaLinter] Apply linters automatic fixes by @FlorianPfaff in #1921
- Fix SO3 Dirac chordal distance clip import by @FlorianPfaff in #1920
- Add SO3 uniform distribution by @FlorianPfaff in #1913
- Add SO3 product particle filter by @FlorianPfaff in #1922
- Update workflow actions for Node 24 by @FlorianPfaff in #1924
- Add SO3 product tangent Gaussian distribution by @FlorianPfaff in #1915
- Add SO3 product Dirac distribution by @FlorianPfaff in #1914
Full Changelog: 1.1.1...1.1.2
Release 1.1.1
What's Changed
- [codex] Fix GNN default gating threshold by @FlorianPfaff in #1845
- [codex] Fix Dirac distribution mode selection by @FlorianPfaff in #1838
- [codex] Add Fourier-coefficient RHM tracker by @FlorianPfaff in #1839
- [codex] Export score-native multisession helpers by @FlorianPfaff in #1847
- [codex] Fix groundtruth input timestep indexing by @FlorianPfaff in #1854
- [codex] Fix JAX randint backend by @FlorianPfaff in #1849
- [codex] Fix scalar filter parameter expansion by @FlorianPfaff in #1862
- [codex] Add MEM-EKF tracker by @FlorianPfaff in #1850
- [codex] Fix GPRHM contour point count by @FlorianPfaff in #1859
- [codex] Fix hypertoroidal nonadditive particle prediction by @FlorianPfaff in #1857
- [codex] Add numerical circular KL divergence by @FlorianPfaff in #1868
- [codex] Fix KernelSME empty gated update by @FlorianPfaff in #1864
- [codex] Fix EOT fixed-count array handling by @FlorianPfaff in #1855
- [codex] Fix deviation failure warning without metadata by @FlorianPfaff in #1860
- [codex] Fix summarize run count warning by @FlorianPfaff in #1840
- Allow CI workflows on PRs to any branch by @FlorianPfaff in #1869
- [codex] Fix Shapely boundary sampling by @FlorianPfaff in #1846
- [codex] Fix PyTorch choice without replacement by @FlorianPfaff in #1841
- Add abstract interface for multiple extended-object trackers by @FlorianPfaff in #1863
- [codex] Fix Poetry extras dependency declarations by @FlorianPfaff in #1842
- [codex] Add basic Kalman filter example by @FlorianPfaff in #1875
- [codex] Fix PyTorch backend std signature by @FlorianPfaff in #1872
- Update requirements by @FlorianPfaff in #1876
- Update Python image version in devcontainer.json by @FlorianPfaff in #1874
- [codex] Fix random matrix extent update by @FlorianPfaff in #1843
- [codex] Fix MTT measurement generation by @FlorianPfaff in #1852
- [codex] Fix groundtruth object-array indexing by @FlorianPfaff in #1856
- [MegaLinter] Apply linters automatic fixes by @FlorianPfaff in #1851
- Remove 'useless-suppression' from pyproject.toml by @FlorianPfaff in #1878
- [codex] Add EKF spline tracker by @FlorianPfaff in #1865
- [codex] Add observation-specific multisession costs by @FlorianPfaff in #1870
- [MegaLinter] Apply linters automatic fixes by @FlorianPfaff in #1879
- [codex] Align distribution method signatures by @FlorianPfaff in #1881
- [MegaLinter] Apply linters automatic fixes by @FlorianPfaff in #1882
- Added CircularFourierFilter by @FlorianPfaff in #273
- Added SE2StateSpaceSubdivisionGaussianDistribution by @FlorianPfaff in #277
- [codex] Extend GP-RHM with full SCGP tracker variants by @FlorianPfaff in #1861
- Codex/add mem ekf tracker by @FlorianPfaff in #1880
- [codex] Fix EOT measurement timestep poses by @FlorianPfaff in #1844
- [codex] Use pyrecest.backend copy alias by @FlorianPfaff in #1884
- [MegaLinter] Apply linters automatic fixes by @FlorianPfaff in #1883
- Bump version from 1.1.0 to 1.1.1 by @FlorianPfaff in #1885
Full Changelog: 1.1.0...1.1.1
Release 1.1.0
What's Changed
- [codex] Clarify manual PyPI publish target selection by @FlorianPfaff in #1830
- [codex] Publish PyPI artifacts from GitHub release assets by @FlorianPfaff in #1831
- [codex] Update pyrecest/evaluation/plot_results.py by @FlorianPfaff in #1791
- [codex] Update pyrecest/evaluation/summarize_filter_results.py by @FlorianPfaff in #1790
- [codex] Update pyrecest/evaluation/evaluate_for_simulation_config.py by @FlorianPfaff in #1782
- Feature/gaussvm new by @FlorianPfaff in #1764
- Added SE3LinVelCartProdStackedDistribution by @FlorianPfaff in #265
- Added feature-based association by @FlorianPfaff in #1750
- [codex] Reorganize repository layout by @FlorianPfaff in #1833
- Update requirements by @FlorianPfaff in #1832
- [codex] Update pyrecest/evaluation/eot_shape_database.py by @FlorianPfaff in #1780
- Port ComplexWatsonDistribution and BayesianComplexWatsonMixtureModel from MATLAB by @Copilot in #1648
- EOT evaluation with test by @FlorianPfaff in #1433
- [codex] Add GGIW extended object tracker by @FlorianPfaff in #1834
- Score native multisession helpers by @FlorianPfaff in #1821
- Added ROI-overlap-based global association by @FlorianPfaff in #1743
- [codex] Update pyrecest/evaluation/generate_simulated_scenarios.py by @FlorianPfaff in #1786
- [codex] Update pyrecest/filters/joint_probabilistic_data_association_filter.py by @FlorianPfaff in #1794
- [MegaLinter] Apply linters automatic fixes by @FlorianPfaff in #1836
Full Changelog: 1.0.3...1.1.0
Release 1.0.3
What's Changed
- Added point set registration by @FlorianPfaff in #1742
- Add ability to use external cost mat for GNN by @FlorianPfaff in #1741
- Added nonrigid point set registration by @FlorianPfaff in #1749
- [MegaLinter] Apply linters automatic fixes by @FlorianPfaff in #1773
- Remove dependency on bayesian_filters by @FlorianPfaff in #1737
- [codex] Ignore pylint redefined-builtin by @FlorianPfaff in #1800
- Bump idna from 3.11 to 3.12 by @dependabot[bot] in #1775
- Bump setuptools from 81.0.0 to 82.0.1 by @dependabot[bot] in #1770
- Consolidate point set registration by @FlorianPfaff in #1776
- [codex] Add backend isscalar function by @FlorianPfaff in #1808
- [MegaLinter] Apply linters automatic fixes by @FlorianPfaff in #1810
- Bump certifi from 2026.2.25 to 2026.4.22 by @dependabot[bot] in #1815
- Bump torch from 2.10.0 to 2.11.0 by @dependabot[bot] in #1813
- Bump idna from 3.12 to 3.13 by @dependabot[bot] in #1814
- [codex] Update pyrecest/filters/hyperhemispherical_particle_filter.py by @FlorianPfaff in #1793
- [codex] Update pyrecest/evaluation/determine_all_deviations.py by @FlorianPfaff in #1779
- Minor cleanup for gaussian distribution by @FlorianPfaff in #1777
- [MegaLinter] Apply linters automatic fixes by @FlorianPfaff in #1817
- Added AbstractPeriodicGridDistribution by @FlorianPfaff in #288
- Added HypercylindricalStateSpaceSubdivisionGaussianDistribution by @FlorianPfaff in #291
- Added Murty-based k-best partial assignment by @FlorianPfaff in #1738
- Added HypercylindricalStateSpaceSubdivisionDistribution by @FlorianPfaff in #248
- Bump version from 1.0.2 to 1.0.3 by @FlorianPfaff in #1823
- Added history recorder by @FlorianPfaff in #1744
- [codex] Add size to the backend interface by @FlorianPfaff in #1820
- [codex] Update pyrecest/evaluation/perform_predict_update_cycles.py by @FlorianPfaff in #1789
- [codex] Update pyrecest/filters/hyperhemisphere_cart_prod_particle_filter.py by @FlorianPfaff in #1792
- Update requirements by @FlorianPfaff in #1824
- Remove no longer required requirements file by @FlorianPfaff in #1827
- Cancel in-progress test workflow runs on new PR commits by @FlorianPfaff in #1826
- [codex] Replace stdlib copy imports with pyrecest.backend.copy by @FlorianPfaff in #1825
- Bump matplotlib from 3.10.8 to 3.10.9 by @dependabot[bot] in #1829
- Added CircularGridDistribution by @FlorianPfaff in #285
- [codex] Update pyrecest/evaluation/get_distance_function.py by @FlorianPfaff in #1787
- [codex] Update pyrecest/evaluation/iterate_configs_and_runs.py by @FlorianPfaff in #1788
Full Changelog: 1.0.2...1.0.3