Browse Source

Organize raq into standard GAP package file tree

In preparation for a beta release of the raq package, it's important for it to
be conformant to current GAP package conventions. Therefore, I have rearranged
the file tree to match the Example package quite thoroughly. In so doing, this
laid the foundation for the following aspects of the package:

  - Package documentation. Added makedoc.g at the top level to generate
  AutoDoc/GAPDoc documentation for raq. Currently the documentation is empty;
  future development will bring the documentation to cover all existing code.

  - Package tests. The basic structure to add .tst files in the tst
  subdirectory of the package is in place. The coverage of tests provided in
  this commit is minimal; again, further development will extend the test
  coverage.

In addition, PackageInfo.g has been elaborated to include much more complete
information about raq and where it will (initially) be posted on line.

Resolves: #1
master
Glen Whitney 3 years ago
parent
commit
be82518697
  1. 3
      CHANGES
  2. 3
      COPYING.txt
  3. 48
      PackageInfo.g
  4. 21
      README.md
  5. 19
      doc/.gitignore
  6. 3
      doc/README.md
  7. 10
      init.g
  8. 0
      lib/byconj.gd
  9. 0
      lib/byconj.gi
  10. 0
      lib/bytable.gd
  11. 0
      lib/bytable.gi
  12. 0
      lib/constructions.gd
  13. 0
      lib/constructions.gi
  14. 0
      lib/structure.gd
  15. 0
      lib/structure.gi
  16. 6
      makedoc.g
  17. 10
      read.g
  18. 25
      tst/bytableAndStructure.tst
  19. 10
      tst/testall.g

3
CHANGES

@ -0,0 +1,3 @@
Version 0.1: 2018/10/01
Initial beta release. GW

3
COPYING.txt

@ -1,3 +0,0 @@
Code in this package is made available under whatever terms preferred by
Leandro Vendramin and Matias Graña, the authors of the RIG package on which it
is (more or less) based.

48
PackageInfo.g

