Commit Graph

145 Commits

Author SHA1 Message Date
Sylvain Pion fab9eca9d9 - Removed operator*(IA, double) and operator/(IA, double). They made a lot of
code for something not really worth it, IMHO.
1999-10-11 17:55:49 +00:00
Sylvain Pion 2071706d22 - Introduce typedef bound_t, and use it instead of double where appropriate. 1999-10-11 17:33:15 +00:00
Sylvain Pion e852335b70 - Made lots of functions friend, so that we don't have to call .inf() and
.sup(), but instead directly access ._inf and ._sup.
- Changed all "0" to "0.0".
1999-10-11 17:28:17 +00:00
Sylvain Pion bbad316a7d - Removed useless parenthesis. 1999-10-10 16:33:50 +00:00
Sylvain Pion 96d1bac173 - Back out last change. 1999-10-10 13:45:48 +00:00
Sylvain Pion b2699fbf47 - Changed CGAL_CFG_NO_EXPLICIT_TEMPLATE_FUNCTION_ARGUMENT_SPECIFICATION to
CGAL_CFG_NO_PARTIAL_TEMPLATE_FUNCTION_ARGUMENT_SPECIFICATION.
1999-10-10 11:49:27 +00:00
Sylvain Pion 89f0fb5533 - Add "CGAL::" in the macros CGAL_IA_SMALLEST and CGAL_IA_LARGEST.
- Precise an error message.
- Optimize is_valid().
1999-10-07 18:12:05 +00:00
Sylvain Pion 380ab517f0 - Removed the "want_exceptions" stuff completely. 1999-08-23 12:51:41 +00:00
Sylvain Pion e9553717f0 - Added "static bool Interval_nt_advanced::want_exceptions = true".
- Updated overlap_action() to use it.
- Removed the ugly macros CGAL_IA_NO_EXCEPTION and CGAL_IA_NO_WARNING.
1999-08-05 17:29:58 +00:00
Sylvain Pion edcc8519bd - Changed overlap_action() to be static. 1999-08-05 17:13:43 +00:00
Sylvain Pion e35c3d7889 - Replaced:
#ifdef CGAL_IA_DEBUG
      CGAL_assertion(FPU_get_cw() == FPU_cw_up);
  #endif
 by:
      CGAL_expensive_assertion(FPU_empiric_test() == FPU_cw_up);
1999-08-01 13:20:53 +00:00
Sylvain Pion b4c82b2fc0 - Don't use the GNU extension of "Named return value" anymore. 1999-08-01 12:49:29 +00:00
Sylvain Pion 0190817cda - Use FPU_get_and_set_cw(). 1999-07-15 18:15:31 +00:00
Sylvain Pion 65853b8d3d - Remade unsafe_comparison a proper struct{}, no need for a typedef.
(undo the change from 1999/04/20)
1999-07-13 16:23:54 +00:00
Sylvain Pion 1a25f67f07 - Use CGAL_IA_STOP_CPROP() in the ctors. 1999-07-13 13:35:33 +00:00
Sylvain Pion e21bb0d4fd - Removed obsolete member functions {lower|upper}_bound(). 1999-06-27 15:55:24 +00:00
Sylvain Pion ad2a5f5bc4 - Make number_type_tag() take a const & as argument. 1999-06-23 14:48:20 +00:00
Sylvain Pion b3a2ef6ed9 - Moved operator<< and operator>> to libCGAL, no inline anymore. 1999-06-23 11:22:11 +00:00
Sylvain Pion bed589241e - sqrt(): moved CGAL_IA_FORCE_TO_DOUBLE() deeper. 1999-05-07 11:15:39 +00:00
Sylvain Pion 60588365dc - Moved operator/ (double, Interval_nt), because could not be inlined. 1999-05-04 16:03:55 +00:00
Sylvain Pion 308e05b1ec - Added (currently disabled) code to stop constant propagation inside the
constructors.
1999-05-04 15:51:33 +00:00
Sylvain Pion b08fa90fda - Removed operator+ (double) and operator- (double).
- Added some rounding mode check (when CGAL_IA_DEBUG) where needed.
- Added some operator?? (double, Interval_nt) so that the rounding mode is ok.
1999-05-04 12:08:33 +00:00
Sylvain Pion 947f394b1c - Fixed a bug in the division code !!!???!!!
- Added operator/ (const double d, const Interval_nt & t).
- Removed useless () around boolean tests.
1999-05-04 09:38:11 +00:00
Sylvain Pion 7edafed41a - Introduced the macro CGAL_IA_FORCE_TO_DOUBLE() to work around a Intel
processor "feature" that breaks the interval computation when there is
  underflow or overflow (the exponent of the FP registers a larger than those
  of doubles).
