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 for installing the CoStLy library. must be an absolute path name. Default is "/usr/local/CoStLy". You must have write permission on . This may involve acquiring administratory rights (becoming super user) on your computer. 5) Type "make install OWN= GRP= PREFIX=" for installing the library in the directory . Default for is "root", default for 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