Skip to content

Add manifold exponential moving average#1905

Merged
FlorianPfaff merged 2 commits intomainfrom
codex/manifold-exponential-moving-average
Apr 28, 2026
Merged

Add manifold exponential moving average#1905
FlorianPfaff merged 2 commits intomainfrom
codex/manifold-exponential-moving-average

Conversation

@FlorianPfaff
Copy link
Copy Markdown
Owner

Summary

Adds ManifoldExponentialMovingAverage, a generic exponential moving average filter for manifold-valued samples. The update moves the current estimate toward each new sample in the local tangent space using the same phi / phi_inv retraction convention used by UKFOnManifolds.

The class supports initializing from an explicit initial state or from the first observed sample, validates the EMA weight, exposes the current estimate through filter_state and get_point_estimate, and is exported from pyrecest.filters.

Tests

  • PYTHONPATH=src python -m pytest tests/filters/test_manifold_exponential_moving_average.py tests/filters/test_ukf_on_manifolds.py -q
  • PYTHONPATH=src python -m pytest tests/filters -q timed out after 5 minutes in the local environment without producing a failure report.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 28, 2026

MegaLinter analysis: Success

Descriptor Linter Files Fixed Errors Warnings Elapsed time
✅ COPYPASTE jscpd yes no no 10.05s
✅ JSON prettier 2 0 0 0 0.32s
✅ JSON v8r 2 0 0 29.72s
✅ MARKDOWN markdownlint 7 0 0 0 0.97s
✅ MARKDOWN markdown-table-formatter 7 0 0 0 0.24s
✅ PYTHON bandit 419 0 0 6.45s
✅ PYTHON black 419 0 0 0 9.95s
✅ PYTHON flake8 419 0 0 3.64s
✅ PYTHON isort 419 0 0 0 0.78s
✅ PYTHON mypy 419 0 0 5.51s
✅ PYTHON pylint 419 0 0 120.0s
✅ PYTHON ruff 419 0 0 0 0.07s
✅ REPOSITORY checkov yes no no 12.05s
✅ REPOSITORY gitleaks yes no no 7.23s
✅ REPOSITORY git_diff yes no no 0.12s
✅ REPOSITORY secretlint yes no no 4.39s
✅ REPOSITORY syft yes no no 3.32s
✅ REPOSITORY trivy-sbom yes no no 2.13s
✅ REPOSITORY trufflehog yes no no 15.19s
✅ YAML prettier 4 0 0 0 0.48s
✅ YAML v8r 4 0 0 40.27s
✅ YAML yamllint 4 0 0 0.48s

See detailed reports in MegaLinter artifacts

Your project could benefit from a custom flavor, which would allow you to run only the linters you need, and thus improve runtime performances. (Skip this info by defining FLAVOR_SUGGESTIONS: false)

  • Documentation: Custom Flavors
  • Command: npx mega-linter-runner@9.4.0 --custom-flavor-setup --custom-flavor-linters PYTHON_PYLINT,PYTHON_BLACK,PYTHON_FLAKE8,PYTHON_ISORT,PYTHON_BANDIT,PYTHON_MYPY,PYTHON_RUFF,COPYPASTE_JSCPD,JSON_V8R,JSON_PRETTIER,MARKDOWN_MARKDOWNLINT,MARKDOWN_MARKDOWN_TABLE_FORMATTER,REPOSITORY_CHECKOV,REPOSITORY_GIT_DIFF,REPOSITORY_GITLEAKS,REPOSITORY_SECRETLINT,REPOSITORY_SYFT,REPOSITORY_TRIVY_SBOM,REPOSITORY_TRUFFLEHOG,YAML_PRETTIER,YAML_YAMLLINT,YAML_V8R

MegaLinter is graciously provided by OX Security
Show us your support by starring ⭐ the repository

@FlorianPfaff FlorianPfaff marked this pull request as ready for review April 28, 2026 11:51
@github-actions
Copy link
Copy Markdown
Contributor

Test Results

    12 files      12 suites   4h 37m 2s ⏱️
 1 182 tests  1 182 ✅     0 💤 0 ❌
14 548 runs  11 032 ✅ 3 516 💤 0 ❌

Results for commit fd79cc3.

@FlorianPfaff FlorianPfaff merged commit e1b33d0 into main Apr 28, 2026
19 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant