# MuPAD-Combinat -- Algebraic Combinatorics package for MuPAD

MuPAD-Combinat is an open-source algebraic combinatorics package for the computer algebra system MuPAD 2.0.0 and higher. Its main purpose is to provide an extensible toolbox for computer exploration, and foster code sharing between researchers in this area.

The development started in spring 2001, and the package currently contains functions to deal with usual combinatorial classes (partitions, tableaux, decomposable classes, ...), Schubert polynomials, characters of the symmetric group, and weighted automata. It supplies the user with tools for constructing new combinatorial classes and combinatorial (Hopf) algebras. As an application, it provides some well-known combinatorial Hopf algebras like the algebra of symmetric functions and many generalizations. There is also some preliminary support for combinatorial Lie algebras and operads.

The core of the package is integrated in the official library of MuPAD since version 2.5.0.

## Latest news

## Project page on Sourceforge, including:

- Download area
- Mailing-lists
- Bug reports

## Documentation

## Wiki, including:

- User Testimonials
- Frequently Asked Questions
- Programming Tips and Tricks
- Specifications discussions

## How to contribute

## News and future schedule

2005/01/21
  Prerelease of MuPAD-Combinat 1.2.1 (stable?)
  See the NEWS file, or go to the download section
2004/08/10
  Release of MuPAD-Combinat 1.2.0 (stable)!
  See the NEWS file, or go to the download section
2004/06/28
  First MuPAD-Combinat developers meeting.
2004/05/04
  Publication of an overview article on MuPAD-Combinat in the Séminaire Lotharingien de Combinatoire vol. 51
2003/11/28
  Release of MuPAD-Combinat 1.1.0 !
2003/11/21
  We now have a Wiki
2003/11/07
  Logo and Nick name contest for MuPAD-Combinat
2003/09/24
  Integration of the full package in the beta version of MuPAD 3.0.0
2003/09/24
  Tutorial at the 51st Séminaire Lotharingien de Combinatoire in Bertinoro
2003/04/11
  Release of MuPAD-Combinat 1.0.0! (see the NEWS file)
2003/04/04
  Release of MuPAD-Combinat 0.9.2 (final prerelease for the 1.0 series)
2003/03/24
  Presentation of the package at the 50th Séminaire Lotharingien de Combinatoire in Domaine Saint-Jacques
2003/03/15
  Submission of an overview article for SLC
2002/11/28
  Release of MuPAD-Combinat 0.9.1 (prerelease for the 1.0 series)
2002/10/18
  Release of MuPAD-Combinat 0.9.0 (prerelease for the 1.0 series)
2002/06/05
  Integration of the CS library
2002/05/23
  Presentation of MuPAD-Combinat at CFL 2002
2002/02/01
  Release of MuPAD-Combinat 0.2.0 (prerelease for the 0.2 series) (see the NEWS file)
2001/12/10
  Integration of the core of MuPAD-Combinat 0.2 in the official library of MuPAD
2001/12/06
  Integration of the mu-EC library
  See the library muEC
2001/03/23
  Release of MuPAD-Combinat 0.1 (beta version)
2001/03/20
  Presentation of the project at the 46th Séminaire Lotharingien de Combinatoire in Lyon

## Documentation

- README.
- NEWS and complete change log.
- Authors and thanks.
- Quick installation procedure and generic installation instructions.
- Handbook:
  - Introduction and motivations;
  - A guided tour;
  - Exercises;
  - Notes on the design;
  - Reference manual;
  - Technical sheet.
- Papers:
  - Overview article on MuPAD-Combinat in the Séminaire Lotharingien de Combinatoire vol. 51
  - A fancy poster, in French
  - A more technical poster
- TODO: future plans for MuPAD Combinat

## How to contribute

We are actively seeking comments, suggestions, bug reports, code, users and developers, in order to benefit from the experience of the community. Please send your e-mails to the developers mailing list: mupad-combinat-devel@lists.sf.net.

- If you have documented combinatorics routines in MuPAD, please send them to the developers mailing list. They will be informally reviewed for quality of code (readability and efficiency), documentation, and scope, and integrated in the best possible place. Of course, you will receive proper credit for this.

  Say that you want to provide a new function `combinat::partitions::toFrobenius` which returns the Frobenius notation of a partition. Then, you should send us the following 3 files:

  A documentation file toFrobenius.tex
    The data representation and any assumption or convention taken should be completely explicited. E.g. "partitions are *non increasing* lists of integers". Whenever easy, it's best to include a minimal mathematical definition of the objects in use; however the documentation can also provide a reference for the full mathematical background.

    Here, we described the documentation for a "simple" function, designed to be directly included in the documentation of the library. For more involved ones a standalone help page is better. Please check the sources of the documentation in the lib/COMBINAT/DOC/ subdirectory of the distribution for examples.

    It's good practice to start writing the documentation even before writing the code!

    The examples in the documentation will be checked automatically, so you don't have to include them in the test file. The easiest way to write the output in the `Mexout` environment is to run the example in a terminal MuPAD session, and to copy paste the result back in the documentation. Note that spacing is relevant in the automatic checking; by convention, you should type `TEXTWIDTH := 63` first to set the centering. You may want to try the following little utility: `prog::makeExample(combinat::partitions::list(5))`

  A source file toFrobenius.mu
    You can load this file into MuPAD with `read("toFrobenius.mu")`
  A test file toFrobenius.tst
    The best way to build a good test file is simply to include each and every test that you run while writing and debugging the code. You can run the test file any time with`read("toFrobenius.tst")`. Please, don't forget to check the trivial cases! You may find helpful to use the following little utility: `prog::makeExample(combinat::partitions::list(5))`.
- If you have routines written in some other programming language, or even if you just have specific needs, send them also to the developers mailing list, with complete documentation and references (in the same format as above)! We will do our best to translate and/or implement the routines soon, but there is no promise. Things will always evolve faster if you provide running code!

- Send us bug reports, bug fixes, suggestions, flames, ...
- Send us your comments about the overall structure of the package (see the preliminary design document). Tell us how you use it or how you would like to be able to use it. Tell us if you like it or hate it.
- Let us know about existing open-source packages that could be integrated into the combinat package. Of course, full credit will be given to the original authors of the package. So far, we have integrated the packages mu-EC, CS, Symmetrica, Nauty, lrcalc (see the AUTHORS file), and we are progressively integrating the algebraic combinatorics package ACE formerly developed at the IGM (university Marne-la-Vallée, France), as well as the invariant theory library PerMuVAR.
- Write tutorials on how to combine and use the basic combinatorial routines, to do many interesting things in algebraic combinatorics, theoretical physics, ...

We would like to thank Source Forge who is hosting this project, and providing us with all those neat services.

Contact: mupad-combinat-devel@lists.sf.net.