@ -2,9 +2,14 @@ SetPackageInfo( rec(
PackageName := "raq",
Subtitle := "Racks And Quandles in GAP",
Version := "0.1.0",
Date := "2017-Oct-17",
ArchiveURL := "<n/a>",
ArchiveFormats := "-win.zip .tar.gz",
Date := "2018-Oct-1",
PackageWWWHome := "http://code.studioinfinity.org/raq/wiki",
SourceRepository := rec( Type := "git",
URL := "http://code.studioinfity.org/raq" ),
IssueTrackerURL := "http://code.studioinfinity.org/raq/issues",
SupportEmail := "glen@studioinfinity.org",
ArchiveURL := "http://code.studioinfinity.org/raq/releases",
ArchiveFormats := ".tar.gz",
Persons := [
rec(
@ -12,28 +17,14 @@ Persons := [
FirstNames := "Glen",
IsAuthor := true,
IsMaintainer := true,
Email := "gwhitney@post.harvard.edu",
WWWHome := "http://mathwalks.org",
Email := "glen@studioinfinity.org",
WWWHome := "http://studioinfinity.org",
PostalAddress := Concatenation( [
"523 Rialto Ave.\n",
"Venice, CA 90291\n",
"USA" ] ),
Place := "Venice",
Institution := "mathwalks.org"
),
rec(
LastName := "Vendramin",
FirstNames := "Leandro",
IsAuthor := true,
IsMaintainer := false,
Email := "lvendramin@dm.uba.ar",
WWWHome := "http://mate.dm.uba.ar/~lvendram/",
PostalAddress := Concatenation( [
"Departamento de matemática, FCEyN, UBA",
"Ciudad Universitaria, Pab. 1,\n",
"Buenos Aires, Argentina" ] ),
Place := "Buenos Aires",
Institution := "UBA"
Institution := "studioInfinity.org"
)
],
@ -44,12 +35,11 @@ Persons := [
## "dev" for development versions of packages
## "other" for all other packages
##
Status := "dev",
Status := "other",
README_URL :=
"<n/a>",
README_URL := "http://code.studioinfinity.org/raq/src/branch/master/README.md",
PackageInfoURL :=
"<n/a>",
"http://code.studioinfinity.org/raq/src/branch/master/PackageInfo.g",
AbstractHTML := Concatenation(
"The <span class=\"pkgname\">RAQ</span> package provides researchers ",
@ -59,18 +49,16 @@ AbstractHTML := Concatenation(
"established in the <span class=\"pkgname\">LOOPS</span> package, and ",
"and provides enhanced functionality, libraries, and implementations ",
"as compared to the earlier <span class=\"pkgname\">RIG</span> package ",
"on which <span class=\"pkgname\">RAQ</span> is loosely modeled."
"on which <span class=\"pkgname\">RAQ</span> is generally modeled."
),
PackageWWWHome := "<n/a>",
PackageDoc := rec(
BookName := "raq",
ArchiveURLSubset := ["doc", "htm"],
ArchiveURLSubset := ["doc"],
HTMLStart := "doc/chap0.html",
PDFFile := "doc/manual.pdf",
SixFile := "doc/manual.six",
LongTitle := "The RAQ Package: Racks And Quandles in GAP",
LongTitle := "The raq Package: Racks And Quandles in GAP",
Autoload := true # only for the documentation, TEMPORARILY TURNED OFF
),
@ -83,7 +71,7 @@ Dependencies := rec(
),
AvailabilityTest := ReturnTrue,
BannerString := Concatenation("--\nRAQ, Racks And Quandles in GAP, Version ",
BannerString := Concatenation("--\nraq, Racks And Quandles in GAP, Version ",
~.Version, ".\n--\n"),
Autoload := false, # false for deposited packages

21
README.md

@ -1,3 +1,20 @@
# raq
# raq, a GAP System package for Racks And Quandles.
RAQ, a GAP System package for Racks And Quandles.
* Website: code.studioinfinity.org/raq/wiki
* Repository: code.studioinfinity.org/raq
This package provides a variety of facilities for computing with one-sided
quasigroups, racks, and quandles in GAP.
It uses no external binaries, so installation consists only of placing the raq
file tree in a directory in your package search path, e.g. the pkg directory of
your GAP installation, or perhaps the .gap/pkg subdirectory of your home
directory.
Authors/maintainers of raq: Glen Whitney <glen@studioinfinity.org>
The authors of raq would like to acknowledge their debt to the creators of
RIG, an earlier package for Racks in GAP; chaief among them is Leandro
Vendramin. RIG was an inspiration for the creation of raq, and using and
reading that package suggested many features needed in the development of
raq.

19
doc/.gitignore

@ -0,0 +1,19 @@
*.xml
*.html
*.txt
*.css
*.js
*.lab
*.pdf
*.six
*.aux
*.bbl
*.blg
*.idx
*.ilg
*.ind
*.log
*.out
*.pnr
*.tex
*.toc

3
doc/README.md

@ -0,0 +1,3 @@
This directory is currently empty in the repository, except for this file,
since its entire contents are generated by AutoDoc (see the makedoc.g file in
the main package directory, one level up from this directory.)

10
init.g

@ -1,13 +1,13 @@
## init.g RAQ: Racks and Quandles in GAP
## init.g raq
# Definitions, generation, and elementary properties and operations.
ReadPackage("raq", "gap/structure.gd");
ReadPackage("raq", "lib/structure.gd");
# Quasigroups, racks, and quandles by multiplication tables
ReadPackage("raq", "gap/bytable.gd");
ReadPackage("raq", "lib/bytable.gd");
# Quandles by conjugation
ReadPackage("raq", "gap/byconj.gd");
ReadPackage("raq", "lib/byconj.gd");
# Other quandle constructions
ReadPackage("raq", "gap/constructions.gd");
ReadPackage("raq", "lib/constructions.gd");

0
gap/byconj.gd → lib/byconj.gd

0
gap/byconj.gi → lib/byconj.gi

0
gap/bytable.gd → lib/bytable.gd

0
gap/bytable.gi → lib/bytable.gi

0
gap/constructions.gd → lib/constructions.gd

0
gap/constructions.gi → lib/constructions.gi

0
gap/structure.gd → lib/structure.gd

0
gap/structure.gi → lib/structure.gi

6
makedoc.g

@ -0,0 +1,6 @@
# makedoc.g raq
# build the documentation for raq via AutoDoc
LoadPackage("AutoDoc");
AutoDoc(rec(scaffold := true, autodoc := true));
QUIT;

10
read.g

@ -1,13 +1,13 @@
## read.g RAQ
## read.g raq
# Definitions, representations, and elementary operations.
ReadPackage("raq", "gap/structure.gi");
ReadPackage("raq", "lib/structure.gi");
# Quasigroups, racks, and quandles by multiplication tables
ReadPackage("raq", "gap/bytable.gi");
ReadPackage("raq", "lib/bytable.gi");
# Quandles by conjugation
ReadPackage("raq", "gap/byconj.gi");
ReadPackage("raq", "lib/byconj.gi");
# Other quandle constructions
ReadPackage("raq", "gap/constructions.gi");
ReadPackage("raq", "lib/constructions.gi");

25
tst/bytableAndStructure.tst

@ -0,0 +1,25 @@
# bytableAndStructure.tst raq
# Test the functions in the bytable and structure files
gap> START_TEST("raq package: bytableAndStructure.tst");
gap> t4 := [[1,3,2,4], [3,2,1,4], [2,1,3,4], [1,2,3,4]];
[ [ 1, 3, 2, 4 ], [ 3, 2, 1, 4 ], [ 2, 1, 3, 4 ], [ 1, 2, 3, 4 ] ]
gap> IsRightSelfDistributiveTable(t4);
false
gap> IsLeftSelfDistributiveTable(t4);
true
gap> IsElementwiseIdempotentTable(t4);
true
gap> l4 := LeftQuasigroupByMultiplicationTable(t4);
<left quasigroup with 4 generators>
gap> Elements(l4);
[ lA1, lA2, lA3, lA4 ]
gap> IsLeftQuasigroup(l4);
true
gap> q1 := MagmaElement(l4,1); q2 := MagmaElement(l4,2);
lA1
lA2
gap> LeftQuotient(q1,q2);
lA3
gap> STOP_TEST( "bytableAndStructure.tst", 10000);

10
tst/testall.g

@ -0,0 +1,10 @@
# tst/testall.g raq
LoadPackage( "raq" );
TestDirectory(DirectoriesPackageLibrary("raq","tst"),
rec(exitGAP := true,
testOptions := rec(compareFunction := "uptowhitespace"))
);
FORCE_QUIT_GAP(1); # should be unreachable
Loading…
Cancel
Save