oscar-system / Oscar.jl

A comprehensive open source computer algebra system for computations in algebra, geometry, and number theory.
https://www.oscar-system.org
Other
310 stars 113 forks source link

Provide suitable credits for group databases #3395

Open fingolfin opened 4 months ago

fingolfin commented 4 months ago

We provide easy access to various group databases provided by GAP and various GAP packages.

I think we should provide some more credit to the authors of these databases in the manual. Possibly also in a docstring assigned to a "database object" if we introduce those (see #1168).

Writing this now, actually we probably also should explicitly list and credit the GAP packages we use directly, which includes these plus ferret, PackageManger and possibly some more we use indirectly (e.g. polycyclic?)

  # We need some GAP packages.
  for pkg in [
     "atlasrep",
     "ctbllib",  # character tables
     "crisp",    # faster normal subgroups, socles, p-socles for finite solvable groups
     "fga",      # dealing with free groups
     "forms",    # bilinear/sesquilinear/quadratic forms
     "packagemanager", # has been loaded already by GAP.jl
     "polycyclic", # needed for Oscar's pc groups
     "primgrp",  # primitive groups library
     "repsn",    # constructing representations of finite groups
     "smallgrp", # small groups library
     "transgrp", # transitive groups library
     "wedderga", # provides a function to compute Schur indices
     ]
    GAP.Packages.load(pkg) || error("cannot load the GAP package $pkg")
  end
  # We want some GAP packages. (It is no error if they cannot be loaded.)
  for pkg in [
     "ferret",   # backtrack in permutation groups
     ]
    GAP.Packages.load(pkg)
  end

CC @ThomasBreuer

Edit: Updated list after merging #3398, #3421

ThomasBreuer commented 4 months ago

and possibly some more we use indirectly (e.g. polycyclic?)

Good point. The GAP operation UpdatePolycyclicCollector is used in Oscar, it belongs to the polycyclic package, and there is no explicit GAP.Packages.load("polycyclic") in Oscar.

On the one hand, this is currently not a problem because "polycyclic" is in the default list of package names used by GAP's AutoloadPackages. On the other hand, it would be safer to get an error message in Oscar if polycyclic cannot be loaded.