[Next] [Prev] [Right] [Left] [Up] [Index] [Root]
Release Notes V2.10-1 (14 October 1996)
Release Notes V2.10-1 (14 October 1996)
Magma V2.10-1 (14 October 1996)
Here is a terse summary of the new features installed
in Magma for version V2.10 since June 21, 1996. See the release notes
for version V1.30 for all new features introduced into Magma in 1995.
-
Summary
-
-
A new Tietze program for simplifying presentations of
finitely-presented groups
-
A new category for groups whose elements are represented by
straight-line programs: Blackbox groups
-
A new algorithm for computing conjugacy classes in permutation groups
-
Major expansion of the Groebner basis machinery including the addition
of a Hilbert series-driven Buchberger algorithm
-
Introduction of gradings for polynomial rings
-
Invariant rings of finite groups
-
Modules over the ring K[x_1, ..., x_n]
-
An extensive revision of the graph theory module to bring its semantics
into line with the other incidence structure categories. Graphs may now
have labelled vertices and edges. Directed graphs may have loops.
-
A faster collineation group algorithm for projective planes
-
A major expansion of the coding theory module to include bounds, many
new code constructions, decoding, automorphism groups over GF(p)
(prime p) and GF(4), and much else
-
Extensive revision of the way in which the automorphism group of an
incidence structure acts on the structure
-
Documentation
-
-
Handbook:
Four new chapters; many other chapters have extensive changes and
additions
-
An Introduction to Magma:
Extensive revision/updating of almost all chapters
-
Language and System Features [HB 1--4]
-
-
printf statement for formatted printing now has field widths
[HB 3.3]
-
-b option to suppress banner and other information at startup and exit
[HB 4.1]
-
Function StringToInteger now allows base 36 (was 35) and lower-case
characters in the input string [HB 3.2]
-
Aggregate Data Types [HB 7]
-
-
Function IsDisjoint, to test whether two sets are disjoint
-
General Groups [HB 15]
-
-
New function IsTrivial
-
New function IdentityHomomorphism
-
Finitely Presented Groups and Soluble Groups [HB 16, 19]
-
-
Function AbelianQuotientInvariants automatically computes a coset table
when possible
-
New fast presentation simplification package due to Havas and Lian
installed
-
Function pQuotient now returns the homomorphism in addition to the
p-quotient
-
Automorphisms for StandardPresentation/GeneratepGroups may be supplied
as homomorphisms.
-
A number of bugs related to performing operations on subgroups
represented by coset tables have been fixed
-
Numerous bugs caused by the old Tietze package have now been fixed with
the installation of the new Havas-Lian package
-
Function ToddCoxeter was modified so as to accept trivial defining
relations and subgroup generators
-
Bug in function Coincidence fixed
-
GeneratepGroup bug fixed (if pCovering group)
-
Function AutomorphismGroup modified so as to incorporate inner
automorphisms
-
Bug in function StandardPresentation when applied to abelian groups
fixed
-
A large number of leaks in functions pQuotient, StandardPresentation
and GeneratepGroups removed
-
Blackbox Groups (New Category) [HB 17]
-
Blackbox groups may be viewed as finitely presented groups in which
words are represented as ``straight-line'' programs. They allow very
fast evaluation of long words in permutation and matrix groups where
the words are defined inductively.
-
Construction
-
Arithmetic with straight-line programs
-
Homomorphism from a blackbox group onto an arbitrary group
-
Random generation of elements (Cellar, Leedham-Green, Murray, Niemeyer,
O'Brien algorithm)
-
Abelian Groups [HB 18]
-
-
Function FPGroup extended to construct a GrpFP
representation of an abelian group
-
Bug in function CosetTableToRepresentation fixed
-
Permutation Groups [HB 20]
-
-
G-set mechanism generalized and additional permutation group functions
generalized to work for G-sets (e.g., IsConjugate)
-
Extension algorithm for function Classes installed
-
Conjugacy classes for symmetric/alternating groups now written down
directly
-
Direct product of permutation groups now returns sequences of
inclusion and projection maps
-
Better strategy for evaluating function IsSolvable
-
Order filter on subgroup classes functions improved
-
G-set changes (in particular, semantics of GSet(G, SetIndx) changed).
-
Automorphism groups of combinatorial structures are now given on the
support {1 .. n}. The automorphism group now acts on the structure via
the G-set mechanism
-
Parameter names for function ClassMap changed
-
Limit of 10000 elements for function Class(G, x) removed
-
Bug in function OrbitImage fixed
-
Matrix Groups [HB 21]
-
-
Base point selection strategy revised
-
Constructions provided for the orthogonal groups and the
exceptional family G_2(q).
-
Construction of semi-linear groups
-
Tests for irreducibility, absolute irreducibility, semi-linearity
-
Homomorphism induced by action of a reducible group on a G-invariant
submodule and its quotient module
-
Image of a tuple bug fixed
-
Characters of Finite Groups [HB 22]
-
-
Function ClassFunctionSpace is now synonomous with and preferred
to function CharacterRing
-
Characters can be constructed as elt<R | ... : Character := true>
-
Function CoefficientField for a character ring
-
Functions OrthogonalComponents/SymplecticComponents for writing down
(orthogonal/symplectic) components of the tensor powers of a character
-
New irreducible characters are automatically inserted into a central
list of irreducibles
-
Function RemoveIrreducibles removes known irreducibles from a list of
characters
-
Function ReduceCharacters reduces the norms of a list of characters by
computing differences
-
Function KnownIrreducibles
-
Coercion of a scalar into a class function generalized
-
Magma printing of cyclotomic field elements
-
A bug in character subtraction where it may miscompute the characterness
type of the class function has been fixed
-
Integer Ring [HB 23]
-
-
Kronecker Symbol (KroneckerSymbol)
-
Determination of whether an integer is square free (IsSquareFree)
-
Sum of divisors of a positive integer (SumOfDivisors)
-
Number of divisors of a positive integer (NumberOfDivisors)
-
Negative (non-zero) factorization records
-
New functions for factorization records: IsSquareFree, MoebiusMu,
SquareFree, NumberOfDivisors, SumOfDivisors
-
Multivariate Polynomial Rings [HB 29]
-
-
Construction of graded polynomial rings with specific weights on the
variables (relevant functions are PolynomialRing, VariableWeights,
WeightedDegree, IsHomogeneous, HilbertSeries) [HB 29.20]
-
Hilbert-driven Buchberger algorithm to efficiently compute the Groebner
basis of a homogeneous ideal when the Hilbert series is known (function
HilbertGroebnerBasis) [HB 29.22]
-
Multivariate GCD over Z and Q improved
-
Groebner basis computation over function fields significantly improved.
-
Function ProbableRadicalDecomposition to compute a probabilistic prime
decomposition of the radical of an ideal
-
Function GroebnerBasisUnreduced to compute an unreduced Groebner basis
-
Function EasyIdeal to access ``easy''-order ideal of a given ideal
-
Parameters for the function GroebnerBasis
-
Invariant Rings of Finite Groups (New Category) [HB 30]
-
Magma contains a powerful new module for computing with invariant rings
of finite groups. Many of the algorithms are based on the work of
Gregor Kemper (IWR, Universitaet Heidelberg). Given a matrix or
permutation group G, one can construct the invariant ring R of G over
the ground field K and then determine many structual properties of R.
Magma allows computation in invariant rings over ground fields of
arbitrary characteristic. Of particular interest is the modular
case, i.e., the case where the characteristic of the ground field
divides the order of the group---Magma incorporates powerful algorithms
to handle this case also.
-
Invariant ring structure of a finite matrix or permutation group
-
Efficient construction of independent homogeneous invariants of an
invariant ring for a specific degree (function InvariantsOfDegree)
-
Advanced storage and lookup techniques for the Reynolds operator
(function ReynoldsOperator)
-
Computation of Molien series (function MolienSeries)
-
Efficient construction of primary invariants of near-optimal degrees
(function PrimaryInvariants)
-
Efficient construction of secondary invariants (function
SecondaryInvariants)
-
Efficient construction of fundamental invariants (function
FundamentalInvariants)
-
Representation of an invariant ring R as a graded module over the
algebra generated by the primary invariants and construction of the
explicit isomorphism (function Module)
-
Multiple verbosity levels
-
Hilbert series of an invariant ring (function InvariantRing)
-
Determination of whether an invariant ring is Cohen-Macaulay (function
IsCohenMacaulay)
-
Algebraic Number Fields [HB 33, 35]
-
-
Memory leaks in class group computation fixed
-
Function IsMaximal for an order of a quadratic field
-
Function IsEquationOrder for an order of a quadratic field
-
Function IsIntegral for an ANF element now uses the maximal order,
not the equation order (i.e. it has been fixed)
-
Order printing no longer leaves an extra blank line
-
Extension of an order by an element works now
-
Function FactorBasis for an ANF
-
Function RelationMatrix for an ANF
-
Function MinkowskiBound for maximal orders
-
Extension ext<O | 1> for an order O returns O, rather than a
transformation of it by the identity
-
Modules Hom(U, V) [HB 42]
-
-
Explicit construction of Hom(H_1, H_2) for homomorphism modules H_1 and
H_2 with left or right matrix action
-
Construction of the reduced module of a homomorphism module whose
elements are with respect to the bases of the domain and codomain (not
just the generic bases of these)
-
Modules over K[x_1, ..., x_n] (New Category) [HB 43]
-
A new category for modules over multivariate polynomial rings has been
installed. Many of the module operations are translated into ideal
operations, where the Groebner basis machinery may be applied, by
adding a column field to each monomial. This method is much more
efficient than introducing new variables to represent the columns since
the number of columns does not affect the total number of variables.
-
Construction of modules with TOP (``term over position'') or POT
(``position over term'') module orders
-
Construction of graded modules with weights on the columns (determining
homogeneity)
-
Construction of submodules and quotient modules
-
Access, Arithmetic, Predicates, etc. on module elements
-
Construction of Groebner bases of modules
-
Construction of minimal bases of homogeneous modules (function
MinimalBasis)
-
Sum and quotient of submodules
-
Computation of the hilbert series of (the quotients of) homogeneous
modules
-
Construction of syzygy modules (functions SyzygyModule and
MinimalSyzygyModule)
-
Finitely presented Algebras [HB 45]
-
-
Bug fix in the Linton vector enumerator
-
Elliptic Curves [HB 46]
-
-
Mutation assignments P +:= Q and P *:= n now work properly
-
New functions NaiveHeight(P) and CanonicalHeight(P)
-
New function IsPoint(S, E)
-
Elliptic curve isomorphism maps now allow preimages
-
Most functions which used to require integral curves will now accept
rational curves instead---the exceptions are functions dealing with the
heights of points
-
Memory leaks fixed (curves will actually be deleted now)
-
Enumerative Combinatorics [HB 47]
-
-
Function Bernoulli has been changed to BernoulliNumber
(although Bernoulli will remain for a while for backwards
compatibility), and the function now returns a FldRatElt rather
than the FldPrElt it used to
-
Function Binomial(n, r) now works for all integers n, r
-
New functions BernoulliPolynomial(n),
HarmonicNumber(n), EulerianNumber(n, r)
-
New functions Subsets(S), Multisets(S, k),
Subsequences(S, k)
-
New functions NumberOfPermutations(n, r), Permutations(S, k),
Permutations(S)
-
Graphs [HB 48]
-
-
The graph constructor now has the use of the support
-
Functions Support(G) (graph G) and
Support(V) (vertex set V)
-
Digraphs may now have loops in their edge specifications
-
G.i no longer works for graphs
-
Category names for Graph edges and vertices (and sets thereof)
have been changed to GrphVert, GrphVertSet, GrphEdge,
and GrphEdgeSet
-
Functions V.i and E.i now return the i-th vertex and edge
respectively
-
All functions which used to return a graph only now also return the
vertex and edge sets
-
Function Index(v) for vertex v
-
Loops in digraphs are represented in the incidence matrix by a column
with precisely one non-zero element, which may be either 1 or -1; when
returned, this element will be -1
-
Switch is now not allowed for digraphs (avoids problems about loops)
-
Vertex, edge and graph printing has been changed to use the support, or
the standard support if Minimal print level is specified
-
New function StandardGraph(G)
-
New function ChangeSupport(G, I) and procedure
ChangeSupport(~G, I)
-
Function AutomorphismGroup now returns a permutation group on the
standard support and the edge and vertex G-sets
-
Graphs may now have vertex and edge labels
-
For convenience, there are now many functions to mutate graphs by
referring to their vertices as integers; this avoids having to use the
vertex and edge sets
-
Function EdgeGroup now returns the appropriate G-set and the support of
the group G is the standard support
-
Incidence Structures and Designs [HB 49]
-
-
Functions IncidenceStructure(G) (graph G) and IncidenceStructure(I)
(incidence structure I) now also return point and line sets
-
Function D.i no longer works for designs
-
Function AutomorphismGroup now returns the automorphism group on the
standard support. Action on the design is obtained through the use of
G-sets.
-
Function BlockGroup now returns the appropriate G-set and the support
of the group G is the standard support
-
Finite Planes [HB 50]
-
-
Functions Eltseq and Coordinates now work for points and
lines
-
Function PointGraph for a plane
-
Functions AffinePlane(P, l), AffinePlane(I), and
ProjectiveEmbedding(A) now return point and line sets as well
-
Category names ProjPl and AffPl changed to
PlaneProj and PlaneAff respectively
-
Function CollineationGroup now returns the collineation group on the
standard support. Action on the design is obtained through the use of
G-sets
-
New optimized algorithm for computing collineation groups of
projective planes
-
Function LineGroup now returns the appropriate G-set and the support of
the group G is the standard support
-
Error-correcting Codes [HB 51]
-
The coding theory module has been considerably expanded. Many new
functions have been added for constructions of standard codes, bounds
associated with codes, and decoding. Permutation group actions on
codes have been extended to allow monomial actions on non-binary
codes.
-
New standard linear code construction functions (SimplexCode)
-
New simple linear code construction functions (EvenWeightCode, etc.)
-
New standard cyclic code construction functions (CyclicCode given
roots)
-
New standard alternant code construction functions (ChienChoyCode,
FireCode, GabidulinCode, GeneralizedSrivastavaCode, ReedSolomonCode,
SrivastavaCode)
-
New functions ConcatenatedCode and JustensenCodes for the construction
of concatenated and Justensen codes
-
Function AllInformationSets to compute all information sets of a
code
-
Functions CheckPolynomial, GeneratorPolynomial, and
Idempotent for a cyclic code
-
Function LeeWeight
-
New Predicates to test properties of codes (IsMaximumDistanceSeparable,
IsNearlyPerfect, IsPerfect, IsProjective, IsSelfDual, IsWeaklySelfDual)
-
Function MinimumDistance as synomym for MinimumWeight for
linear codes
-
Function Decode for decoding of received vectors
-
Functions GilbertVarshamovBound, EliasAsymptoticBound, etc.
for upper and lower bounds associated with codes
-
Functions BKABdsInfoRate, BKBdsCardLargestCode, etc. for
best known asymptotic bounds
-
Functions MattsonSolomonTransform, InverseMattsonSolomonTransform to
compute Mattson-Solomon transforms
-
Functions KrawchoukPolynomial, KrawchoukTransform,
and InverseKrawchouk to compute Krawchouk polynomials
-
New permutation and monomial actions of permutation groups on codes
-
Improved automorphism group functions (new version of J. Leon's
PARTITION package)
-
Calculation of automorphism groups and testing equivalence extended
to codes over GF(p) (prime p) and GF(4)
-
Function PermutationGroup to compute the permutation automorphism
group of a non-binary code
-
Function AutomorphismSubgroup to compute a subgroup of the full
automorphism group of a code
-
Function AutomorphismGroupStabilizer to compute the subgroup
of the full automorphism group of a code which stabilizes a specified
number of initial base points
-
Function IsEquivalent to test equivalence of codes for codes
over GF(p) (prime p) and GF(4)
-
Function Aut to construct power structure of all automorphism maps
[Next] [Prev] [Right] [Left] [Up] [Index] [Root]