# My Maple code

Here is my Maple code. The following are part of Maple 6:
• algcurves package. Type ?algcurves in Maple 6 to view the help pages for this code. More help for this code is available in this worksheet on algcurves in Maple V.5. These functions: differentials, homology, monodromy, periodmatrix, are new in Maple 6. These new functions are joint work with Bernard Deconinck. A Maple worksheet that also describes these new functions is available in Maple 6 under Help/Example Worksheets/Geometry. The monodromy command can compute the Galois group of any polynomial over C(x). The periodmatrix command (Riemann matrix), is needed for computing with theta functions, which in turn can be used for numerically solving important differential equations in physics. If you have Maple V.5 and not Maple 6, and if you want to use the new functions then click here.
• diffop package (differential operators) and diffop user functions. Note: some of these files contain several user functions. Type ?diffop in Maple 6 to view the help pages for this code. The main function is: DFactor, the factorizer for differential operators, which is essential for solving higher order linear differential equations.
• Various other programs. The files p_curv and test_ratsols are for checking if hypergeometric or rational solutions of recurrence relations could exist. nfintbas is for computing an integral basis of a number field. RiemannPsols is for solving the Riemann-Papperitz equation (a differential equation). ReduceField is for reduction mod p (used in p_curv, test_ratsols, and also in the new code for hypergeometric solutions of recurrence relations).
This directory contains newer code, not yet included in Maple. It contains code for:
• Factoring polynomials.
• Primfield. Compute primitive field mod p, (i.e. just 1 RootOf), which is a userinterface for the previously implemented ReduceField.
• Subfields. Compute subfields. Yet another utility needed for the new code for hypergeometric solutions of recurrence relations. Uses: shorten, code for simplifying polynomials of which we are about to take a root. This results in shorter expressions.
• higherorder, a solver for several types of linear differential equations. It can quickly recognize symmetric products, symmetric powers, special cases of LCLM's, etc. More code will probably be added later to solve more types of differential equations.
• kovacicsols. Completely re-written implementation for finding Liouvillian solutions for differential equations order 2. Note that in Maple 6, kovacicsols was about the slowest solver inside dsolve, and often got stuck. Not only does the new code never get stuck, it is one of the fast solvers inside dsolve. One of the reasons the new code does not get stuck is that it is much more careful about algebraic extensions, it prevents computing in splitting fields.
The following code is beta. If you want to use it just send me e-mail, right now there are no help pages yet.
• Hypergeometric solutions. Progress Report. A preliminary implementation for Maple6 is now available. A more recent version is available by e-mail.
• old code for Liouvillian solutions of higher order. This code is joint work with J.-A. Weil. We used it to compute pretty large examples, so in principle the code works all right, but to bring it in a shape that it can be used by people other than the authors will probably require a lot more work (more than a month of fulltime programming, hopefully this work could be completed next summer). See also the following experimental code for computing a minimum polynomial for algebraic solutions.

Older versions of some of the above code are now obsolete but you can still download them; click here for my code differential operators and here for my algorithms for algebraic curves.