#19613: Implement basic representations of semigroups
-------------------------------------+-------------------------------------
Reporter: tscrim | Owner: sage-combinat
Type: enhancement | Status: needs_review
Priority: major | Milestone: sage-7.1
Component: group theory | Resolution:
Keywords: representation, | Merged in:
semigroups, | Reviewers:
Authors: Travis Scrimshaw | Work issues:
Report Upstream: N/A | Commit:
Branch: | 38529351ae5581559a6a33a6fc6fe825b974ef81
public/representations/basic_implementation-19613| Stopgaps:
Dependencies: |
-------------------------------------+-------------------------------------
Comment (by darij):
I've reviewed the ticket up to `TrivialRepresentation`. However, exposing
`self._module` the way I've done it is incompatible with your
implementation of `TrivialRepresentation`, and this is a design question I
feel is in need of discussion. What do you think is the right way?
1. Unexpose `self._module`, since any method that uses linear algebra on
`self._module` can just as well use it on `self`.
2. Set `self._module = self` for a `TrivialRepresentation`.
3. Implement `TrivialRepresentation` using the general `Representation`
constructor.
I don't see anything wrong with either of these options, but I am not the
one to judge. A caveat with 1 is that coders need to be dissuaded from
using `self._module` in their code (and this is a tricky thing to do,
because not everyone will have a `TrivialRepresentation` in their
doctests). Option 2 might incur endless loops or unwanted memory
persistence, but I don't know. Option 3 feels like overkill, but it's the
most straightforward thing.
Speaking of endless loops, do you have an idea why this gives one?
{{{
sage: G = groups.permutation.Dihedral(4)
sage: R = G.regular_representation(left=False)
sage: x = R.an_element()
sage: x*x
}}}
--
Ticket URL: <http://trac.sagemath.org/ticket/19613#comment:11>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica,
and MATLAB
--
You received this message because you are subscribed to the Google Groups
"sage-trac" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/sage-trac.
For more options, visit https://groups.google.com/d/optout.