1999-05-03 16:07:14 +00:00
Sylvain Pion 815ee80905 - unsafe_comparison is a type, not an object. 1999-04-20 13:07:51 +00:00
Sylvain Pion 09829b6da4 - Tried workaround for MipsPro based on convert_from_to() and
CGAL_CFG_NO_EXPLICIT_TEMPLATE_FUNCTION_ARGUMENT_SPECIFICATION.
1999-04-13 15:49:17 +00:00
Sylvain Pion a7cd3afe15 - Removed commented include headers.
- Made overlap_action return void, and modify the calling functions
  accordingly.
- Removed all friend functions, and replaced them using .inf() and .sup(), so
  that they don't need to be friend anymore (this should even make SunPro 5.0
  happy).
1999-04-01 14:10:22 +00:00
Sylvain Pion 21b93bb834 - to_double, is_valid, is_finite, sign, compare do not need to be friend
functions anymore, and they are not defined twice for the 2 classes.
- they use .inf() and .sup() to access the data members.
- overlap_action is now public.
1999-04-01 10:15:12 +00:00
Sylvain Pion fec6af0b1c - Changed .inf to ._inf, same for sup.
- Added .inf() and .sup().
1999-04-01 08:58:51 +00:00
Sylvain Pion e036bf3979 - Include files changes. 1999-04-01 08:43:16 +00:00
Sylvain Pion f7eb5d551c - Added std:: for the iostrem functions. 1999-03-26 17:32:36 +00:00
Sylvain Pion 496f9e4b57 - Replaced call of max<double>() to std::max. 1999-03-19 20:00:31 +00:00
Sylvain Pion 2aa2e5c7ae - Added a static data member "number_of_failures". 1999-03-12 16:52:58 +00:00
Sylvain Pion 0bd1826da5 - Moved a few #define in _FPU.h.
- Introduced the new FPU_get_cw() and FPU_set_cw().
1999-03-12 14:54:37 +00:00
Sylvain Pion 5e9d7ec2e4 - Comments. 1999-03-11 15:19:05 +00:00
Sylvain Pion 29ee98b567 - STORAGE CHANGED: "inf" now stores the lower bound, not the opposite anymore.
- => lots of "-" removals around the code.  Things are a LOT cleaner now,
  though probably slightly (<5%) slower.  Optimizing the compiler might be a
  good idea now.
- Added #include <CGAL/config.h> for CGAL_BEGIN_NAMESPACE.
- Replaced the static member constants by #defines, because the link fails
  otherwise (multiply defined symbols), and I _want_ constant propagation.
  CGAL_IA_MIN_DOUBLE, CGAL_IA_MAX_DOUBLE, CGAL_IA_SMALLEST, CGAL_IA_LARGEST
1999-03-04 17:42:06 +00:00
Sylvain Pion 48e0e74899 - Replaced sqrt (double) by std::sqrt. 1999-03-04 17:32:59 +00:00
Sylvain Pion 374430045a - Reformating. 1999-03-04 14:50:21 +00:00
Sylvain Pion d24e34bf46 - New member function .is_point() {return (inf == sup);}. 1999-03-03 09:46:43 +00:00
Sylvain Pion f69b19e8ea - Some reformating
- Added operators || (union) and && (intersection).
1999-03-03 09:43:34 +00:00
Sylvain Pion 6601da2073 - Introduced namespace CGAL. 1999-02-19 17:17:07 +00:00
Sylvain Pion 20f1a15273 - Standard header <iostream>.
- Added operators (double, IA) for +,-,*,/,<,>...
- Changed PRECONDITION to ASSERTION.
- Default constructor is the buggy interval [1;-1] to detect use before
  definition in the user's code.
