Commit Graph

185 Commits

Author SHA1 Message Date
Sylvain Pion 6aba449434 Replace Nef's custom Object_handle by CGAL::Object.
There were some differences :
- CGAL::Object has no template constructor, so using make_object() was required.
- CGAL::Object had no comparison with NULL to check emptyness.  I added
  such comparison operators to CGAL::Object as *deprecated*.
2008-09-09 16:03:25 +00:00
Sylvain Pion a565db4da9 Apply std::remove_reference *before* std::remove_cv... 2008-08-28 12:38:14 +00:00
Sylvain Pion d79048ab40 Add comment. 2008-08-27 17:31:06 +00:00
Sylvain Pion 7aa01562bd typo 2008-08-27 15:36:24 +00:00
Sylvain Pion 8865f7ea4f Use C++0x rvalue references in Object, Handle_for, MP_Float and Quotient. 2008-08-27 14:19:18 +00:00
Sylvain Pion 44c185f1f4 Rename boost::array to CGAL::array. 2008-08-26 13:15:21 +00:00
Sylvain Pion 53f5c9679b Add a using directive "using std::array" in namespace CGAL to import either:
- C++0x's std:array from <array>
- TR1's std::tr1::array from <tr1/array>
- boost::array from <boost/array.hpp>
Motivation : GCC's std::array is faster than boost::array.

Move CGALi:make_array to namespace CGAL.

Document CGAL::array.
2008-08-26 13:08:16 +00:00
Sylvain Pion f615d84fe0 Add new function CGAL::indeterminate() to help generate an indeterminate
in template context.
2008-08-22 16:06:53 +00:00
Sylvain Pion e829727e6a Add overloads of the handy functions:
bool are_sorted(const T & a, const T & b, const T & c)
  bool are_strictly_sorted(const T & a, const T & b, const T & c)
  bool are_ordered(const T & a, const T & b, const T & c)
  bool are_strictly_ordered(const T & a, const T & b, const T & c)
with a Compare functor as last argument.
2008-08-12 15:22:47 +00:00
Sylvain Pion 25051d8809 Move CGAL::copy_n() from the obsolete <CGAL/copy_n.h> to <CGAL/algorithm.h>. 2008-08-12 12:51:15 +00:00
Sylvain Pion c1389c006d Add a couple of handy functions:
bool are_sorted(const T & a, const T & b, const T & c)
  bool are_strictly_sorted(const T & a, const T & b, const T & c)
  bool are_ordered(const T & a, const T & b, const T & c)
  bool are_strictly_ordered(const T & a, const T & b, const T & c)
2008-08-12 12:43:20 +00:00
Sylvain Pion 0c34dc2525 - Refine CGAL_AND or CGAL_OR to make sure they work when the second argument is a bool.
- Add CGAL_AND_3 and CGAL_OR_3 for 3-arguments boolean operations.
2008-08-12 11:23:34 +00:00
Sylvain Pion 449195eb9d Add CGAL_AND() and CGAL_OR() macros, which do the same as && and || but propagate Uncertain-ty.
(for compilers that support statement expressions, like GCC).

