This website uses Javascript to render markdown documents in your browser, apply syntax highlighting to code fragments and render $\LaTeX$ formulas. Below is the markdown source code of this page. You can either read that or enable Javascript to have it rendered to HTML.
# NAME CInet::Symmetry - Symmetry groups # SYNOPSIS # Food for CInet::Relation's ->act method say $relation->act($_) for HyperoctahedralGroup($relation)->@*; # or for CInet::Seq symmetry reduction my $mod = $seq->modulo(SymmetricGroup); # DESCRIPTION This module implements common symmetry groups acting on [CInet::Relation](/doc/CInet%3A%3ARelation) objects. All groups are implemented and interfaced in a similar fashion. For each group, there is a free-standing sub which is exported by default. This sub returns a permutation presentation of the group which can be passed to [CInet::Relation](/doc/CInet%3A%3ARelation)'s `->act` method or to [CInet::Seq](/doc/CInet%3A%3ASeq)'s `->modulo` adapter. In addition, these subs keep a cache of group presentations indexed by cubes, so that each is only computed once. All arguments are passed to the `Cube` sub from [CInet::Cube](/doc/CInet%3A%3ACube) which interprets it as a cube as described there. In addition it is possible to not pass any argument at all. In this case, a closure over the sub is returned that you can use later to obtain a specific instance of this symmetry. This is useful when you have a [CInet::Seq](/doc/CInet%3A%3ASeq) of [CInet::Relation](/doc/CInet%3A%3ARelation)s and do not want to repeat the cube of these relations when using the `->modulo` method, like so: my $reps = $seq->modulo(SymmetricGroup); Refer to the documentation of [CInet::Seq::Modulo](/doc/CInet%3A%3ASeq%3A%3AModulo) and other places that accept symmetry groups to see if they support this feature. The following are almost the same: my $type = SymmetricGroup; my $type = \&SymmetricGroup; my $type = sub { SymmetricGroup(@_) }; However, in the first case only, the return value is blessed into the package `CInet::Symmetry::Type` which helps other code in CInet figure out what you want done with that coderef. ## Exported subs ### SymmetricGroup :Export(:DEFAULT) my $Sn = SymmetricGroup($cube); Return a presentation of the symmetric group on the `$cube`. ### TwistedGroup :Export(:DEFAULT) my $Tn = TwistedGroup($cube); Return a presentation of the twisted symmetric group on the `$cube`. ### HyperoctahedralGroup :Export(:DEFAULT) my $Bn = HyperoctahedralGroup($cube); Return a presentation of the hyperoctahedral group on the `$cube`. # AUTHOR Tobias Boege <tobs@taboege.de> # COPYRIGHT AND LICENSE This software is copyright (C) 2020 by Tobias Boege. This is free software; you can redistribute it and/or modify it under the terms of the Artistic License 2.0.