cgal/Interval_arithmetic/changes.txt

1297 lines
44 KiB
Plaintext

11 February 2006 Sylvain Pion
- Fix license of Uncertain.h (was QPL instead LGPL).
10 February 2006 Sylvain Pion
- Lazy_exact_nt::ZERO : make the static variable a function-static variable
to avoid global ordering problems (additional cost expected negligible).
28 January 2006 Sylvain Pion
- Static_filters : add Compare_y_at_x_2, Less_[xy]_2 (contrib from Andreas M.).
28 January 2006 Sylvain Pion
- Deprecate Filtered_exact (in doc and code).
26 January 2006 Andreas Fabri
- Replaced __PRETTY_FUNCTION__ with CGAL_PRETTY_FUNCTION
21 January 2006 Sylvain Pion
- make test/IA/Static_filters.C work (real fix would be to make
Kernel_checker into a real kernel, with type equality and missing
ctors).
16 January 2006 Sylvain Pion
- Only declare CORE::Expr instead of #include <CGAL/CORE_Expr.h>
in Exact_type_selecter.h, to avoid dependency.
16 September 2005 Andreas Fabri
- Added rudimentary printing of the DAG to the Lazy and Lazy_exact_nt class
14 September 2005 Andreas Fabri
- Simplified template parameters of functors in Lazy_kernel.h and Lazy.h
13 September 2005 Andreas Fabri
- Changes in Lazy.h such that the 2D kernel testsuite now passes (without transform)
13 September 2005 Sylvain Pion
- Protect_FPU_rounding : add expensive assertion.
- Lazy kernel : various updates/fixes.
12 September 2005 Sylvain Pion
- Workaround for g++ 3.3 (test for CGAL_CFG_COMMA_BUG).
12 September 2005 Sylvain Pion
- Lazy_exact_nt : change Interval<true> to Interval<false> for compatibility
with Lazy_kernel.
7 September 2005 Andreas Fabri
- Added nested type Lazy_kernel::Kernel_tag
- The magic functor now returns Lazy_kernel::Class instead of Lazy<Class>
7 September 2005 Sylvain Pion
- Introduce nested type Protector in Interval_nt to access
Protect_FPU_rounding easily.
12 August 2005 Sylvain Pion
- Move Kernel_checker to Kernel_23.
12 August 2005 Andreas Fabri & Sylvain Pion
- Lazy_kernel : Protect_FPU optimizations, fix empty Objects.
12 August 2005 Andreas Fabri
- Bug fix in Lazy_exact_nt.h: replaced access to former data member 'in'
with call to member function 'approx()'
12 August 2005 Sylvain Pion
- Move Same_certainty to Kernel_23/include/CGAL/Kernel/.
11 August 2005 Andreas Fabri
- Added a common base class for lazy numbers and lazy kernel classes
- Added an example for the lazy kernel
and a kernel with a functor that writes result to an output iterator
9 August 2005 Sylvain Pion
- Uncertain : replace operator&& and || overloads by operator& and |,
to keep the lazy evaluation.
9 August 2005 Sylvain Pion
- Fix workaround for enum_cast.
7 August 2005 Sylvain Pion
- Uncertain, enum_cast : workaround for CGAL_CFG_MATCHING_BUG_5.
6 August 2005 Sylvain Pion
- Uncertain : add overload for enum_cast.
- Interval_nt : add specializations for Equal_to, Greater.. returning Uncertain.
- Uncertain : add opposite(), Same_uncertainty, Same_uncertainty_nt
( tools to propagete uncertainty )
5 August 2005 Sylvain Pion
- Specialize functors Sgn, Compare, Is_zero... for Interval_nt so that they
return Uncertain<> (and their result_type is also updated).
3 August 2005 Sylvain Pion
- Interval_nt : remove operator&& and operator||. Add value_type == double.
- Interval_arithmetic.h renamed to Interval_nt.h to follow CGAL's convetions.
- [doc] Interval_nt : update !
2 August 2005 Sylvain Pion
- Interval_nt : Add overloads for is_zero, is_one, is_positive, is_negative.
- New file Interval_nt_fwd.h to gather forward declarations to be sourced by
CGAL/number_type_basic.h.
- Lazy_exact_nt : Fix for some mixed operators.
- Forward declarations in Lazy_exact_nt_fwd.h .
- Forward declarations in Filtered_exact_fwd.h .
- Add make_uncertain(Ucertain<T>).
2 August 2005 Sylvain Pion
- Uncertain : add maker function make_uncertain().
2 August 2005 Sylvain Pion
- Lazy_exact_nt : add prune_dag() to cut it down when the exact is computed.
- Lazy_exact_nt : recompute interval in update_exact, except when is_point().
- Lazy_exact_nt : introduce a static variable for zero since it's often used.
2 August 2005 Sylvain Pion
- Lazy_exact_nt : fix the identical() optimization.
- Lazy_exact_nt : add mixed operators between Lazy_exact_nt<ET1> and
Lazy_exact_nt<ET2>
- Binary_operator_result<T1, T2> : new tool to get the type of mixed
operators.
- Binary_operator_result.h : move to Number_types.
- Add specialization of
Binary_operator_result< Lazy_exact_nt<ET1>, Lazy_exact_nt<ET2> >.
1 August 2005 Sylvain Pion
- Fix for last change.
1 August 2005 Sylvain Pion
- Replace uses of convert_to() by NT_converter.
- Add NT_converter<Lazy_exact_nt<ET>, ET> specialization.
- Change Exact_type_selecter for Lazy_exact_nt<ET> to ET
(instead of Lazy_exact_nt<ET>).
30 July 2005 Sylvain Pion
- Add Uncertain<T>.
- Use it in comparison operators and sign() and compare() of Interval_nt.
- Use it instead of Certified::operators in Lazy_exact_nt.
- Filtered_predicate : use is_indeterminate() on AP's result_type to replace
some exceptions by normal control flow.
28 July 2005 Andreas Fabri
- Added a functor to Lazy.h that writes the computed result in an OutputIterator
of Object
28 July 2005 Sylvain Pion
- Interval_nt : Increment number_of_failures for the CGAL::Certified operators.
28 July 2005 Andreas Fabri
- Added a functor to Lazy.h that has Object as return value as they are needed
by Kernel::Intersect_2
26 July 2005 Sylvain Pion
- Filtered_kernel : No need to explicitely mention To_interval as argument
to Cartesian_converter anymore, the default argument handles it.
16 June 2005 Menelaos Karavelas
- Regular triangulation: added arithmetic filtering support for the
nearest_power_vertex predicate
26 May 2005 Sylvain Pion
- Lazy_exact_nt : add depth() member function to compute the depth of the DAG.
11 May 2005 Sylvain Pion
- Add using Base::operator(); in static filters.
1 May 2005 Sylvain Pion
- Lazy_exact_nt : optimize operator<(), operator==() and compare() in case
of identical variables.
26 March 2005 Sylvain Pion
- Lazy_exact_nt<ET> : allow ET == int and ET == double.
- Lazy_exact_nt<ET> : add % and gcd (kills filtering, though).
- Lazy_exact_nt<ET> : use boost/operators.hpp
- Interval_nt : add fit_in_double().
12 January 2005 Sylvain Pion
- Static filters : small correction of epsilons.
11 January 2005 Sylvain Pion
- Improve static filters : protect against overflow.
06 January 2005 Sylvain Pion
- Fix warning with VC++.
------------------------------ CGAL 3.1 ------------------------------
25 November 2004 Sylvain Pion
- x86_64 porting.
18 November 2004 Sylvain Pion
- Static filters : protect against underflow.
- Static filters : improve fit_in_double() interface.
4 November 2004 Sylvain Pion
- Static filters : yet another smallish re-optimisticization.
2 November 2004 Sylvain Pion
- Static filters : yet another smallish de-optimisticization.
29 October 2004 Sylvain Pion
- Static filters : the epsilons were a bit too optimistic for the
homogeneization formal proof.
28 October 2004 Sylvain Pion
- Static filters : the epsilons were a bit too pessimistic.
29 September 2004 Sylvain Pion
- Remove obsolete tst_static_adaptatif.C.
- Make Static_filter_error::ulp() work with optimization.
- The ulp computation was too optimistic for Intel's "extended precision
feature", so adjust the epsilons.
- Add safe default "true" for template argument of Protect_FPU_rounding.
24 September 2004 Sylvain Pion
- Interval_nt : Introduce comparison functions/operators in namespace
CGAL::Certified which do not throw but return the guarantee-ness as a bool.
- Lazy_exact_nt : use the above new functions to replace exceptions.
20 September 2004 Sylvain Pion
- Add Exact_type_selecter<> to select the exact number type to be used in
Filtered_kernel.
20 September 2004 Sylvain Pion
- Add fit_in_double() for Lazy_exact_nt.
14 September 2004 Sylvain Pion
- Filtered_kernel : cleanup.
13 September 2004 Sylvain Pion
- Filtered_kernel : use converters C2E/C2F from the final kernel objects, and not
its Kernel_base.
7 September 2004 Sylvain Pion
- Make some types public in Filtered_kernel (FK, EK, C2E, C2F).
6 September 2004 Menelaos Karavelas & Sylvain Pion
- added missing "#include<CGAL/basic.h>" in some testsuite files
1 September 2004 Sylvain Pion
- test/Static_filters.C : dump the random generator seed to be able to
reproduce bugs.
1 September 2004 Menelaos Karavelas
- added the following tags in number type traits: Has_exact_sqrt,
Has_exact_ring_operations, Has_exact_division
21 August 2004 Sylvain Pion
- Undo last change.
20 August 2004 Menelaos Karavelas
- first attempt towards the new number type traits
4 August 2004 Sylvain Pion
- Add CGAL_NO_STATIC_FILTERS.
23 July 2004 Sylvain Pion
- IA64 porting.
24 June 2004 Sylvain Pion
- Use CGAL::Random instead of drand48 in test/Static_filters.C.
23 June 2004 Sylvain Pion
- Add dummy symbol in src/Interval_arithmetic.C to remove warning from
VC++ linker.
21 June 2004 Sylvain Pion
- Add Kernel_profiler.
- Add predicates used by convex_hull_2.
21 June 2004 Sylvain Pion
- Improve static filters for 2D predicates.
20 June 2004 Sylvain Pion
- Merge Static_filters into Filtered_kernel.
- Static_filter_error : add ulp() function for new filters.
- Static_filter::Orientation_3 : improve filter.
- Static_filter::Side_of_orientes_sphere_3 : improve filter.
20 June 2004 Sylvain Pion
- Don't assume coordinates are doubles, call to_double().
20 June 2004 Sylvain Pion
- Rewrite of Static_filters and its test-suite in preparation for the merge.
20 June 2004 Sylvain Pion
- Put diff_was_exact() in a separate file.
20 June 2004 Sylvain Pion
- Use CGAL_NTS instead of CGAL::.
13 June 2004 Sylvain Pion
- Remove purely static code from Static_filters.
It's pure overhead for now : requires users' intervention, with expected low
gain, and is in the way for proper integration. If it will have to be
re-added one day, it should probably be in an different place.
5 June 2004 Sylvain Pion
- test-suite : specificaly test for constant propagation.
22 May 2004 Sylvain Pion
- Filtered_exact : remove useles copy ctor (valgrind bogs on it).
9 May 2004 Sylvain Pion
- Remove CGAL_IA_NO_INLINE (let the compiler do its job).
8 May 2004 Sylvain Pion
- Interval_nt : Partially undo the change done on 11 May 2003 : replace the
internal std::pair<double, double> by 2 doubles.
It brings back some performance.
8 May 2004 Sylvain Pion
- SSE2 handling (bugzilla #184).
Support for GCC (>= 3.3) options : -mfpmath=sse
which is faster than the traditional FPU, especially since we
do not have to workaround some "features" of the x87.
-mfpmath=387,sse is not yet supported.
8 May 2004 Sylvain Pion
- Move FPU_empiric_test() and force_ieee_double_precision() from
src/Interval_arithmetic.C to tst0.C and FPU.h respectively.
- FPU.h : remove G++ 3.0.0 workaround, but put a #error instead.
7 May 2004 Andreas Fabri
- Replaced protected: with public: in Static_filters/*.h
4 May 2004 Menelaos Karavelas
- previous date because of time difference.
- continuation of changes made by Sylvain in FPU.h for supporting the
Intel compiler on Linux.
The problem with the Intel compiler was in IA_force_to_double.
Made the following changes:
1. removed all irrelevant checks for the Intel compiler
2. added comment in IA_force_to_double about the Intel compiler
5 May 2004 Sylvain Pion
- ICC is defining __GNUG__ by default on Linux.
Protect against it with !defined __INTEL_COMPILER.
18 Apr 2004 Sylvain Pion
- Rename Huge_val to infinity, and move it to FPU.h.
18 Apr 2004 Sylvain Pion
- Remove explicit compilers tests :
- use CGAL_CFG_DENORMALS_COMPILE_BUG instead.
- is_valid() : no need to optimize unportably.
13 Apr 2004 Menelaos Karavelas
- Made changes suggested by Sylvain for icc; namely, replaced occurences
of HUGE_VAL by std::numeric_limits<double>::infinity()
9 Apr 2004 Sylvain Pion
- PGCC workarounds.
17 Feb 2004 Sylvain Pion
- Remove CGAL_CFG_NO_PARTIAL_CLASS_TEMPLATE_SPECIALISATION
1 Feb 2004 Sylvain Pion
- Give more control over the precision of to_double(Lazy_exact_nt)
- Lazy_exact_nt's update_exact() now also updates the interval.
Version 4.191 on 26 January 2004
- #include <CGAL/Filtered_exact.h> from Lazy_exact_nt.h to get the overloaded
predicates.
Version 4.190 on 25 January 2004
- Kernel_checker : print the typeid() in case of failure.
Version 4.189 on 18 January 2004
- Remove obsolete workarounds related to CGAL_CFG_MATCHING_BUG_2 (VC++ <= 7.0).
Version 4.188 on 15 January 2004
- Fix FPU.h on g++ and Solaris 5.9.
Version 4.187 on 18 December 2003
- Filtered_exact stores its potential cache as private base, to benefit from
the empty base class optimization.
Version 4.186 on 27 November 2003
- FreeBSD fix.
Version 4.185 on 20 November 2003
- VC++ fix.
Version 4.184 on 17 November 2003
- FPU.h : by default, use the ISO C99 version (which should make Darwin work).
============================= CGAL 3.0 ===========================
Version 4.183 on 22 October 2003
- New headers (script filtered_predicate_generator.pl).
Version 4.182 on 18 September 2003
- New headers (script filtered_predicate_generator.pl).
Version 4.181 on 18 September 2003
- New headers
Version 4.180 on 10 September 2003
- Interval_nt : move operator+-*/ out of the class, and add mixed operators
with int and double. Add ctor from int.
Version 4.179 on 27 August 2003
- CGAL::NTS updates.
Version 4.178 on 7 August 2003
- Interval_converter -> To_interval.
Version 4.177 on 7 August 2003
- to_interval(Filtered_exact<>) was missing.
Version 4.176 on 6 August 2003
- The typename must be added conditionally
Version 4.175 on 4 August 2003
- Added a typename
Version 4.174 on 29 July 2003
- Replaced _MSC_VER check in Filtered_predicate.h avec CGAL_CFG_OUTOFLINE_MEMBER_DEFINITION_BUG that seems it is needed for SunPro 5 and VC7.0
Version 4.173 on 24 July 2003
- Move Arithmetic_filter.h to Filtered_exact.h.
Version 4.172 on 24 July 2003
- Added the "mixed operators with int" to Interval_nt, Filtered_exact,
and Lazy_exact_nt.
Version 4.171 on 24 July 2003
- CGAL_PROFILER : make it a block scope, so that only one argument is needed.
Version 4.170 on 16 July 2003
- src/Interval_arithmetic.C : change <Filtered_exact.h> to <FPU.h>.
Version 4.169 on 10 July 2003 [af]
- Added full specialization for Filtered_exact
Version 4.167 on 22 May 2003
- Workaround a g++ 2.95 + Linux bug.
Version 4.166 on 13 May 2003 [af]
- Removed a forgotten #include <CGAL/Interval_base.h>
Version 4.165 on 11 May 2003 [af]
- Removed Interval_base
- Function to_interval now returns std::pair<double,double>
Version 4.164 on 11 May 2003 [mh]
- Changed names in kernel rebind/base mechanism
Version 4.163 on 22 April 2003 [af]
- Introduced numeric_limits for the compilers who support it in FPU.h
Version 4.162 on 6 March 2003
- Fix stupid bug affecting Lazy_exact_nt's overloaded predicates...
Version 4.161 on 21 February 2003
- Filtered_kernel uses the new true extensibility.
Version 4.160 on 17 February 2003
- Filtered_kernel now uses Type_equality_wrapper.
Version 4.159 on 13 January 2003
- Added function zero() to make the testsuite pass for Intel 7 with -O2
- Fix warning with Borland.
Version 4.158 on 20 January 2003
- Add "Arity" type to functors.
- GCC new parser support.
Version 4.157 on 25 November 2002
- Use CGAL_CFG_MATCHING_BUG_2 instead of #ifdef _MSC_VER
Version 4.156 on 25 November 2002
- Move to_interval(long) from Interval_base.h to Interval_arithmetic.h,
and fix it for 64bits platforms.
Version 4.155 on 22 November 2002
- Remove src/Interval_arithmetic/*.
Version 4.154 on 21 November 2002
- I've got a C version for IRIX which works ! The long standing problem was
in fact that denormals were flushed to zero by default, and thus the
detection routine thought the rounding mode was not working.
Version 4.153 on 14 November 2002
- Provide 64bit IRIX version of src/Interval_arithmetic/workaround_4_irix6_64.s.
(compiled with gcc -O2 -mabi=64 -S, gcc 3.1)
Version 4.152 on 13 November 2002
- The Perl script now overloads predicates also for Lazy_exact_nt, so that you
don't have to wrap it in Filtered_exact to get the maximum performance.
Version 4.151 on 13 November 2002
- Fix Lazy_exact_nt test program.
Version 4.150 on 8 November 2002
- Forgot the doc part.
Version 4.149 on 8 November 2002
- Add a template constructor from a Lazy_exact_nt<ET1> to Lazy_exact_nt<ET>.
Version 4.148 on 6 November 2002
- filtered_predicate_generator.pl : ${CGAL} qualify Dynamic and Static.
Version 4.147 on 30 October 2002
- Document Lazy_exact_nt::exact().
Version 4.146 on 9 October 2002
- Update changes to CGAL_Kernel_pred/cons.
Version 4.145 on 11 September 2002
- Kernel_checker : add support for predicates taking only 1 argument.
- Kernel_checker : Predicate_checker now stores objects, not const ref
(bug reports from Matthias).
Version 4.144 on 14 August 2002
- Fix memleak in Lazy_exact_nt, and avoid a few copies.
Version 4.143 on 13 August 2002
- Move to_interval(long long) from Interval_arithmetic.h to long_long.h.
Version 4.142 on 12 August 2002
- Fix long long support.
============================= CGAL 2.4 ===========================
Version 4.141 on 29 April 2002
- split user and support manuals
Version 4.140 on 15 April 2002
- Workaround a bug in GCC 3.0.4 detected by Matthias.
Version 4.139 on 13 April 2002
- Shorten symbol names in test/Filtered_kernel.C.
Version 4.138 on 9 April 2002
- Has_sqrt should not be surrounded by CGAL_DENY_INEXACT_OPERATIONS_ON_FILTER.
- Fix tst5.C for VC++.
Version 4.137 on 24 March 2002
- relocate \ccCreationVar above constructors
Version 4.136 on 24 March 2002
- typo fix
Version 4.135 on 21 March 2002
- Remove lexicographical_sign stuff.
Version 4.134 on 20 March 2002
- converted to new manual style
- fixed minor typos
Version 4.133 on 20 March 2002
- removed _tag from names of number type traits types
Version 4.132 on 20 March 2002
- removed number_type_tag
- added tags for number type operators
Version 4.131 on 15 March 2002
- Don't submit test/IA/Static_filters.C, as the feature is not ready for
CGAL 2.4.
Version 4.130 on 20 February 2002
- Missing #include <CGAL/MP_Float.h> for VC++.
Version 4.129 on 28 January 2002
- Fix bug reported by Tamal : Static_filters<>'s functors copy ctors and
assignment operators were empty, while they should copy the data members.
- Remove the static adaptative filters generation from the
scripts/filtered_predicate_generator.pl (option -s to activate them again).
Version 4.128 on 10 January 2002
- std::abort -> CGAL_CLIB_STD::abort().
Version 4.127 on 9 January 2002
- Resubmit.
Version 4.126 on 7 January 2002
- CodeWarrior support __MWERKS__.
- New predicate for Filtered_exact.
- Remove last bits of CGAL_ms_sqrt.
Version 4.125 on 19 December 2001
- Remove workaround_4_ms.
- New predicate : compare_slopesC2.
- Uncomment Conic_2 in Filtered_kernel.
Version 4.124 on 23 November 2001
- std:: missing for abort (CodeWarrior).
Version 4.123 on 10 October 2001
- Forgot class declaration.
Version 4.122 on 5 October 2001
- Added Coplanar_side_of_bounded_circle_3 to Static_filters.
Version 4.121 on 4 October 2001
- Added Coplanar_orientation_3 to Static_filters.
Version 4.120 on 3 October 2001
- Added Side_of_oriented_circle_2 to Static_filters.
- New macro CGAL_PROFILER().
Version 4.119 on 27 September 2001
- SunPro fixes.
Version 4.118 on 17 September 2001
- CGAL_IA_NEW_FILTERS and various cleanups.
- SunPro fixes.
Version 4.117 on 29 August 2001
- VC++ workaround when using Filtered_exact in the Static_filters.
- static const double data members must be initialized outside the class.
- changed ccSection commands to section commands since pdf converter can't
handle the former.
Version 4.116 on 27 August 2001
- Kernel_checker allows non-copyable predicates (ie works with Static_filters).
- operator<<(Lazy_exact_nt) uses to_double().
Version 4.115 on 16 August 2001
- New class Profile_counter.
- Use it in the filtered predicates.
- New traits class wrapper : Static_filters<>.
- Try another workaround for sqrt() on VC++ using _asm. If it works, then
we will be able to get rid of some painful stuff in the installation.
========================== CGAL 2.3 =======================
Version 4.114 on 1 August 2001
- Add missing operators in Lazy_exact_nt.
Version 4.113 on 25 July 2001
- Use Filtered_kernel instead of Filtered_exact in test/Kernel_checker.C .
Version 4.112 on 23 July 2001
- Remove macro test that prevented libCGAL building on VC++.
Version 4.111 on 19 July 2001
- Rename Filter_predicate to Filtered_predicate.
Version 4.110 on 19 July 2001
- Filetered_kernel now has Simple_cartesian<MP_Float> as default value for the
exact kernel parameter.
Version 4.109 on 17 July 2001
- Test Lazy_exact_nt more throughly using Delaunay_3.
Version 4.108 on 17 July 2001
- Remove debug messages from Lazy_exact_nt.
Version 4.107 on 16 July 2001
- Don't test exact square roots without LEDA...
- VC++ Fix for Kernel_checker test program.
- Add a check that CGAL_IA_CT is defined for VC++.
- Document the risks with VC++, and advertise Filtered_kernel.
- Don't test abs(Filtered_exact) for VC++.
Version 4.106 on 12 July 2001
- Test-suite tweeks.
Version 4.105 on 9 July 2001
- __FUNCTION__ was not portable at all.
Version 4.104 on 4 July 2001
- Kernel_checker : prints __FUNCTION__ or __PRETTY_FUNCTION__ to get more
information about which predicate it is.
Version 4.103 on 4 July 2001
- VC++ 7 warning.
Version 4.102 on 26 June 2001
- Doc update.
Version 4.101 on 22 June 2001
- Remove warnings in the test-suite.
- Regenerate filters for the new equal_planeC3.
- Use the new macros in include/CGAL/Kernel/interface_macros.h for
Filtered_kernel and Kernel_checker.
- Update test/Kernel_checker.C for VC++ and new Delaunay.
Version 4.100 on 20 June 2001
- Arithmetic_filter.h => Filtered_exact.h.
Version 4.99 on 12 June 2001
- Add missing #include <CGAL/misc.h> since it's not done in basic.h anymore.
- Workaround for GCC 3 only activated for 3.0.0 as it's probably going to be
fixed in 3.0.1, so that we'll get the full speed back with 3.0.1.
Version 4.98 on 7 June 2001
- Move MP_Float to the Number_types package.
Version 4.97 on 6 June 2001
- Workaround bugs and misfeatures of GCC 3 in FPU.h.
Unfortunately at a performance cost :((
Version 4.96 on 6 June 2001
- First version of Kernel_checker, which works only for predicates.
Version 4.95 on 5 June 2001
- Add a workaround on OSF/Alpha for GCC's too agressive fixincludes in FPU.h.
- Fix MP_Float::operator-() which died in an endless loop...
Version 4.94 on 30 May 2001
- Remove Compare_distance_to_point_[23].
Version 4.93 on 29 May 2001
- Add Compare_distance_[23].
Version 4.92 on 28 May 2001
- Fix bug spotted by BCC.
- Don't submit tst_static_adaptatif.
- Add inline to compare(MP_Float).
Version 4.91 on 23 May 2001
- Add a simple test for Quotient<MP_Float>.
Version 4.90 on 23 May 2001
- Rename Filtered_predicate to Filter_predicate.
- Put Filter_predicate'operators() non-inline, except for VC++.
- Fix for Borland.
Version 4.89 on 23 May 2001
- Workaround what seems to be a bug in KCC with non-inline overloading of
inline templates.
Version 4.88 on 16 May 2001
- Added operator> and operator!= to Interval_base.
- Handle Angles.
Version 4.87 on 27 April 2001
- Rename coplanar_side_of_oriented_circle to bounded.
Version 4.86 on 27 April 2001
- Rename construct_tetrahedron_object to construct_tetrahedron_3_object.
Version 4.85 on 18 April 2001
- Add new predicate/constructions to Filtered_kernel :
Construct_center_2, Construct_center_3, Coplanar_side_of_oriented_circle_3
- Make some operator() non-inline in Filter_predicate.
Version 4.84 on 17 April 2001
- New filtered predicate : coplanar_side_of_oriented_circleC3.
Version 4.83 on 10 April 2001
- FPU.h is changed to reflect the realtity on Alpha/Linux 2.2.18 with
libc 2.1 to support FPE handling by the Linux kernel.
Functions declared in /usr/include/bits/fenv.h are used (via <fenv.h>,
that is not yet ready to be used with C++ in normal way)
Version 4.82 on 6 April 2001
- limbs_per_double is now vector<limb>::size_type instead of unsigned to
please Alpha.
Version 4.81 on 21 March 2001
- Remove static data members of MP_Float, use consts in src/MP_Float.C
instead.
Version 4.80 on 20 March 2001
- Really fix bug in side_of_sphere.
- Add ctors for Filter_predicate<> in order to deal (not optimally) with
constructive predicates.
Version 4.79 on 20 March 2001
- Last minute reverse.
Version 4.78 on 20 March 2001
- VC++ work around
- Undo last predicate.
Version 4.77 on 20 March 2001
- Add tst_static_adaptatif.C again.
Version 4.76 on 20 March 2001
- Update new predicates side_of_bounded_sphere.
- Enable new static filters for GCC.
Version 4.75 on 10 March 2001
- Various test-suite fixes.
Version 4.74 on 9 March 2001
- Remove MP_Integer.
- VC++ fixes.
Version 4.73 on 1 March 2001
- Alternative to ::rint() as it doesn't exist on... yes yes, Windblows.
- std::ldexp() -> ::ldexp().
- Cleanup static const data members, and make it work on VC++ 6.
Version 4.72 on 25 February 2001
- Declare force_ieee_double_precision in FPU.h.
Version 4.71 on 25 February 2001
- Split MP_Float.h into src/MP_Float.C.
- Test-suite fixes.
Version 4.70 on 21 February 2001
- Fixes for Homogeneous filtering.
Version 4.69 on 21 February 2001
- Test-suite fixes.
- Don't use STL's Rel Ops in MP_*.
Version 4.68 on 20 February 2001
- Don't submit tst_static_adaptatic.C, it's not ready yet.
- Couple of fixes in the test-suite.
Version 4.67 on 15 February 2001
- test
Version 4.66 on 12 February 2001
- Undefine CGAL_IA_NEW_FILTERS, it breaks VC++.
Version 4.65 on 7 February 2001
- Kernel_checker
- Filtered_kernel and Filtered_predicate.
- Define CGAL_IA_NEW_FILTERS by default in Interval_base.h.
Version 4.64 on 1 February 2001
- MP_Float.
Version 4.63 on 24 January 2001
- to_interval() for the built-in types are now defined here because of a
circular dependency of the #include otherwise.
Version 4.62 on 23 January 2001
- New predicate side_of_bounded_circle.
- First submission by tag.
Version 4.61 on 4 January 2001
- New class MP_Integer that implements multiprecision exact integers.
- Fixes to Lazy_exact_nt<>.
- Filter_predicate.h prototype.
Version 4.60 on 13 December 2000
- Fix additional files.
Version 4.59 on 13 December 2000
- Moved CGAL/Interval_arithmetic/_FPU.h to CGAL/FPU.h.
- Dispatched all to_interval() functions, and removed
CGAL/Interval_arithmetic/IA_*.
- Made Lazy_exact_nt<> work again.
------ CGAL 2.2 is out ---------
Version 4.58 on 13 September 2000
- Last fix was not correct. Try this one...
Version 4.57 on 10 September 2000
- Workaround for M$VC++, min/max.
Version 4.56 on 6 September 2000
- Renamed data member _inf and _sup to inf_ and sup_ for standard compliance.
Version 4.55 on 6 September 2000
- Moved extern "C" declaration outside namespace CGAL for M$ VC++.
Version 4.54 on 1 September 2000
- Renamed Interval_base::overlap() to do_overlap().
- Fixed min/max issue for VC++ in the test-suite.
- G++ on x86 now uses an asm() instead of a statement-expression + volatile
for stopping compiler optimization. It's faster, doesn't warn, and works
with 2.96.
- Removed the default copy ctor and assignment ctor for the intervals. This
did not show any difference on orientation() with G++ 2.9[56].
- Removed warning in include/bench_generic.h with G++ 2.96.
- Moved the constant propagation stoppers just where needed instead of in the
constructors : faster (but not pretty...).
- src/Interval_arithmetic.C:FPU_empiric_test() doesn't use "volatile" anymore,
this should please KCC (and Stefan :).
- CygWin now uses an inline assembly for the buggy sqrt().
- Filtered predicates are now "static" for compilers not supporting partial
specialization (CGAL_CFG_MATCHING_BUG_2), i.e. M$VC++.
Version 4.53 on 20 August 2000
- Make the adaptative static filters kind of work again.
- CGAL:: qualified min() and max() in the test-suite for VC++ and MipsPro.
Version 4.52 on 26 July 2000
- Removed Lazy_exact_nt.C from the test-suite for the release.
- Fixed name space issues in _FPU.h.
Version 4.51 on 5 July 2000
- Test-suite fixes for M$.
Version 4.50 on 28 June 2000
- Replaced template by complete overloaded functions for true/false for sign,
compare, abs and square, for M$ VC++.
- Qualified min and max by std:: for doubles.
- Moved Interval_base to its own file Interval_base.h.
- Moved Protect_FPU_rounding<> to _FPU.h.
Version 4.49 on 21 June 2000
- Fixed a bunch of namespace issues.
- Interval_nt is now a template class.
- Template parameter "Protection" of Filtered_exact is now a bool.
- The filtered predicates now use Protect_FPU_rounding, and the 2 dynamic
versions are merged. They could become nice function-try-blocks if GCC
produced working code for them !!!
Version 4.48 on 15 June 2000
- Removed obsolete (and buggy) references to
CGAL_CFG_NO_EXPLICIT_TEMPLATE_FUNCTION_ARGUMENT_SPECIFICATION.
- Interval_nt operations boosted with Protect_FPU_rounding().
Version 4.47 on 13 June 2000
- Removed useless "template <>" before full specializations of function
templates.
- Fixed Copyright dates and coordinator fields re-added.
Version 4.46 on 12 June 2000
- Debuggued Lazy_exact_nt<>.
Version 4.45 on 11 June 2000
- Use CGAL_NTS, and remove qualification of min and max.
- Lazy_exact_nt<> complete rewrite.
Version 4.44 on 8 June 2000
- Removed "coordinator" field.
- Use the relational operators from <utility> in Interval_nt*.
- Removed is_integral() since it's now moved to double.h.
Version 4.43 on 4 May 2000
- Don't forget to submit it...
Version 4.42 on 4 May 2000
- Added maintainer file.
Version 4.41 on 4 May 2000
- Added the assembly files for the IRIX workaround, and removed them from the
clean target in src/Interval_arithmetic/makefile.
- Updated predicates for release 2.2-I-15.
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<Gmpz>, so that
Filtered_exact<double, Quotient<Gmpz> > 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<float.h> for Borland.
- Added parenthesis around double computation to prevent MipsPro from changing
expression computation order...
- Removed convert_to<Interval_nt>(). 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 <sign_of_determinant.h>, <Regular_triangulation_ftC3.h> and
<Regular_triangulation_rtH3.h> 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<CT, ET, Static>.
- 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<CT,ET> 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<target>(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<double> 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<RT> 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<IA[advanced]> ()
- 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.
- <CGAL/Filter.h>: 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 <assert.h>" 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.