cgal/Number_types/changes.txt

1100 lines
32 KiB
Plaintext

15 February 2006 Sylvain Pion
- Root_of_2 fixes.
10 February 2006 Sylvain Pion
- MP_Float : Add approximate_sqrt() and approximate_division() functions,
and disallow operator/() and sqrt() by default.
They can be enabled back using -DCGAL_MP_FLOAT_ALLOW_INEXACT.
10 February 2006 Sylvain Pion
- Move Root_of_2 from Algebraic_kernel to here.
21 December 2005 Sylvain Pion
- Add #include <CGAL/config.h> early in <CGAL/number_type_basic.h>
to avoid the need to #include <CGAL/basic.h> in Algebraic_kernel/basic.h.
14 December 2005 Sylvain Pion
- Change CGAL_CFG_HAS_TWO_STAGE_NAME_LOOKUP into
CGAL_CFG_NO_TWO_STAGE_NAME_LOOKUP.
10 September 2005 Sylvain Pion
- missing forward declaration of io_tag(CORE::Expr) required by g++ 4.1.
9 September 2005 Sylvain Pion
- Add NT_converter<double, double> specialization to disambiguate (spotted by
Nico).
9 August 2005 Sylvain Pion
- Rational_traits : add an overload of make_rational() that takes rational
arguments.
6 August 2005 Sylvain Pion
- Add functors Equal_to Not_equal_to Greater Less Greater_equal Less_equal
which take 2 arguments (with a default), and provide the Arity.
5 August 2005 Sylvain Pion
- Use Unary_function and Binary_function instead of the std:: counterpart.
5 August 2005 Sylvain Pion
- Remove traces of CGAL_STD and CGAL_CFG_NO_NAMESPACE.
- Fix result_type of CGAL::Sgn.
- Introduce number_utils_fwd.h.
4 August 2005 Sylvain Pion
- Fix *_fwd.h re-organization for some compilers.
- Move CGAL/known_bit_size_integers.h from Kernel_23.
3 August 2005 Sylvain Pion
- Rename CGAL/Interval_arithmetic.h to CGAL/Interval_nt.h.
- [doc] : update doc of Interval_nt.
2 August 2005 Sylvain Pion
- number_type_basic.h : Use forward #include <CGAL/*_fwd.h> instead of declaring
classes and functions from other packages.
2 August 2005 Sylvain Pion
- number_type_basic.h : update compare(Lazy_exact_nt<ET1>, Lazy_exact_nt<ET2>).
- Move Binary_operator_result.h here.
- Quotient.h : specialize Binary_operator_result<Quotient<NT>, NT>.
1 August 2005 Sylvain Pion
- Rational_traits<Quotient> : make numerator/denominator return by reference.
30 July 2005 Sylvain Pion
- Change return type of sign() and compare() of Interval_nt to Uncertain<>.
29 July 2005 Sylvain Pion
- Quotient : Add template ctor from Quotient<NT2>.
27 July 2005 Sylvain Pion
- NT_converter : Add specializations when converting to Interval_nt
(calls to_interval()), and when conversion to same type (saves a copy).
26 July 2005 Sylvain Pion
- Remove #include <CGAL/_QP_solver/Double.h> from CGAL/number_type_basic.h .
1 July 2005 Sylvain Pion
- Specialize NT_converter for double so that it calls to_double() instead of
attempting a conversion.
26 March 2005 Sylvain Pion
- Gmpq : add removed mpq_canonicalize().
26 March 2005 Sylvain Pion
- Gmpz/Gmpq : remove some copies.
13 March 2005 Sylvain Pion
- Quotient.h : Use Kernel/mpl.h's First_if_different<>, instead of redefining
a local equivalent.
8 March 2005 Sylvain Pion
- Use <boost/operators.hpp> to simplify Gmpz and Gmpq.
6 March 2005 Sylvain Pion
- Mark template ctor of Quotient<NT> explicit, as it is too greedy,
complement it by constructors from NT, int and double.
5 March 2005 Sylvain Pion
- Use <boost/operators.hpp> to simplify <CGAL/Quotient.h>.
- Add test program for the mixed operators of Quotient.
3 March 2005 Sylvain Pion
- long_double.h : SunPRO workaround.
8 February 2005 Sylvain Pion
- doc fix for Rational_traits<>.
6 February 2005 Sylvain Pion
- Add Number_type_checker<NT1, NT2, Comparator>.
1 February 2005 Sylvain Pion
- Fix fall out of long double support.
- Re-implement nearbyint() because of too painful portability issues.
29 January 2005 Sylvain Pion
- Make "long double" a model of number type.
- Add MP_Float constructors from float and long double.
=========================== CGAL 3.1 ============================
24 November 2004 Sylvain Pion
- Remove useless (and potentially misleading) reference to the obsolete
BigNum package (by Serpette, Vuillemin, Herve).
17 November 2004 Sylvain Pion
- Disable square(MP_Float) [minor] optimization until the bug is fixed.
30 September 2004 Sylvain Pion
- MP_Float : fix bug in constructor from double.
- MP_Float : add convertion function to rational types (e.g. Gmpq).
22 September 2004 Sylvain Pion
- Define CGAL::min/max() for Quotient, since LEDA defines template min/max
functions that clash with std::min/max through ADL.
15 September 2004 Sylvain Pion
- Add sqrt() for leda_integer and leda_bigfloat.
10 September 2004 Andreas Fabri
- yet another change in operator>>(iostrem&, Gmpz) as it still failed with VC7.1
6 September 2004 Menelaos Karavelas
- number_type_basic.h: added "#include<CGAL/_QP_solver/Double.h>"
5 September 2004 Menelaos Karavelas & Sylvain Pion
- added specs for the new number type tags: Has_exact_ring_operations,
Has_exact_division, Has_exact_sqrt
5 September 2004 Menelaos Karavelas
- number_type_basic.h: put declarations for GMP, GMPXX and CORE inside
the proper #ifdef CGAL_USE_* / #endif blocks
4 September 2004 Sylvain Pion
- Add UInteger64 again.
3 September 2004 Sylvain Pion
- Quotient.h : #include <CGAL/basic.h> before the protect macro.
3 September 2004 Sylvain Pion & Menelaos Karavelas
- resurect to_double(Quotient<Gmpz>).
2 September 2004 Menelaos Karavelas
- number_types_basic.h: added "#include <CGAL/MP_Float.h>"; needed for
specializations of Quotient
2 September 2004 Menelaos Karavelas
- removed occurences of CGAL_USE_ADL_FOR_NT
- number_types_basic.h: added declarations for CORE::Expr
2 September 2004 Sylvain Pion
- test for the precense of the Number_type_traits tags.
2 September 2004 Sylvain Pion & Menelaos Karavelas
- number_type_basic.h :
- Replace #includes by declarations (for g++ 3.4).
- added declarations for specializations for Quotient<MP_Float>
- added includes for Gmpz.h and Quotient.h, necessary for g++ 3.4
- Gmp.C : file removed and corresponding code was moved back to Gmpz.h
1 September 2004 Sylvain Pion
- Add missing #include <CGAL/Quotient.h> in src/MP_Float.C.
1 September 2004 Menelaos Karavelas
- added the following tags in number type traits: Has_exact_sqrt,
Has_exact_ring_operations, Has_exact_division
- created default Rational_traits and moved applied the old rational
traits to Quotient<NT>
- removed unsigned number types
1 September 2004 Sylvain Pion
- number_utils.h : remove #include <CGAL/kernel_basic.h>.
- Add src/Gmp.C to break cyclic include dependency with Quotient.
- include all number type files from CGAL/number_type_basic.h when
CGAL_CFG_HAS_TWO_STAGE_NAME_LOOKUP is defined (g++ 3.4).
21 August 2004 Sylvain Pion
- Undo last change
20 August 2004 Menelaos Karavelas
- first attempt towards the new number type traits
13 August 2004 Sylvain Pion
- Use MPFR to properly fix to_interval(GMP types).
11 August 2004 Andreas Fabri
- bug fix in operator>>(istream, Gmpz)
9 August 2004 Sylvain Pion
- Use std::ios instead of std::ios_base to please g++ 2.95.
4 August 2004 Sylvain Pion
- operator>>(Gmpz) : better failure handling.
24 June 2004 Sylvain Pion
- Protect some leda number type functions against CGAL_USE_ADL_FOR_NT.
24 June 2004 Sylvain Pion
- Use CGAL_NTS instead of CGAL:: in Quotient::to_double.
20 June 2004 Sylvain Pion
- Minor optimisation : to_double(double) returns a const reference.
20 June 2004 Sylvain Pion
- GMPXX : No need to forward abs() and sqrt() when CGAL_USE_ADL_FOR_NT.
20 June 2004 Sylvain Pion
- Use CGAL_USE_ADL_FOR_NT instead of hardcoding a test for g++ 3.4
in previous change.
20 June 2004 Sylvain Pion
- Define CGAL_NTS as empty for g++ 3.4 as a temporary attempt.
This enables Koenig Lookup, and allows experimenting with it.
20 June 2004 Sylvain Pion
- Use CGAL_NTS instead of CGAL:: for to_double/to_interval.
31 May 2004 Sylvain Pion
- Add simplify_quotient() function in Quotient operations, and make it
simplify the exponents for MP_Float (other number types do not do anything).
31 May 2004 Sylvain Pion
- Change the exponent of MP_Float to be a double instead of int.
(temporary improvement before using a multiprecision value)
31 May 2004 Sylvain Pion
- Document the limitation of the exponent of MP_Float.
30 Apr 2004 Sylvain Pion
- Fix to_interval() for all GMP types when there is overflow.
A really proper fix probably requires some work within GMP.
27 Apr 2004 Sylvain Pion
- Replace explicit compilers tests by CGAL_CFG_IEEE_754_BUG.
17 Apr 2004 Sylvain Pion
- MP_Float : Do not use an implementation-defined behavior (conversion to
signed integral type), which was making PGCC unhappy.
- MP_Float : add a split() function to convert a limb2 in 2 limbs.
12 Apr 2004 Sylvain Pion
- Added preconditions (denominator != 0) in operator/ of Gmpz and Gmpq.
10 Apr 2004 Sylvain Pion
- Added expensive_assertions in to_interval(CORE::Expr) since it was buggy.
9 Apr 2004 Sylvain Pion
- PGCC workarounds.
29 March 2004 Radu Ursu
- rolled back some changes in doc_tex/NumberTypeSupport_ref/main.tex
26 March 2004 Radu Ursu
-made doc work with the new implementation of the Manual tools
24 Feb 2004 Sylvain Pion
- Fix return void expression detected by MipsPro.
21 Feb 2004 Sylvain Pion
- Add swap() to Quotient and MP_Float.
13 Feb 2004 Sylvain Pion
- Remove traces of CLN.
1 Feb 2004 Sylvain Pion
- Improve the precision of to_interval(Quotient<MP_Float>).
4.131 (18 Jan 2004)
- Remove CGAL_CFG_RETURN_TYPE_BUG workarounds.
4.130 (18 Jan 2004)
- Remove obsolete *ITERATOR_TRAITS_POINTER_SPEC* workarounds.
4.129 (18 Jan 2004)
- Remove obsolete CGAL_CFG_MATCHING_BUG_2 workaround (VC++ <= 7.0).
4.128 (18 Jan 2004)
- Add tests for overflow in to_double(Gmpq and Quotient<MP_Float>).
4.127 (15 Dec 2003)
- Proper fix for SunPro.
4.126 (4 Dec 2003)
- Protect operator>>(MP_Float) against end of stream.
4.125 (1 Dec 2003)
- Quotient<NT> now supports sqrt() iff NT supports it.
4.124 (28 Nov 2003)
- SunPro 5.3 workaround.
4.123 (25 Nov 2003) [af]
- Added #include of gmpxx.h
====================================== CGAL 3.0 =============================
4.122 (28 October 2003)
- Protect to_double(Quotient<MP_Float>) against overflows like Quotient<Gmpz>.
4.121 (27 October 2003)
- Fix Gmpq's operator>> in case of end of stream.
4.120 (22 October 2003) [af]
- new headers
4.119 (1 October 2003) [af]
- Moved \chapter to main.tex
4.118 (23 September 2003) [af]
- Added constructor Gmqp(int,int) and replaced Gmpq(char*) with Gmpq(std::string)
- Replaced constructor Gmpz(char*) with Gmpz(std::string)
4.117 (18 September 2003)
- New headers
4.116 (10 September 2003)
- test/utilities.C : add Interval_nt<>.
4.115 (1 September 2003)
- Remove duplicate CGAL::sqrt(CORE::Expr)
- Remove buggy templates in number_utils.h.
4.114 (27 August 2003)
- Move test/NumberTypeSupport to test/Number_types
4.113 (27 August 2003)
- Change CGAL_NTS to be CGAL::, and change the number types accordingly.
4.112 (25 August 2003)
- Try to workaround a VC++ feature in Gmpz.
4.111 (25 August 2003)
- Better testing of to_rational() and simplest_rational_in_interval().
4.110 (7 August 2003)
- Remove Interval_converter.
- Derive NT_converter from std::unary_function.
4.109 (7 August 2003)
- Add To_double<> and To_interval<>
- Merge test_to_interval.[Ch] in test/utilities.C.
4.108 (7 August 2003)
- abs() was failing with g++ 2.95 and mpz_class due to ?:.
4.107 (30 July 2003)
- Move sign(CORE::EXpr) and compare(CORE::Expr) in CGAL::NTS.
4.106 (29 July 2003)
- Overload NTS::compare<Quotient> when partial spec is available.
4.105 (28 July 2003)
- Fix compare(mp[zq]_class), and remove one useless version.
- Fix Quotient.
4.104 (24 July 2003)
- Add mixed operators with int.
4.103 (20 July 2003)
- better handling of mpz_class and mpq_class by dealing with the expression
templates. Adding some tests for that.
4.102 (14 July 2003) [af]
- Added iterator_traits specializations for Quotient<Gmpz>
4.101 (22 June 2003) [af]
- Adaptions so that it works with Core_v1.6
4.100 (19 June 2003)
- Add an assertion for division by zero in MP_Float.
4.99 (3 June 2003)
- Doc fix.
4.98 (30 May 2003)
- Implement to_interval(mpz_class) and to_interval(mpq_class).
- Comment out mpf_class support (and documentation), it's probably useless.
4.97 (23 May 2003)
- Remove #include <CGAL/Interval_arithmetic.h> from number_type_basic.h.
- Add missing #includes.
4.96 (15 May 2003)
- Fix to_interval(leda_real).
4.95 (15 May 2003)
- Test and enable to_interval for GMP++ and CORE.
4.94 (13 May 2003) [af]
- Fix bug in to_interval(MP_Float)
4.93 (12 May 2003)
- Remove CLN support (still keep the CGAL/CLN/* for backward compatiblity).
4.92 (11 May 2003) [af]
- Removed Interval_base
- Function to_interval returns std::pair<double,double>
4.91 (5 May 03)
- Added CGAL_DEFINE_ITERATOR_TRAITS_POINTER_SPEC for Gmpz and Gmpq and MSC_VER==1300
4.90 (24 Feb 03)
- Remove g++ 2.95 warnings (windows end-of-line)
and MipsPro warnings (unused variables).
4.79 (11 Feb 03)
- Fix square(MP_Float).
4.78 (6 Feb 03)
- doc fix : GREATER -> LARGER.
4.77 (21 January 03)
- Fix typo __GUNG__ instead of __GNUG__...
4.76 (20 January 03)
- static to_double(Gmpz) seems to cause problems, so make it inline.
4.75 (20 January 03)
- Test-suite changes for newer GCC.
4.74 (17 January 03)
- Added specialization for to_double(Quotient<Gmpz>)
4.73 (20 December 02)
- Move Rational_traits into Number_type_traits.h.
- Introduce Number type tags.
- Fix namespace for Gmpq/z.
4.72 (11 December 02)
- CGAL_NTS abs(double) overloaded to call std::fabs() only for __GNUG__.
4.71 (25 November 02)
- Small cleanups.
4.70 (25 October 02)
- Rewrite iterator traits pointer specs.
4.69 (12 October 02)
- Remove Windows end of lines.
4.68 (5 October 02)
- Better support expression templates (GMP++).
4.67 (5 October 02)
- Rational_traits<mpq_class> didn't compile...
4.66 (5 September 02)
- forgot this entry for 4.65
- added a construction of an arbitrary size integer from a double
in simplest_rational_in_interval. This is not allowed by the spec
but it will work for the integers we use.
4.64 (13 August 02)
- Move to_interval(long long) from Interval_arithmetic.h to long_long.h.
4.63 (12 August 02)
- Shut up a valgrind warning in MP_Float.C.
4.62 (12 August 02)
- Use CGAL_USE_LONG_LONG
4.61 (7 August 02)
- Added files Rational_traits.h, to_rational.h, Gmpq.h,
and simplest_rational_in_interval.h
- Added Rational_traits for leda_rational, mpq_class, Quotient
4.60 (6 August 02)
- Get rid of is_integral(double) : it's unused (and clashes with boost).
4.59 (23 July 02)
- Add mpz_class, mpq_class, mpf_class, CORE::Expr.
- Merged _test_sign.h and utilities.C in utilities.h.
- Removed _test_sign.C.
4.58 (2 July 02)
- New square(MP_Float) overloading.
----------------------------- CGAL 2.4 -----------------------------
4.57 (29 April 02)
- split of user and reference manuals
4.56 (24 April 02)
- dont_submit makefile and cgal_test.
4.55 (23 April 02)
- Don't compile Filtered_Exact tests in utilities.C on VC++ (lack of partial
specialization).
4.54 (28 March 02)
- Added 3-arg min/max where using std::min/max does not work.
4.53 (28 March 02)
- Fixed cgal_test.
4.52 (27 March 02)
- Fixed test makefile to include utilities test.
4.51 (27 March 02)
- Fixed some unused parameter warnings.
4.50 (24 March 02)
- added missing creation variable in Sqrt functor doc.
4.49 (21 March 02)
- Kill lexicographical_sign.
4.48 (21 March 02)
- converted doc to new manual style
- improved test suite
- added gcd and div computations
4.47 (19 March 02)
- Introduce Number_type_traits.
4.46 (19 March 02)
- include/CGAL/leda_* -files were changed to support
LEDA versions with a namespace
4.45 (12 February 02)
- Remove spurious warnings from Purify with MP_Float.
4.44 (24 January 02)
- Fix Gmpz::operator=().
- CodeWarrior fixes.
4.43 (18 January 02)
- Fix memory leak in Gmpz.
4.42 (16 January 02)
- CodeWarrior support.
4.41 (8 January 02)
- CodeWarrior support.
4.40 (21 December 01)
- VC++ 7 support.
4.39 (19 December 01)
- Define CGAL_PI, since there's no standard macro for Pi (M_PI is not).
4.38 (19 December 01)
- Added Geert-Jan's Counted_number.h.
4.37 (20 November 01)
- Darwin support.
4.36 (29 October 01)
- Previous submission bug.
4.35 (26 October 01)
- std::ceil => CGAL_CLIB_STD::ceil for VC++.
4.34 (24 October 01)
- Gmpz now uses Handle_for.
- Missing std:: to ceil().
- Move stuff from basic.h to number_type_basic.h.
4.33 (17 September 01)
- Added missing #include <iterator> detected by GCC 3.1.
4.32 (29 August 01)
- changed ccSection commands to section commands since pdf converter that
creates bookmarks can't handle the former.
4.31 (15 August 01)
- Merge Quotient.C into Quotient.h. SunPro knows about automatic template
inclusion, but requires these template functions to be not inline, which
makes sense. Given that about all functions in Quotient.C are inline...
============================== CGAL 2.3 ==========================
4.30 (25 July 01)
- Fix MP_Float.tex.
4.29 (23 July 01)
- operator<<(MP_Float) now prints a double approximation.
4.28 (18 July 01)
- Add Lazy_exact_nt documentation.
4.27 (06 July 01)
- added Arity typedef to functors
- add Compare argument to Min/Max
4.26 (27 June 01)
- Workaround for VC++ in src/MP_Float.C.
4.25 (25 June 01)
- operator<<(MP_Float) was missing the approximation when zero.
4.24 (25 June 01)
- to_interval(Gmpz) is exact when < 2^53.
4.23 (21 June 01)
- Remove the specialization Quotient<int>
- Remove obsolete test program _test_Double.C.
- Update test-suite makefile.
4.22 (18 June 01)
- Update the Quotient documentation.
4.21 (14 June 01)
- Include IEEE_754_unions.h only for VC++ and BCC.
4.20 (7 June 01)
- Add MP_Float code, test and doc.
4.19 (6 June 01)
- Replace Quotient<>(double) by a template ctor.
4.18 (5 June 01)
- Remove src/Double.C and src/Float.C.
- Delete references to CGAL_NO_NTS_NAMESPACE.
4.17 (5 June 01)
- Add constructor from a double to Quotient<>.
4.16 (29 May 01)
- Fix to_interval(leda_integer).
4.15 (28 May 01)
- to_interval(leda_integer) improvement, by Michael Seel.
4.14 (1 Mar 01)
- Added operator% to Gmpz.
4.13 (25 Feb 01)
- Fix warning.
4.12 (21 Feb 01)
- Add NT_converter.h which contains NT_converter<A,B> and
Interval_converter<A>.
4.11 (21 Feb 01)
- Removed <utility> in Quotient.h.
- Fix test program typo for CLN.
4.10 (20 Feb 01)
- Add removed code again...
4.9 (20 Feb 01)
- Remove references to __GNUC__ and CGAL_NO_STL_PROVIDED_REL_OPS.
4.8 (13 Feb 01)
- Remove old style casts.
4.7 (25 Jan 01)
- Merge the CLN package.
4.6 (25 Jan 01)
- included the documentation source in the doc_tex directory
4.5 (24 Jan 01)
- to_interval() for built-in types moved to Interval*.h in order to avoid
a circular dependency with the #include files.
4.4 (18 Jan 01)
- known_bit_size_integers.h now defines CGAL_HAS_INTEGER64 when it defines
Integer64 (see long_long.h too).
4.3 (15 Jan 01)
- Removed gnu_integer and Double_eps.
4.2 (13 Dec 00)
- #inlcude <CGAL/double.h> replaced by #include <CGAL/basic.h> in src/Double.C
in order to fix a bug with building libCGAL
4.1 (10 Dec 00)
- test_to_interval corrected as suggested by Sylvain
- #include <CGAL/interval_arithmetic.h> added to CGAL/number_type_basics.h
- #include <CGAL/interval_arithmetic.h> removed from CGAL/leda_bigfloat.h
- #include <CGAL/interval_arithmetic.h> removed from CGAL/leda_integer.h
- #include <CGAL/interval_arithmetic.h> removed from CGAL/leda_rational.h
- #include <CGAL/interval_arithmetic.h> removed from CGAL/leda_real.h
- #include <CGAL/interval_arithmetic.h> removed from CGAL/Gmpz.h
- #include <CGAL/interval_arithmetic.h> removed from CGAL/Quotient.h
- to_interval() added in Int.h for short, int, long and long long
the code for long and long long is problematic
- In Quotient.h:
#include <CGAL/basic.h> moved outside #ifndef ... #define ...QUOTIENT...
4.0 (26 Nov 00)
- to_interval() added for Gmpz
- to_interval() added for Quotient
- to_interval() added for leda_bigfloat
- to_interval() added for leda_integer
- to_interval() added for leda_rational
- to_interval() added for leda_real
- to_interval() added for double
- to_interval() added for float
- test for to_interval added to test suite
3.4 (13 Jul 00)
- todouble() replaced by to_double() for leda_integer and
leda_rational
3.3 (27 Jun 00)
- CGAL:: replaced by CGAL_NTS with sign in number_utils.h
3.2 (08 Jun 00)
- CGAL_NTS used
- is_integral(double) added to double.h
3.1 (30 May 00)
- min and max are now handled in <basic.h>
(by using std::min; ... )
3.0 (25 May 00)
- namespace CGAL::NTS introduced
templates from <number_utils.h> moved there
smooth transition phase with warning about unused variable
e.g. inline bool is_zero(const NT& x)
{
#ifndef CGAL_NO_NTS_NAMESPACE
bool is_zero_is_obsolete__qualify_call_by_CGAL_NTS;
#endif // CGAL_NO_NTS_NAMESPACE
return x == NT(0);
}
2.7.2 (18 Apr 00)
- sized_integer.h revised leading _s removed
%%%%%%%%%%%%%%%%%%%%%% R e l e a s e 2. 1 %%%%%%%%%%%%%%%%%%%%%%%%%%%%
2.7 -> 2.7.1 (04 Dec 99)
- CGAL_CLIB_STD used in <Gmpz.h> and <Quotient.C>
- dito in <double.h>
2.6.6 -> 2.7 (04 Dec 99)
- long long removed from <int.h>
definitions are now in <long_long.h>
2.6.5 -> 2.6.6 (22 Nov 99)
- added !=0 to mask tests in double.h and float.h as suggested
by Oren. Gives a performance warning on M$VC++ otherwise. Although
I think performance is now worse than before
2.6.4 -> 2.6.5 (20 Nov 99)
- Quotient<int>::normalize() removed (as suggested by Dima to
please Borland)
2.6.3 -> 2.6.4 (16 Nov 99)
- typedef modified in Quotient.C
2.6.2 -> 2.6.3 (14 Nov 99)
- some NumberType() replaced by NT() and a typedef
NumberType NT to please Borland
2.6.1 -> 2.6.2 (02 Nov 99)
- typedef in Quotient class used for NumberType
to workaround Borland problem
2.6 -> 2.6.1 (28 Oct 99)
- test for __BORLANDC__ added to double.h and float.h
2.5.6 -> 2.6 (28 Oct 99)
- CGAL::max and CGAL::min revived
2.5.5 -> 2.5.6 (25 Oct 99)
- substitution bugs fixed :) QUOTIENumberType_H
2.5.4 -> 2.5.5 (18 Oct 99)
- NT template parameter renamed to NumberType in Quotient
to please Borland :)
- to_double() qualified in leda_bigfloat.h
2.5.3 -> 2.5.4 (13 Oct 99)
- show(p) removed in double.h (left over from testing phase)
- #include <fp_class.h> moved out of namespace CGAL
2.5.2 -> 2.5.3 (12 Oct 99)
- #include <CGAL/basic.h> added to double.h and float.h
2.5.1 -> 2.5.2 (12 Oct 99)
- #include <iomanip> added to IEEE_754_unions.h
2.5 -> 2.5.1 (11 Oct 99)
- modified is_[valid|finite](); version using bitoperations
implemented and activated for _MSC_VER
can be activated also by -DCGAL_MASK_FINITE_VALID
- IEEE_754_unions.h added
2.4.3 -> 2.5 (08 Oct 99)
- modified _test_valid_finite.C: added std:: to sqrt(double)
- modified IEEE_double::show() to use C++ iostream stuff
#include <iomanip> added
- removed / from /rm in cgal_test :)
- new makefile created
- _test_valid_finite split into two tests, one for double
one for float
- is_[valid|finite]() on SGI revised
- test quotient_io.C revised
2.4.2 -> 2.4.3 (08 Oct 99)
- locale problem (isdigit) in Gmpz.h fixed (missing flag)
2.4.1 -> 2.4.2 (08 Oct 99)
- std::classic -> std::locale::classic in Quotient, Gmpz
2.4 -> 2.4.1 (05 Oct 99)
- include iterator_traits_pointer_specs_for_cartesian_quotient.h
added to Quotient.h
- test/NumberTypeSupport/include/CGAL/Ieee_double.h modified
- in cgal_test, '/bin' removed
2.3.5 -> 2.4 (17 Sep 99)
- inline double sqrt(double d) { return std::sqrt(d); }
added to double.h
- inline leda_real sqrt(const leda_real & r) { return ::sqrt(r); }
added to leda_real.h
2.3.4 -> 2.3.5 (02 Sep 99)
- added std::classic() as second argument to isspace(), isdigit()
cf. locale -- flagged by CGAL_CFG_NO_LOCALE
2.3.3 -> 2.3.4 (01 Sep 99)
- added std:: to isspace and isdigit in Gmpz and Quotient
2.3.2 -> 2.3.3 (31 Aug 99)
- test _test_valid_finite() modified such that it shows me the bits
if certain tests fail
2.3.1 -> 2.3.2 (19 Aug 99)
- test file quotient_io.C updated for std:: ...
2.3 -> 2.3.1 (06 Aug 99)
- makefile updated: $(OBJ_EXT)
2.2.1 -> 2.3 (04 Aug 99)
- Quotient.h revised for gcc-2.95:
num and den made public in order to make all friends non-friends
2.2 -> 2.2.1 (09 Jul 99)
- CGAL::compare(leda_real, ...) made inline
2.1.5 -> 2.2 (26 Jun 99)
- #include <CGAL/basic.h> added to
<CGAL/leda_[bigfloat|integer|rational|real].h>
- delete replaced by delete[] in Gmpz.h in ostream operator
(detected by Sylvain using purify)
- CGAL_ added to CHECK_... in Gmpz.h
%%%%%%%%%%%%%%%%%%%%%% R e l e a s e 2. 0 %%%%%%%%%%%%%%%%%%%%%%%%%%%%
2.1.4 -> 2.1.5 (09 May 99)
- placement of CGAL_KERNEL_INLINE corrected in Quotient.h (caused a warning)
2.1.3 -> 2.1.4 (02 May 99)
- flag CGAL_NO_NAMESPACE corrected in <leda_integer.h>
2.1.2 -> 2.1.3 (28 Apr 99)
- fix for change in 2.1.1
2.1.1 -> 2.1.2 (28 Apr 99)
- version number updated
2.1 -> 2.1.1 (28 Apr 99)
- used special code for __sgi for is_[finite|valid]()
- define abs specialisation only if namespaces are supported
2.0.13-> 2.1 (16 Apr 99)
- iostream parts prefixed by std::
- CGAL::compare(leda_real, leda_real) added
2.0.12-> 2.0.13 (06 Apr 99)
- flag CGAL_NO_QUOTIENT_INT_FRIENDS added to ease removing friend declarations
from specialisation Quotient<int>. These friend declarations cause problems
with latest egcs snapshots as reported by Sylvain.
2.0.11-> 2.0.12 (30 Mar 99)
- to_double encapsualted in #ifndef CGAL_NO_NAMESPACE for
bigfloat, integer, real, rational from LEDA
2.0.10-> 2.0.11 (30 Mar 99)
- sign() prefixed in lexicographical_sign() defined in <number_utils.h>
- CGAL_NO_STL_PROVIDED_REL_OPS defined in <Quotient.h> for g++-2.8.
2.0.9 -> 2.0.10 (28 Mar 99)
- inclusion of std files <cctype>, ... moved out of namespace CGAL
2.0.8 -> 2.0.9 (25 Mar 99)
- to_double() calls in Quotient::to_double 'prefixed' by CGAL::
2.0.7 -> 2.0.8 (23 Mar 99)
- flag CGAL_NO_NAMESPACE corrected :)
2.0.6 -> 2.0.7 (20 Mar 99)
- flag CGAL_NO_NAMESPACE corrected
2.0.5 -> 2.0.6 (15 Mar 99)
- fabs prefixed with std:: in Double.C
2.0.4 -> 2.0.5 (14 Mar 99)
- min()/max() removed from <number_utils.h>;
use std::min/max instead; defined in <algorithm>
<algorithm> included in <number_utils.h>.
- std::min, std::max used in <number_utils_classes.h>
- 'public std::' replaced by 'public CGAL_STD::' in <number_utils_classes.h>
- #ifdef CGAL_INTERVAL_ARITHMETIC_H
#include <CGAL/Interval_arithmetic/IA_Quotient.h>
#endif // CGAL_INTERVAL_ARITHMETIC_H
added to <CGAL/Quotient.h>
- #include <CGAL/config> moved to front in <CGAL/double.h> and <CGAL/float.h>
2.0.3 -> 2.0.4 (02 Mar 99)
- sign encapsulated in #ifndef CGAL_NO_NAMESPACES for
leda_[integer|rational|real] and global scope operator
added to call of sign in function definition.
2.0.2 -> 2.0.3 (25 Feb 99)
- CGAL_[BEGIN|END]_NAMESPACE used
- CGAL:: added to sign()-calls in
quotient_cmp(const Quotient<NT>& x, const Quotient<NT>& y)
2.0.1 -> 2.0.2 (16 Feb 99)
- std:: added to unary/binary_function in <number_utils_classes.h>
2.0 -> 2.0.1 (11 Feb 99)
- #ifdef CGAL_PROVIDE_STL_PROVIDED_REL_OPS changed to
#ifndef CGAL_NO_STL_PROVIDED_REL_OPS in <Quotient.h>,
thereby defining >, >=, <=, and != by default now.
- sign() defintion for leda_integer removed from <CGAL/leda_integer.h>
1.6 -> 2.0
- namespace CGAL { } introduced
- inclusion of <Quotient.h> removed from <number_type_basic.h>
- inclusion of <cctype> added to <Gmpz.h>
%%%%%%%%%%%%%%%%%%%%%% R e l e a s e 1 . 2 %%%%%%%%%%%%%%%%%%%%%%%%%%%%
1.5.4 -> 1.6
- bug (memory leak) in CGAL_Gmpz corrected:
e.g.: CGAL_Gmpz_rep* Res = new CGAL_Gmpz_rep();
mpz_add(Res->mpZ, ptr()->mpZ, z.ptr()->mpZ);
return CGAL_Gmpz(Res);
now replaces
mpz_t res; // <- limb not cleared !!!
mpz_init(res);
mpz_add(res, ptr()->mpZ, z.ptr()->mpZ);
return CGAL_Gmpz(res);
1.5.3 -> 1.5.4
- test order modified in _test_valid_finite.C
1.5.2 -> 1.5.3
- include <CGAL/enum.h> added to <CGAL/number_type_tags.h>
such that CGAL_Sign is known in files including the latter, e.g
<CGAL/leda_rational.h>
1.5.1 -> 1.5.2
- CGAL_sign() specialized for leda_[integer|rational|real]
_test_sign.C added
1.5 -> 1.5.1
- CGAL_square() and struct CGAL_Square added
1.4.5 -> 1.5
- Use of CGAL...INLINE made consistent between declarations and
definitions (otherwise SunPro CC 4.2 does not like it).
1.4.4 -> 1.4.5
- return type of Gmpz::sign() and CGAL_Sign(Gmpz) changed to CGAL_Sign
1.4.3 -> 1.4.4
- return true; added in <_test_valid_finite.C>
1.4.2 -> 1.4.3
- CGAL_KERNEL_INLINE replaced by inline for CGAL_abs(double)
1.4.1 -> 1.4.2
- CGAL_sign now returns a CGAL_Sign instead of an int
affects <number_utils.h> and <number_utils_classes.h>
- specialisation for CGAL_abs(double) (uses fabs()) added to <double.h>
1.4 -> 1.4.1
- added <test/NumberTypeSupport/_test_valid_finite.C> to package
1.3 -> 1.4
- valid(d) and finite(d) defined inline in double.h as
{ return (d == d); } and { return (d == d) && (CGAL_is_valid(d-d)); }
respectively, unless flag CGAL_OLD_FINITE_VALID is defined, which restores
the old situation
- same for float in float.h
- Double.C and Float.C in CGAL/src modified accordingly.
- comments with definitions of CGAL_abs(), CGAL_numerator(), CGAL_denominator()
removed from double.h and float.h
- DOUBLECOMP_H replaced by CGAL_DOUBLE_H in double.h
1.2.8 -> 1.3
- include statements for <CGAL/Interval_arithmetic/IA_*.h> added
for Gmpz, leda_integer, leda_real, leda_bigfloat, and leda_rational
%%%%%%%%%%%%%%%%%%%%%% R e l e a s e 1 . 1 %%%%%%%%%%%%%%%%%%%%%%%%%%%%
1.2.7 -> 1.2.8
- correction for CGAL_PROVIDE_STL_PROVIDED_REL_OPS in Quotient.h
1.2.6 -> 1.2.7
- operator?( Quotient<NT>, NT ) and operator?( NT, Quotient<NT>)
for ? in { !=, >, >=, <= } put in
#ifdef CGAL_PROVIDE_STL_PROVIDED_REL_OPS
- buglet in doc fixed: operators +=, -=, *=, /= are now required
to return NT ( not bool as before)
1.2.5 -> 1.2.6
- bug in CGAL_is_one() fixed
- missing leda_-prefix in operator/= added
1.2.4 -> 1.2.5
- workaround for missing operator/= for leda_real added
- io_tags() for unsigned types added
1.2.3 -> 1.2.4
- rearranged order of definitions in Quotient.h to please
Borland C++ (specialization for int is now at the end of
Quotient.h)
- made input operator for Quotient more flexible: accepts now
also format ` num ' besides ` num/den '.
1.2.2 -> 1.2.3
- +=, -=, /= added for Gmpz
1.2.1 -> 1.2.2
- CGAL_CFG_NO_STL_PROVIDED_COMPARISONS renamed to
(!) CGAL_PROVIDE_STL_PROVIDED_REL_OPS in Quotient.
As a consequence of this, the rel ops defined as templates
in <utility> in namespace rel_ops nested in namespace std
are no longer defined (nor declared) by default for Quotient.
1.2 -> 1.2.1
- inline and CGAL_KERNEL_INLINE added to declaration of function
templates
1.1.4 -> 1.2
- made fit for egcs
uses CGAL_TEMPLATE_NULL macro with explicit specialization
1.1.3 -> 1.1.4
- inclusion of number_utils_classes.h postponed
1.1.2 -> 1.1.3
- CGAL_CFG_NO_STL_PROVIDED_COMPARISONS added in Quotient.h to reduce
problems with g++2.7.2.3 with early inclusion of function.h
1.1.1 -> 1.1.2
- inconsistencies between file names removed (double.h - float.h) in
Double.C, Float.C, Double_eps.C
1.1 -> 1.1.1
- number_utils_classes.h (written by Michael Hoffmann) added to the
package
1.0 -> 1.1
- Geert-Jan's new version of Double.C and Float.C added (including
testsuite)
- Quotient has now a specialisation for int and hence no more
problems with ambigous ctors
- operator<<(ostream, Quotient<NT>) is no longer a friend of the
class -> egcs compiles the kernel test if called with -fguided-decls
0.9 -> 1.0
- files not defining a new class start with lower case letters now
e.g. Int.h -> int.h
gnu_Integer.h -> gnu_integer.h
- furthermore leda number types got a prefix,
e.g. Integer.h -> leda_integer.h
- leda_bigloat support added
- new inline policy