MAPC version 1.0 Release date: Friday Dec. 18, 1998 Copyright 1998 The University of North Carolina at Chapel Hill. All Rights Reserved. Full copyright notice at the end of this file. MAPC is a C++ library for manipulating algebraically defined points and curves in the plane. MAPC represents points and curves exactly, and makes use of a number of approaches to increase the efficiency of manipulation on these points. MAPC includes classes for polynomials, 1D and 2D points, and algebraic plane curves. Important --------- MAPC relies on two other libraries, which are not included in the distribution. Each has its own copyright and distribution conditions. 1. LiDIA LiDIA is a C++ library for computational number theory which provides a collection of highly optimized implementations of various multiprecision data types and time-intensive algorithms. LiDIA is developed by the LiDIA Group at the Darmstadt University of Technology. LiDIA is free for non-commercial purposes. This includes using LiDIA for research in schools, universities or similar academic organizations. A license fee for non-commercial use is NOT required. Any other use is assumed to be commercial and it is subject to the commercial license. For details on the commercial license, see the LiDIA web page mentioned below. 2. LAPACK LAPACK is a library of Fortran 77 subroutines for solving the most commonly occurring problems in numerical linear algebra. It is public-domain software, and can be used freely. A version of LAPACK translated to C is available as well; MAPC can use either version. Requirements ------------ MAPC has been tested with g++ version 2.7.2 on Intel/Linux and SGI-Irix-6.3. It should run without difficulty under g++ under any other UNIX-like system supported by LiDIA. It may even work under other compilers and systems, such as AT&T's Cfront compiler (commonly known as `CC'), Microsoft Visual C++, and CodeWarrior for Macintosh, which are also supported by LiDIA, but we haven't tried it. MAPC's makefiles work only with GNU make (gmake). GNU make is available from ftp://gatekeeper.dec.com/pub/GNU/ . With minor modifications, you should be able to use any other make utility. Installation ------------ 1. Download and unpack the MAPC source archive from http://www.cs.unc.edu/~geom/MAPC according to the instructions there. 2. Download, unpack and compile the LiDIA and LAPACK libraries. They are available at http://www.netlib.org/lapack/ http://www.informatik.th-darmstadt.de/TI/LiDIA/ 3. Examine the file `include.mk' and alter it to reflect your system. This file is the best source for up-to-date information on which systems are supported. 4. Run make libmapc.a to compile the library. Notice that it constructs a separate library for each source subdirectory, then finally constructs libmapc.a from whatever .o files it can find in the subdirectories. 5. (optional) Run any of make ccint make ctop make dets to compile example programs from the main/ directory. The first two perform curve-curve intersection and curve topology, respectively. Example input files for `ccint' and `ctop' may be found in data/. The `dets' program generates random matrices in various ways, computes the signs of their determinants in various ways, and times the process in various ways. /*************************************************************************\ Copyright 1998 The University of North Carolina at Chapel Hill. All Rights Reserved. Permission to use, copy, modify and distribute this software and its documentation for educational, research and non-profit purposes, without fee, and without a written agreement is hereby granted, provided that the above copyright notice and the following three paragraphs appear in all copies. IN NO EVENT SHALL THE UNIVERSITY OF NORTH CAROLINA AT CHAPEL HILL BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING LOST PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE UNIVERSITY OF NORTH CAROLINA HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. THE UNIVERSITY OF NORTH CAROLINA SPECIFICALLY DISCLAIM ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE UNIVERSITY OF NORTH CAROLINA HAS NO OBLIGATIONS TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. The authors may be contacted via: US Mail: Dinesh Manocha Department of Computer Science Sitterson Hall, CB #3175 University of N. Carolina Chapel Hill, NC 27599-3175 Phone: (919)962-1749 EMail: geom@cs.unc.edu \**************************************************************************/