Skip to content

First attempt at getting origami into Oscar#5345

Draft
Sebas777-gif wants to merge 211 commits intooscar-system:masterfrom
AG-Weitze-Schmithusen:origami
Draft

First attempt at getting origami into Oscar#5345
Sebas777-gif wants to merge 211 commits intooscar-system:masterfrom
AG-Weitze-Schmithusen:origami

Conversation

@Sebas777-gif
Copy link
Copy Markdown

We were working for some time on origami functionalities in our fork of Oscar. @fingolfin recommends this draft pull request, although there is probably still work to be done.

Pascalonyy and others added 30 commits November 6, 2023 11:32
This is certainly necessary to make the code calling it type stable
Again necessary to make code using it type stable.
... not as a Vector: a tuple can be allocated on the stack instead of
the heap and thus avoid expensive allocations, and in general allows for
more optimizations.
Otherwise, cperm creates a fresh parent group each time it is called...
There is (currently, at least) no need to have it mutable, and immutable
potentially enables further operations, plus it may catch programming
mistakes
- get rid of `degree_list`
- make `normal_form` type stable by not reusing `G` as reference
  to objects of different types
- avoid overhead in `cperm` for creating parent groups by creating
  a single shared parent group at the start.
- instead of creating a vector of vector describing permutations;
  then turning that into a vector of permutations, directly store
  a vector of permutations (thus reducing the needed allocations)
- replace `i^-1 * x * i` by `x^i` which is faster and again avoids
  allocations (at least when `x` and `i` are permutations, like here)
Improve `staircase_origami` and `normal_form`
@fingolfin
Copy link
Copy Markdown
Member

@Sebas777-gif in 10 days, GAP Days Spring 2026 start. During that week (May 3 - 7) I plan to release GAP 4.16.0.

If you guys submit ModularGroup and Origami for inclusion with the GAP distribution before that, we have a chance to including it with that release, which would mean we can easily access them from Oscar.jl once GAP.jl picks up the new GAP (which I'd hope will be very soon after the GAP release)

CC @ThomasBreuer @lgoettgens

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

experimental Only changes experimental parts of the code summer-school-2025

Projects

None yet

Development

Successfully merging this pull request may close these issues.