- Fine-tuned the multiplication (once again :).
- Same for division.
- Various code looking clean up.
- Removed a useless test in CGAL_sign()'s equality case.
- About the same for CGAL_compare().
1999-02-19 15:04:17 +00:00
Sylvain Pion eb271e36dd - += and -= rely on + and -, no redefinition (it was for speed, but...).
- Added conditional include for Quotient<>.
1999-02-04 13:25:13 +00:00
Sylvain Pion f4213551e7 - moved conditionnal include lines at the beginning. 1999-01-19 16:17:36 +00:00
Sylvain Pion 8ac8cdf045 - Use CGAL_square<double>(), it's here now. 1999-01-05 19:14:32 +00:00
Sylvain Pion 5464c1b10d - Fixed bug in CGAL_square(): -a*a -> a*-a. 1998-12-23 12:18:50 +00:00
Sylvain Pion 6f0cf1d2f7 - CGAL_square(double) doesn't exist yet. 1998-12-22 12:51:17 +00:00
Sylvain Pion 34f5af32c1 - Replace the expensive checks by the flag CGAL_IA_DEBUG. 1998-12-22 12:40:01 +00:00
Sylvain Pion 8924234ce8 - Added CGAL_square() for both types.
- Rewrote the header of each function in a new style.
1998-12-17 17:37:54 +00:00
Sylvain Pion 3443c802fa - Added lots of preconditions on the rounding mode. 1998-12-13 17:38:37 +00:00
Sylvain Pion 632645e683 - line too long fixed. 1998-12-11 11:47:01 +00:00
Sylvain Pion f82270de10 - #include <CGAL/misc.h> for CGAL_convert_to<>(). 1998-12-10 16:06:12 +00:00
Sylvain Pion d1bb64cb4a - Moved the CGAL_convert_to<>() general template here.
(will be in kernel_basic.h normally).
1998-12-08 17:16:34 +00:00
Sylvain Pion 6e8540613c - Renamed CGAL_to_Interval_nt*() to CGAL_convert_to<CGAL_Interval_nt*>(). 1998-12-08 13:13:42 +00:00
Sylvain Pion 2ba0dea489 - Added member function bool overlap(const IA &d).
- Added flag CGAL_IA_NO_EXCEPTION, which prevents throwing.
1998-12-05 16:28:17 +00:00
Sylvain Pion 65df7a8b81 - Added forgottent definition of CGAL_to_double(IA_nt).
- Added istream operator>>(IA) (via a double).
1998-12-01 16:39:56 +00:00
Sylvain Pion 10afe69c95 Added conditionnal #include directive for IA/IA_Fixed.h. 1998-12-01 12:54:55 +00:00
Sylvain Pion ffc2b7df51 Added CGAL_number_type_tag() 1998-12-01 12:51:38 +00:00
Sylvain Pion 4913337b50 CGAL_io_tag() added. 1998-11-30 16:03:59 +00:00
Sylvain Pion a4c088ca00 - Changed again the semantic of sqrt() when negative.
- Made static const members for largest and smallest.
- Declared the values of {min,max}_double outside => CC accepts it now.
1998-11-25 16:38:40 +00:00
Sylvain Pion e4b1b35ce4 - Added double member constants "min_double" and "max_double".
- Added global constants CGAL_Interval_smallest and CGAL_Interval_largest.
- Added a template for CGAL_to_Interval_nt() and a specialisation for doubles.
1998-11-23 15:19:19 +00:00
Sylvain Pion 1c9b971740 Use more "typedef CGAL_Interval_nt IA". 1998-11-18 16:39:59 +00:00
Sylvain Pion d5273396c5 sqrt() semantic has changed. 1998-11-18 16:30:30 +00:00
Sylvain Pion 2d75f4a70f - Passing "double" instead of "double &" seems faster, so I changed all
concerned function prototypes.
- Moved ctor def CGAL_Interval_nt(const CGAL_Interval_nt_advanced &d) at the
  beginning of the class body so that it can be inlined.
- Redefined (grrr) friends CGAL_{abs,sign, compare, min...} for
  CGAL_Interval_nt.
- overlap_action() should maybe be redefined for CGAL_Interval_nt, but this
  should use a virtual function, so the code is ready, but I need the first
  benchmarks to activate it.
- New (undocumented for the moment) member function is_same() that does a
  "deep compare" (test equality of both bounds of 2 intervals).
- commented out the friendlyness of operator* (const double, const IA &).
1998-11-12 16:10:42 +00:00
Sylvain Pion 04810e2dc4 - Added "typedef CGAL_Interval_nt IA;", and done some substitutions. 1998-11-05 15:22:10 +00:00
Sylvain Pion b1b92487d7 - Added specializations for the functions CGAL_{sign,compare,abs,min,max}.
- overlap_action() returns an int(0), to shut up compiler, and provide
  a default answer, when we don't want the exception.
