Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Provide a way to check if group is compact or not at compile and run time. #261

Open
slovak194 opened this issue Jan 17, 2023 · 8 comments
Assignees
Labels
enhancement New feature or request

Comments

@slovak194
Copy link

Dear @artivis @joansola,

I find it potentially useful to have the possibility to check whether the group is compact or not. Both at compile and run time.
That looks like is a natural property of a group.

Please, let me know what you think.

Best regards,
Alex

@artivis
Copy link
Owner

artivis commented Jan 19, 2023

Hi @slovak194,

This makes sense. Would a static member like the existing Group::Dim/DoF... work for you?

@artivis artivis self-assigned this Jan 19, 2023
@artivis artivis added the enhancement New feature or request label Jan 19, 2023
@artivis
Copy link
Owner

artivis commented Jan 19, 2023

@joansola Any thought on this? How about the name of such variable?

  • Group::Compact
  • Group::IsCompact
  • something else?

@joansola
Copy link
Collaborator

joansola commented Jan 20, 2023 via email

@artivis
Copy link
Owner

artivis commented Jan 25, 2023

Are'nt all groups in manif compact?

I might be mistaken but I believe they are not. R^n isn't compact ( ]-inf, +inf[ ) and thus neither are SE2/3 etc.

What is the purpose of this information?

@slovak194 ?

@slovak194
Copy link
Author

As far as I understand, only purely rotational groups in Manif can be considered compact. Yes, the first step I thought is to provide static member as @artivis has suggested. But there might be another step is to specify the range of unique parametrization for tangent.

The purpos on my side is related to the way how covariance for the group is expressed on a tangent space. As it only makes some sense if +- 3 sigma is inside this unique parametrization. Or maybe half of it.

Best regards,
Alex

@joansola
Copy link
Collaborator

Oh I see. Yes, this makes sense.

Would this binary marker compact / non-compact be enough then? How to systematize a specification of the first cover of the manifold by the tangent space?

So far, all groups in manif define this first cover by the norm of the rotational part of the tangent vector being inferior to PI.

Is it then generalizable to define the first cover through a maximum radius? I am unsure of these things in the general case.

@joansola
Copy link
Collaborator

@joansola Any thought on this? How about the name of such variable?

* `Group::Compact`

* `Group::IsCompact`

* something else?

I tend to prefer IsCompact over Compact

@joansola
Copy link
Collaborator

Oh I see. Yes, this makes sense.

Would this binary marker compact / non-compact be enough then? How to systematize a specification of the first cover of the manifold by the tangent space?

So far, all groups in manif define this first cover by the norm of the rotational part of the tangent vector being inferior to PI.

Is it then generalizable to define the first cover through a maximum radius? I am unsure of these things in the general case.

Would it be interesting / useful to have a test function in the group indicating whether a tangent vector is in the first cover of the manifold or beyond?

Tangent::inFirstCover() --> bool

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants