Releases: FlorianPfaff/PyRecEst
Releases · FlorianPfaff/PyRecEst
Release 2.2.4
✨ Features
- Add delayed-decision MHT utilities for deferred track management decisions in multi-hypothesis tracking. (#2169)
- Add SO3 product sequence filtering utilities for multi-step orientation filtering over particle sets. (#2154)
- Add RaFT-UAV helper utilities for UAV tracking with range and angle measurements. (#2153)
- Add SO3 tangent Savitzky-Golay smoother for polynomial smoothing of orientation sequences. (#2152)
- Add replay grid likelihood helpers for offline likelihood evaluation over pre-recorded grids. (#2151)
- Add experimental DVS (Dynamic Vision Sensor) core processing utilities. (#2150)
- Add max-cardinality assignment helper for optimal assignment problems with cardinality constraints. (#2149)
- Add fusion utility candidates including multi-sensor combination helpers. (#2148)
- Add discrete state space utilities for Markov chain and hidden Markov model filtering. (#2146)
- Add SCGP filter support for measurement reliability weights, enabling downweighting of uncertain observations. (#2145)
- Add JAX backend helpers for triangular vector pack/unpack operations. (#2159)
- Implement JAX positive-definite matrix check (
is_positive_definite) in the JAX backend. (#2190) - Add PyTorch backend wrappers for reduction operations (
sum,prod,any,all) with correctaxis/keepdimssemantics. (#2216) - Add PyTorch backend wrapper for argument reduction operations (
argmin/argmax). (#2239)
🐛 Fixes
- Fix underscored symmetric hypersphere mean dispatch so
meancorrectly delegates to the internal_meancomputation. (#2138) - Fix backend contract edge cases including indexing and shape operations across all backends. (#2160)
- Fix various runtime edge cases in PyRecEst distributions and filters. (#2161)
- Fix backend contract shape handling edge cases across array operations. (#2163)
- Fix runtime edge cases in various distribution and filter classes. (#2164)
- Complete MHT tracker fixes including track pruning and merging edge cases. (#2166)
- Harden multi-Bernoulli tracker and backend edge cases for robustness. (#2167)
- Fix backend and MHT edge cases including empty track set handling. (#2168)
- Fix multi-session assignment indexing so tracks are correctly mapped across sessions. (#2170)
- Fix time-offset calibration aggregation to correctly combine offset estimates from multiple sensors. (#2171)
- Fix hypertoroidal wrapped-normal distribution to correctly handle edge case inputs such as zero sigma and boundary points. (#2173)
- Fix backend
meshgridto correctly coerce array-like inputs before grid construction. (#2174) - Fix wrapped-normal distribution to correctly handle edge case inputs. (#2175)
- Fix hypertoroidal distributions to correctly accept scalar and list inputs across methods. (#2176)
- Fix
PartiallyWrappedNormalDistributionto correctly handle edge case inputs. (#2177) - Fix JAX multinomial sampling to correctly manage the random number generator state. (#2178)
- Fix backend
meshgridand JPDAF warning handling edge cases. (#2179) - Fix time-offset utility to validate input shapes before processing. (#2181)
- Fix JAX backend assignment indexing to correctly handle all index types. (#2182)
- Complete autograd backend contract, adding missing operations needed for gradient-based filtering. (#2183)
- Fix
HistoryRecorderto correctly handle array-like inputs with padding. (#2184) - Fix PyTorch tuple reduction operations (
min/maxreturning value and index) to work correctly. (#2187) - Fix
HypercylindricalDiracDistributionconditioning to correctly handle edge case observations. (#2188) - Fix tracklet Viterbi multi-session assignment to handle edge cases including empty sessions and boundary tracks. (#2189)
- Fix S2 coordinate conversion to validate inputs before conversion, preventing silent NaN propagation. (#2195)
- Fix positive-definite matrix shape validation to work correctly for NumPy and PyTorch backends. (#2196)
- Add support for scalar likelihood callbacks in the wrapped-normal filter update step. (#2194)
- Fix
WrappedExponentialDistributionto correctly handle scalar parameter inputs. (#2198) - Fix backend and wrapped distribution input edge cases across multiple distributions. (#2200)
- Fix track metric
min_lengthdenominator so track quality scores are computed correctly. (#2201) - Fix circular distribution constructors to correctly handle scalar parameters. (#2202)
- Fix backend and scalar parameter handling edge cases across distributions. (#2203)
- Fix association model to fall back correctly to an alternative solver when the primary solver fails. (#2205)
- Fix PyTorch
random.choiceto correctly handle the population array and sampling semantics. (#2208) - Fix PyTorch
random.choiceto correctly sample with and without replacement. (#2209) - Fix scalar process noise handling in the random matrix tracker. (#2210)
- Fix JAX
random.randintto follow the NumPy contract for shape and dtype. (#2211) - Fix PyTorch
meanto correctly handle theaxisargument. (#2212) - Fix PyTorch backend quantile computation to correctly handle the
axisargument. (#2214) - Fix dtype promotion and bias validation edge cases in the shared backend. (#2215)
- Fix PyTorch
random.normalto correctly handle array parameters forlocandscale. (#2217) - Fix JAX
meshgridto correctly coerce array-like inputs before constructing the coordinate grid. (#2218) - Fix PyTorch backend compatibility gaps including correct handling of
zeros_like,ones_like, and type promotion edge cases. (#2219) - Fix PyTorch
splitandhsplitto match NumPy semantics for section-count and size-list arguments. (#2223) - Fix PyTorch
random.multinomialto correctly accept sequence inputs. (#2225) - Fix MEM-RBPF FFBSi backward smoothing to correctly handle tuple record types. (#2226)
- Fix backend
assignmentto correctly handle empty index arrays as no-ops across all backends. (#2227) - Fix GNN tracker pairwise-cost validation to raise clear errors for malformed cost matrices. (#2232)
- Fix time-offset summary reporting to correctly identify the best-row offset estimate. (#2233)
- Fix PyTorch
sumto correctly implement thekeepdimscontract. (#2234) - Fix PyTorch reduction operations to correctly implement the
keepdimscontract. (#2237) - Fix positive-definite matrix checks to correctly handle non-symmetric matrices without false positives. (#2238)
- Fix scalar non-assignment costs in Murty k-best assignment to be handled correctly. (#2244)
- Fix PyTorch
multivariate_normalto correctly accept array-like inputs. (#2245) - Fix PyTorch
stdto correctly accept array-like inputs. (#2246) - Validate negative time-offset maximum delta, raising a clear error instead of silently producing incorrect offsets. (#2247)
- Validate Fibonacci Gaussian sampler inputs for finiteness and consistency. (#2248)
- Fix PyTorch
linalgfunctions to correctly accept array-like inputs. (#2249) - Fix association gate monotonicity so the gate function correctly enforces its ordering constraint. (#2254)
- Fix PyTorch
meanto correctly handle integer array inputs. (#2257) - Fix PyTorch
takeandpadbackend functions to correctly follow the NumPy contract. (#2258) - Filter non-finite reference values from calibration reference sets before processing. (#2262)
- Validate Euclidean sampler integer arguments before sampling to prevent cryptic failures. (#2263)
- Fix PyTorch backend
copyto correctly handle scalar inputs without shape errors. (#2265) - Validate numerical repair helper parameters with explicit error checks. (#2266)
- Fix backend
matmulto correctly accept array-like inputs including Python lists. (#2269) - Validate numerical tolerance parameters for finiteness and positivity. (#2270)
- Fix JAX UKF sigma-point updates to correctly propagate state covariance. (#2271)
- Fix non-vectorized Dirac transforms to work correctly across NumPy, PyTorch, and JAX backends. (#2272)
- Fix infinite log-weight normalization to clamp weights to finite values instead of producing NaN. (#2273)
- Validate sensor bias feature row counts before matrix construction. (#2274)
- Validate bias application feature row counts before applying sensor bias corrections. (#2275)
- Validate bias prediction row counts before matrix construction. (#2277)
- Validate finite sequence association costs, rejecting non-finite values before assignment. (#2281)
- Handle non-finite track observation IDs gracefully rather than propagating them into track data structures. (#2282)
- Reject NaN time delta cutoff parameters with a clear error. (#2283)
- Reject non-finite association weight arrays before running data association. (#2285)
- Validate ROI assignment threshold parameters with explicit error checks. (#2286)
- Validate non-assignment cost parameters for finiteness. (#2287)
- Validate chi-square gating state dimension parameter. (#2288)
- Validate track metric
min_lengthparameter to be a positive integer. (#2290) - Validate multi-session tracker max gap parameter explicitly. (#2291)
- Validate multi-session tracker integer inputs explicitly. (#2292)
- Validate candidate pruning top-k parameter to be a positive integer. (#2294)
- Validate adaptive process noise configuration parameters explicitly. (#2295)
- Validate linear update planning scalar parameters explicitly. (#2296)
- Validate bias calibration fitting parameters with explicit error checks. (#2297)
- Validate track manager integer inputs (e.g., max track count) explicitly. (#2301)
- Validate association gate parameters with explicit error checks. (#2302)
- Validate tracklet Viterbi tracker configuration parameters explicitly. (#2303)
- Validate diagnostic summary configuration parameters explicitly. (#2304)
- Validate dynamic model parameters with explicit error checks. (#2305)
- Validate sensor model parameters with explicit error checks. (#2306)
- Reject boolean values as model dimension parameters. (#2307)
- Validate numerical utility sc...
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