Skip to content

Towards sparse matrices with lift_std#5913

Draft
HechtiDerLachs wants to merge 5 commits intooscar-system:masterfrom
HechtiDerLachs:lift_std_improvements
Draft

Towards sparse matrices with lift_std#5913
HechtiDerLachs wants to merge 5 commits intooscar-system:masterfrom
HechtiDerLachs:lift_std_improvements

Conversation

@HechtiDerLachs
Copy link
Copy Markdown
Collaborator

@HechtiDerLachs HechtiDerLachs commented Apr 2, 2026

This is a first take on #4925 . The issue on the Singular side (that lift_std should return a sparse matrix directly) has not yet been addressed. But these are the changes necessary to use sparse data types on the Oscar side.

@ederc : Maybe we want similar things for ideals? I think there lift_std still returns a dense matrix. But if we want this, I could work on those parallel changes, too.

For comparison:

julia> R, (x, y) = graded_polynomial_ring(QQ, [:x, :y]);

julia> F = free_module(R, 1000);

julia> I, _ = sub(F, [x*g for x in gens(R) for g in gens(F)]);

julia> @time coordinates(x*y*F[1], I)
  1.774690 seconds (16.61 M allocations: 386.731 MiB, 35.32% gc time)
Sparse row with positions [1001] and values MPolyDecRingElem{QQFieldElem, QQMPolyRingElem}[x]

@HechtiDerLachs HechtiDerLachs marked this pull request as draft April 2, 2026 08:27
@HechtiDerLachs
Copy link
Copy Markdown
Collaborator Author

Note: Doctests seem to fail for unrelated reasons.

@benlorenz
Copy link
Copy Markdown
Member

Note: Doctests seem to fail for unrelated reasons.

Should be fixed by #5914.

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.

2 participants