Maple Routines

I have made a series of Maple routines. Below is a brief description of each. The routines have been sorted into two directories: Biblio is the library of general routines, whereas Mirror is contains routines for working on problems related to Mirror Symmetry.

How to use

Some of the files require routines which are not part of standard Maple, but that I've made myself. This has been solved in two different ways: loading the routines at start-up or loading the file containing needed routines upon needing them.

Some routines are loaded when starting Maple: this is entered into the initialization file maple.ini (Windows) or .mapleinit (Unix). Instead of making a big init-file, I've made a file Biblio/EAinit.txt (ie. in the Biblio directory) which contains all these routines. The most important routine set up here is fil() (and related filbib() and filmir()) which is used to load files from a standard working directory defined by localdir (and localdir/Biblio and localdir/Mirror respectively). The advantage of fil() is that it knows the directory and the suffix in advance: I've used the suffix .txt on all Maple-files and will not write the suffix when refering to the file.

Some packages, eg. the Mirror/QHgrass for doing quantum cohomology on Grassmannians, requires routines from other packages, eg. from Biblio/Grass. These other needed packages will then be loaded automatically: the Mirror/QHgrass starts with the command filbib(Grass).


On some of the packages, ordinary help is defined. This is done differently for different versions: defining `help/text/name` in older version, whereas newer versions have other methods which are incorporated by running filbib(makehelp). I've tried to incorporate both ways. Help is put into a separate file with the same name but with the suffix .man.

On some routines there is run-time help: when running the routine, it tells you what to do next. To turn this on, type HelpOn(); to turn it off, run HelpOff().


Comments within the programs are sometimes in Norwegians. I appologize about this and will try to change this into English most places.

(I had an old page with routines which was never updated. However, on a few of the routines, this still has some extra information. The routines linked to from there, however, are outdated: old versions of the files.)

For faster and easier downloading, you can download zipped (compressed) files containing all files in the Biblio directory or in the Mirror directory.

mapleinit (my example)
This is a nice place to define global system variables and input data to the EAinit file which will set up some frequently needed routines. In particular, define the variable localdir to be the working-direcetory from which fil() shall read its files and with the Biblio and Mirror directories as subdirectories.

Version dependent changes: In EAinit, HelpFile() is defined to load the help-files and DefineHelp() is made to define the variables `help/text/name`:=TEXT(...), but this is done differently in recent versions of Maple; hence, you may want to define HelpFile() to do nothing as I have here. Also, it is worth noting that in older versions of Maple, stack() was used instead of stackmatrix(); EAinit checks if linalf[stackmatrix] is defined and if not defines stackmatrix() to be stack().

Routines in Biblio/

The following routines should be placed in the directory Biblio which should be a subdirectory of that working directory defined in the variable localdir.

The initialization file which defined a number of routines: primarily fil(), filbib(), and filmir() for loading files (and help-files); Keyword and Arguments for treating options (keyword=value) given to routines; HelpOn() and HelpOff() for run-time help.
For later versions of Maple (at least under Unix), this will set up help so that ?name opens a help-window with the relevant help.
Grass (man-file [as text-file])
Package for doing Schubert calculus: cohomology of Grassmannians. [Calls on hilbert.]
Find Poincare and Hilbert polynomials of ring; can also find basis (over C) of ring.
Permutations, subsets (of size k), n*m submatrices.
Calculate pfaffians (square roots of determinants of skew-symmetric matrices).
Set up Ross-Moore matrices and pfaffians of these (used in my PhD-thesis).
Differentials: eliminate differentials of order >N (expressions on form d_??? count as differentials).
Translate to/from Macaulay format.
For studying convergence of series and speed up convergence by some simple transformations.
To be used with Grobner bases: put on normal form, but keep track of simplifications.
Two small Grobner basis routines.

Routines in Mirror/

These routines are dealing with mirror symmetry, a relatively new branch of algebraic geometry with its origin in theoretical physics.

The following routines should be placed in the directory Mirror/ which should be a subdirectory of that working directory defined in the variable localdir.

Sets up data for analysing variation of complex structure in a family of Calabi-Yau varieties. This file defines some varieties of interest and includes the files needed in the analyses. Run-time help available. [Calls on Biblio\cymatrix, Mirror, MirRes, Binomial, and Msum.]
Used to generate a generalized hypergeometric series from the canonical form described as a residue; the hypergeometric series is the integral of the canonical form over a 3-cycle. Run-time help available.
Routine for simplifying generalized hypergeometric sums and prepare the sum for doing the actual summation to get the initial terms of the series. Run-time help available.
Routines for doing multi-index sums.
From series (generalized hypergeometric sum typically) which represents the integral of the canonical form over a 3-cycle, finds the Picard-Fuchs differential equation, calculates the mirror map, Yukawa couplling, and the curve count sequence. (This is done in a series of a few steps.) Run-time help available.
Routines for doing quantum cohomology: starts with matrix A representing the QH-product p* for a basis, finds the Picard-Fuchs, finds the special solution f0, and has some further routines for manipulating differential operators. [Calls on QHmat.]
Some examples of quantum cohomologies represented by ther p* matrices for use by QH.
Solutions (series) to differential operators.
QHgrass (man-file [as text-file])
Quantum cohomology for Grassmannians. Extends the Biblio/Grass package. Can provide initial data for running the QH package to do complete intersections in Grassmannians. [Calls on Biblio/Grass.]
GivGrass (man-file [as text-file])
Routines for calculating integrals on modulispaces of stable pointed curves on Grassmannians using Bott's formula; particularly adjusted for calculating two-point functions of lines on Grassmannians. [Calls on Biblio/perm.]

Back to homepage

Created 27 May 1999 by Einar Andreas Rødland.