- The test operators now "return overlap_action();".
- One test less in operator==().
1998-11-05 14:28:18 +00:00
Sylvain Pion 872c4c7fe1 Changed member functions is_valid() and is_finite() to be non member functions
CGAL_is_valid(IA) and CGAL_is_finite(IA).
1998-10-30 12:22:37 +00:00
Sylvain Pion fd6727c9a8 CGAL_to_interval_nt(double) now returns an IA_advanced. 1998-10-28 17:20:41 +00:00
Sylvain Pion 6256a74fa0 New empty member class unsafe_comparison.
New private function overlap_action(), that throws the above exception, when
comparing unsafely.  CGAL_IA_DONT_THROW_EXCEPTION defines the behaviour at
compile time.
1998-10-26 13:41:00 +00:00
Sylvain Pion f979f9578a Bump for 2.3: small cleanup. 1998-10-23 08:53:48 +00:00
Sylvain Pion 5a2090bde6 Changed "class" to "struct".
Put the cast "IA_advanved -> IA" private.
Put the 2 doubles at the top of the definition.
1998-10-22 13:23:12 +00:00
Sylvain Pion 7fa30708d0 Added for the 2 classes, the 2 operators: *(IA, double) and *(double, IA). 1998-10-21 16:51:40 +00:00
Sylvain Pion 814447927d - operator<< doesn't need to be a friend function anymore.
- using the GNU extension optimization "Named return value".
- new protected function verify_overlap() (to clean up the comparison
  functions codes).
- operator*() and operator/() are outside the class body, so they can be made
  not inlined.
1998-10-20 13:42:32 +00:00
Sylvain Pion 4f8701d25b 2 small comments added. 1998-10-16 14:30:50 +00:00
Sylvain Pion 60476ef3cf CGAL_Interval_nt operator-() needed to be defined... 1998-10-15 15:59:55 +00:00
Sylvain Pion 4fd875f2c2 Fixed (duplicate code...) the CGAL_interval_nt operator?=(). 1998-10-15 15:36:31 +00:00
Sylvain Pion bfc9ee9ef3 Put the operators' code outside the class body.
Made operator<<() a friend function, with const argument.
1998-10-15 11:58:32 +00:00
Sylvain Pion 7bd25e7203 - Changed the default constructor to empty, instead of initializing to 0.
- Corrected is_valid() when inf = sup.
1998-10-02 11:14:06 +00:00
Sylvain Pion f798ba6488 Fixed sqrt() so that it passes the test-suite (it was correct though). 1998-10-02 11:06:25 +00:00
Sylvain Pion 3618f393e7 Speeded up a bit CGAL_Interval_nt, by removing spurious constructors. 1998-09-25 11:52:28 +00:00
Sylvain Pion 566b72d63e Removed useless "inline"s in the class definition.
Removed old commented code.
1998-09-23 15:42:32 +00:00
Sylvain Pion c8b319f9aa Removed useless and time consuming copy constructors. 1998-09-11 17:55:48 +00:00
Sylvain Pion d3189c9f27 "lines over 80 characters" problem fixed. 1998-08-18 07:20:47 +00:00
Sylvain Pion efc75b318b Updated to 2.0. 1998-08-17 15:33:36 +00:00
Sylvain Pion ef69b25cc3 Use keyword substitution in the headers. 1998-08-17 13:57:58 +00:00
Sylvain Pion 243f7f40fc Changed subdirectory name IA -> Interval_arithmetic 1998-08-14 13:54:04 +00:00
Sylvain Pion 911bf9f945 The e-mail of the coordinator changed from Herve to Mariette. 1998-08-14 13:29:37 +00:00
Sylvain Pion abf8645805 This commit was generated by cvs2svn to compensate for changes in r425,
which included commits to RCS files with non-trunk default branches.
1998-08-14 11:46:12 +00:00
Sylvain Pion b77af23941 This commit was generated by cvs2svn to compensate for changes in r423,
which included commits to RCS files with non-trunk default branches.
1998-08-14 11:33:46 +00:00
Sylvain Pion f6e708c35f This commit was generated by cvs2svn to compensate for changes in r421,
which included commits to RCS files with non-trunk default branches.
1998-08-14 11:33:29 +00:00
Sylvain Pion ff2e669c3e This commit was generated by cvs2svn to compensate for changes in r419,
which included commits to RCS files with non-trunk default branches.
1998-08-14 11:33:02 +00:00
Sylvain Pion d76b1fdd02 This commit was generated by cvs2svn to compensate for changes in r417,
which included commits to RCS files with non-trunk default branches.
1998-08-14 11:32:48 +00:00
Sylvain Pion fc9c84c747 This commit was generated by cvs2svn to compensate for changes in r415,
which included commits to RCS files with non-trunk default branches.
1998-08-14 11:32:31 +00:00
Sylvain Pion 929ec3f994 This commit was generated by cvs2svn to compensate for changes in r413,
which included commits to RCS files with non-trunk default branches.
1998-08-14 11:31:56 +00:00
Sylvain Pion e761721edd Initial revision 1998-08-14 11:31:15 +00:00