Add Uncertain::is_same() to help in the test-suite.
2008-08-12 10:50:39 +00:00
Sylvain Pion c2d8057e2e Use certainly_not in the examples 2008-08-12 08:38:26 +00:00
Sylvain Pion 0b58aac0d4 Add certainly_not() and possibly_not() (more expressive and maybe faster), and
simplify the implementation of certainly() and possibly().
2008-08-12 08:26:00 +00:00
Sylvain Pion 34be1f4a81 Introduce a macro CGAL_NO_UNCERTAIN_CONVERSION_OPERATOR to restrict the automatic
conversion operator.
Update the test-suite to work in this setting on Leopard (assert macro restrictions).
2008-08-11 08:24:31 +00:00
Sylvain Pion fea8090201 Fix the example code (make_uncertain() added otherwise the ?: operator is ambiguous). 2008-08-11 08:10:11 +00:00
Sylvain Pion aff1bf74aa Replace CGAL::Interval_nt<>::number_of_failures() by a CGAL_PROFILER() counter. 2008-08-06 13:16:04 +00:00
Sylvain Pion 5641a7fe20 Fix the FIXME : improved operator== 2008-08-04 15:42:10 +00:00
Sylvain Pion 8828ebec1c - The default constructor of Uncertain now initializes to T(),
not indeterminate.
- Add some examples in the manual.
2008-08-04 15:12:59 +00:00
Sylvain Pion 3e6ab45543 Make it pass in -DCGAL_NDEBUG mode as well 2008-07-31 11:49:52 +00:00
Sylvain Pion 0c65a5a092 - It is not possible to use the CONTINUE mode in set_error_behaviour().
- Various formatting fixes.
- Mark the assertion_fail and similar functions as CGAL_NORETURN.
2008-07-31 09:50:28 +00:00
Sylvain Pion 9ae3ea91b7 Add documentation and test-suite for CGAL::Uncertain.
Some other fixes.
2008-07-30 16:34:14 +00:00
Sylvain Pion 2da32b8ba8 Replace && by & and || by | inside the definition of the overloaded operators & and |. 2008-07-30 14:23:36 +00:00
Sylvain Pion 5c11fa3a56 Add assignment operator from T.
Add fixme comment.
2008-07-30 12:46:56 +00:00
Sylvain Pion 265ce473b4 Rename extract_singleton(Uncertain<T>) to get_certain() 2008-07-30 12:03:07 +00:00
Sylvain Pion f70c3779c7 Rename Uncertain::is_singleton() to is_certain() 2008-07-30 08:29:37 +00:00
Sylvain Pion 2f0abc4b6f Move CGAL::Object from Kernel_23 to STL_Extension. 2008-07-29 15:26:38 +00:00
Sylvain Pion da4a9f4fd4 Undo previous change in utility.h : I can't mark Triple/Quadruple as CGAL_NO_DEPRECATE_CODE,
since they are still used (so they can't be disabled).

However: mark Twotuple, Threetuple, Fourtuple, Sixtuple as CGAL_NO_DEPRECATE_CODE.
2008-07-28 16:49:46 +00:00
Sylvain Pion 0cca1762e4 Mark Triple/Quadruple with CGAL_NO_DEPRECATED_CODE. 2008-07-28 16:45:00 +00:00
Sylvain Pion 6bffa76272 Phase out Triple and Quadruple:
- add get<i>() member function
- add make_tuple() function.
2008-07-28 15:29:54 +00:00
Sylvain Pion b4aaa1bbd1 Mark Twotuple, Threetuple, Fourtuple, Sixtuple with CGAL_DEPRECATED.
(marke the constructors as such, as marking the classes does not work
with templates with GCC right now).
2008-07-25 17:57:22 +00:00
Sylvain Pion c36fe88397 Mark Triple and Quadruple "not-recommended anymore". 2008-07-25 15:21:06 +00:00
Sylvain Pion 65dde8e7cc Mark Twotuple, Threetuple, Fourtuple and Sixtuple as deprecated. 2008-07-25 11:25:36 +00:00
Sylvain Pion dc3bf72707 Remove changes.txt files. 2008-07-24 17:47:16 +00:00
Michael Hoffmann ee574c68c6 Removed include of functional_base. 2008-07-23 13:57:55 +00:00
Michael Hoffmann ff118c1e63 Remove bind/compose/swap adaptors. 2008-07-23 13:19:15 +00:00
Sylvain Pion 79864c0c8e Remove Arity_tag. 2008-07-22 12:29:01 +00:00
Sylvain Pion ea17d27c87 Define is_singleton() and extract_singleton() for non-Uncertain types,
so that Filtered_predicate still works with predicates returning non-Uncertain types.
2008-07-17 09:31:44 +00:00
Sylvain Pion 91d2d7478b Move Uncertain.h from Filtered_kernel to STL_Extension 2008-07-16 16:07:27 +00:00
Sylvain Pion 2eb0d8f9e9 certainly() -> possibly(). 2008-07-14 11:16:41 +00:00
Sylvain Pion eff6efd3af CGAL_NULL and CGAL_NULL_TYPE are now constant macros, so replace them by:
- CGAL_NULL -> NULL
- CGAL_NULL_TYPE -> CGAL::Nullptr_t (typedef to const void *)
2008-07-12 21:58:52 +00:00
Sylvain Pion 9d7a609ff2 Make assertions trigger an error only for *certain* conditions (using CGAL::certainly()).
This is useful for interval arithmetic code.
(replay of r44002 with the header order hopefully fixed)
2008-07-10 21:49:17 +00:00
Sylvain Pion 2b4ebf01f7 Undo r44002 as it's buggy 2008-07-06 20:47:29 +00:00
Sylvain Pion 514a17ad4f Improve the interaction of assertions and interval computations.
Things like "CGAL_assertion(denominator != 0)" produced assertion failures for no gain.
So now, the assertion is triggered only if the condition is certain, using CGAL::certainly().
That is, change the following in all assertion files :
  ((EX)?(static_cast<void>(0)): ::CGAL::assertion_fail( # EX , __FILE__, __LINE__))
to :
  (CGAL::certainly(EX)?(static_cast<void>(0)): ::CGAL::assertion_fail( # EX , __FILE__, __LINE__))
2008-07-06 17:05:47 +00:00
Michael Hoffmann d92021ba08 Remove bind/compose/swap functor adaptors.
We use boost::bind instead now.
2008-06-19 11:03:40 +00:00
Michael Hoffmann f0eefae126 Remove section about functor adaptors. 2008-06-19 10:59:11 +00:00
Michael Hoffmann a156bad385 Remove bind/compose adaptors and change the AdaptableFunctor concept
accordingly.
2008-06-19 10:57:52 +00:00
Michael Hoffmann 9a1eea3563 Outdated -> removed. 2008-06-19 10:53:16 +00:00
Sylvain Pion 7a6b5546f0 Remove white space at end of line to ease merge 2008-06-03 12:03:58 +00:00