Skip to content

Fix support radius in zonotope.enclosePoints - #80

Open
suhaslord wants to merge 4 commits into
TUMcps:masterfrom
suhaslord:fix/zonotope-enclosepoints-zero-generator
Open

Fix support radius in zonotope.enclosePoints#80
suhaslord wants to merge 4 commits into
TUMcps:masterfrom
suhaslord:fix/zonotope-enclosepoints-zero-generator

Conversation

@suhaslord

Copy link
Copy Markdown

Summary

Fixes the support-radius calculation in zonotope.enclosePoints and prevents a
zero generator from being normalized during residual-cloud compression.

Closes #79.

Problem

The previous implementation used abs(dot(u,r)), where r is the nonnegative
radius vector of an axis-aligned interval and u is the selected direction.
Opposite signs in u can cancel even when the interval has nonzero extent. For
example, u = [-1; 1] / sqrt(2) and r = [1; 1] yield a zero dot product, after
which normalizing the zero generator introduces non-finite values.

Fix

  • use dot(abs(u),r), the support radius of the axis-aligned interval in direction u
  • return from compression when the generated direction has zero norm
  • add regression coverage for a degenerate point cloud and a sign-cancelling cloud

Validation

  • verified the sign-cancellation reproduction independently
  • verified that dot(abs(u),r) equals the maximum absolute projection over the interval vertices
  • checked the final diff against upstream master; only the implementation and focused unit test change
  • ran git diff --check successfully
  • MATLAB and Octave are not installed locally, so the MATLAB unit test was not executed locally

@toladnertum

toladnertum commented Aug 17, 2026

Copy link
Copy Markdown
Collaborator

Dear @lili1039 and @suhaslord,

Thank you so much for bringing this up (#79) and providing a solution alongside it here!

We will investigate the bug a bit further and run it through our internal CI/CD pipeline,
and hope to push the fix out soon with the next release of CORA.

Best,
Tobias

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.

Possible zero-generator issue in conSet/@zonotope/enclosePoints.m

2 participants