
25 Jan
2002
25 Jan
'02
6:32 p.m.
Dear Sirs,
first of all I would like to thank you for fi_lib++. I have just finished reading the documentation and it turns out that fi_lib++ has almost all the features of the library I was writing myself. I have a few questions:
1) What is the official web site for the library? 2) Is there a mailing list for fi_lib++ users and developers? 3) If not, to whom should I report bugs and improvements?
To start with, I am having namespace problems (in my application I need to define FILIB_NAMESPACES). The problems I have found so far are solved by the patch attached below. All the best
Roberto
--
Prof. Roberto Bagnara
Computer Science Group
Department of Mathematics, University of Parma, Italy
http://www.cs.unipr.it/~bagnara/
mailto:bagnara@cs.unipr.it
diff -rcp interval.orig/macro/include/Interval.h interval/macro/include/Interval.h
*** interval.orig/macro/include/Interval.h Thu Nov 1 11:15:24 2001
--- interval/macro/include/Interval.h Fri Jan 25 18:52:55 2002
***************
*** 33,39 ****
#endif
#ifdef FILIB_NAMESPACES
! namesupersetace filib
{
#endif
--- 33,39 ----
#endif
#ifdef FILIB_NAMESPACES
! namespace filib
{
#endif
diff -rcp interval.orig/macro/include/rounding.h interval/macro/include/rounding.h
*** interval.orig/macro/include/rounding.h Wed Apr 25 15:48:56 2001
--- interval/macro/include/rounding.h Fri Jan 25 18:54:40 2002
***************
*** 22,33 ****
#define ROUND_UP
#define ROUND_NEAR
static const double ZERO_SUCC=Double::succ(0.0);
static const double ZERO_PRED=Double::pred(0.0);
static const double ONE_SUCC=Double::succ(1.0);
! static const double ONE_PRED=Double::pred(1.0);
!
#define low(a) ((a)>0)?((a)*ONE_PRED):((a)=0?ZERO_PRED:(a)*ONE_SUCC)
#define high(a) ((a)>0)?((a)*ONE_SUCC):((a)=0?ZERO_SUCC:(a)*ONE_PRED)
--- 22,40 ----
#define ROUND_UP
#define ROUND_NEAR
+ #ifndef FILIB_NAMESPACES
static const double ZERO_SUCC=Double::succ(0.0);
static const double ZERO_PRED=Double::pred(0.0);
static const double ONE_SUCC=Double::succ(1.0);
! static const double ONE_PRED=Double::pred(1.0);
! #else
! static const double ZERO_SUCC=filib::Double::succ(0.0);
! static const double ZERO_PRED=filib::Double::pred(0.0);
!
! static const double ONE_SUCC=filib::Double::succ(1.0);
! static const double ONE_PRED=filib::Double::pred(1.0);
! #endif
#define low(a) ((a)>0)?((a)*ONE_PRED):((a)=0?ZERO_PRED:(a)*ONE_SUCC)
#define high(a) ((a)>0)?((a)*ONE_SUCC):((a)=0?ZERO_SUCC:(a)*ONE_PRED)