Maple Share Library:  Algebra
=============================

charsets        > readshare(charsets, algebra);        (171K)
                SEE ALSO: algebra/charsets.tex        (47K)

                A implementation of Ritt-Wu's characteristic sets method.
                Includes characteristic sets of (multivariate) polynomial sets,
                decomposing polynomial sets into ascending sets and irreducible
                ascending sets, decomposing algebraic varieties into
                irreducible components, factorizing polynomials over algebraic
                number fields and solving systems of polynomial equations.
                AUTHOR: Dongming Wang, wang@risc.uni-linz.ac.at

compoly         > readshare(compoly, algebra);
                Implements a faster algorithm for polynomial decomposition
                (see Gutierrez et al.) that does not require factorization.
                AUTHOR: Bruno Salvy, salvy@inria.fr
                AUTHOR: Francois Morain: morain@inria.fr

euclid.ms       FILE: algebra/euclid.ms
                An expository article on how to compute the greatest common
                divisor (Gcd) of two integers using ``Euclid's algorithm''
                and the ``Binary Gcd'' algorithm.
                Shows how to write simple Maple programs in both a procedural
                and functional programming style.
                AUTHOR: Michael Monagan, monagan@inf.ethz.ch

evalmod         > readshare(evalmod, algebra);
powmod          Arithmetic modulo a single polynomial ideal.
                evalmod(a,b,x) evaluates a rational expression a(x) mod b(x)
                powmod(a,n,b,x) computes the polynomial a(x)^n mod b(x)
                Where b(x) is a polynomial in x over Q, Zp, Q(Y) of Zp(Y)
                AUTHOR: Michael Monagan, monagan@inf.ethz.ch

fields          > readshare(fields, algebra); (43K)
                SEE ALSO:  algebra/fields.ms, algebra/fields.dvi (42K)

                Let N be a field extension of L, a field extension of K,
                such that N is finitely generated over K.
                This package uses Grobner basis methods to calculate the
                transcendence degree of N|L and the degree [N:L] if the field
                extension is algebraic, and related questions.
                The implementation works for K = Q or K = Q(alpha) a single
                algebraic extension of Q.
                AUTHOR: Gregor Kemper, kemper@kalliope.iwr.uni-heidelberg.de

galois          > readshare(galois, algebra); (40K)
                Computes the Galois group of a polynomial of degree <= 7
                Extends the functionality of the library routine galois
                from Q[x] to Q[t1,t2,...,tm][x] i.e. polynomials with
                polynomial coefficients.  Note, the Galois group computed
                does not specialize correctly for particular values of
                the parameters t1, t2, ..., tm.  The code is presently being
                extended to higher degree.
                AUTHORS: R. Sommeling, T. Mattman,
                AUTHORS: J McKay, mckay@vax2.concordia.ca

GB              > readshare(`mod/GB`); (90K)
                An implementation of Buchberger's algorithm for computing
                Grobner bases over finite fields, i.e.
                over Z_p(a,b,c,...)[x1,x2,...,xn] using either the
                term ordering total degree or pure lexicographic.
                AUTHOR: Andreas Pirklbauer, andreas@think.com
                AUTHOR: Dominik Gruntz, gruntz@inf.ethz.ch

genus           > readshare(IntBasis, algebra); (24K)
integral_basis  SEE ALSO: algebra/IntBasis.tex  (30K)

                Computes an integral basis for an algebraic number or function.
                genus(f,x,y) computes the genus of an algebraic curve given
                by the polynomial f in x and y.
                This code is using a new method based on Puiseux series
                expansions, and should be considerably faster than
                the Maple library routine maxorder for large problems.
                AUTHOR: Mark van Hoeij, hoeij@sci.kun.nl

GFsplit.ms      FILE: algebra/GFsplit.ms
                A application worksheet to error correcting codes showing
                how to determine if a polynomial f(x) over GF(p^k) splits into
                linear factors.  The worksheet shows calculations over finite
                fields and gives a description of the method used by Maple's
                Roots command which solves the congruence

                    x^n + a[n-1]*x^n-1 + ... + a[0] == 0 mod p

                AUTHOR: Michael Monagan, monagan@inf.ethz.ch

group.ms        FILE: algebra/group.ms
                An application of Maple's group package to answering various
                questions about the small Rubik's cube.

invar           > readshare(invar, algebra); (129K)
                SEE ALSO: algebra/invar.tex (30K), algebra/invar.dvi (44K)

                The invar package is a package of routines mainly for
                computing the invariant ring of permutation groups or
                finite linear groups over Q or an algebraic number field.
                AUTHOR: Gregor Kemper, kemper@kalliope.iwr.uni-heidelberg.de

MatPade         > readshare(MatPade, algebra);  (47K)
                SEE ALSO: algebra/MatPade.ms

                A set of functions to compute matrix-type Pade approximants.
                Examples of such approximants include Hermite Pade,
                Simultaneous Pade, right and left matrix Pade approximants.
                AUTHOR: G. Labahn, glabahn@daisy.uwaterloo.ca

pade2           > readshare(pade2, numerics);
                The call pade2([f1,f2,...,fn],x=p,[d1,d2,...,dn]) computes a
                generalized Pade approximation of the functions f1,f2,...,fn
                at x=p where the output polynomials [g1,g2,...,gn] in x
                (not all 0) satisfy
                (i)  degree(g.i,x) <= d.i for all i
                (i)  f1*g1+f2*g2+...+fn*gn has a zero of multiplicity
                     d1+d2+...+dn+n-1 at x=p
                AUTHOR: Harm Derksen, hderksen@sci.kun.nl

polycon         > readshare(polycon, engineer); (84K)
                SEE ALSO: engineer/polycon.tex

                This package includes functions for analysis of polynomial and
                rational control systems, i.e. control systems of the type

                        dx/dt=f(x(t),u(t)),  y=h(x,u)
                or
                       x(t+1)=f(x(t),u(t)),  y=h(x,u)

                where h and all components of f are rational functions in
                x = (x1,...,xn) and u.
                AUTHOR: Krister Forsman, krister@isy.liu.se

subres          > readshare(subres, algebra);
                Given two polynomials a and b in x the function subres(a,b,x)
                computes the subresultant polynomial remainder sequence.
                AUTHOR: George Labahn, glabahn@daisy.waterloo.edu

Subres mod p    > readshare(`mod/Subres`);
                Given two polynomials a and b in x the function
                Subres(a,b,x) mod m computes the subresultant polynomial
                remainder sequence over the integers modulo m.
                AUTHOR: George Labahn, glabahn@daisy.waterloo.edu

SqrFree         > readshare(`mod/SqrFree`);
                SEE ALSO: mod/SqrFree.tex
                Computes the square-free factorization of a multivariate
                polynomial over a finite field -- Maple's Sqrfree(a) mod p
                only works for univariate polynomials.
                AUTHOR: Steve Swanson, swany@math.purdue.edu

trinom.ms       FILE: algebra/trinom.ms
                An application to computing primitive trinomials over finite
                fields for use in error correcting codes and random number
                generators.  This shows how to use Maple to compute with
                polynomials over finite fields.
                AUTHOR: Michael Monagan, monagan@inf.ethz.ch

