Changes done to the Interval Arithmetic package. Version 4.40 on 13 March 2000 - Added KCC/Sun support. - Updated predicates for release 2.2-I-8. Version 4.39 on 22 November 1999 - Fix test-suite bug detected by CHECK_EXACTNESS (global intervals initilized with incorrect rounding mode). Version 4.38 on 15 November 1999 - Fix the test-suite for VC++ without LEDA. Version 4.37 on 11 November 1999 - Removed stupid Borland warning. Version 4.36 on 7 November 1999 - Added C9X standard compliant rounding mode functions. - Changed the enums FPU_cw_near... to macros CGAL_FE_TONEAREST... Version 4.35 on 7 November 1999 - Replaced the macros CGAL_IA_SMALLEST (resp LARGEST) by static data members Interval_nt_advanced::Smallest (resp Largest). Version 4.34 on 3 November 1999 - The script now recognizes the per predicate marker /*CGAL_NO_FILTER*/. - Added an exact converter from double to Quotient, so that Filtered_exact > works. - Added missing includes in tst0.C. Version 4.33 on 28 October 1999 - New filters: - Comment out the re-adjustment stuff. The bound only grows now. - Add counters per predicate: "number_of_failures" and "number_of_updates". - Restricted_double is now a typedef for double, unless CGAL_IA_CHECK_RESTRICT is defined. - Workarounds for Borland: - initialize the FPU mask correctly so that we don't get useless FPE. - it doesn't have correct IEEE comparisons -> is_valid() workaround. Version 4.32 on 22 October 1999 - Enable the sqrt workaround for Cygwin/GCC too. - New flag CGAL_IA_NO_INLINE which makes static instead of inline the operator* and operator/ over intervals. It reduces code size and can speed up algorithms which use large predicates (but slow down the others). Version 4.31 on 20 October 1999 - Removed Lazy_exact_nt.C from the test-suite (it's experimental stuff). - New experimental filter stuff is now protected with "#ifdef CGAL_IA_NEW_FILTERS" in the code, to protect against VC++ failures. - Hopefully it's ready for release 2.1 now ! :) Version 4.30 on 19 October 1999 - Added one more missing header. - Documentation updates: new flags CGAL_IA_NO_X86_OVER_UNDER_FLOW_PROTECT and CGAL_IA_DONT_STOP_CONSTANT_PROPAGATION. - Constant propagation stopping is on by default, and has a new implementation for GCC which should be zero-cost thanks to __builtin_constant_p() :-). - Put all operators on Interval_nt* friend instead of member, and got rid of the particular version for doubles. - Finally got rid of Interval_nt::bound_t, as well as Double_IEEE.h. - New file src/Interval_arithmetic/workaround_4_ms.c that defines a C function to compute sqrt(double). The problem is that it must be compiled _with_ optimization. I ship the .obj too. - force_ieee_double_precision() does the same things on VC++ and Borland, as on Linux/x86. - Don't submit test files for the experimental stuff [yet]. - Lazy_exact_nt<> is now supposed to work ;) Version 4.29 on 13 October 1999 - Added headers to the automaticaly generated static_infos files. Version 4.28 on 13 October 1999 - Formatting changes. - Removed "inline call before definition" warning detected by MipsPro. - Added #include for Borland. - Added parenthesis around double computation to prevent MipsPro from changing expression computation order... - Removed convert_to(). This was useless and broke MipsPro. - is_valid() workaround for MipsPro. - Removed qualifier "throw(...)" of overlap_action(), it speeds things up on GCC. Version 4.27 on 12 October 1999 - Fixes for Visual C++. Most tests pass correctly now. - New file "KNOWN_PROBLEMS" (in CVS, not submitted) that describes all IEEE related problems found in this package, as well as the workarounds. Version 4.26 on 11 October 1999 - New class Double_IEEE (in Double_IEEE.h), which is a wrapper for a double, but with corrected operators so that it's IEEE 754 compliant (enough). - Replaced lot's of .inf() and .sup() by ._inf and ._sup, using friend functions. Hopefully it works... faster. - Remove special version of operator*(IA, double) and operator/(IA, double). They were faster than the normal one, but not that used, and potentially risky. - Put overlap_action() private. Version 4.25 on 11 October 1999 - Borland version of the rounding mode changes. Version 4.24 on 10 October 1999 [ not submitted ] - New class Lazy_exact_nt<> (in a preliminary state). - Replaced CGAL_CFG_NO_EXPLICIT_TEMPLATE_FUNCTION_ARGUMENT_SPECIFICATION by CGAL_CFG_NO_PARTIAL_TEMPLATE_FUNCTION_ARGUMENT_SPECIFICATION or CGAL_CFG_MATCHING_BUG_2 where appropriate. - More Visual C++ fixes. Version 4.23 on 7 October 1999 - New file include/CGAL/Arithmetic_filter/dispatch.h which contains the list of #include<> for the overloaded predicates, so that they are automatically included. - Added , and to the list of filtered files. - Removed references to CGAL_IA_NO_WARNING and CGAL_IA_NO_EXCEPTION, I think it's not useful. Documentation updated. - Removed Static_adaptative* and fused it in Filtered_exact. - Full template is now: template < CT, ET, Type = Dynamic, Protection = Protected, Cache = No_Filter_Cache > - New subdirectory and files Arithmetic_filter/static_infos/* that contains the definition of the static variables. It is sourced by src/Interval_arithmetic.C. - The 4 types of filter are now mostly ready. - Simplified #if/#else/#elif stuff in _FPU.h, it should not break anything... - Changed ccClass to ccClassTemplate in the doc, at Susan's request. - predicates_ftC[23].h -> predicates/kernel_ftC[23].h. - Removed examples/ directory. Put the script in scripts/. - Optimize is_valid(Interval_nt). Version 4.22 on 2 August 1999 - New class Static_filter_error (in Static_filter_error.h) that helps computing static errors for static filters. - New class Restricted_double, which is a double with restricted functionnality. - New filtering scheme Static_adaptatif_filter [not 100% ready yet]. - Added predicates/sign_of_determinant.h to the list of parsed files. - Added missing "template <>" to keep MipsPro 7.3 happy. - New function "FPU_CW_t FPU_empiric_test()" used by expensive checks. - Replaced CGAL_IA_DEBUG by expensive checks. Version 4.21 on 20 July 1999 - Removed the buggy [1;-1] interval, users just have to write good code. - New flag (disabled by default) -DCGAL_IA_STOP_CONSTANT_PROPAGATION, that stops the constant propagation done by the compiler. - New FPU_get_and_set_cw() function. - Big rewrite of the Perl script. - CGAL_DONT_NEED_FILTER replaced by C++ comments //CGAL_NO_FILTER_BEGIN {END}. Version 4.20 on 8 July 1999 - Changed back __asm__ to asm. - Removed tstlink in the test-suite (which was not submitted anyway). - Test CGAL_USE_GMP before using Gmpz.h. - Documented the caching feature Cache_t of Filtered_Exact<>. - Documented Interval_nt_advanced::number_of_failures. - Documented .exact(), .interval() and .value(). Version 4.19 on 6 July 1999 - The script now locally (in the produced file) defines "CGAL_DONT_NEED_FILTER", so the user can conditionnaly exclude some code in the produced file with "#ifndef CGAL_DONT_NEED_FILTER". For example, some predicates that don't need to be filtered because they are already exact (e.g. lexico*). - Fix for MipsPro. - New function force_ieee_double_precision(), that sets the correct IEEE double precision on Intel only. - CygWin compiles. Version 4.18 on 30 June 1999 - Cleaned up _FPU.h, no more CGAL_*ASSEMBLY* macros, using GNU libc macros on Linux/PPC (x86 keeps the old asm() for compatibility with libc5). - _FPU.h ported to M$ VC++, though it needs testing. - Removed obsolete lower_bound() and upper_bound(). - CGAL_IA_FORCE_TO_DOUBLE() revised on __i386__, it should be slightly faster. - Removed the template ctor for Filtered_exact<>. - Added "std::" where missing. Version 4.17 on 24 June 1999 - Removed the ".pure" and src/*.o files. - Removed include/CGAL/Arithmetic_filter/predicates_on_rtH2.h. - Updates the other specialization files. Version 4.16 on 24 June 1999 - Added specializations for the regular triangulation predicates. - The script now adds "CGAL::", so that it works for the predicates outside namespace CGAL. - IO operators are now in libCGAL, not inlined anymore. - Preliminary not-working-yet Linux/PowerPC support contributed by Pierre Angelier. - Removed the old FPU_set_rounding_to_{zero|nearest|...} functions. Version 4.15 on 25 May 1999 [CGAL release 2.0] - fixed the test-suite for MipsPro. Version 4.14 on 25 May 1999 - src/workaround_4_irix.s.IRIX renamed to workaround_4_irix6.s. Version 4.13 on 11 May 1999 - New test file, that should emit a warning with a smart compiler. - Moved some documentation files. - Removed calls to convert_to from the test-suite (MipsPro...). - Minor doc updates for 2.0. Version 4.12 on 7 May 1999 - Fixed a bug in std::istream & operator>>(). - Fixed the definition of CGAL_IA_CACHE for the MipsPro workaround. - Removed a useless assertion(false) in the predicates. - ship workaround_4_irix as assembly file instead of object. Version 4.11 on 4 May 1999 - Introduced macro CGAL_IA_FORCE_TO_DOUBLE to workaround an Intel processors "feature", breaking the intervals that underflow or overflow. - The test-suite should not say "n" when LEDA is not there. - Fixed a bug in the division ! - Some operator?(Interval_nt) didn't change the rounding mode: fixed. - Fixed MipsPro. Version 4.1 on 30 April 1999 - Fixed typo breaking MipsPro. Version 4.0 on 22 April 1999 - Fixed typo preventing use of assembly versions... Version 3.9 on 20 April 1999 - Big clean up of the caching stuff. Seems to be done the Right Way [tm] now. Version 3.8 on 20 April 1999 - Fixed small bugs. - Updated documentation. Version 3.7 on 15 April 1999 - Partial workaround for lack of partial specialization of the predicates. - New template parameter "Filter_Cache" to Filtered_exact to allow caching of the conversion to intervals (default is off). Version 3.6 on 15 April 1999 - Final (hopefully) workaround for the rounding modes on IRIX. - Workaround for lack of convert_to(source), replaced by convert_from_to(target(), source). Version 3.5 on 1 April 1999 - Header include files order fixes. - Use CGAL::to_double. - Introduced .inf() and .sup(). - Removed friend functions for SunPro 5.0. Version 3.4 on 26 March 1999 - Fix for IRIX. - More std compliance. Version 3.3 on 19 March 1999 - Forgot the src/ directory in the package :( Version 3.2 on 19 March 1999 - Changed max to std::max, idem for min(). Version 3.1 on 12 March 1999 - New functions FPU_get_cw() and FPU_set_cw() replace the old ones. - Major cleanup of _FPU.h. - Updated documentation. - Added a counter of failures "Interval_nt_advanced::number_of_failures". Version 3.0 on 11 March 1999 - Namespace CGAL. - Introduced .exact() and .interval() member functions to the filtered type. - Removed SunPro comments in the doc. - Support standard headers. - More operators (intervals with doubles) supported. - Union and intersection on intervals (operators || and &&). - Quotient supported by the filtering stuff. - function "convert_to<>()" replaced by "struct converter::do_it()". Version 2.7 on 22 December 1998 - Hopefully the last fixes for the 1.2 release. - Added CGAL_square(), and benchmark for it. - Added lots of checks enabled with CGAL_IA_DEBUG. - Updated rtH2 predicates. - Fixed CGAL_convert_to<>() functions with respect to rounding mode, and template<>. - Assembly for Mips disabled. - Added CGAL_FPU_get_rounding_mode() and CGAL_FPU_set_rounding_mode(). Not documented for the moment. And test program tst0.C for that. Version 2.6 on 10 December 1998 - Big renaming that does: - /Filter/ -> /Arithmetic_filter/ - Filter.h -> Arithmetic_filter.h - CGAL_FILTER_H -> CGAL_ARITHMETIC_FILTER_H - CGAL_Filtering -> CGAL_Filtered_exact - CGAL_to_exact_type -> CGAL_convert_to - CGAL_to_IA[advanced]-> CGAL_convert_to () - SunPro and MipsPro are definitely not supported anymore. - Support for ftC3 and rtH2 (partially) is included. - Massive doc update. - The whole thing is supposed to be really "frozen for 1.2" now. - Mips assembly enabled back, hopefully Geert-Jan has upgraded to 1.1.1, and the problem will be fixed. Version 2.5 on 26 November 1998 - Mips assembly commented out, it fails for the test-suite... - Filtering stuff in place, doc updated. Version 2.4 on 12 November 1998 - Mips + GNU uses assembly versions (thanks to Christoph Burnikel). - CGAL_{sign,compare,abs,min,max,is_valid,is_finite} specialized for speed and correctness. - : new file containing the wrapper for filtered predicates. - include/CGAL/Filter/predicates_on_ft_C2.h: new file containing the specializations for the filtering scheme. Version 2.3 on 23 October 1998 - the test-suite now includes some benchmark. - the code is optimized, even uses the GNU extension "named return value". Version 2.2 on 16 October 1998 - removed more spurious constructors. - removed bugs in _FPU.h - much improved test suite, 100% coverage (except casts). Version 2.1 on 11 September 1998 - "lines too long" problem fixed. - removed temporary objects => faster. Version 2.0 on 17 August 1998. - Added CGAL_to_interval_nt() cast functions for Gmpz and leda_{real,rational,integer,bigfloat}. - Added operators +=, -=, *=, /=, as required for all CGAL NTs. - Moved private files to the directory CGAL/Interval_arithmetic - Doc update: cgal.bib removed, geombib is updated. - Using CVS. - [sent Stefan the necessary updates to other NTs]. Version 1.6 on 10 May 1998. - "package" line added in the headers. - Added a CGAL_warning_msg() when you compare 2 overlapping intervals, disabled by the compilation flag CGAL_IA_NO_WARNINGS (or CGAL_NO_WARNINGS). - New private member function: overlap() (same semantic as operator==()). - Doc updates: - better introduction. - fixed bugs shown by the HTML version. - update the support status for the Alpha. - modifications from Remco for 1.0. - reference to our (BBP) ACM SoCG'98 paper added. - ChangeLog file created. Version 1.5 on 26 February 1998. - Added "#include " forgotten in 1.4. Version 1.4 on 6 February 1998. - Changed _FPU_* to CGAL_FPU_*. - Doc updates. Version 1.3 on 16 December 1997. - Added an assertion when defining an interval with the lower bound greater than the upper. Disabled when CGAL_NO_PRECONDITIONS is defined. Version 1.2 on 16 December 1997. - Added support for old Irix 5.3 include files. Version 1.1 on 16 December 1997. - lines too long problem fixed. Version 1.0 on 3 December 1997. - initial version based on some C code, and 2 C++ wrapper classes for CGAL.