Opened 11 years ago

Last modified 6 years ago

#9293 new enhancement

Better expose GAP's character tables from Sage

Reported by: nthiery Owned by: joyner
Priority: major Milestone: sage-wishlist
Component: group theory Keywords:
Cc: Merged in:
Authors: Reviewers:
Report Upstream: N/A Work issues:
Branch: Commit:
Dependencies: Stopgaps:

Status badges

Description (last modified by chapoton)

GAP's character tables could be better exposed from Sage. One approach is to just improve the GAP interface: conversion of objects back to Sage (see #7890), introspection, ... Another approach is to implement an abstract class in Sage for character tables, with a concrete subclass whose elements wraps GAP's character tables. The later offers a more integrated user experience, at the price of needing to explicitly wrap all GAP's functions.

Here is a rough draft of an abstract class, written during Sage Days 20:

class AbstractCharacterTable

    def row_indices()
        """
        That's irredinfo in Chevie (a Family of irreducible reps)
        """

    def column_indices()
        classparam / classname in Chevie (a Family of conjugacy classes)

    def __getitem__(self, r,c)

    def powermap(self, c, n)
        """
        Specific to group

        INPUT:

        - ``c`` - the index of a conjugacy class C

        Returns the index of the conjugacy class of x^n for x in C

        """

    def irreducibles(self):
        """
        returns the character table as a matrix
        """

    def orders(self):
        """
        orders of the conjugacy classes
        """

    def centralizer(self):
        """
        cardinality of the centralizer of the conjugacy classes
        """

For the record, here is the data structure of a character table of a Coxeter group in GAP3:

T := CharTable(CoxeterGroup("E",8));
RecFields(T.operations);
[ "name", "operations", "ScalarProduct", "NoMessageScalarProduct", "Print", 
  "Eigenvalues", "IsAbelian", "IsCyclic", "IsSimple", "IsSolvable", 
  "SupersolvableResiduum", "IsSupersolvable", "UpperCentralSeriesFactor", 
  "UpperCentralSeries", "LowerCentralSeries", "IsNilpotentFactor", 
  "IsNilpotent", "IsNilpotentNormalSubgroup", "AbelianInvariants", "Agemo", 
  "Automorphisms", "Centre", "CharacterDegrees", "DerivedSubgroup", 
  "ElementaryAbelianSeries", "Exponent", "FittingSubgroup", "InertiaSubgroup",
  "MaximalNormalSubgroups", "NormalClosure", "NormalSubgroups", "Size", 
  "FusionConjugacyClasses", "SizesConjugacyClasses", "*", "/", "mod", 
  "Restricted", "Induced", "Lattice", "Display", "CharNames", "StringEntry" ]

Change History (1)

comment:1 Changed 6 years ago by chapoton

  • Description modified (diff)
Note: See TracTickets for help on using tickets.