Skip to content

Releases: FlorianPfaff/PyRecEst

Release 2.2.4

31 May 22:56
33cc95b

Choose a tag to compare

✨ 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 correct axis/keepdims semantics. (#2216)
  • Add PyTorch backend wrapper for argument reduction operations (argmin/argmax). (#2239)

🐛 Fixes

  • Fix underscored symmetric hypersphere mean dispatch so mean correctly delegates to the internal _mean computation. (#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 meshgrid to 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 PartiallyWrappedNormalDistribution to correctly handle edge case inputs. (#2177)
  • Fix JAX multinomial sampling to correctly manage the random number generator state. (#2178)
  • Fix backend meshgrid and 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 HistoryRecorder to correctly handle array-like inputs with padding. (#2184)
  • Fix PyTorch tuple reduction operations (min/max returning value and index) to work correctly. (#2187)
  • Fix HypercylindricalDiracDistribution conditioning 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 WrappedExponentialDistribution to correctly handle scalar parameter inputs. (#2198)
  • Fix backend and wrapped distribution input edge cases across multiple distributions. (#2200)
  • Fix track metric min_length denominator 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.choice to correctly handle the population array and sampling semantics. (#2208)
  • Fix PyTorch random.choice to correctly sample with and without replacement. (#2209)
  • Fix scalar process noise handling in the random matrix tracker. (#2210)
  • Fix JAX random.randint to follow the NumPy contract for shape and dtype. (#2211)
  • Fix PyTorch mean to correctly handle the axis argument. (#2212)
  • Fix PyTorch backend quantile computation to correctly handle the axis argument. (#2214)
  • Fix dtype promotion and bias validation edge cases in the shared backend. (#2215)
  • Fix PyTorch random.normal to correctly handle array parameters for loc and scale. (#2217)
  • Fix JAX meshgrid to 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 split and hsplit to match NumPy semantics for section-count and size-list arguments. (#2223)
  • Fix PyTorch random.multinomial to correctly accept sequence inputs. (#2225)
  • Fix MEM-RBPF FFBSi backward smoothing to correctly handle tuple record types. (#2226)
  • Fix backend assignment to 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 sum to correctly implement the keepdims contract. (#2234)
  • Fix PyTorch reduction operations to correctly implement the keepdims contract. (#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_normal to correctly accept array-like inputs. (#2245)
  • Fix PyTorch std to 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 linalg functions to correctly accept array-like inputs. (#2249)
  • Fix association gate monotonicity so the gate function correctly enforces its ordering constraint. (#2254)
  • Fix PyTorch mean to correctly handle integer array inputs. (#2257)
  • Fix PyTorch take and pad backend 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 copy to correctly handle scalar inputs without shape errors. (#2265)
  • Validate numerical repair helper parameters with explicit error checks. (#2266)
  • Fix backend matmul to 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_length parameter 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...
Read more

Release 2.2.3

22 May 06:38
26db78c

Choose a tag to compare

📚 Docs

  • Clarify the InformationFormDistributedKalmanNode/IDKFNode prediction-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-extensions version for documentation builds. (#2093)
  • Refresh the locked idna version in Poetry installs to 3.15. (#2094)
  • Raise the runtime and development idna pins 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.txt and requirements-min.txt install variants. (#2097)
  • Refresh generated requirement files after the dependency set changes. (#2099)
  • Update generated requirements to use idna 3.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-data tables package. (#2125)
  • Update generated requirements to use requests 2.34.2. (#2126)
  • Update generated requirements to use networkx 3.6.1. (#2127)
  • Update generated requirements to use boule 0.6.0. (#2128)
  • Update generated requirements to use packaging 26.2. (#2129)
  • Refresh the generated requirements for the Healpy, JAX, and PyTorch install variants. (#2131)
  • Update generated requirements to use requests 2.34.2. (#2133)
  • Update generated requirements to use pandas 3.0.3. (#2134)
  • Update generated requirements to use setuptools 82.0.1. (#2135)
  • Update generated requirements to use packaging 26.2. (#2136)
  • Update generated requirements to use idna 3.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_sparse conversion place multidimensional entries correctly when rebuilding dense arrays. (#2091)
  • Make HypersphericalGridDistribution.to_hemisphere() reject invalid even-sized grids with a clear ValueError. (#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_registry and 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

19 May 02:00
f250cb6

Choose a tag to compare

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

16 May 19:18

Choose a tag to compare

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

09 May 13:19
f86262b

Choose a tag to compare

⚡ Improvements

  • Expose linear Gaussian innovation diagnostics through KalmanFilter.innovation_linear(...) and KalmanFilter.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 AffineTransform for point-set registration workflows. (#1991)
  • Add student_t_covariance_scale(...) to compute robust measurement-covariance inflation for Student-t Kalman updates. (#1988)

✨ Features

  • Add NamedPairwiseFeatureSchema and CalibratedPairwiseAssociationModel to define named pairwise association features and turn them into calibrated match probabilities or costs. (#2004)
  • Add pairwise_mahalanobis_distances and pairwise_covariance_shape_components in pyrecest.utils for generic covariance-based association features. (#2003)
  • Add linear_gaussian_update_robust(...) and KalmanFilter.update_linear_robust(...) for gated, Student-t, Huber, and NIS-inflated linear-Gaussian measurement updates. (#1992)
  • Add pyrecest.filters.relaxed_s3f_so3 with relaxed S3F prediction helpers for SO(3) and S3+ x R3 state spaces. (#1998)
  • Add generic track-evaluation utilities in pyrecest.utils for scoring links, complete tracks, fragmentation, and aggregate track matrices across sessions. (#1997)
  • Add confidence-aware, heteroskedastic geodesic log-likelihood updates for SO3ProductParticleFilter and PartitionedSO3ProductParticleFilter. (#1996)
  • Expose a public pyrecest.distributions.so3_helpers module for quaternion normalization, exp/log maps, rotation conversion, geodesic distance, and vector rotation on SO(3). (#1990)
  • Add so3_right_multiplication_grid_transition(...) and quaternion_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

08 May 15:28
efc21d7

Choose a tag to compare

✨ Features

  • Add PartitionedSO3ProductParticleFilter for SO(3)^K states 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 SphericalHarmonicsEOTTracker for 3-D star-convex extended-object tracking with spherical-harmonic extent coefficients. (#1973)

⚡ Improvements

  • Speed up BinghamDistribution normalization 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

04 May 16:21
d07b3ec

Choose a tag to compare

✨ Features

  • Introduce AdditiveNoiseTransitionModel and AdditiveNoiseMeasurementModel so 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 AbstractGridFilter can 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(...) and update_model(...) support to particle filters for reusable transition-sampling and likelihood model objects. (#1947)
  • Add predict_model(...) and update_model(...) support to UnscentedKalmanFilter for reusable additive-noise transition and measurement models. (#1944)
  • Add KalmanFilter.predict_model(...) and update_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.models for particle, grid, and related estimators. (#1949)
  • Add reusable linear Gaussian transition and measurement model classes in pyrecest.models with prediction and noise helper methods. (#1946)
  • Add string-based representation conversion aliases such as particles, gaussian, grid, and fourier, plus convert_to(...) convenience methods on distributions. (#1931)
  • Introduce a distribution representation-conversion layer with convert_distribution(...), conversion registration helpers, and method-form convert_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 GoalConditionedReplayParticleIMMFilter with 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 for convert_distribution(...) and related helpers. (#1940)
  • Add pyrecest.protocols.testing helpers 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.typed marker so PyRecEst exposes its type information to external type checkers and typed downstream projects. (#1954)
  • Introduce the public pyrecest.protocols package 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 StateSpaceSubdivisionFilter linear updates and relaxed S3F covariance calculations with vectorized implementations. (#1926)

📚 Docs

  • Document how to extend pyrecest.protocols and add runnable custom distribution and custom filter examples. (#1963)
  • Add executable Kalman, Unscented Kalman, and particle filter examples that show how to use reusable model objects across filters. (#1943)

Release 1.1.2

29 Apr 10:52
81fac1a

Choose a tag to compare

What's Changed

Full Changelog: 1.1.1...1.1.2

Release 1.1.1

26 Apr 15:38
1c808e2

Choose a tag to compare

What's Changed

Full Changelog: 1.1.0...1.1.1

Release 1.1.0

25 Apr 08:44
f344bab

Choose a tag to compare

What's Changed

Full Changelog: 1.0.3...1.1.0