Skip to content

Conversation

@ThomasBreuer
Copy link
Member

  • access defining data via functions not fields
  • rename acting_domain to acting_group
  • improve documentation
  • in for left/right cosets now delegates to a membership test in a group
  • iterator for left/right cosets now uses a group iterator

addresses #4283 and #4289

- access defining data via functions not fields
- rename `acting_domain` to `acting_group`
- improve documentation
- `in` for left/right cosets now delegates to a membership test in a group
- iterator for left/right cosets now uses a group iterator
@ThomasBreuer ThomasBreuer added enhancement New feature or request topic: groups labels Nov 12, 2024
@fingolfin
Copy link
Member

@ThomasBreuer does it resolve those PRs completely? Then you can write resolves #X and resolves #Y to make sure merging this PR automatically closes those issues. Alternatively you can manually link them via the web view
Screen Shot 2024-11-13 at 08 10 38

@ThomasBreuer
Copy link
Member Author

does it resolve those PRs completely

No.

Add the type of the *subgroup* as a parameter,
then we can prescribe a better `Base.IteratorSize(::Type{<:GroupCoset})`,
as proposed in oscar-system#4289.

Note that in principle, we could omit the type of the *big group* from the
parameters since it is the `parent_type` of the element type parameter.
(The design of the `GroupCoset` type dates back to the times when
we thought that a group has the same type as its subgroups.
At the time when this idea was given up, I should have changed
`GroupCoset` to take the *subgroup* type as a parameter.)
This was tricky:
The error messages were misleading, the problem occurred on a lower level.
@ThomasBreuer
Copy link
Member Author

Run tests / test (1.6, short, ubuntu-latest) failed with a segmentation fault, restarted.

function GroupCoset(G::T, H::GAPGroup, representative::S, side::Symbol) where {T<: GAPGroup, S<:GAPGroupElem}
return new{T, S}(G, H, representative, side, Ref{GapObj}())
function GroupCoset(G::TG, H::TH, representative::S, side::Symbol) where {TG <: GAPGroup, TH <: GAPGroup, S <:GAPGroupElem}
return new{TG, TH, S}(G, H, representative, side, Ref{GapObj}())
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe enforce the type relation(s) here, e.g. something like @assert S == elem_type(TG) or so (assuming that's correct)

@fingolfin fingolfin merged commit aa41156 into oscar-system:master Nov 18, 2024
@fingolfin fingolfin changed the title improvements for cosets Rename acting_domain to acting_group and some improvements for group cosets Feb 27, 2025
@fingolfin fingolfin added renaming release notes: use title For PRs: the title of this PR is suitable for direct use in the release notes labels Feb 27, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request release notes: use title For PRs: the title of this PR is suitable for direct use in the release notes renaming topic: groups

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants