
File: README, 2005/10/17

CoStLy (COmplex interval STandard functions LibrarY), Version 2.0.4

Copyright (C) Markus Neher, markus.neher@math.uni-karlsruhe.de
              Ingo Eble,    ingoeble@web.de

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.


Description
===========

CoStLy is a free C++ library of complex interval standard functions. 


Installation
============

1) Make sure you have

	a) the GNU C++ compiler gcc 2.95.2 through 3.3.5 (or higher)

	b) the C-XSC library (version 2.0 or higher)

	   OR

             the filib++ library (version 2.0 as of 18-Jun-2004 or higher) 

   installed.
  
   (Download the C-XSC library from

        http://www.xsc.de

    and the filib++ library from

        http://www.math.uni-wuppertal.de/wrswt/software/filib.html

    For installing the libraries, see the respective README files.)

2) Unpack the CoStLy source files with the command 

       "tar -xvzf CoStLy-2p0p0.tgz".

   This creates a directory  ./CoStLy-2p0p0 with all the necessary files.

3) Modify the path names in the attached Makefile according to the directory
   structure on your computer. Depending on your interval library, type 
   "make lib-cxsc"  or  "make lib-filib" to compile the CoStLy library.

4) Choose a directory <prefix> for installing the CoStLy library. <prefix>
   must be an absolute path name. Default is "/usr/local/CoStLy". 

   You must have write permission on <prefix>. This may involve acquiring 
   administratory rights (becoming super user) on your computer.

5) Type "make install OWN=<owner> GRP=<group> PREFIX=<prefix>" for installing 
   the library in the directory <prefix>.

   Default for <owner> is "root", default for <group> is "users".

   Example: If you are "tom" belonging to group "users" and would like to 
   install the CoStLy library in a directory named "/home/jerry", type

   "make install OWN=tom PREFIX=/home/jerry"

6) Use the files in the subdirectory  ./CoStLy-2p0p0/costlytest to test 
   your installation.

   Copy the appropriate makefile to "Makefile". Modify the pathnames in 
   Makefile according to the directory structure on your computer.
   Type "make" to compile costlytest.cpp. 
   
   Run costlytest and compare the output with the content of the reference 
   file costlytest_ln_cxsc.res or costlytest_ln_filib.res.

   Modify costlytest.cpp for testing other CoStLy functions.


Known problem
=============

Recent versions of the GNU-C++ compiler and the glibc library continue
program execution in case of overflow with basic arithmetic operations.
As of today, neither the C-XSC nor the filib++ interval libraries are 
prepared for this behaviour. Hence, if overflow occurs, results computed with 
C-XSC or filib++ may not always be correct. This also affects CoStLy.

Overflow treatment should be performed on the lowest level. Hence, we currently
do not plan to include it in the CoStLy library. It has been announced that 
the next version of C-XSC will handle overflow.

At present, the following workaround for Linux systems with GNU-C++ compiler
is recommended. Include the following line on the top of your main procedure:

 feenableexcept(FE_INVALID|FE_DIVBYZERO|FE_OVERFLOW);

Overflow will then cause program abortion.

Note: This workaround is only available for the C-XSC version of CoStLy. The 
filib++ version may compute incorrect results if overflow occurs.


Technical support
=================

None. CoStLy is free software, remember?

In case of a problem, you may try sending an email to one of the above 
adresses, with fingers crossed for reply.


Request to CoStLy users
=======================

 1) If you find a bug in this program, please send me an email.

 2) If you use CoStLy in your work, please include a reference. Suitable 
    references are found on the CoStLy website and on my personal homepage.
  
Karlsruhe, October 2005
  
Markus Neher