Skip to content

Add SO3 representation conversion support#1939

Merged
FlorianPfaff merged 2 commits intomainfrom
feature/so3-representation-conversion
May 3, 2026
Merged

Add SO3 representation conversion support#1939
FlorianPfaff merged 2 commits intomainfrom
feature/so3-representation-conversion

Conversation

@FlorianPfaff
Copy link
Copy Markdown
Owner

This PR is stacked on #1931 and adds SO(3) / SO(3)^K support to the representation-conversion gateway.

Main changes:

  • adds SO(3)-aware aliases such as so3_dirac, so3_particles, so3_tangent_gaussian, so3_product_dirac, and so3_product_tangent_gaussian
  • makes generic particles / dirac aliases resolve to SO(3)-specific Dirac representations for SO(3) and SO(3)^K sources
  • makes generic gaussian resolve to tangent-Gaussian approximations for SO(3) / SO(3)^K sources
  • adds so3_conversion.py with registered converters rather than modifying the SO(3) distribution classes directly
  • supports SO(3) tangent-Gaussian -> SO(3) Dirac via sampling
  • supports SO(3) Dirac -> SO(3) tangent Gaussian via local tangent-space moment matching
  • supports SO(3)^K product tangent-Gaussian -> product Dirac via sampling
  • supports SO(3)^K product Dirac -> product tangent Gaussian via local tangent-space moment matching
  • adds tests for SO(3) and SO(3)^K conversions
  • updates representation-conversion docs

Notes:

  • This PR should be retargeted to main after Add representation conversion aliases #1931 is merged.
  • The implementation keeps SO(3)-specific fitting code in a small registration module to avoid expanding the core conversion gateway too much.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 2, 2026

MegaLinter analysis: Success

Descriptor Linter Files Fixed Errors Warnings Elapsed time
✅ COPYPASTE jscpd yes no no 15.78s
✅ JSON prettier 2 0 0 0 0.46s
✅ JSON v8r 2 0 0 2.48s
✅ MARKDOWN markdownlint 28 0 0 0 1.26s
✅ MARKDOWN markdown-table-formatter 28 2 0 0 0.34s
✅ PYTHON bandit 485 0 0 6.84s
✅ PYTHON black 485 28 0 0 11.51s
✅ PYTHON flake8 485 0 0 3.69s
✅ PYTHON isort 485 36 0 0 0.9s
✅ PYTHON mypy 485 0 0 5.67s
✅ PYTHON pylint 485 0 0 104.18s
✅ PYTHON ruff 485 36 0 0 0.1s
✅ REPOSITORY checkov yes no no 20.3s
✅ REPOSITORY gitleaks yes no no 12.27s
✅ REPOSITORY git_diff yes no no 0.04s
✅ REPOSITORY secretlint yes no no 8.67s
✅ REPOSITORY syft yes no no 3.44s
✅ REPOSITORY trivy-sbom yes no no 3.35s
✅ REPOSITORY trufflehog yes no no 19.99s
✅ YAML prettier 5 0 0 0 0.49s
✅ YAML v8r 5 0 0 4.99s
✅ YAML yamllint 5 0 0 0.43s

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

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 2, 2026

Test Results

    12 files  ± 0      12 suites  ±0   4h 54m 13s ⏱️ + 34m 54s
 1 398 tests + 5   1 398 ✅ + 5      0 💤 ±0  0 ❌ ±0 
17 236 runs  +60  13 648 ✅ +60  3 588 💤 ±0  0 ❌ ±0 

Results for commit c708d24. ± Comparison against base commit b8826cd.

♻️ This comment has been updated with latest results.

@FlorianPfaff FlorianPfaff changed the base branch from feature/representation-conversion-aliases to main May 3, 2026 11:15
@FlorianPfaff FlorianPfaff force-pushed the feature/so3-representation-conversion branch from 9193067 to bfdb20b Compare May 3, 2026 17:33
@FlorianPfaff FlorianPfaff merged commit 7e67dd8 into main May 3, 2026
20 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