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

Resolve AbstractAlgebra.FPModule vs Oscar.ModuleFP #4708

Open
fingolfin opened this issue Mar 5, 2025 · 1 comment
Open

Resolve AbstractAlgebra.FPModule vs Oscar.ModuleFP #4708

fingolfin opened this issue Mar 5, 2025 · 1 comment
Labels

Comments

@fingolfin
Copy link
Member

Taken from #3054 where it is mentioned but without details.

Today I was asked which of the two to use for implementing a new module type (in this case: root spaces).

At the very least, we should rename one, or perhaps both, because the current very similar names just lead to confusion.

IIRC AbstractAlgebra.FPModule is dense and Oscar.ModuleFP sparse (as much as one can claim such a thing for abstract types which both are -- but FPModule has a lot of "generic" code which clearly assumes something dense.

@fingolfin
Copy link
Member Author

Related to this, consider this from Slack. Someone asked how to make something similar to the following code work:

M1 = free_module(ZZ, 3);
M2 = free_module(QQ, 3);
f = hom(M1, M2, gens(M2)])

does not work.

As a workaround, this was suggested by @thofma (thank you!)

M1 = FreeMod(ZZ, 3);
M2 = FreeMod(QQ, 3);
f = hom(M1, M2, gens(M2)])

While I am glad we have a workaround, clearly this is really confusing. What's the difference between free_module and FreeMod? Why do both exist? How would one find FreeMod? etc.

I think this is tightly related to FPModule vs ModuleFP, hence added it here.

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

No branches or pull requests

1 participant