============================================================================== README. Generated from README.in by configure. ============================================================================== General information =================== Name : mupad-combinat Version : 1.3.3 (development) Summary : MuPAD-Combinat -- Algebraic Combinatorics package for MuPAD License : LGPL Vendor: : Nicolas M. Thiéry URL : http://mupad-combinat.sourceforge.net/ Requires : MuPAD Description : MuPAD-Combinat is an open-source algebraic combinatorics package for\ the Computer Algebra System MuPAD. Main features:\ * classical combinatorial classes such as permutations tableaux or trees;\ * classical combinatorial algebras such as symmetric functions;\ * tools for building user defined combinatorial classes and algebras. Requirements ============ The computer algebra system MuPAD, version 2.0.0 or above. This system is available in binary form for many operating systems: http://www.mupad.com/download Using the lastest version of MuPAD Pro (currently 4.0.*) is recommended: - some features are more efficient there - older versions of MuPAD require the package to apply compatibility fixes to the MuPAD library; those might break accidently some other parts of MuPAD; in case of doubt, please try to upgrade. Free licences for MuPAD used to be available for personnal use and (up to a point) research. This is no more the case, except for a 30 days trial licence, and hopefuly temporarily. For details, see: http://fuchssteiner.info/ Licences for all versions of MuPAD are available for the MuPAD-Combinat developers. The licence keys can be fetched from the sourceforge shell server: scp shell.sf.net:/home/groups/m/mu/mupad-combinat/private/keys . Most of the library is written in pure MuPAD, and should work on all operating systems supported by MuPAD. The installation procedure however is quite UNIX oriented; it has currently been successfully tested on various flavors of Linux, on Open-BSD (note that there is no official port of MuPAD for this system), as well as on Mac OS X, and Windows + cygwin. Here are the precise requirements outside of the library itself: For the C++ dynamic modules: - gcc >= 2.95 (Linux, MacOs X), Visual C++ (Windows) gcc 4.0 may temporarilly cause some trouble On MacOs X (Darwin): Xcode Tools >= 2.1 Open Source (select at least gcc, java, Developer Tool Software, and Software Developments Kit) For the xml documentation: - java (GCJ runtime environment does not work yet; sorry but we have to rely on Sun's JRE for the moment) - perl - ruby >= 1.8.4 For the html documentation: - MuPAD >= 4.0.0 For the ascii documentation: - ruby >= ??? For the optional compilation of the posters, papers, ...: - a fairly recent distribution of latex, such as tetex-1.*; - pdflatex - tex4ht For the installation procedure: - gnu make Hopefuly in the future any version of make will work. Note: there are systems where GNU make is installed by default under a different name, like 'gmake'. Just use this name instead of 'make' in all the 'make' commands below. For interaction with linbox (work in progress): - get givaro from ... ./configure; make; make install - yum install atlas atlas-devel atlas-sse atlas-sse2 atlas-sse-devel - get linbox >= 1.1.0 ./configure --with-blas=/usr/lib/atlas --with-givaro --enable-optimization --enable-doc make; make install g++ -O0 linbox-rank.C -o linbox-rank -I../ -L/usr/local/lib -llinbox -lgmp -lgivaro -lgmpxx For the C generation feature of the library combinat::decomposableObjects: - gmp >= 4.0.0 Download and Installation ========================= mupad-combinat is distributed on the web page (see above) in the following form: - zip file with precompiled documentation and dynamic modules for all platforms (Linux, Windows, Mac OS X) and for recent versions of MuPAD Pro. To install, you just need to unpack the zip file in the system-wide MuPAD package directory (/packages), or in your own package directory typically ~/.mupadpro40/packages/. Also available from: http://www.mupad.de/download/contributions.php - precompiled RPM and debian packages (GNU/linux i386) - experimental binary installer for Windows - source code - anonymous access to the latest development version via SVN The installation from source code follows the usual UNIX scheme configure / make / make install. See the file 'INSTALL' for generic instructions and 'QuickInstall' for a brief summary. This works as is for Mac OS X. For Windows there are some extra prerequisites (cygwin, Visual C++, ...); see CompilationOnWindows/Notes. In any cases, we strongly recommend that you join the users mailing list: http://lists.sourceforge.net/mailman/listinfo/mupad-combinat-users License ======= mupad-combinat is open source software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License, a copy of which is provided in the file 'COPYING.LIB'. If you use this software for your research, please cite it as you would cite any journal or book, using the following reference: @article {Hivert_Thiery.MuPAD-Combinat.2004, AUTHOR = {Hivert, Florent and Thi{\'e}ry, Nicolas M.}, TITLE = {Mu{PAD}-{C}ombinat, an open-source package for research in algebraic combinatorics}, JOURNAL = {S\'em. Lothar. Combin.}, FJOURNAL = {S\'eminaire Lotharingien de Combinatoire}, VOLUME = {51}, YEAR = {2004}, PAGES = {Art. B51z, 70 pp. (electronic)}, MRCLASS = {05-00 (05-04)}, MRNUMBER = {MR2080390 (2005c:05001)}, note = {\texttt{http://mupad-combinat.sf.net/}}, URL = {http://mupad-combinat.sf.net/}, } We would also appreciate if you could let us know about it (either by e-mail, or better via the Wiki http://mupad-combinat.sourceforge.net/Wiki/UserTestimonials). This will help us find support for further development of this package. And this makes us feel useful :-) External programs included in the distribution: =============================================== mupad-combinat contains optional interfaces with external C/C++ programs. For the user convenience we have included the sources of most of those programs in our distribution. We would like to thank their original copyright holder for allowing us to do so. We however do not own those software copyright, and they may bear other licences than the LGPL. If you plan to redistribute mupad-combinat, you may safely strip away those sources from the distribution. Otherwise, please make sure those licences are compatible with the distribution mean, and/or contact their respective copyright holder for permission. Symmetrica: - Copyright Axel Kohnert & all - License: public domain - URL: http://www.mathe2.uni-bayreuth.de/axel/symneu_engl.html - Source directory: src/Symmetrica - Configure option: --(en/dis)able-symmetrica Littlewood-Richardson Calculator: - Copyright (C) 1999 Anders S. Buch (abuch@math.mit.edu) - License: GPL - URL: http://www-math.mit.edu/~abuch/lrcalc/ - Source directory: src/lrcalc - Configure option: --(en/dis)able-lrcalc Nauty 2.2 (final): - Copyright Brendan McKay, bdm@cs.anu.edu.au - License: see src/nauty/nauty.h - URL: http://cs.anu.edu.au/~bdm/nauty - Source directory: src/nauty Those are the pristine sources of Nauty 2.2 with a little compatibility patch applied (see src/nauty-module/nauty.patch) - Configure option: --(en/dis)able-nauty MuPAD Documentation tools and LaTeX style files: - Copyright 2002 SciFace Software GmbH - License: LaTeX Project Public License - URL: ftp://ftp.mupad.de/MuPAD/distrib/doc-utils - Source directories: src/TOOLS, src/STYLES, src/XSL Bug reports & mailing lists =========================== The web page (see General Information above) provides access to mailing-lists as well as to a bug tracking system. Please use them for bug reports, suggestions, flames and other comments. Any contribution will be warmly welcomed. If you don't have web access, feel free to contact directly the authors (see the file 'AUTHORS'). Please include the following information in any bug report: - Some information about your system: - What operating system and version, - For Linux, what version of the C library, - The version of the compiler (if you know), - Anything else you think is relevant; - A description of the bug itself; - If you can reproduce the bug, the exact steps to reproduce it; - Anything else which you think is helpful. Getting the latest version from the SVN repository ================================================== You first need to install SVN (aka Subversion) if it is not included right away on your system. It can be downloaded from: http://subversion.tigris.org/project_packages.html Beware: you need SSL support to be activated in subversion, which badly enough is not always the case in prebuild binaries (e.g. fink). On Mac OS X, you want to choose the Universal Subversion Installer; you possibly also want the graphical interface: http://www.lachoseinteractive.net/en/community/subversion/svnx/features/ On Linux, you may need the open-ssl package, or even open-ssl-devel if you recompile subversion yourself. Then (from the command line, or within your prefered graphical interface), checkout a working copy of MuPAD-Combinat: svn co https://mupad-combinat.svn.sourceforge.net/svnroot/mupad-combinat/trunk/MuPAD-Combinat Once checked out, the rest of the configuration and installation is as usual (./configure; make; make install). Later on, you just need to run `svn update` in the MuPAD-Combinat directory to update to the latest version. Project developpers can further use this working copy at any point for write access by typing in their sourceforge login and password. See http://sourceforge.net/docs/E09 for more information on subversion usage. ============================================================================== Directory structure of the distribution ======================================= Combinat-/ lib/ // MuPAD source code of the package init.mu // Main initialization file LIBFILES/ // Initialization files of the libraries combinat.mu muEC.mu COMBINAT/ // Library combinat partitions.mu // source code of combinat::partitions ... TEST/ // test files partitions.tst // test file for combinat::partitions ... DOC/ // XML source for the documentation partitions.mupdoc// documentation for combinat::partitions ... PICTURES/combinat/ // pictures for the combinat documentation picture.png picture.pdf ... MUEC/ // Library muEC COMP/ // Library muEC::COMP DOC/ // documentation for muEC::COMP PART/, SYMF/, SG/, SP/, ERR/, TYP/ TEST/ // test files for muEC DOMAINS/ // Domains, axioms and categories AXIOM/ CATEGORY/ DOMAIN/ DOC/ // Overview documents (tutorial, ...) DOC/demo/ // Reusable slides for live demonstrations src/ // C / C++ source code that is needed // for the dynamic modules MAPITL/ // standard distribution of MAPITL GLIP/ // standard distribution of GLIP Symmetrica/ // standard? distribution of symmetrica // C++ source code of the dynamic modules gordan/ GLIP-module/ Symmetrica-module/ doc/ // Documentation en/ // English documentation in XML format combinat.muphlp // Doc for the combinat library Dom_Combinat.muphlp // Doc for extensions to the Dom library ... index.html // Html documentation combinat/index.html // doc of combinat combinat/partitions.html // doc of combinat::partitions ascii/ // Ascii documentation ascii/combinat/partitions.help // doc of combinat::partitions // Log of documentation building for: muphlplog // all the documentation combinat.muphlplog // the doc of combinat combinat/partitions.xmllog // the doc of combinat::partitions ... // Log of example checks for: checklog // all the documentation combinat.checklog // the doc of combinat combinat/partitions.checklog // the doc of combinat::partitions ... dvi/ // Documentation in large format for // the MuPAD help tool combinat.mdvi ... TOOLS/ DTD/ XSL/ // documentation tools from the MuPAD distrib modules/ / // contains links/copies of the dynamic modules // to enable preinstallation tests and use // with package("."); test/ // Results of test files checklog // complete log of all the tests checklog.summary // Quick summary thereof COMBINAT/ combinat.res // results of tests for combinat combinat.checklog // log of tests for combinat partitions.res // results of tests for combinat::partitions partitions.checklog // log of the tests for combinat::partitions combinat.checklog.summary // quick summary thereof ... MUEC/ DOMAINS/ AXIOM/ CATEGORY/ DOMAIN/ Papers/ // Papers, posters, talks about MuPAD-Combinat SLC49/main.pdf, main.dvi, ... Poster/main.pdf, main.dvi, ... 2004-...tex experimental/ Various worksheets written for special occasions. Directory structure after installation: /MuPAD-Combinat lib // As in the distribution modules/ // contains all the dynamic modules doc/ // As in the distribution ============================================================================== Notes for the maintainer ======================== The configure script is generated by automake/autoconf. You need automake >= 1.8, autoconf >= 2.59, and libtool >= 1.5.18. Here is the sequence of commands to recompile fully from scratch: make maintainer-clean rm -f config.cache configure autoreconf ./configure --enable-maintainer-mode --config-cache make make check make install Building binary packages (rpm's, deb's, ...) -------------------------------------------- This requires epm (http://www.easysw.com/epm/) and, obviously, the appropriate package building tools (rpmbuild, dpkg, ...). Here is how to build a rpm: make epm-prepare make epm-rpm # or epm-deb, epm-osx, epm-pkg, ... make epm-clean Similar rules exist for most packaging systems; see the doc of epm for details. The binary packages are put in the distribution/ subdirectory. Creating a new release ---------------------- Update the files configure.ac, NEWS and ChangeLog, rerun bootstrap as above, and issue: make release Adding a new dynamic module called bla -------------------------------------- - Create a new directory src/bla, taking example over src/gordan/ - The main source file should be src/bla/bla.mcc - Edit the file src/bla/Makefile.am appropriately - Edit the file configure.in: - Add src/bla/Makefile in AC_OUTPUT - Add a new conditional bla, taking example over what's done for gordan - rerun bootstrap as above ------------------------------------------------------------------------------ Updating files on the MuPAD CVS server (DANGEROUS) ------------------------------------------------------------------------------ Editing the list of files to be transfered to the MuPAD standard library: ------------------------------------------------------------------------- See the variables MUPAD_LIBRARY_FILES and MUPAD_DOC_FILES in the main Makefile.am Commiting the files to the MuPAD standard library CVS repository: ----------------------------------------------------------------- Be really sure that you know what you are doing! You need to have a developers login on the MuPAD CVS server, and to have the mupad library and documentation directories checked out somewhere on your system with read-write permissions. The variables MUPAD_LIBRARY_CVS MUPAD_DOC_CVS in the main Makefile.am specifies where those directories are. You can also specify them on the command line. make mupad-update-cvs MUPAD_LIBRARY_CVS=... MUPAD_DOC_CVS=... Commiting the package to the MuPAD standard packages CVS repository: -------------------------------------------------------------------- Be really sure that you know what you are doing! You need to have a developers login on the MuPAD CVS server. The variable MUPAD_CVS_LOGIN in the main Makefile.am specifies your developers login on the MuPAD CVS server. You can also specify it on the command line. make update-mupad-cvs-package MUPAD_CVS_LOGIN=nthiery ============================================================================== Notes for developers: ===================== This section has moved to the Wiki: http://mupad-combinat.sourceforge.net/Wiki/index.php/ProgrammingTipsAndTricks