The following functions are available in the PAG package.
‣ CyclicPerm ( n ) | ( function ) |
Returns the cyclic permutation (1,...,n).
‣ ToGroup ( G, f ) | ( function ) |
Apply function f to each generator of the group G.
‣ MovePerm ( p, from, to ) | ( function ) |
Moves permutation p acting on the set from to a permutation acting on the set to. The arguments from and to should be lists of integers of the same size. Alternatively, if instead of from and to just one integer argument by is given, the permutation is moved from MovedPoints(
p)
to MovedPoints(
p)+
by; see MovedPoints
(Reference: MovedPoints for a permutation).
‣ MoveGroup ( G, from, to ) | ( function ) |
Apply MovePerm
(2.1-3) to each generator of the group G.
‣ MultiPerm ( p, set, m ) | ( function ) |
Repeat the action of a permutation m times. The new permutation acts on m disjoint copies of set.
‣ MultiGroup ( G, set, m ) | ( function ) |
Apply MultiPerm
(2.1-5) to each generator of the group G.
‣ RestrictedGroup ( G, set ) | ( function ) |
Apply RestrictedPerm
(Reference: RestrictedPerm) to each generator of the group G.
‣ PrimitiveGroupsOfDegree ( v ) | ( function ) |
Returns a list of all primitive permutation groups on v points.
‣ TransitiveGroupsOfDegree ( v ) | ( function ) |
Returns a list of all transitive permutation groups on v points.
‣ Homogeneity ( G ) | ( function ) |
Returns the degree of homogeneity of the permutation group G, i.e. the largest integer k such that G is k-homogeneous. This means that every k-subset of points can be mapped to every other. Kantor [Kan72] classified all groups that are k-homogenous but not k-transitive.
‣ AllSubgroupsConjugation ( G ) | ( function ) |
Returns a list of all subgroups of G up to conjugation.
‣ PermRepresentationRight ( G ) | ( function ) |
Returns the regular permutation representation of a group G by right multiplication.
‣ PermRepresentationLeft ( G ) | ( function ) |
Returns the regular permutation representation of a group G by left multiplication.
‣ ExtendedPermRepresentation ( G ) | ( function ) |
Returns the extended permutation representation of a group G including right multiplication, left multiplication, and group automorphisms.
‣ SubsetOrbitRep ( G, v, k[, opt] ) | ( function ) |
Computes orbit representatives of k-subsets of [1..v] under the action of the permutation group G. The basic algorithm is described in [KVK21]. The algorithm for short orbits is described in [KV16]. The last argument is a record opt for options. The possible components of opt are:
SizeLE:=n If defined, only representatives of orbits of size less or equal to n are computed.
IntesectionNumbers:=lin If defined, only representatives of good orbits are returned. These are orbits with intersection numbers in the list of integers lin.
‣ SubsetOrbitRepShort1 ( G, v, k, size ) | ( function ) |
Computes G-orbit representatives of k-subsets of [1..v] of size less or equal size. Here, size is an integer smaller than the order of the group G. The algorithm is described in [KV16].
‣ SubsetOrbitRepIN ( G, v, k, lin[, opt] ) | ( function ) |
Computes orbit representatives of k-subsets of [1..v] under the action of the permutation group G with intersection numbers in the list lin. Parts of the search tree with partial subsets intersecting in more than the largest number in lin are skipped. Short orbits are computed separately. The algorithm is described in [KVK21]. The last (optional) argument opt is a record for options. The possible components are:
Verbose:=true
/false
Print comments reporting the progress of the calculation.
FilteringLevel:=n Apply filrering of the search tree up to subsets of size n. By default, n=k.
‣ IsGoodSubsetOrbit ( G, rep, lin ) | ( function ) |
Check if the subset orbit generated by the permutation group G and the representative rep is a good orbit with respect to the list of intersection numbers lin. This means that the intersection size of any pair of sets from the orbit is an integer in lin.
‣ SmallLambdaFilter ( G, tsub, ksub, lambda ) | ( function ) |
Remove k-subset representatives from ksub such that the corresponding G-orbit covers some of the t-subset representatives from tsub more than lambda times.
‣ OrbitFilter1 ( G, obj, action ) | ( function ) |
Takes a list of objects obj and returns one representative from each orbit of the group G acting by action. The result is a sublist of obj. The algorithm uses the GAP function Orbit
(Reference: Orbit).
‣ OrbitFilter2 ( G, obj, action ) | ( function ) |
Takes a list of objects obj and returns one representative from each orbit of the group G acting by action. Canonical representatives are returned, so the result is not a sublist of obj. The algorithm uses the CanonicalImage
(images: CanonicalImage) function from the package Images.
‣ KramerMesnerSearch ( t, v, k, lambda, G[, opt] ) | ( function ) |
Performs a search for t-(v,k,lambda) designs with prescribed automorphism group G by the Kramer-Mesner method. A record with options can be supplied. By default, designs are returned in the Design package format DESIGN: Design and isomorph-rejection is performed by calling BlockDesignFilter
(2.4-2). It can be turned off by setting opt.NonIsomorphic:=false
. By setting opt.BaseBlocks:=true
, base blocks are returned instead of designs. This automatically turns off isomorph-rejection. Other available options are:
SmallLambda:=true
/false
. Perform the small lambda filter
, i.e. remove k-orbits covering some of the t-orbits more than lambda times. By default, this is done if lambda<=3.
IntersectionNumbers:=lin/false
. Search for designs with block intersection nubers in the list of integers lin (e.g. quasi-symmetric designs).
‣ KramerMesnerMat ( G, tsub, ksub[, lambda][, b] ) | ( function ) |
Returns the Kramer-Mesner matrix for a permutation group G. The rows are labelled by t-subset orbits represented by tsub, and the columns by k-subset orbits represented by ksub. A column of constants lambda is added if the optional argument lambda is given. Another row is added if the optional argument b is given, repesenting the constraint that sizes of the chosen k-subset orbits must sum up to the number of blocks b.
‣ CompatibilityMat ( G, ksub, lin ) | ( function ) |
Returns the compatibility matrix of the k-subset representatives ksub with respect to the group G and list of intersection numbers lin. Entries are 1 if intersection sizes of subsets in the corresponding G-orbits are all integers in lin, and 0 otherwise.
‣ SolveKramerMesner ( mat[, cm][, opt] ) | ( function ) |
Solve a system of linear equations determined by the matrix mat over {0,1}. By default, A.Wassermann's LLL solver solvediophant
[Was98] is used. If the second argument is a compatibility matrix cm, the backtracking program solvecm
from the papers [KNP11] and [KV16] is used. The solver can also be chosen explicitly in the record opt. Possible components are:
Solver:="solvediophant"
If defined, solvediophant
is used.
Solver:="solvecm"
If defined, solvecm
is used.
Solver:="libexact"
If defined, libexact
is used. This is P. Kaski and O. Pottonen's implementation of the Dancing Links algorithm, see [KP08]. For this solver the coefficients of mat must be in {0,1}!
‣ BaseBlocks ( ksub, sol ) | ( function ) |
Returns base blocks of design(s) from solution(s) sol by picking them from k-subset orbit representatives ksub.
‣ ExpandMatRHS ( mat, lambda ) | ( function ) |
Add a column of lambda's to the right of the matrix mat.
‣ CameronSeidelSet ( m ) | ( function ) |
Returns a list of 2^m/2 symplectic m× m matrices over GF(2) such that the difference of any two of them is a regular matrix. Here m is an even integer. The construction is described on page 6 of the paper [CS73].
‣ OrthogonalNormalBasis ( k ) | ( function ) |
Attempts to find a basis for the field GF(2^k) over GF(2) that is orthogonal with respect to the trace inner product Tr(xy). This should work for odd integers k, but might fail for even integers.
‣ KerdockSet ( m ) | ( function ) |
Returns a Kerdock set of 2^m-1 symplectic m× m matrices over GF(2) such that the difference of any two of them is a regular matrix. Here m is an even integer. The construction is based on Example 2.4 in the paper [Kan95].
‣ SingerDifferenceSets ( q, n ) | ( function ) |
Returns the classical Singer difference sets in the cyclic group of order v=(q^n-1)/(q-1), e.g. Group(CyclicPerm(v))
. The difference sets are subsets of [1..v]
to make them compatible with the DifSets package. For each D returned, D-1 is a difference set in the integers modulo v (a subset of [0..v-1]
).
‣ NormalizedSingerDifferenceSets ( q, n ) | ( function ) |
Returns the classical Singer difference sets in the cyclic group of order v=(q^n-1)/(q-1) that are normalized. If D is a difference set, this means that the elements of D-1 sum up to 0 modulo v.
‣ RightDevelopment ( G, ds ) | ( function ) |
Returns a block design that is the development of the difference set ds by right multiplication in the group G. If ds is a tiling of the group G or a list of disjoint difference sets, a mosaic of symmetric designs is returned.
‣ LeftDevelopment ( G, ds ) | ( function ) |
Returns a block design that is the development of the difference set ds by left multiplication in the group G. If ds is a tiling of the group G or a list of disjoint difference sets, a mosaic of symmetric designs is returned.
‣ EquivalentDifferenceSets ( g, D ) | ( function ) |
Given a difference set or list of difference sets D in a group g, returns the set of all difference sets equivalent to the ones in D.
‣ BlockDesignAut ( d[, opt] ) | ( function ) |
Computes the full automorphism group of a block design d. Uses nauty/Traces 2.8
by B.D.McKay and A.Piperno [MP14]. This is an alternative for the AutGroupBlockDesign
function from the Design package DESIGN: Automorphism groups and isomorphism testing for block designs. The optional argument opt is a record for options. Possible components of opt are:
Traces:=true
/false
Use Traces
. This is the default.
SparseNauty:=true
/false
Use nauty
for sparse graphs.
DenseNauty:=true
/false
Use nauty
for dense graphs. This is usually the slowest program, but it allows vertex invariants. Vertex invariants are ignored by the other programs.
BlockAction:=true
/false
If set to true
, the action of the automorphisms on blocks is also given. In this case automorphisms are permutations of degree v+b. By default, only the action on points is given, i.e. automorphisms are permutations of degree v.
Dual:=true
/false
If set to true
, dual automorphisms (correlations) are also included. They will appear only for self-dual symmetric designs (with the same number of points and blocks). The default is false
.
PointClasses:=s Color the points into classes of size s that cannot be mapped onto each other. By default all points are in the same class.
VertexInvariant:=n Use vertex invariant number n. The numbering is the same as in dreadnaut
, e.g. n=1: twopaths
, n=2: adjtriang
, etc. The default is twopaths
. Vertex invariants only work with dense nauty
. They are ignored by sparse nauty
and Traces
.
Mininvarlevel:=n Set mininvarlevel
to n. The default is n=0.
Maxinvarlevel:=n Set maxinvarlevel
to n. The default is n=2.
Invararg:=n Set invararg
to n. The default is n=0.
‣ BlockDesignFilter ( dl[, opt] ) | ( function ) |
Eliminates isomorphic copies from a list of block designs dl. Uses nauty/Traces 2.8
by B.D.McKay and A.Piperno [MP14]. This is an alternative for the BlockDesignIsomorphismClassRepresentatives
function from the Design package DESIGN: Automorphism groups and isomorphism testing for block designs. The optional argument opt is a record for options. Possible components of opt are:
Traces:=true
/false
Use Traces
. This is the default.
SparseNauty:=true
/false
Use nauty
for sparse graphs.
PointClasses:=s Color the points into classes of size s that cannot be mapped onto each other. By default all points are in the same class.
Positions:=true
/false
Return positions of nonisomorphic designs instead of the designs themselves.
‣ Cliquer ( g[, opt] ) | ( function ) |
Searches for cliques in the graph g. Uses Cliquer
by S.Niskanen and P.Ostergard [NO03]. The graph can either be given in GRAPE format, or as a list [v,elist]
where v
is the number of vertices and elist
is a list of edges (2-element subsets of [1..v]
). The optional argument opt is a record for options. Possible components are:
Silent:=true
/false
Work silently, or report progress. The default is taken from PAGGlobalOptions
.
FindAll:=true
/false
Find all cliques, or search for a single clique. The default is true
.
CliqueSize:=n
or [min,max]
Search for cliques of size n
, or size from min
to max
. By default, searches for cliques of maximum size.
Order:=n
Reorder vertices by ordering function number n
. Available functions are n
=1 ident
, n
=2 reverse
, n
=3 degree
, n
=4 random
, and n
=5 greedy
(default).
‣ DisjointCliques ( L[, opt] ) | ( function ) |
Given a list L of k-sets of integers, searches for cliques of mutually disjoint k-sets from the list. The sets must be of equal size k. Uses Cliquer
by S.Niskanen and P.Ostergard [NO03]. The optional argument opt is a record for options with possible components:
Silent:=true
/false
Work silently, or report progress. The default is taken from PAGGlobalOptions
.
FindAll:=true
/false
Find all cliques, or search for a single clique. The default is true
.
CliqueSize:=n
or [min,max]
Search for cliques of size n
, or size from min
to max
. By default, searches for cliques of maximum size.
Order:=n
Reorder vertices by ordering function number n
. Available functions are n
=1 ident
, n
=2 reverse
, n
=3 degree
, n
=4 random
, and n
=5 greedy
(default).
‣ IntersectionNumbers ( d[, opt] ) | ( function ) |
Returns the list of intersection numbers of the block design d. The optional argument opt is a record for options. Possible components of opt are:
Frequencies:=true
/false
If set to true
, frequencies of the intersection numbers are also returned.
‣ BlockScheme ( d[, opt] ) | ( function ) |
Returns the block intersection association scheme of a block design d, or fail
if d is not block schematic. The optional argument opt is a record for options. If it contains the component Matrix:=true
, the block intersection matrix is returned instead. Uses the package AssociationSchemes. If the package is not available, BlockScheme
always returns the block intersection matrix and does not check if it defines an association scheme.
‣ PointPairScheme ( d[, opt] ) | ( function ) |
Returns the point pair association scheme of a block design d, or fail
if d is not point pair schematic. The optional argument opt is a record for options. If it contains the component Matrix:=true
, the point pair inclusion matrix is returned instead. The point pair scheme was defined by Cameron [Cam75] for Steiner 3-designs. This command is a slight generalisation that works for arbitrary designs. Uses the package AssociationSchemes. If the package is not available, PointPairScheme
always returns the point pair inclusion matrix and does not check if it defines an association scheme.
‣ TDesignB ( t, v, k, lambda ) | ( function ) |
The number of blocks of a t-(v,k,lambda) design.
‣ IversonBracket ( P ) | ( function ) |
Returns 1 if P is true, and 0 otherwise.
‣ SymmetricDifference ( X, Y ) | ( function ) |
Returns the symmetric difference of two sets X and Y.
‣ AddWeights ( wd ) | ( function ) |
Makes a weight distribudion wd more readable by adding the weights and skipping zero components. The argument wd is the weight distribution of a code returned by the WeightDistribution
command from the GUAVA package.
‣ AdjacencyMat ( g ) | ( function ) |
Returns the adjacency matrix of the graph g in GRAPE format.
‣ ReadMOLS ( filename ) | ( function ) |
Read a list of MOLS sets from a file. The file starts with the number of rows m, columns n, and the size of the sets s, followed by the matrix entries. Integers in the file are separated by whitespaces.
‣ WriteMOLS ( filename, list ) | ( function ) |
Write a list of MOLS sets to a file. The number of rows m, columns n, and the size of the sets s is written first, followed by the matrix entries. Integers are separated by whitespaces.
‣ FieldToMOLS ( F ) | ( function ) |
Construct a complete set of MOLS from the finite field F. A similar function is MOLS
(GUAVA: MOLS) from the package Guava.
‣ MOLSToOrthogonalArray ( ls ) | ( function ) |
Transforms the set of MOLS ls to an equivalent orthogonal array.
‣ OrthogonalArrayToMOLS ( oa ) | ( function ) |
Transforms the orthogonal array oa to an equivalent set of MOLS.
‣ MOLSToTransversalDesign ( ls ) | ( function ) |
Transforms the set of MOLS ls to an equivalent transversal design.
‣ TransversalDesignToMOLS ( td ) | ( function ) |
Transforms the transversal design td to an equivalent set of MOLS.
‣ MOLSAut ( ls[, opt] ) | ( function ) |
Computes the full auto(para)topy group of a set of MOLS ls. Uses nauty/Traces 2.8
by B.D.McKay and A.Piperno [MP14]. The optional argument opt is a record for options. Possible components are:
Isotopy:=true
/false
Compute the full autotopy group of ls. This is the default.
Paratopy:=true
/false
Compute the full autoparatopy group of ls.
Any other components are forwarded to the BlockDesignAut
(2.4-1) function; see its documentation.
‣ MOLSFilter ( ls[, opt] ) | ( function ) |
Eliminates isotopic/paratopic copies from a list of MOLS sets ls. Uses nauty/Traces 2.8
by B.D.McKay and A.Piperno [MP14]. The optional argument opt is a record for options. Possible components are:
Paratopy:=true
/false
Eliminate paratopic MOLS sets. This is the default.
Isotopy:=true
/false
Eliminate isotopic MOLS sets.
Any other components are forwarded to the BlockDesignFilter
(2.4-2) function; see its documentation.
‣ IsAutotopyGroup ( n, s, G ) | ( function ) |
Check if G is an autotopy group for transversal designs with s+2 point classes of order n.
‣ MOLSSubsetOrbitRep ( n, s, G ) | ( function ) |
Computes representatives of pairs and transversals of the s+2 point classes for the construction of MOLS of order n with prescribed autotopy group G. A list containing pair representatives in the first component and transversal representatives in the second component is returned.
‣ KramerMesnerMOLS ( n, s, G[, opt] ) | ( function ) |
If the function IsAutotopyGroup
(2.5-10)(G) returns true
for the group G, call KramerMesnerMOLSAutotopy
(2.5-13); otherwise call KramerMesnerMOLSAutoparatopy
(2.5-14).
‣ KramerMesnerMOLSAutotopy ( n, s, G[, opt] ) | ( function ) |
Search for MOLS sets of order n and size s with prescribed autotopy group G. By default, A.Wassermann's LLL solver solvediophant
is used for s=1, and the backtracking solver solvecm
is used for s>1. This can be changed by setting options in the record opt. Available options are:
Solver:="solvediophant"
Use solvediophant
.
Solver:="solvecm"
Use solvecm
.
Paratopy:=true
/false
Eliminate paratopic solutions. This is the default.
Isotopy:=true
/false
Eliminate isotopic solutions. All solutions are returned if either option is set to false
.
‣ KramerMesnerMOLSAutoparatopy ( n, s, G[, opt] ) | ( function ) |
Search for MOLS sets of order n and size s with prescribed autoparatopy group G. By default, A.Wassermann's LLL solver solvediophant
is used for s=1, and the backtracking solver solvecm
is used for s>1. This can be changed by setting options in the record opt. Available options are:
Solver:="solvediophant"
Use solvediophant
.
Solver:="solvecm"
Use solvecm
.
Paratopy:=true
/false
Eliminate paratopic solutions. This is the default.
Isotopy:=true
/false
Eliminate isotopic solutions. All solutions are returned if either option is set to false
.
‣ DifferenceCube ( G, ds, n ) | ( function ) |
Returns the n-dimenional difference cube constructed from a difference set ds in the group G.
‣ GroupCube ( G, dds, n ) | ( function ) |
Returns the n-dimenional group cube constructed from a symmetric design dds such that the blocks are difference sets in the group G.
‣ CubeSlice ( C, x, y, fixed ) | ( function ) |
Returns a 2-dimensional slice of the incidence cube C obtained by varying coordinates in positions x and y, and taking fixed values for the remaining coordinates given in a list fixed.
‣ CubeSlices ( C[, x, y][, fixed] ) | ( function ) |
Returns 2-dimensional slices of the incidence cube C. Optional arguments are the varying coordinates x and y, and values of the fixed coordinates in a list fixed. If optional arguments are not given, all possibilities are supplied. For an n-dimensional cube C of order v, the following calls will return:
CubeSlices( C, x, y ) ... v^n-2 slices obtained by varying values of the fixed coordinates.
CubeSlices( C, fixed ) ... nchoose 2 slices obtained by varying the non-fixed coordinates x < y.
CubeSlices( C ) ... nchoose 2⋅ v^n-2 slices obtained by varying both the non-fixed coordinates x < y and values of the fixed coordinates.
‣ CubeLayer ( C, x, fixed ) | ( function ) |
Returns an (n-1)-dimensional layer of the n-dimensional cube C obtained by setting coordinate x to the value fixed and varying the remaining coordinates.
‣ CubeLayers ( C, x ) | ( function ) |
Returns the (n-1)-dimensional layers of the n-dimensional cube C obtained by fixing coordinate x.
‣ CubeToOrthogonalArray ( C ) | ( function ) |
Transforms the incidence cube C to an equivalent orthogonal array.
‣ OrthogonalArrayToCube ( oa ) | ( function ) |
Transforms the orthogonal array oa to an equivalent incidence cube.
‣ OrthogonalArrayToTransversalDesign ( oa ) | ( function ) |
Transforms the orthogonal array oa to an equivalent transversal design.
‣ CubeToTransversalDesign ( C ) | ( function ) |
Transforms the incidence cube C to an equivalent transversal design.
‣ TransversalDesignToCube ( td ) | ( function ) |
Transforms the transversal design td to an equivalent incidence cube.
‣ LatinSquareToCube ( L ) | ( function ) |
Transforms the Latin square L to an equivalent incidence cube.
‣ CubeTest ( C ) | ( function ) |
Test whether an incidence cube C is a cube of symmetric designs. The result should be [[v,k,lambda]]
. Anything else means that C is not a (v,k,λ) cube.
‣ SliceInvariant ( C ) | ( function ) |
Computes a paratopy invariant of the cube C based on automorphism group sizes of parallel slices. Cubes equivalent under paratopy have the same invariant.
‣ CubeAut ( C[, opt] ) | ( function ) |
Computes the full auto(para)topy group of an incidence cube C. Uses nauty/Traces 2.8
by B.D.McKay and A.Piperno [MP14]. The optional argument opt is a record for options. Possible components are:
Isotopy:=true
/false
Compute the full autotopy group of C. This is the default.
Paratopy:=true
/false
Compute the full autoparatopy group of C.
Any other components are forwarded to the BlockDesignAut
(2.4-1) function; see its documentation.
‣ CubeFilter ( cl[, opt] ) | ( function ) |
Eliminates equivalent copies from a list of incidence cubes cl. Uses nauty/Traces 2.8
by B.D.McKay and A.Piperno [MP14]. The optional argument opt is a record for options. Possible components are:
Paratopy:=true
/false
Eliminate paratopic cubes. This is the default.
Isotopy:=true
/false
Eliminate isotopic cubes.
Any other components are forwarded to the BlockDesignFilter
(2.4-2) function; see its documentation.
‣ SDPSeriesGroup ( m ) | ( function ) |
Returns a group for the designs of SDPSeriesDesign
(2.6-18). This is the elementary Abelian group of order 4^m.
‣ SDPSeriesDesign ( m, i ) | ( function ) |
Returns a symmetric block design with parameters (4^m,2^m-1(2^m-1),2^m-1(2^m-1-1)). The argument i must be 1, 2, or 3. If i=1, the design is the symplectic design of Kantor [Kan75]. This design has the symmetric difference property (SDP). If i=2 or i=3, two other non-isomorphic designs with the same parameters are returned. They are not SDP designs, but have the property that all their blocks are difference sets in the group returned by SDPSeriesGroup
(2.6-17). Developments of these blocks are isomorphic to the design for i=1, so the two other designs are not developments of their blocks.
‣ CubeProjection ( C, p ) | ( function ) |
Returns the projection of the n-dimensional cube C on a pair of coordinates p.
‣ CubeProjections ( C ) | ( function ) |
Returns the projections of the n-dimensional cube C on all pairs of coordinates.
‣ CubeProjectionTest ( C ) | ( function ) |
Test whether an incidence cube C is a projection cube of symmetric designs. The result should be [[v,k,lambda]]
. Anything else means that C is not a (v,k,λ) projection cube. The function OrthogonalArrayProjectionTest
(2.7-6) is usually much faster.
‣ OrthogonalArrayProjection ( oa, t ) | ( function ) |
Returns the projection of the orthogonal array oa on a tuple of coordinates t.
‣ OrthogonalArrayProjections ( oa[, k] ) | ( function ) |
Returns the projections of the orthogonal array oa on all k-tuples of coordinates. If the second argument is not given, k=2 is assumed.
‣ OrthogonalArrayProjectionTest ( oa ) | ( function ) |
Test whether an orthogonal array oa corresponds to a projection cube of symmetric (v,k,λ) designs. The result should be [[v,k,lambda]]
. Anything else means that oa does not correspond to a projection cube.
‣ DifferenceSetToOrthogonalArray ( [G, ]ds ) | ( function ) |
Transforms a (higher-dimensional) difference set to an orthogonal array. The argument G is a group and ds is a difference set in the DifSets package format, with positive integers as elements. If the first argument is not given, ds contains finite field elements and the operation is addition. This is used for Paley difference sets and twin prime power difference sets.
‣ PaleyDifferenceSet ( q ) | ( function ) |
Returns the q-dimensional Paley difference set in GF(q). This is a (q,(q-1)/2,(q-3)/4) difference set in the additive group of GF(q). See [KR24] for more details.
‣ PowerDifferenceSet ( q, m ) | ( function ) |
Returns the q-dimensional difference set constructed from the m-th powers in GF(q). Paley difference sets are power difference sets for m=2. See [KR24] for more details.
‣ TwinPrimePowerDifferenceSet ( q ) | ( function ) |
Returns the q-dimensional twin prime power difference set. For n=(q+1)^2/4, this is a (4n-1,2n-1,n-1) difference set in the direct product GF(q)× GF(q+2). Both q and q+2 must be powers of primes. See [KR24] for more details.
‣ OrthogonalArrayAut ( oa[, opt] ) | ( function ) |
Computes the full auto(para)topy group of an orthogonal array oa. Uses nauty/Traces 2.8
by B.D.McKay and A.Piperno [MP14]. The optional argument opt is a record for options. Possible components are:
Isotopy:=true
/false
Compute the full autotopy group of oa. This is the default.
Paratopy:=true
/false
Compute the full autoparatopy group of oa.
Any other components are forwarded to the BlockDesignAut
(2.4-1) function; see its documentation.
‣ OrthogonalArrayFilter ( oal[, opt] ) | ( function ) |
Eliminates equivalent copies from a list of orthogonal arrays oal. Uses nauty/Traces 2.8
by B.D.McKay and A.Piperno [MP14]. The optional argument opt is a record for options. Possible components are:
Paratopy:=true
/false
Eliminate paratopic orthogonal arrays. This is the default.
Isotopy:=true
/false
Eliminate isotopic orthogonal arrays.
Any other components are forwarded to the BlockDesignFilter
(2.4-2) function; see its documentation.
‣ IsHadamardMat ( H ) | ( function ) |
Returns true
if H is an n-dimensional Hadamard matrix and false
otherwise.
‣ IsProperHadamardMat ( H ) | ( function ) |
Returns true
if H is a proper n-dimensional Hadamard matrix and false
otherwise.
‣ Paley1Mat ( q ) | ( function ) |
Returns a Paley type I Hadamard matrix of order q+1 constructed from the squares in GF(q). The argument should be a prime power q≡ 3 mod 4.
‣ Paley2Mat ( q ) | ( function ) |
Returns a Paley type II Hadamard matrix of order 2(q+1) constructed from the squares in GF(q). The argument should be a prime power q≡ 1 mod 4.
‣ Paley3DMat ( v ) | ( function ) |
Returns a three-dimensional Hadamard matrix of order v obtained by the Paley-like construction introduced in [KPT23]. The argument should be an even number v such that v-1 is a prime power.
‣ SDPSeriesHadamardMat ( m, i ) | ( function ) |
Returns a Hadamard matrix of order 4^m for the SDP series of designs. The argument i must be 1, 2, or 3. See documentation for the SDPSeriesDesign
(2.6-18) function.
‣ AllOnesMat ( v[, n] ) | ( function ) |
Returns the n-dimensional matrix of order v with all entries 1. By default, n=2.
‣ ProductConstructionMat ( H, n ) | ( function ) |
Given a 2-dimensional Hadamard matrix H, returns the n-dimensional proper Hadamard matrix obtained by the product construction of Yang [Yan86].
‣ DigitConstructionMat ( H, s ) | ( function ) |
Given a 2-dimensional Hadamard matrix H of order (2t)^s, returns the 2s-dimensional Hadamard matrix of order 2t obtained by Theorem 6.1.4 of [YNX10].
‣ CyclicDimensionIncrease ( H ) | ( function ) |
Given an n-dimensional Hadamard matrix H, returns the (n+1)-dimensional Hadamard matrix obtained by Theorem 6.1.5 of [YNX10]. The construction also works for cyclic cubes of symmetric designs.
‣ HadamardMatAut ( H[, opt] ) | ( function ) |
Computes the full automorphism group of a Hadamard matrix H. Represents the matrix by a colored graph (see [McK79]) and uses nauty/Traces 2.8
by B.D.McKay and A.Piperno [MP14]. The optional argument opt is a record for options. Possible components of opt are:
Dual:=true
/false
If set to true
, dual automorphisms (transpositions) are also allowed. The default is false
.
‣ HadamardMatFilter ( hl[, opt] ) | ( function ) |
Eliminates equivalent copies from a list of Hadamard matrices hl. Represents the matrices by colored graphs (see [McK79]) and uses nauty/Traces 2.8
by B.D.McKay and A.Piperno [MP14]. The optional argument opt is a record for options. Possible components of opt are:
Dual:=true
/false
If set to true
, dual equivalence is allowed (i.e. the matrices can be transposed). The default is false
.
Positions:=true
/false
Return positions of inequivalent Hadamard matrices instead of the matrices themselves.
‣ HadamardToIncidence ( M ) | ( function ) |
Transforms the Hadamard matrix M to an incidence matrix by replacing all -1 entries by 0.
‣ IncidenceToHadamard ( M ) | ( function ) |
Transforms the incidence matrix M to a (1,-1)-matrix by replacing all 0 entries by -1.
‣ MosaicParameters ( M ) | ( function ) |
Returns a string with the parameters of the mosaic of combinatorial designs M. See [GGP18] for the definition. Entries 0 in the matrix M are considered empty, and other integers are considered as incidences of distinct designs.
‣ BlocksToIncidenceMat ( d ) | ( function ) |
Transforms a list of blocks d to an incidence matrix. Points correspond to rows, and blocks to columns.
‣ IncidenceMatToBlocks ( M ) | ( function ) |
Transforms an incidence matrix M to a list of blocks. Rows correspond to points, and columns to blocks.
‣ MosaicToBlockDesigns ( M ) | ( function ) |
Transforms a mosaic of combinatorial designs M with c colors to a list of c block designs in the Design package format.
‣ ReadMat ( filename ) | ( function ) |
Reads a list of m× n integer matrices from a file. The file starts with the number of rows m and columns n followed by the matrix entries. Integers in the file are separated by whitespaces.
‣ WriteMat ( filename, list ) | ( function ) |
Writes a list of m× n integer matrices to a file. The number of rows m and columns n is written first, followed by the matrix entries. Integers are separated by whitespaces.
‣ AffineMosaic ( k, n, q ) | ( function ) |
Returns a mosaic of designs with blocks being k-dimensional subspaces of the affine space AG(n,q). Uses the FinInG package. If the package is not available, the function is not loaded.
‣ DifferenceMosaic ( G, dds ) | ( function ) |
Returns the mosaic of symmetric designs obtained from a list of disjoint difference sets dds in the group G.
‣ PowersMosaic ( q, n ) | ( function ) |
Returns the mosaic of symmetric designs constructed from n-th powers in the field GF(q).
‣ MatAut ( M ) | ( function ) |
Computes the full autotopy group of a matrix M. It is assumed that the entries of M are consecutive integers. Permutations of rows, columns and symbols are allowed. Represents the matrix by a colored graph and uses nauty/Traces 2.8
by B.D.McKay and A.Piperno [MP14].
‣ MatFilter ( ml[, opt] ) | ( function ) |
Eliminates equivalent copies from a list of matrices ml. It is assumed that all of the matrices have the same set of consecutive integers as entries. Two matrices are equivalent (isotopic) if one can be transformed into the other by permutating rows, columns and symbols. Represents the matrices by colored graphs and uses nauty/Traces 2.8
by B.D.McKay and A.Piperno [MP14]. The optional argument opt is a record for options. Possible components of opt are:
Positions:=true
/false
Return positions of inequivalent matrices instead of the matrices themselves.
‣ PAGGlobalOptions | ( global variable ) |
A record with global options for the PAG package. Components are:
Silent:=true
/false
If set to true
, functions such as SolveKramerMesner will not print comments reporting the progress of the calculation.
TempDir:=directory object
Temporary directory used to communicate with external programs.
generated by GAPDoc2HTML