From 25672bad38c240114f468b18d847004694055fae Mon Sep 17 00:00:00 2001 From: Glen Whitney Date: Thu, 19 Oct 2017 02:26:18 +0200 Subject: [PATCH] Add NC versions of quasigroup constructors to support uniform Print() syntax --- gap/structure.gd | 2 ++ gap/structure.gi | 29 ++++++++++++++++------------- 2 files changed, 18 insertions(+), 13 deletions(-) diff --git a/gap/structure.gd b/gap/structure.gd index 5f06f56..aaa49f3 100644 --- a/gap/structure.gd +++ b/gap/structure.gd @@ -82,8 +82,10 @@ DeclareAttribute("RightDivisionTable", HasMultiplicationTable); # And the builders DeclareGlobalFunction("LeftQuasigroupByMultiplicationTable"); +DeclareGlobalFunction("LeftQuasigroupByMultiplicationTableNC"); DeclareGlobalFunction("LeftRackByMultiplicationTable"); DeclareGlobalFunction("LeftRackByMultiplicationTableNC"); DeclareGlobalFunction("RightQuasigroupByMultiplicationTable"); +DeclareGlobalFunction("RightQuasigroupByMultiplicationTableNC"); DeclareGlobalFunction("RightRackByMultiplicationTable"); DeclareGlobalFunction("RightRackByMultiplicationTableNC"); diff --git a/gap/structure.gi b/gap/structure.gi index ec12551..e75ee53 100644 --- a/gap/structure.gi +++ b/gap/structure.gi @@ -30,7 +30,7 @@ InstallGlobalFunction(LeftQuasigroup, function(arg) fi; return CloneOfTypeByGenerators(IsLeftQuasigroup, fam, arg, GeneratorsOfLeftQuasigroup, - LeftQuasigroupByMultiplicationTable); + LeftQuasigroupByMultiplicationTableNC); end); InstallGlobalFunction(LeftRack, function(arg) @@ -68,7 +68,7 @@ InstallGlobalFunction(RightQuasigroup, function(arg) fi; return CloneOfTypeByGenerators(IsRightQuasigroup, fam, arg, GeneratorsOfRightQuasigroup, - RightQuasigroupByMultiplicationTable); + RightQuasigroupByMultiplicationTableNC); end); InstallGlobalFunction(RightRack, function(arg) @@ -116,26 +116,29 @@ InstallGlobalFunction(LeftQuasigroupByMultiplicationTable, Error("Multiplication table must have each row a permutation of ", "the same entries."); fi; - return MagmaByMultiplicationTableCreatorNC( - CanonicalCayleyTableOfLeftQuasigroupTable(T), - LeftQuasigroup, - IsLeftQuotientElement and IsMagmaByMultiplicationTableObj - ); + return LeftQuasigroupByMultiplicationTableNC( + CanonicalCayleyTableOfLeftQuasigroupTable(T)); end); +InstallGlobalFunction(LeftQuasigroupByMultiplicationTableNC, + T -> MagmaByMultiplicationTableCreatorNC(T, LeftQuasigroup, + IsLeftQuotientElement and IsMagmaByMultiplicationTableObj) +); + InstallGlobalFunction(RightQuasigroupByMultiplicationTable, function(T) if not IsRightQuasigroupTable(T) then - Error("Multiplication table must have each column a permutation of ", + Error("Multiplication table must have each row a permutation of ", "the same entries."); fi; - return MagmaByMultiplicationTableCreatorNC( - CanonicalCayleyTable(T), - RightQuasigroup, - IsRightQuotientElement and IsMagmaByMultiplicationTableObj - ); + return RightQuasigroupByMultiplicationTableNC(CanonicalCayleyTable(T)); end); +InstallGlobalFunction(RightQuasigroupByMultiplicationTableNC, + T -> MagmaByMultiplicationTableCreatorNC(T, RightQuasigroup, + IsRightQuotientElement and IsMagmaByMultiplicationTableObj) +); + InstallGlobalFunction(LeftRackByMultiplicationTable, function(T) if not IsLeftQuasigroupTable(T) then