diff --git a/Packages/Interval_arithmetic/TODO b/Packages/Interval_arithmetic/TODO index cc3363c817e..7cc383e447a 100644 --- a/Packages/Interval_arithmetic/TODO +++ b/Packages/Interval_arithmetic/TODO @@ -81,10 +81,7 @@ Concerning the doc: expliquer comment utiliser les filtres. Peut-être une référence à ton chapitre sur l'arithmétique d'intervalles..." - add a pointer to my MISC'99 paper. -- Document "IA::number_of_failures", once overlap_action() is made - customisable. -- Documenter le mécanisme de cache. -- Documenter .exact(), .interval() et .value(). +- document overlap_action(), when it is made customisable. - Passer au nouveau format de doc. Concerning the test-suite: diff --git a/Packages/Interval_arithmetic/changes.txt b/Packages/Interval_arithmetic/changes.txt index 1ae4a2a6388..47811ae711d 100644 --- a/Packages/Interval_arithmetic/changes.txt +++ b/Packages/Interval_arithmetic/changes.txt @@ -1,5 +1,13 @@ Changes done to the Interval Arithmetic package. +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 diff --git a/Packages/Interval_arithmetic/doc_ps/Interval_arithmetic.ps b/Packages/Interval_arithmetic/doc_ps/Interval_arithmetic.ps index 40cc2cf4ad2..c45c863c506 100644 --- a/Packages/Interval_arithmetic/doc_ps/Interval_arithmetic.ps +++ b/Packages/Interval_arithmetic/doc_ps/Interval_arithmetic.ps @@ -7,7 +7,7 @@ %%EndComments %DVIPSCommandLine: dvips -o Interval_arithmetic.ps wrapper.dvi %DVIPSParameters: dpi=600 -%DVIPSSource: TeX output 1999.06.30:1418 +%DVIPSSource: TeX output 1999.07.08:2002 %%BeginProcSet: tex.pro %! /TeXDict 250 dict def TeXDict begin /N{def}def /B{bind def}N /S{exch}N @@ -1930,169 +1930,212 @@ F000000003F000000003F000000003F000000003F000000003F000000003F000000003F0 C003F00003C003F00003C003F00007C003F0001F8007F800FF80FFFFFFFF80FFFFFFFF80 232B7CAA2B>108 D E %EndDVIPSBitmapFont -%DVIPSBitmapFont: Fk ecti1200 12 18 -/Fk 18 121 df<00F003FC07FC07FC0FFE0FFE0FFE0FFE07FC03CC000C001C0018001800 +%DVIPSBitmapFont: Fk ecti1200 12 22 +/Fk 22 121 df<00F003FC07FC07FC0FFE0FFE0FFE0FFE07FC03CC000C001C0018001800 3800300070006000E001C00180038007000E001C0038007000E000C0000F1D7A891E>44 -D<000000000FF8000300000000FFFF000700000007FFFFC00F0000001FF803E01F000000 -7FC000F81E000000FF00007C3E000003FC00003C7E00000FF000001EFE00001FE000000F -FC00003FC0000007FC00007F00000007FC0000FE00000003FC0001FC00000003F80003FC -00000003F80007F800000001F8000FF000000001F8001FE000000001F0003FC000000001 -F0007FC000000001F0007F8000000001F000FF8000000001E001FF0000000001E001FF00 -00000001E003FE0000000001E003FE0000000001C007FC0000000001C007FC0000000001 -C00FF80000000001C00FF80000000000001FF80000000000001FF00000000000001FF000 -00000000003FF00000000000003FE00000000000003FE00000000000003FE00000000000 -007FE00000000000007FC00000000000007FC00000000000007FC00000000000007FC000 -0000000000FF80000000000000FF80000000000000FF80000000000000FF800000000000 -00FF80000000003800FF80000000003800FF80000000007800FF80000000007000FF8000 -0000007000FF8000000000F0007F8000000000E0007F8000000001E0007F8000000001C0 -007F8000000003C0003F800000000380003F800000000780003FC00000000F00001FC000 -00000E00001FC00000001E00000FE00000003C00000FF000000078000007F0000000F000 -0003F8000001E0000003FC000007C0000001FE00000F800000007F00003E000000003FC0 -00FC000000001FF807F00000000007FFFFC00000000001FFFF0000000000001FF0000000 -00404872C546>67 D<0000FFFFFFFFFFFFC00000FFFFFFFFFFFFC00000FFFFFFFFFFFFC0 -000001FF000003FF80000000FE0000007F80000001FE0000003F80000001FE0000001F80 -000001FC0000000F80000001FC0000000F80000001FC0000000F80000003FC0000000700 -000003F80000000700000003F80000000700000003F80000000700000007F80000000700 -000007F00000000F00000007F00000000E00000007F00000000E0000000FF00000000E00 -00000FE00007000E0000000FE00007000E0000000FE0000F000E0000001FE0000E000000 -00001FC0000E00000000001FC0000E00000000001FC0001E00000000003FC0001C000000 -00003F80003C00000000003F80007C00000000003F8000FC00000000007F8003F8000000 -00007FFFFFF800000000007FFFFFF800000000007FFFFFF80000000000FF0007F0000000 -0000FE0001F00000000000FE0000F00000000000FE0000F00000000001FE0000E0000000 -0001FC0000E00000000001FC0000E00000000001FC0001E00000000003FC0001C0007000 -0003F80001C00070000003F80001C000F0000003F80001C000E0000007F800000000E000 -0007F000000001E0000007F000000001C0000007F000000003C000000FF0000000038000 -000FE0000000078000000FE0000000070000000FE00000000F0000001FE00000000F0000 -001FC00000001E0000001FC00000003E0000001FC00000003C0000003FC00000007C0000 -003F80000000FC0000003F80000001F80000007F80000003F80000007F8000000FF00000 -007F0000003FF0000000FF000003FFE00000FFFFFFFFFFFFE00000FFFFFFFFFFFFE00000 -FFFFFFFFFFFFC0000042447AC342>69 D<0000FFFFFFFFFFFF800000FFFFFFFFFFFF8000 -00FFFFFFFFFFFF80000001FF000007FF00000000FE000000FF00000001FE0000007F0000 -0001FE0000003F00000001FC0000001F00000001FC0000001F00000001FC0000001F0000 -0003FC0000000E00000003F80000000E00000003F80000000E00000003F80000000E0000 -0007F80000000E00000007F00000001E00000007F00000001C00000007F00000001C0000 -000FF00000001C0000000FE00000001C0000000FE00007001C0000000FE0000F001C0000 -001FE0000E00000000001FC0000E00000000001FC0000E00000000001FC0001E00000000 -003FC0001C00000000003F80003C00000000003F80003C00000000003F80007C00000000 -007F8000F800000000007F0003F800000000007FFFFFF800000000007FFFFFF800000000 -00FFFFFFF00000000000FE0007F00000000000FE0001F00000000000FE0001F000000000 -01FE0000E00000000001FC0000E00000000001FC0000E00000000001FC0001E000000000 -03FC0001C00000000003F80001C00000000003F80001C00000000003F80003C000000000 -07F80003800000000007F00000000000000007F00000000000000007F000000000000000 -0FF0000000000000000FE0000000000000000FE0000000000000000FE000000000000000 -1FE0000000000000001FC0000000000000001FC0000000000000001FC000000000000000 -3FC0000000000000003F80000000000000003F80000000000000007F8000000000000000 -7F80000000000000007F8000000000000000FF80000000000000FFFFFFC00000000000FF -FFFFC00000000000FFFFFFC0000000000041447AC340>I<00007FFFFFC00000FFFFFFC0 -0000FFFFFFC0000000FFC0000000007F0000000000FF0000000000FF0000000000FE0000 -000000FE0000000000FE0000000001FE0000000001FC0000000001FC0000000001FC0000 -000003FC0000000003F80000000003F80000000003F80000000007F80000000007F00000 -000007F00000000007F0000000000FF0000000000FE0000000000FE0000000000FE00000 -00001FE0000000001FC0000000001FC0000000001FC0000000003FC0000000003F800000 -00003F80000000003F80000000007F80000000007F00000000007F00000000007F000000 -0000FF0000000000FE0000000000FE0000000000FE0000000001FE0000000001FC000000 -0001FC0000000001FC0000000003FC0000000003F80000000003F80000000003F8000000 -0007F80000000007F00000000007F00000000007F0000000000FF0000000000FE0000000 -000FE0000000000FE0000000001FE0000000001FC0000000001FC0000000003FC0000000 -003FC0000000003F8000000000FFC0000000FFFFFFC00000FFFFFFC00000FFFFFF800000 -2A447AC326>73 D<01FFFFFFFFFFFFF803FFFFFFFFFFFFF803FFFFFFFFFFFFF803FF0003 -FC001FF007F80003F80007F007E00007F80003F007C00007F80001F00F800007F00001F0 -0F000007F00000F00F000007F00000F01E00000FF00000E01E00000FE00000E01C00000F -E00000E03C00000FE00000E03800001FE00000E03800001FC00001E07800001FC00001C0 -7000001FC00001C0F000003FC00001C0E000003F800001C0E000003F800001C0E000003F -800001C00000007F800000000000007F000000000000007F000000000000007F00000000 -000000FF00000000000000FE00000000000000FE00000000000000FE00000000000001FE -00000000000001FC00000000000001FC00000000000001FC00000000000003FC00000000 -000003F800000000000003F800000000000003F800000000000007F800000000000007F0 -00000000000007F000000000000007F00000000000000FF00000000000000FE000000000 -00000FE00000000000000FE00000000000001FE00000000000001FC00000000000001FC0 -0000000000001FC00000000000003FC00000000000003F800000000000003F8000000000 -00003F800000000000007F800000000000007F000000000000007F000000000000007F00 -000000000000FF00000000000000FE00000000000000FE00000000000001FE0000000000 -0001FE00000000000003FE00000000000007FF00000000003FFFFFFFC00000003FFFFFFF -C00000003FFFFFFF800000003D446FC346>84 D<7FFFFFFFFFFFFEFFFFFFFFFFFFFEFFFF -FFFFFFFFFE7FFFFFFFFFFFFE37047C6E4B>95 D<00001F80000000007FE000000001F070 -70000007C039F800000F801DF800001F001FF800003E000FF000007E000FF00000FC000F -F00001F80007F00001F80007E00003F00007E00007F00007E00007E0000FE0000FE0000F -C0000FE0000FC0001FC0000FC0001FC0001FC0003FC0001F80003F80001F80003F80001F -80003F80003F80007F80003F00007F00003F00007F00003F00007F00007F00007F00007E -0000FE00007E0000FE00007E0000FE0000FE0380FE0000FC0780FE0000FC0700FE0000FC -07007E0001FC07007E0001FC0F007E0003F80E007E0007F80E003E000FF81E003E000FF8 -1C001F001CF81C001F0038F838000F80F078780007C3E07C700001FF801FE000007E0007 -8000292D76AB32>97 D<00000FE00000007FF8000001F81E000007E00F00000F80078000 -1F000380007E0003C000FC0007C001FC001FC001F8001FC003F0003F8007F0003F800FE0 -003F800FE0000E001FC00000001FC00000003F800000003F800000007F800000007F0000 -00007F000000007F00000000FF00000000FE00000000FE00000000FE00000000FE000000 -00FC00000000FC00000000FC00000000FC00000000FC00000000FC00000180FC000003C0 -FC00000780FC000007807C00000F007E00001E003E00007C003E0000F0001F0003E0000F -800F800007C07E000001FFF80000007FC00000222D75AB2D>99 D<0000000007F0000000 -03FFF000000003FFF000000003FFF0000000000FE00000000007E0000000000FE0000000 -000FE0000000000FC0000000000FC0000000001FC0000000001FC0000000001F80000000 -001F80000000003F80000000003F80000000003F00000000003F00000000007F00000000 -007F00000000007E00000000007E0000000000FE0000000000FE0000000000FC0000001F -80FC0000007FE1FC000001F071FC000007C039F800000F801DF800001F001FF800003E00 -0FF800007E000FF00000FC000FF00001F80007F00001F80007F00003F00007E00007F000 -07E00007E0000FE0000FE0000FE0000FE0000FC0001FC0000FC0001FC0001FC0003FC000 -1FC0003F80001F80003F80001F80003F80003F80007F80003F80007F00003F00007F0000 -3F00007F00007F00007F00007F0000FE00007E0000FE00007E0000FE0000FE0380FE0000 -FE0780FE0000FC0700FE0000FC07007E0001FC07007E0001FC0F007E0003F80E007E0007 -F80E003E000FF81E003E000FF81C001F001CF81C001F0038F838000F80F078780007C3E0 -7C700001FF801FE000007E000780002C4676C432>I<00000FE00000007FF8000001F83E -000007C00F00001F800780003F000780007E0007C000FC0003C001F80003C003F00007C0 -07F000078007E00007800FE0000F801FC0000F001FC0001F003F80003E003F8000FC003F -8007F0007F80FFC0007FFFFE00007FFFC000007F00000000FF00000000FE00000000FE00 +D<03FFFFFFFFFFFFFE07FFFFFFFFFFFFFF00000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000FFFFFFFFFFFFFFE07FFFFFFFFFFFFFC0401675 +A34B>61 D<000000000FF8000300000000FFFF000700000007FFFFC00F0000001FF803E0 +1F0000007FC000F81E000000FF00007C3E000003FC00003C7E00000FF000001EFE00001F +E000000FFC00003FC0000007FC00007F00000007FC0000FE00000003FC0001FC00000003 +F80003FC00000003F80007F800000001F8000FF000000001F8001FE000000001F0003FC0 +00000001F0007FC000000001F0007F8000000001F000FF8000000001E001FF0000000001 +E001FF0000000001E003FE0000000001E003FE0000000001C007FC0000000001C007FC00 +00000001C00FF80000000001C00FF80000000000001FF80000000000001FF00000000000 +001FF00000000000003FF00000000000003FE00000000000003FE00000000000003FE000 +00000000007FE00000000000007FC00000000000007FC00000000000007FC00000000000 +007FC0000000000000FF80000000000000FF80000000000000FF80000000000000FF8000 +0000000000FF80000000003800FF80000000003800FF80000000007800FF800000000070 +00FF80000000007000FF8000000000F0007F8000000000E0007F8000000001E0007F8000 +000001C0007F8000000003C0003F800000000380003F800000000780003FC00000000F00 +001FC00000000E00001FC00000001E00000FE00000003C00000FF000000078000007F000 +0000F0000003F8000001E0000003FC000007C0000001FE00000F800000007F00003E0000 +00003FC000FC000000001FF807F00000000007FFFFC00000000001FFFF0000000000001F +F000000000404872C546>67 D<0000FFFFFFFFFFFFC00000FFFFFFFFFFFFC00000FFFFFF +FFFFFFC0000001FF000003FF80000000FE0000007F80000001FE0000003F80000001FE00 +00001F80000001FC0000000F80000001FC0000000F80000001FC0000000F80000003FC00 +00000700000003F80000000700000003F80000000700000003F80000000700000007F800 +00000700000007F00000000F00000007F00000000E00000007F00000000E0000000FF000 +00000E0000000FE00007000E0000000FE00007000E0000000FE0000F000E0000001FE000 +0E00000000001FC0000E00000000001FC0000E00000000001FC0001E00000000003FC000 +1C00000000003F80003C00000000003F80007C00000000003F8000FC00000000007F8003 +F800000000007FFFFFF800000000007FFFFFF800000000007FFFFFF80000000000FF0007 +F00000000000FE0001F00000000000FE0000F00000000000FE0000F00000000001FE0000 +E00000000001FC0000E00000000001FC0000E00000000001FC0001E00000000003FC0001 +C00070000003F80001C00070000003F80001C000F0000003F80001C000E0000007F80000 +0000E0000007F000000001E0000007F000000001C0000007F000000003C000000FF00000 +00038000000FE0000000078000000FE0000000070000000FE00000000F0000001FE00000 +000F0000001FC00000001E0000001FC00000003E0000001FC00000003C0000003FC00000 +007C0000003F80000000FC0000003F80000001F80000007F80000003F80000007F800000 +0FF00000007F0000003FF0000000FF000003FFE00000FFFFFFFFFFFFE00000FFFFFFFFFF +FFE00000FFFFFFFFFFFFC0000042447AC342>69 D<0000FFFFFFFFFFFF800000FFFFFFFF +FFFF800000FFFFFFFFFFFF80000001FF000007FF00000000FE000000FF00000001FE0000 +007F00000001FE0000003F00000001FC0000001F00000001FC0000001F00000001FC0000 +001F00000003FC0000000E00000003F80000000E00000003F80000000E00000003F80000 +000E00000007F80000000E00000007F00000001E00000007F00000001C00000007F00000 +001C0000000FF00000001C0000000FE00000001C0000000FE00007001C0000000FE0000F +001C0000001FE0000E00000000001FC0000E00000000001FC0000E00000000001FC0001E +00000000003FC0001C00000000003F80003C00000000003F80003C00000000003F80007C +00000000007F8000F800000000007F0003F800000000007FFFFFF800000000007FFFFFF8 +0000000000FFFFFFF00000000000FE0007F00000000000FE0001F00000000000FE0001F0 +0000000001FE0000E00000000001FC0000E00000000001FC0000E00000000001FC0001E0 +0000000003FC0001C00000000003F80001C00000000003F80001C00000000003F80003C0 +0000000007F80003800000000007F00000000000000007F00000000000000007F0000000 +000000000FF0000000000000000FE0000000000000000FE0000000000000000FE0000000 +000000001FE0000000000000001FC0000000000000001FC0000000000000001FC0000000 +000000003FC0000000000000003F80000000000000003F80000000000000007F80000000 +000000007F80000000000000007F8000000000000000FF80000000000000FFFFFFC00000 +000000FFFFFFC00000000000FFFFFFC0000000000041447AC340>I<00007FFFFFC00000 +FFFFFFC00000FFFFFFC0000000FFC0000000007F0000000000FF0000000000FF00000000 +00FE0000000000FE0000000000FE0000000001FE0000000001FC0000000001FC00000000 +01FC0000000003FC0000000003F80000000003F80000000003F80000000007F800000000 +07F00000000007F00000000007F0000000000FF0000000000FE0000000000FE000000000 +0FE0000000001FE0000000001FC0000000001FC0000000001FC0000000003FC000000000 +3F80000000003F80000000003F80000000007F80000000007F00000000007F0000000000 +7F0000000000FF0000000000FE0000000000FE0000000000FE0000000001FE0000000001 +FC0000000001FC0000000001FC0000000003FC0000000003F80000000003F80000000003 +F80000000007F80000000007F00000000007F00000000007F0000000000FF0000000000F +E0000000000FE0000000000FE0000000001FE0000000001FC0000000001FC0000000003F +C0000000003FC0000000003F8000000000FFC0000000FFFFFFC00000FFFFFFC00000FFFF +FF8000002A447AC326>73 D<0000FFFF000001FFFFE00000FFFF000001FFFFE00000FFFF +000001FFFFE0000000FF8000000FFC00000000FF80000007F000000000FF80000003E000 +000001FFC0000003C000000001DFC0000003C000000001DFC00000038000000001DFE000 +00078000000003CFE000000780000000038FF000000700000000038FF000000700000000 +0387F000000F000000000787F800000F000000000703F800000E000000000703F800000E +000000000703FC00001E000000000F01FC00001E000000000E01FC00001C000000000E01 +FE00001C000000000E00FE00003C000000001E00FE00003C000000001C00FF0000380000 +00001C007F000038000000001C007F000078000000003C007F8000780000000038003F80 +00700000000038003F8000700000000038003FC000F00000000078001FC000F000000000 +70001FC000E00000000070001FE000E00000000070000FE001E000000000F0000FE001E0 +00000000E0000FF001C000000000E00007F001C000000000E00007F003C000000001E000 +07F803C000000001C00003F8038000000001C00003F8038000000001C00003FC07800000 +0003C00001FC078000000003800001FC070000000003800001FE070000000003800000FE +0F0000000007800000FE0F0000000007000000FF0E00000000070000007F0E0000000007 +0000007F1E000000000F0000007F9E000000000E0000003F9C000000000E0000003F9C00 +0000000E0000003FFC000000001E0000001FFC000000001C0000001FF8000000001C0000 +001FF8000000001C0000000FF8000000003C0000000FF8000000003800000007F0000000 +007800000007F0000000007800000007F000000000F800000003F000000001FC00000003 +E000000007FE00000003E0000000FFFFF0000001E0000000FFFFF0000001E0000000FFFF +F0000001C00000004B447AC348>78 D<01FFFFFFFFFFFFF803FFFFFFFFFFFFF803FFFFFF +FFFFFFF803FF0003FC001FF007F80003F80007F007E00007F80003F007C00007F80001F0 +0F800007F00001F00F000007F00000F00F000007F00000F01E00000FF00000E01E00000F +E00000E01C00000FE00000E03C00000FE00000E03800001FE00000E03800001FC00001E0 +7800001FC00001C07000001FC00001C0F000003FC00001C0E000003F800001C0E000003F +800001C0E000003F800001C00000007F800000000000007F000000000000007F00000000 +0000007F00000000000000FF00000000000000FE00000000000000FE00000000000000FE +00000000000001FE00000000000001FC00000000000001FC00000000000001FC00000000 +000003FC00000000000003F800000000000003F800000000000003F800000000000007F8 +00000000000007F000000000000007F000000000000007F00000000000000FF000000000 +00000FE00000000000000FE00000000000000FE00000000000001FE00000000000001FC0 +0000000000001FC00000000000001FC00000000000003FC00000000000003F8000000000 +00003F800000000000003F800000000000007F800000000000007F000000000000007F00 +0000000000007F00000000000000FF00000000000000FE00000000000000FE0000000000 +0001FE00000000000001FE00000000000003FE00000000000007FF00000000003FFFFFFF +C00000003FFFFFFFC00000003FFFFFFF800000003D446FC346>84 +D<7FFFFFFFFFFFFEFFFFFFFFFFFFFEFFFFFFFFFFFFFE7FFFFFFFFFFFFE37047C6E4B>95 +D<00001F80000000007FE000000001F07070000007C039F800000F801DF800001F001FF8 +00003E000FF000007E000FF00000FC000FF00001F80007F00001F80007E00003F00007E0 +0007F00007E00007E0000FE0000FE0000FC0000FE0000FC0001FC0000FC0001FC0001FC0 +003FC0001F80003F80001F80003F80001F80003F80003F80007F80003F00007F00003F00 +007F00003F00007F00007F00007F00007E0000FE00007E0000FE00007E0000FE0000FE03 +80FE0000FC0780FE0000FC0700FE0000FC07007E0001FC07007E0001FC0F007E0003F80E +007E0007F80E003E000FF81E003E000FF81C001F001CF81C001F0038F838000F80F07878 +0007C3E07C700001FF801FE000007E00078000292D76AB32>97 D<00000FE00000007FF8 +000001F81E000007E00F00000F800780001F000380007E0003C000FC0007C001FC001FC0 +01F8001FC003F0003F8007F0003F800FE0003F800FE0000E001FC00000001FC00000003F +800000003F800000007F800000007F000000007F000000007F00000000FF00000000FE00 000000FE00000000FE00000000FE00000000FC00000000FC00000000FC00000000FC0000 -0000FC00000180FC000003C07C000007807C000007807E00000F003E00001E003E00007C -001F0000F0000F0003E00007800F800003C07E000001FFF80000003FC00000222D75AB2D ->I<00003C00007E0000FE0000FE0000FE0000FC00007000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000007C0001 -FF0003C7800703C00F03E00E03E01C03E01C07E03807E03807E07807E0700FE0700FC070 -1FC0F01F80E01F80003F80003F00003F00007F00007E00007E0000FE0000FC0001FC0001 -F80001F80003F80003F00003F01E07F01C07E01C07E01C0FE03C0FC0380FC0380FC0780F -80700F80F00F80E00F81C00783C007C78003FE0000F800174378C11E>105 -D<0003F801FFF801FFF801FFF80007F00003F00007F00007F00007E00007E0000FE0000F -E0000FC0000FC0001FC0001FC0001F80001F80003F80003F80003F00003F00007F00007F -00007E00007E0000FE0000FE0000FC0000FC0001FC0001FC0001F80001F80003F80003F8 -0003F00003F00007F00007F00007E00007E0000FE0000FE0000FC0000FC0001FC0001FC0 -001F80001F80003F80003F80003F00003F00007F01C07F03C07E03807E03807E0780FE07 -00FC0700FC0700FC0F00FC0E007C1E007C1C003C3C003E78001FF00007C000154678C419 ->108 D<01F0000FE00003FC007FF800071E01F03E000E0F03C01F001E0F87001F801C0F -8E000F803C0F9C000F80380FB8000FC0380FF8000FC0781FF0000FC0701FE0000FC0701F -E0000FC0701FC0000FC0F01F80001FC0E03F80001F80E03F00001F80003F00001F80003F -00003F80007F00003F00007E00003F00007E00003F00007E00007F0000FE00007E0000FC -00007E0000FC0000FE0000FC0000FC0001FC0000FC0001F80001FC0001F80001F80001F8 -0001F80F03F80003F80E03F00003F00E03F00003F00E03F00007F01E07F00007E01C07E0 -0007E01C07E00007E03C07E00007C0380FE00007C0780FC00007C0700FC00007C0E00FC0 -0003C1E01FC00003E3C01F800001FF00070000007C00302D78AB37>110 -D<01F0003F8003FC01FFF0071E03C0780E0F0F003C1E0F9E00FC1C0F9C00FE1C0FB801FC -380FF001FC380FF001FC381FE00070781FE00000701FC00000701FC00000F01F800000E0 -3F800000E03F000000003F000000003F000000007F000000007E000000007E000000007E -00000000FE00000000FC00000000FC00000000FC00000001FC00000001F800000001F800 -000001F800000003F800000003F000000003F000000003F000000007F000000007E00000 -0007E000000007E00000000FE00000000FC00000000FC00000000FC00000001FC0000000 -1F800000000700000000272D78AB29>114 D<000070000001F8000001F8000001F80000 -03F8000003F0000003F0000003F0000007F0000007E0000007E0000007E000000FE00000 -0FC000000FC000000FC000001FC000001F8000001F80007FFFFFE0FFFFFFE0FFFFFFC000 -3F0000003F0000007F0000007E0000007E0000007E000000FE000000FC000000FC000000 -FC000001FC000001F8000001F8000001F8000003F8000003F0000003F0000003F0000007 -F0000007E0000007E0000007E000000FE000000FC000000FC000000FC007801FC007001F -8007001F800F001F800E003F801E003F001C003F003C003F0038003F0070001F00F0001F -01E0000F03C0000F87800007FE000001F800001B3F78BD20>116 -D<007C00003801FF0000FC03C78001FE0703C001FE0F03E001FE0E03E001FE1C03E000FE -1C07E0007E3807E0007E3807E0003E7807E0003E700FE0001E700FC0001E701FC0001EF0 -1F80001CE01F80001C003F80001C003F00003C003F000038007F000038007E000038007E -00007800FE00007000FC00007000FC00007000FC0000F001FC0000E001F80000E001F800 -01E001F80001C001F80001C003F000038003F000038003F000070003F000070003F0000E -0001F0000E0001F0001C0001F800380000F800780000FC00F000007C01E000003F078000 -000FFF00000003F80000272D78AB2D>118 D<0000F8003F800007FE00FFE0000F0F83C0 -F0001C07C78078003803CF01F8007003EE01FC00E003FC03F801E003FC03F801C003F803 -F803C003F800E0038003F80000078003F00000070003F00000070007F000000F0007E000 -000E0007E00000000007E0000000000FE0000000000FC0000000000FC0000000000FC000 -0000001FC0000000001F80000000001F80000000001F80000000003F80000000003F0000 -0000003F00000000003F00000000007F0003C000007F00038000007E00038000007E0003 -800000FE0007000000FE0007001C00FE000F007E01FC000E007E01FE001C00FE03FE003C -00FE03BE007800FE079E00F000780F1F01E0007C1E0F83C0001FF803FF000007E000FC00 -002E2D7CAB2D>120 D E +0000FC00000000FC00000180FC000003C0FC00000780FC000007807C00000F007E00001E +003E00007C003E0000F0001F0003E0000F800F800007C07E000001FFF80000007FC00000 +222D75AB2D>99 D<0000000007F000000003FFF000000003FFF000000003FFF000000000 +0FE00000000007E0000000000FE0000000000FE0000000000FC0000000000FC000000000 +1FC0000000001FC0000000001F80000000001F80000000003F80000000003F8000000000 +3F00000000003F00000000007F00000000007F00000000007E00000000007E0000000000 +FE0000000000FE0000000000FC0000001F80FC0000007FE1FC000001F071FC000007C039 +F800000F801DF800001F001FF800003E000FF800007E000FF00000FC000FF00001F80007 +F00001F80007F00003F00007E00007F00007E00007E0000FE0000FE0000FE0000FE0000F +C0001FC0000FC0001FC0001FC0003FC0001FC0003F80001F80003F80001F80003F80003F +80007F80003F80007F00003F00007F00003F00007F00007F00007F00007F0000FE00007E +0000FE00007E0000FE0000FE0380FE0000FE0780FE0000FC0700FE0000FC07007E0001FC +07007E0001FC0F007E0003F80E007E0007F80E003E000FF81E003E000FF81C001F001CF8 +1C001F0038F838000F80F078780007C3E07C700001FF801FE000007E000780002C4676C4 +32>I<00000FE00000007FF8000001F83E000007C00F00001F800780003F000780007E00 +07C000FC0003C001F80003C003F00007C007F000078007E00007800FE0000F801FC0000F +001FC0001F003F80003E003F8000FC003F8007F0007F80FFC0007FFFFE00007FFFC00000 +7F00000000FF00000000FE00000000FE00000000FE00000000FE00000000FE00000000FC +00000000FC00000000FC00000000FC00000000FC00000180FC000003C07C000007807C00 +0007807E00000F003E00001E003E00007C001F0000F0000F0003E00007800F800003C07E +000001FFF80000003FC00000222D75AB2D>I<0000FE000000007FFE000000007FFE0000 +00007FFE0000000001FC0000000000FC0000000001FC0000000001FC0000000001F80000 +000001F80000000003F80000000003F80000000003F00000000003F00000000007F00000 +000007F00000000007E00000000007E0000000000FE0000000000FE0000000000FC00000 +00000FC0000000001FC0000000001FC0000000001F80000000001F807F0000003F83FFC0 +00003F8F81F000003F1E00F800003F3800FC00007F70007C00007FE0007C00007FC0007E +00007FC0007E0000FF80007E0000FF00007E0000FF00007E0000FE00007E0001FC0000FE +0001FC0000FC0001F80000FC0001F80000FC0003F80001FC0003F80001F80003F00001F8 +0003F00001F80007F00003F80007F00003F00007E00003F00007E00007F0000FE00007E0 +000FE00007E0000FC0000FE0000FC0000FC0001FC0000FC0781FC0001FC0701F80001F80 +701F80001F80703F80003F80F03F80003F00E03F00003F00E03F00003F01E07F00003E01 +C07F00003E03C07E00003E03807E00003E0700FE00001E0F00FE00001F1E00FC00000FF8 +0038000003E0002D467AC432>104 D<00003C00007E0000FE0000FE0000FE0000FC0000 +700000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000007C0001FF0003C7800703C00F03E00E03E01C03E01C07E03807 +E03807E07807E0700FE0700FC0701FC0F01F80E01F80003F80003F00003F00007F00007E +00007E0000FE0000FC0001FC0001F80001F80003F80003F00003F01E07F01C07E01C07E0 +1C0FE03C0FC0380FC0380FC0780F80700F80F00F80E00F81C00783C007C78003FE0000F8 +00174378C11E>I<0003F801FFF801FFF801FFF80007F00003F00007F00007F00007E000 +07E0000FE0000FE0000FC0000FC0001FC0001FC0001F80001F80003F80003F80003F0000 +3F00007F00007F00007E00007E0000FE0000FE0000FC0000FC0001FC0001FC0001F80001 +F80003F80003F80003F00003F00007F00007F00007E00007E0000FE0000FE0000FC0000F +C0001FC0001FC0001F80001F80003F80003F80003F00003F00007F01C07F03C07E03807E +03807E0780FE0700FC0700FC0700FC0F00FC0E007C1E007C1C003C3C003E78001FF00007 +C000154678C419>108 D<01F0000FE00003FC007FF800071E01F03E000E0F03C01F001E +0F87001F801C0F8E000F803C0F9C000F80380FB8000FC0380FF8000FC0781FF0000FC070 +1FE0000FC0701FE0000FC0701FC0000FC0F01F80001FC0E03F80001F80E03F00001F8000 +3F00001F80003F00003F80007F00003F00007E00003F00007E00003F00007E00007F0000 +FE00007E0000FC00007E0000FC0000FE0000FC0000FC0001FC0000FC0001F80001FC0001 +F80001F80001F80001F80F03F80003F80E03F00003F00E03F00003F00E03F00007F01E07 +F00007E01C07E00007E01C07E00007E03C07E00007C0380FE00007C0780FC00007C0700F +C00007C0E00FC00003C1E01FC00003E3C01F800001FF00070000007C00302D78AB37> +110 D<00000FE00000007FFC000001F83E000007E00F80000F8007C0001F0007C0007E00 +03E000FC0003F000FC0003F001F80001F003F00001F807F00001F80FE00001F80FE00001 +F81FC00001F81FC00001F83F800001F83F800003F87F800003F87F000003F87F000003F8 +7F000007F8FF000007F0FE000007F0FE000007F0FE00000FF0FE00000FE0FC00000FE0FC +00001FC0FC00001FC0FC00001F80FC00003F80FC00003F00FC00007F00FC00007E00FC00 +00FC007C0001F8007E0003F0003E0003E0003E0007C0001F001F80000F803E000007C0FC +000001FFF00000003F800000252D75AB32>I<01F0003F8003FC01FFF0071E03C0780E0F +0F003C1E0F9E00FC1C0F9C00FE1C0FB801FC380FF001FC380FF001FC381FE00070781FE0 +0000701FC00000701FC00000F01F800000E03F800000E03F000000003F000000003F0000 +00007F000000007E000000007E000000007E00000000FE00000000FC00000000FC000000 +00FC00000001FC00000001F800000001F800000001F800000003F800000003F000000003 +F000000003F000000007F000000007E000000007E000000007E00000000FE00000000FC0 +0000000FC00000000FC00000001FC00000001F800000000700000000272D78AB29>114 +D<000070000001F8000001F8000001F8000003F8000003F0000003F0000003F0000007F0 +000007E0000007E0000007E000000FE000000FC000000FC000000FC000001FC000001F80 +00001F80007FFFFFE0FFFFFFE0FFFFFFC0003F0000003F0000007F0000007E0000007E00 +00007E000000FE000000FC000000FC000000FC000001FC000001F8000001F8000001F800 +0003F8000003F0000003F0000003F0000007F0000007E0000007E0000007E000000FE000 +000FC000000FC000000FC007801FC007001F8007001F800F001F800E003F801E003F001C +003F003C003F0038003F0070001F00F0001F01E0000F03C0000F87800007FE000001F800 +001B3F78BD20>116 D<007C00003801FF0000FC03C78001FE0703C001FE0F03E001FE0E +03E001FE1C03E000FE1C07E0007E3807E0007E3807E0003E7807E0003E700FE0001E700F +C0001E701FC0001EF01F80001CE01F80001C003F80001C003F00003C003F000038007F00 +0038007E000038007E00007800FE00007000FC00007000FC00007000FC0000F001FC0000 +E001F80000E001F80001E001F80001C001F80001C003F000038003F000038003F0000700 +03F000070003F0000E0001F0000E0001F0001C0001F800380000F800780000FC00F00000 +7C01E000003F078000000FFF00000003F80000272D78AB2D>118 +D<0000F8003F800007FE00FFE0000F0F83C0F0001C07C78078003803CF01F8007003EE01 +FC00E003FC03F801E003FC03F801C003F803F803C003F800E0038003F80000078003F000 +00070003F00000070007F000000F0007E000000E0007E00000000007E0000000000FE000 +0000000FC0000000000FC0000000000FC0000000001FC0000000001F80000000001F8000 +0000001F80000000003F80000000003F00000000003F00000000003F00000000007F0003 +C000007F00038000007E00038000007E0003800000FE0007000000FE0007001C00FE000F +007E01FC000E007E01FE001C00FE03FE003C00FE03BE007800FE079E00F000780F1F01E0 +007C1E0F83C0001FF803FF000007E000FC00002E2D7CAB2D>120 +D E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fl ecbx1200 12 28 /Fl 28 119 df<0000001FFE0000000003FFFFC00000001FFFFFF00000007FF803F80000 @@ -3103,267 +3146,305 @@ b(y)n(ou)e(compile)g(with)i(the)f(\035ag)f Fh(-DCGAL)1613 2 y(EXCEPTION)14 b Fm(,)23 b(the)g(exception)g(is)f(not)h(thro)n(wn,)g (but)278 102 y(y)n(ou)k(get)g(a)h(w)n(arning)e(instead.)36 b(The)28 b(return)f(v)-5 b(alue)28 b(is)f(unsp)r(eci\034ed.)195 -327 y Fg(\017)41 b Fm(Moreo)n(v)n(er,)32 b(y)n(ou)h(can)g(also)f(get)h +300 y Fg(\017)41 b Fm(Moreo)n(v)n(er,)32 b(y)n(ou)h(can)g(also)f(get)h (rid)g(of)g(the)h(w)n(arning)e(b)n(y)h(adding)g Fh(-DCGAL)2745 -329 y(_)2812 327 y(IA)2906 329 y(_)2974 327 y(NO)3100 -329 y(_)3167 327 y(WARNINGS)42 b Fm(or)278 427 y Fh(-DCGAL)608 -429 y(_)676 427 y(NO)802 429 y(_)869 427 y(WARNINGS)10 +302 y(_)2812 300 y(IA)2906 302 y(_)2974 300 y(NO)3100 +302 y(_)3167 300 y(WARNINGS)42 b Fm(or)278 400 y Fh(-DCGAL)608 +402 y(_)676 400 y(NO)802 402 y(_)869 400 y(WARNINGS)10 b Fm(.)26 b(The)i(return)f(v)-5 b(alue)27 b(is)h(unsp)r(eci\034ed)g(to) -r(o.)71 888 y Fi(Implemen)m(tation)71 1094 y Fh(Interval)352 -1096 y(_)420 1094 y(nt)63 b Fm(deriv)n(es)54 b(from)h -Fh(Interval)1368 1096 y(_)1436 1094 y(nt)1511 1096 y(_)1578 -1094 y(advanced)9 b Fm(,)64 b(see)55 b(Section)h(0.0.2.)119 -b(Nearly)54 b(all)h(op)r(erations)f(on)71 1193 y Fh(Interval)352 -1195 y(_)420 1193 y(nt)36 b Fm(need)29 b(the)h(rounding)e(mo)r(de)h(to) -g(b)r(e)h(set)f(to)g('round)f(to)h(nearest')g(\(whic)n(h)g(is)g(the)g -(default\),)h(and)f(lea)n(v)n(e)71 1293 y(it)f(in)g(this)g(state)f(if)h -(they)g(ha)n(v)n(e)e(to)i(mo)r(dify)g(it)g(in)n(ternally)-7 -b(.)p -213 1617 8 119 v -206 1499 1182 5 v 71 1880 a -Fl(0.0.2)112 b(A)m(dv)-6 b(anced)38 b(In)m(terv)-6 b(al)36 -b(Arithmetic)e(\()p Fk(Interval)2293 1882 y(_)2371 1880 -y(nt)2458 1882 y(_)2538 1880 y(advanced)10 b Fl(\))71 -2153 y Fh(Interval)352 2155 y(_)420 2153 y(nt)35 b Fm(deriv)n(es)27 -b(from)h Fh(Interval)1286 2155 y(_)1354 2153 y(nt)1429 -2155 y(_)1496 2153 y(advanced)9 b Fm(.)41 b(The)28 b(adv)-5 -b(anced)27 b(class)h(allo)n(ws)e(y)n(ou)i(to)g(mak)n(e)f(faster)h(com-) -71 2252 y(putations,)36 b(but)f(y)n(ou)f(need)h(to)f(set)h(the)g -(rounding)e(mo)r(de)i(of)f(the)h(FPU)h(to)e('round)h(to)f(in\034nit)n -(y')h(\(see)f(b)r(elo)n(w)h(for)71 2352 y(ho)n(w)28 b(to)h(do)g(that\)) -h(b)r(efore)f(doing)g(an)n(y)f(computation)h(with)h(this)f(n)n(um)n(b)r -(er)g(t)n(yp)r(e,)h(and)f(eac)n(h)f(function)i(\(arithmetic)71 -2451 y(op)r(erators)j(and)i(con)n(v)n(ersion)e(functions\))j(lea)n(v)n +r(o.)71 681 y(In)19 b(all)g(cases,)h(y)n(ou)f(ha)n(v)n(e)f(access)g(to) +h(a)g(global)f(coun)n(ter)g(of)h(failures)g Fh(Interval)2394 +683 y(_)2462 681 y(nt)2537 683 y(_)2604 681 y(advanced::number)3254 +683 y(_)3324 681 y(of)3391 683 y(_)3460 681 y(failures)7 +b Fm(,)71 781 y(whic)n(h)27 b(is)h(incremen)n(ted)f(for)g(eac)n(h)g +(unsafe)g(comparison.)71 1112 y Fi(Implemen)m(tation)71 +1311 y Fh(Interval)352 1313 y(_)420 1311 y(nt)63 b Fm(deriv)n(es)54 +b(from)h Fh(Interval)1368 1313 y(_)1436 1311 y(nt)1511 +1313 y(_)1578 1311 y(advanced)9 b Fm(,)64 b(see)55 b(Section)h(0.0.2.) +119 b(Nearly)54 b(all)h(op)r(erations)f(on)71 1411 y +Fh(Interval)352 1413 y(_)420 1411 y(nt)36 b Fm(need)29 +b(the)h(rounding)e(mo)r(de)h(to)g(b)r(e)h(set)f(to)g('round)f(to)h +(nearest')g(\(whic)n(h)g(is)g(the)g(default\),)h(and)f(lea)n(v)n(e)71 +1511 y(it)f(in)g(this)g(state)f(if)h(they)g(ha)n(v)n(e)e(to)i(mo)r +(dify)g(it)g(in)n(ternally)-7 b(.)p -213 1828 8 119 v +-206 1710 1182 5 v 71 2062 a Fl(0.0.2)112 b(A)m(dv)-6 +b(anced)38 b(In)m(terv)-6 b(al)36 b(Arithmetic)e(\()p +Fk(Interval)2293 2064 y(_)2371 2062 y(nt)2458 2064 y(_)2538 +2062 y(advanced)10 b Fl(\))71 2322 y Fh(Interval)352 +2324 y(_)420 2322 y(nt)35 b Fm(deriv)n(es)27 b(from)h +Fh(Interval)1286 2324 y(_)1354 2322 y(nt)1429 2324 y(_)1496 +2322 y(advanced)9 b Fm(.)41 b(The)28 b(adv)-5 b(anced)27 +b(class)h(allo)n(ws)e(y)n(ou)i(to)g(mak)n(e)f(faster)h(com-)71 +2421 y(putations,)36 b(but)f(y)n(ou)f(need)h(to)f(set)h(the)g(rounding) +e(mo)r(de)i(of)f(the)h(FPU)h(to)e('round)h(to)f(in\034nit)n(y')h(\(see) +f(b)r(elo)n(w)h(for)71 2521 y(ho)n(w)28 b(to)h(do)g(that\))h(b)r(efore) +f(doing)g(an)n(y)f(computation)h(with)h(this)f(n)n(um)n(b)r(er)g(t)n +(yp)r(e,)h(and)f(eac)n(h)f(function)i(\(arithmetic)71 +2621 y(op)r(erators)j(and)i(con)n(v)n(ersion)e(functions\))j(lea)n(v)n (es)e(the)h(rounding)g(mo)r(de)g(in)g(this)h(state)f(if)h(it)g(needs)f -(to)g(mo)r(dify)h(it)71 2551 y(in)n(ternally)-7 b(.)36 -b(See)28 b(b)r(elo)n(w)f(for)g(details.)71 2757 y(The)198 -b(function)h Fh(convert)1174 2759 y(_)1242 2757 y(to)5 -b Fd(<)p Fh(Interval)1642 2759 y(_)1710 2757 y(nt)j Fd(>)p +(to)g(mo)r(dify)h(it)71 2720 y(in)n(ternally)-7 b(.)36 +b(See)28 b(b)r(elo)n(w)f(for)g(details.)71 2919 y(The)198 +b(function)h Fh(convert)1174 2921 y(_)1242 2919 y(to)5 +b Fd(<)p Fh(Interval)1642 2921 y(_)1710 2919 y(nt)j Fd(>)p Fh(\(\))201 b Fm(is)d(replaced)f(b)n(y)i(the)f(function)71 -2857 y Fh(convert)337 2859 y(_)405 2857 y(to)5 b Fd(<)p -Fh(Interval)805 2859 y(_)873 2857 y(nt)948 2859 y(_)1015 -2857 y(advanced)k Fd(>)p Fh(\(\))60 b Fm(and)55 b(has)g(the)h(same)f -(requiremen)n(ts)f(concerning)g(the)i(rounding)71 2956 -y(mo)r(de)28 b(as)e(other)h(functions.)71 3162 y(#)p -Fh(include)j Fd(<)p Fh(CGAL/Interval)1030 3164 y(_)1099 -3162 y(arithmetic.h)6 b Fd(>)71 3368 y Fm(W)-7 b(e)28 +3019 y Fh(convert)337 3021 y(_)405 3019 y(to)5 b Fd(<)p +Fh(Interval)805 3021 y(_)873 3019 y(nt)948 3021 y(_)1015 +3019 y(advanced)k Fd(>)p Fh(\(\))60 b Fm(and)55 b(has)g(the)h(same)f +(requiremen)n(ts)f(concerning)g(the)i(rounding)71 3118 +y(mo)r(de)28 b(as)e(other)h(functions.)71 3318 y(#)p +Fh(include)j Fd(<)p Fh(CGAL/Interval)1030 3320 y(_)1099 +3318 y(arithmetic.h)6 b Fd(>)71 3517 y Fm(W)-7 b(e)28 b(pro)n(vide)e(the)i(follo)n(wing)f(functions)g(to)h(c)n(hange)e(the)i -(rounding)f(mo)r(de:)71 3613 y Fh(enum)i(FPU)470 3615 -y(_)538 3613 y(CW)680 3615 y(_)748 3613 y(t)g({)h(FPU)1049 -3615 y(_)1118 3613 y(cw)1211 3615 y(_)1279 3613 y(near,)g(FPU)1668 -3615 y(_)1736 3613 y(cw)1829 3615 y(_)1897 3613 y(zero,)h(FPU)2274 -3615 y(_)2342 3613 y(cw)2435 3615 y(_)2503 3613 y(up,)f(FPU)2817 -3615 y(_)2886 3613 y(cw)2979 3615 y(_)3047 3613 y(down)6 -b(};)1394 3819 y Fm(The)26 b(di\033eren)n(t)g(selectors)e(for)h(the)i +(rounding)f(mo)r(de:)71 3749 y Fh(enum)i(FPU)470 3751 +y(_)538 3749 y(CW)680 3751 y(_)748 3749 y(t)g({)h(FPU)1049 +3751 y(_)1118 3749 y(cw)1211 3751 y(_)1279 3749 y(near,)g(FPU)1668 +3751 y(_)1736 3749 y(cw)1829 3751 y(_)1897 3749 y(zero,)h(FPU)2274 +3751 y(_)2342 3749 y(cw)2435 3751 y(_)2503 3749 y(up,)f(FPU)2817 +3751 y(_)2886 3749 y(cw)2979 3751 y(_)3047 3749 y(down)6 +b(};)1394 3948 y Fm(The)26 b(di\033eren)n(t)g(selectors)e(for)h(the)i (rounding)e(mo)r(de)h(\(resp)r(ectiv)n(ely)f(to)h(the)1394 -3919 y(nearest,)g(to)i(zero,)e(to)i(plus)f(in\034nit)n(y)-7 -b(,)28 b(and)g(to)f(min)n(us)h(in\034nit)n(y\).)71 4315 -y Fh(void)402 b(FPU)792 4317 y(_)860 4315 y(set)960 4317 -y(_)1028 4315 y(cw\()30 b(FPU)1357 4317 y(_)1425 4315 -y(CW)1567 4317 y(_)1635 4315 y(t)f(R\))1866 4521 y Fm(T)-7 +4047 y(nearest,)g(to)i(zero,)e(to)i(plus)f(in\034nit)n(y)-7 +b(,)28 b(and)g(to)f(min)n(us)h(in\034nit)n(y\).)71 4403 +y Fh(void)402 b(FPU)792 4405 y(_)860 4403 y(set)960 4405 +y(_)1028 4403 y(cw\()30 b(FPU)1357 4405 y(_)1425 4403 +y(CW)1567 4405 y(_)1635 4403 y(t)f(R\))1866 4602 y Fm(T)-7 b(o)27 b(set)h(the)g(rounding)f(mo)r(de)g(to)h Fh(R)s -Fm(.)71 4926 y Fh(FPU)243 4928 y(_)311 4926 y(CW)453 -4928 y(_)521 4926 y(t)620 5132 y(FPU)792 5134 y(_)860 -5132 y(get)964 5134 y(_)1032 5132 y(cw\()i(void\))496 +Fm(.)71 4967 y Fh(FPU)243 4969 y(_)311 4967 y(CW)453 +4969 y(_)521 4967 y(t)620 5166 y(FPU)792 5168 y(_)860 +5166 y(get)964 5168 y(_)1032 5166 y(cw\()i(void\))496 b Fm(T)-7 b(o)27 b(get)h(the)g(curren)n(t)e(rounding)h(mo)r(de.)p eop %%Page: 4 4 -4 3 bop 71 -231 a Fm(4)71 2 y Fi(Example)71 189 y Fm(The)26 +4 3 bop 71 -231 a Fm(4)71 2 y Fi(Example)71 195 y Fm(The)26 b(correct)e(w)n(a)n(y)h(to)h(protect)f(an)h(area)e(of)i(co)r(de)g(that) g(uses)f(op)r(erations)g(on)g(the)i(class)d Fh(Interval)3124 -191 y(_)3193 189 y(nt)3268 191 y(_)3335 189 y(advanced)36 -b Fm(is)71 288 y(the)28 b(follo)n(wing:)158 536 y Fd(FPU_CW_t)40 -b(backup)h(=)i(FPU_get_cw\(\);)158 635 y(FPU_set_cw\(FPU_c)o(w_)o(up\)) -o(;)158 735 y(...)f(//)h(The)f(code)g(to)h(be)g(protected.)158 -835 y(FPU_set_cw\(backu)o(p\))o(;)71 1164 y Fi(Implemen)m(tation)71 -1351 y Fm(The)30 b(basic)f(idea)g(is)h(to)g(use)f(the)h(directed)g +197 y(_)3193 195 y(nt)3268 197 y(_)3335 195 y(advanced)36 +b Fm(is)71 294 y(the)28 b(follo)n(wing:)158 576 y Fd(FPU_CW_t)40 +b(backup)h(=)i(FPU_get_cw\(\);)158 675 y(FPU_set_cw\(FPU_c)o(w_)o(up\)) +o(;)158 775 y(...)f(//)h(The)f(code)g(to)h(be)g(protected.)158 +875 y(FPU_set_cw\(backu)o(p\))o(;)71 1263 y Fi(Implemen)m(tation)71 +1456 y Fm(The)30 b(basic)f(idea)g(is)h(to)g(use)f(the)h(directed)g (rounding)f(mo)r(des)h(sp)r(eci\034ed)g(b)n(y)f(the)h -Fh(IEEE)j(754)e Fm(standard,)e(whic)n(h)h(are)71 1451 +Fh(IEEE)j(754)e Fm(standard,)e(whic)n(h)h(are)71 1555 y(implemen)n(ted)24 b(b)n(y)g(almost)g(all)g(pro)r(cessors)d(no)n(w)n (ada)n(ys.)33 b(It)25 b(states)e(that)i(y)n(ou)e(ha)n(v)n(e)g(the)h(p)r -(ossibilit)n(y)-7 b(,)25 b(concerning)e(the)71 1550 y(basic)29 +(ossibilit)n(y)-7 b(,)25 b(concerning)e(the)71 1655 y(basic)29 b(\035oating)g(p)r(oin)n(t)h(op)r(erations)f(\()p Fe(+)p -Ff(;)14 b Fg(\000)p Ff(;)g Fg(\003)p Ff(;)g(=;)1603 1508 -y Fg(p)1670 1550 y Fm(\))30 b(to)g(sp)r(ecify)g(the)h(rounding)e(mo)r -(de)h(of)f(eac)n(h)g(op)r(eration)g(instead)71 1650 y(of)c(using)f(the) +Ff(;)14 b Fg(\000)p Ff(;)g Fg(\003)p Ff(;)g(=;)1603 1613 +y Fg(p)1670 1655 y Fm(\))30 b(to)g(sp)r(ecify)g(the)h(rounding)e(mo)r +(de)h(of)f(eac)n(h)g(op)r(eration)g(instead)71 1755 y(of)c(using)f(the) h(default,)h(whic)n(h)f(is)g(set)f(to)h('round)f(to)h(the)g(nearest'.) 35 b(This)25 b(feature)g(allo)n(ws)e(us)i(to)f(compute)h(easily)f(on)71 -1750 y Fh(intervals)7 b Fm(.)40 b(F)-7 b(or)28 b(example,)g(to)g(add)h +1854 y Fh(intervals)7 b Fm(.)40 b(F)-7 b(or)28 b(example,)g(to)g(add)h (the)f(t)n(w)n(o)g(in)n(terv)-5 b(als)28 b([a.i;a.s])f(and)i ([b.i;b.s],)g(compute)f Ff(c:i)c Fe(=)h Ff(a:i)18 b Fe(+)h -Ff(b:i)28 b Fm(rounded)71 1849 y(to)n(w)n(ards)d(min)n(us)h(in\034nit)n +Ff(b:i)28 b Fm(rounded)71 1954 y(to)n(w)n(ards)d(min)n(us)h(in\034nit)n (y)-7 b(,)27 b(and)g Ff(c:s)c Fe(=)g Ff(a:s)16 b Fe(+)g Ff(b:s)26 b Fm(rounded)h(to)n(w)n(ards)d(plus)j(in\034nit)n(y)-7 b(,)27 b(and)g(the)g(result)f(is)h(the)g(in)n(terv)-5 -b(al)71 1949 y([c.i;c.s].)37 b(This)27 b(metho)r(d)h(can)f(b)r(e)h +b(al)71 2053 y([c.i;c.s].)37 b(This)27 b(metho)r(d)h(can)f(b)r(e)h (extended)g(easily)f(to)g(the)h(other)f(op)r(erations.)71 -2135 y(The)36 b(problem)f(is)g(that)h(w)n(e)f(ha)n(v)n(e)g(to)g(c)n +2246 y(The)36 b(problem)f(is)g(that)h(w)n(e)f(ha)n(v)n(e)g(to)g(c)n (hange)f(the)i(rounding)f(mo)r(de)h(v)n(ery)e(often,)k(and)e(the)g -(functions)f(of)h(the)g(C)71 2235 y(library)23 b(doing)g(this)h(op)r +(functions)f(of)h(the)g(C)71 2346 y(library)23 b(doing)g(this)h(op)r (eration)f(are)g(slo)n(w)h(and)f(not)i(p)r(ortable.)35 b(That's)23 b(wh)n(y)h(assem)n(bly)f(v)n(ersions)f(are)h(used)h(as)g -(often)71 2335 y(as)35 b(p)r(ossible.)61 b(Another)35 +(often)71 2445 y(as)35 b(p)r(ossible.)61 b(Another)35 b(tric)n(k)g(is)g(to)h(store)f(the)h(opp)r(osite)f(of)g(the)h(lo)n(w)n (er)f(b)r(ound,)j(instead)d(of)h(the)g(lo)n(w)n(er)e(b)r(ound)71 -2434 y(itself,)k(whic)n(h)e(allo)n(ws)f(us)h(to)f(nev)n(er)g(c)n(hange) +2545 y(itself,)k(whic)n(h)e(allo)n(ws)f(us)h(to)f(nev)n(er)g(c)n(hange) g(the)h(rounding)f(mo)r(de)h(inside)g(simple)g(op)r(erations.)61 -b(Therefore,)36 b(all)71 2534 y(basic)28 b(op)r(erations,)f(whic)n(h)h -(are)g(in)g(the)h(class)e Fh(Interval)1803 2536 y(_)1872 -2534 y(nt)1947 2536 y(_)2014 2534 y(advanced)39 b Fm(assume)27 -b(that)i(the)g(rounding)e(mo)r(de)i(is)f(set)71 2634 +b(Therefore,)36 b(all)71 2645 y(basic)28 b(op)r(erations,)f(whic)n(h)h +(are)g(in)g(the)h(class)e Fh(Interval)1803 2647 y(_)1872 +2645 y(nt)1947 2647 y(_)2014 2645 y(advanced)39 b Fm(assume)27 +b(that)i(the)g(rounding)e(mo)r(de)i(is)f(set)71 2744 y(to)i('round)f(to)h(in\034nit)n(y',)h(and)e(ev)n(erything)g(w)n(orks)f (with)j(this)f(correctly)e(set.)44 b(The)30 b(class)f -Fh(Interval)3213 2636 y(_)3281 2634 y(nt)37 b Fm(tak)n(es)29 -b(care)71 2733 y(of)e(this,)h(but)g(is)g(a)f(bit)h(slo)n(w)n(er.)71 -2920 y(So,)33 b(if)f(the)h(user)e(needs)h(the)g(sp)r(eed)g(of)g -Fh(Interval)1614 2922 y(_)1682 2920 y(nt)1757 2922 y(_)1825 -2920 y(advanced)9 b Fm(,)34 b(he)e(m)n(ust)g(tak)n(e)g(care)f(of)h -(setting)g(the)g(rounding)71 3019 y(mo)r(de)25 b(to)g('round)f(to)h +Fh(Interval)3213 2746 y(_)3281 2744 y(nt)37 b Fm(tak)n(es)29 +b(care)71 2844 y(of)e(this,)h(but)g(is)g(a)f(bit)h(slo)n(w)n(er.)71 +3037 y(So,)33 b(if)f(the)h(user)e(needs)h(the)g(sp)r(eed)g(of)g +Fh(Interval)1614 3039 y(_)1682 3037 y(nt)1757 3039 y(_)1825 +3037 y(advanced)9 b Fm(,)34 b(he)e(m)n(ust)g(tak)n(e)g(care)f(of)h +(setting)g(the)g(rounding)71 3136 y(mo)r(de)25 b(to)g('round)f(to)h (in\034nit)n(y')g(b)r(efore)g(eac)n(h)f(op)r(erations)f(on)i(this)g(n)n (um)n(b)r(er)f(t)n(yp)r(e.)37 b(And)25 b(if)g(other)g(op)r(erations)e -(migh)n(t)71 3119 y(b)r(e)28 b(a\033ected)f(b)n(y)h(this,)g(he)f(m)n +(migh)n(t)71 3236 y(b)r(e)28 b(a\033ected)f(b)n(y)h(this,)g(he)f(m)n (ust)h(tak)n(e)f(care)f(to)i(reset)f(it)h(to)f('round)g(to)h(the)g -(nearest')e(b)r(efore)i(them.)71 3306 y(Platform)f(supp)r(ort:)71 -3405 y(This)e(part)f(of)h Fj(Cgal)g Fm(m)n(ust)g(b)r(e)h(explicitly)f +(nearest')e(b)r(efore)i(them.)71 3429 y(Platform)f(supp)r(ort:)71 +3528 y(This)e(part)f(of)h Fj(Cgal)g Fm(m)n(ust)g(b)r(e)h(explicitly)f (p)r(orted)f(to)h(eac)n(h)f(non)h(y)n(et)g(supp)r(orted)g(platform.)35 -b(F)-7 b(or)24 b(In)n(tel,)i(Sparc)e(and)71 3505 y(Mips,)j(only)g(the)h +b(F)-7 b(or)24 b(In)n(tel,)i(Sparc)e(and)71 3628 y(Mips,)j(only)g(the)h (GNU)g(compilers)e(use)h(assem)n(bly)f(co)r(de.)37 b(The)27 b(MipsPro)g(compiler)g(uses)f(slo)n(w)n(er)g(C)h(co)r(de)g(instead,)71 -3604 y(and)33 b(do)r(es)g(not)h(supp)r(ort)f(the)h(construction)e -Fh(convert)1794 3606 y(_)1862 3604 y(to)5 b Fd(<>)p Fh(\(\))s +3728 y(and)33 b(do)r(es)g(not)h(supp)r(ort)f(the)h(construction)e +Fh(convert)1794 3730 y(_)1862 3728 y(to)5 b Fd(<>)p Fh(\(\))s Fm(,)35 b(but)f(a)f(w)n(ork)-5 b(around)31 b Fh(convert)3111 -3606 y(_)3179 3604 y(from)3349 3606 y(_)3418 3604 y(to\(target,)71 -3704 y(source\))s Fm(.)p -213 3851 8 119 v -206 3851 -1182 5 v 71 4167 a Fl(0.0.3)112 b(Robust)37 b(\034ltered)g(predicates)g -(\()p Fk(Filtered)2096 4169 y(_)2175 4167 y(exact)9 b -Fb(<)p Fk(CT,ET)k Fb(>)p Fl(\))71 4407 y Fm(The)35 b(class)g -Fh(Filtered)733 4409 y(_)802 4407 y(exact)8 b Fd(<)p -Fh(CT,ET)j Fd(>)36 b Fm(is)g(a)f(wrapp)r(er)f(t)n(yp)r(e)i(for)f(the)h -(n)n(um)n(b)r(er)f(t)n(yp)r(e)h Fh(CT)11 b Fm(,)36 b(with)g(the)g -(di\033erence)71 4507 y(that)29 b(all)f(predicates)g(are)g(sp)r -(ecialized)g(suc)n(h)h(that)g(they)g(are)f(guaran)n(teed)f(to)h(b)r(e)i -(exact.)40 b(Sp)r(eed)29 b(is)g(ac)n(hiev)n(ed)e(via)h(a)71 -4606 y(\034ltering)f(sc)n(heme)g(using)g(in)n(terv)-5 -b(al)27 b(arithmetic)h(\(see)f(Section)h(0.0.2\).)35 -b(Here)28 b(are)e(the)i(necessary)e(requiremen)n(ts:)195 -4854 y Fg(\017)41 b Fh(CT)86 b Fm(is)73 b(the)h(construction)e(and)h -(storage)e(t)n(yp)r(e.)175 b(The)73 b(only)g(data)g(mem)n(b)r(er)g(of)g -(the)h(class)278 4953 y Fh(Filtered)559 4955 y(_)628 -4953 y(exact)8 b Fd(<)p Fh(CT,ET)j Fd(>)34 b Fm(is)f(the)g -Fh(value)40 b Fm(of)33 b(t)n(yp)r(e)g Fh(CT)11 b Fm(.)34 -b(All)f(arithmetic)g(op)r(erations)e(called)i(outside)g(the)278 -5053 y(predicates)g(will)g(b)r(e)h(executed)f(with)h(this)g(n)n(um)n(b) -r(er)f(t)n(yp)r(e.)54 b(Y)-7 b(ou)34 b(can)f(disable)g(this)g(feature)g -(b)n(y)g(compiling)278 5153 y(with)28 b(the)g(\035ag)f -Fh(-DCGAL)1097 5155 y(_)1164 5153 y(DENY)1407 5155 y(_)1475 -5153 y(INEXACT)1867 5155 y(_)1935 5153 y(OPERATIONS)2498 -5155 y(_)2565 5153 y(ON)2691 5155 y(_)2758 5153 y(FILTER)k -Fm(\(it)d(allo)n(ws)e(the)i(pro-)278 5252 y(grammer)35 -b(to)g(sp)r(ot)h(the)g(inexact)g(op)r(erations)e(that)i(should)g(b)r(e) -g(incorp)r(orated)f(in)h(the)g(predicates\).)61 b(The)278 -5352 y(arithmetic)28 b(op)r(erations)e(called)h(from)g(the)h -(predicates)f(are)f(alw)n(a)n(ys)g(computed)i(exactly)-7 -b(.)p eop +3730 y(_)3179 3728 y(from)3349 3730 y(_)3418 3728 y(to\(target,)71 +3827 y(source\))s Fm(.)p -213 3974 8 119 v -206 3974 +1182 5 v 71 4308 a Fl(0.0.3)112 b(Robust)j(\034ltered)f(predicates)h +(\()p Fk(Filtered)2329 4310 y(_)2407 4308 y(exact)9 b +Fb(<)p Fk(CT,)97 b(ET,)f(Cache)3473 4310 y(_)3552 4308 +y(t)h(=)413 4424 y(No)535 4426 y(_)615 4424 y(Filter)852 +4426 y(_)931 4424 y(Cache)7 b Fb(>)p Fl(\))71 4672 y +Fm(The)35 b(class)g Fh(Filtered)733 4674 y(_)802 4672 +y(exact)8 b Fd(<)p Fh(CT,ET)j Fd(>)36 b Fm(is)g(a)f(wrapp)r(er)f(t)n +(yp)r(e)i(for)f(the)h(n)n(um)n(b)r(er)f(t)n(yp)r(e)h +Fh(CT)11 b Fm(,)36 b(with)g(the)g(di\033erence)71 4772 +y(that)29 b(all)f(predicates)g(are)g(sp)r(ecialized)g(suc)n(h)h(that)g +(they)g(are)f(guaran)n(teed)f(to)h(b)r(e)i(exact.)40 +b(Sp)r(eed)29 b(is)g(ac)n(hiev)n(ed)e(via)h(a)71 4871 +y(\034ltering)f(sc)n(heme)g(using)g(in)n(terv)-5 b(al)27 +b(arithmetic)h(\(see)f(Section)h(0.0.2\).)35 b(Here)28 +b(are)e(the)i(necessary)e(requiremen)n(ts:)195 5153 y +Fg(\017)41 b Fh(CT)86 b Fm(is)73 b(the)h(construction)e(and)h(storage)e +(t)n(yp)r(e.)175 b(The)73 b(only)g(data)g(mem)n(b)r(er)g(of)g(the)h +(class)278 5252 y Fh(Filtered)559 5254 y(_)628 5252 y(exact)8 +b Fd(<)p Fh(CT,ET)j Fd(>)34 b Fm(is)f(the)g Fh(value)40 +b Fm(of)33 b(t)n(yp)r(e)g Fh(CT)11 b Fm(.)34 b(All)f(arithmetic)g(op)r +(erations)e(called)i(outside)g(the)278 5352 y(predicates)g(will)g(b)r +(e)h(executed)f(with)h(this)g(n)n(um)n(b)r(er)f(t)n(yp)r(e.)54 +b(Y)-7 b(ou)34 b(can)f(disable)g(this)g(feature)g(b)n(y)g(compiling)p +eop %%Page: 5 5 -5 4 bop 3714 -231 a Fm(5)195 2 y Fg(\017)41 b Fm(The)28 -b Fh(ET)39 b Fm(t)n(yp)r(e)28 b(m)n(ust)g(b)r(e)g(able)f(to)g(compute)h -(exactly)f(the)h(op)r(erations)e(in)n(v)n(olv)n(ed)g(in)i(the)g -(predicates)f(called.)195 173 y Fg(\017)41 b Fm(A)26 -b Fh(convert)632 175 y(_)700 173 y(to)5 b Fd(<)p Fh(Interval)1100 -175 y(_)1168 173 y(nt)1243 175 y(_)1310 173 y(advanced)k -Fd(>)p Fh(\(CT\))30 b Fm(function)c(m)n(ust)g(b)r(e)g(pro)n(vided,)e -(that)i(returns)f(an)g(in)n(terv)-5 b(al)278 272 y(con)n(taining)27 -b(the)h(v)-5 b(alue)27 b(of)h(the)g(argumen)n(t)e(of)i(t)n(yp)r(e)f -Fh(CT)11 b Fm(,)29 b(see)e(Section)h(0.0.1.)195 443 y -Fg(\017)41 b Fm(A)e Fh(convert)645 445 y(_)713 443 y(to)5 +5 4 bop 3714 -231 a Fm(5)278 2 y(with)28 b(the)g(\035ag)f +Fh(-DCGAL)1097 4 y(_)1164 2 y(DENY)1407 4 y(_)1475 2 +y(INEXACT)1867 4 y(_)1935 2 y(OPERATIONS)2498 4 y(_)2565 +2 y(ON)2691 4 y(_)2758 2 y(FILTER)k Fm(\(it)d(allo)n(ws)e(the)i(pro-) +278 102 y(grammer)35 b(to)g(sp)r(ot)h(the)g(inexact)g(op)r(erations)e +(that)i(should)g(b)r(e)g(incorp)r(orated)f(in)h(the)g(predicates\).)61 +b(The)278 201 y(arithmetic)28 b(op)r(erations)e(called)h(from)g(the)h +(predicates)f(are)f(alw)n(a)n(ys)g(computed)i(exactly)-7 +b(.)195 385 y Fg(\017)41 b Fm(The)28 b Fh(ET)39 b Fm(t)n(yp)r(e)28 +b(m)n(ust)g(b)r(e)g(able)f(to)g(compute)h(exactly)f(the)h(op)r +(erations)e(in)n(v)n(olv)n(ed)g(in)i(the)g(predicates)f(called.)195 +568 y Fg(\017)41 b Fm(A)26 b Fh(convert)632 570 y(_)700 +568 y(to)5 b Fd(<)p Fh(Interval)1100 570 y(_)1168 568 +y(nt)1243 570 y(_)1310 568 y(advanced)k Fd(>)p Fh(\(CT\))30 +b Fm(function)c(m)n(ust)g(b)r(e)g(pro)n(vided,)e(that)i(returns)f(an)g +(in)n(terv)-5 b(al)278 668 y(con)n(taining)27 b(the)h(v)-5 +b(alue)27 b(of)h(the)g(argumen)n(t)e(of)i(t)n(yp)r(e)f +Fh(CT)11 b Fm(,)29 b(see)e(Section)h(0.0.1.)195 852 y +Fg(\017)41 b Fm(A)e Fh(convert)645 854 y(_)713 852 y(to)5 b Fd(<)p Fh(ET)11 b Fd(>)p Fh(\(CT\))42 b Fm(function)c(m)n(ust)g(also) f(b)r(e)h(pro)n(vided,)i(that)e(returns)f(a)h(n)n(um)n(b)r(er)f(of)h(t) -n(yp)r(e)g Fh(ET)278 543 y Fm(represen)n(ting)33 b(exactly)i(the)g +n(yp)r(e)g Fh(ET)278 951 y Fm(represen)n(ting)33 b(exactly)i(the)g (argumen)n(t)e(of)i(t)n(yp)r(e)g Fh(CT)11 b Fm(.)35 b(It's)g(a)g(con)n (v)n(ersion)d(function)j(that)g(is)g(used)f(for)h(the)278 -643 y(exact)41 b(computation,)i(when)e(the)g(\034lter)g(fails.)76 +1051 y(exact)41 b(computation,)i(when)e(the)g(\034lter)g(fails.)76 b(This)41 b(con)n(v)n(ersion)d(has)j(to)f(b)r(e)h(done)g(exactly)f(to)h -(ensure)278 742 y(robustness.)71 1125 y Fi(Example)71 -1318 y Fm(Y)-7 b(ou)27 b(migh)n(t)h(use)f(at)h(the)g(b)r(eginning)f(of) -h(y)n(our)e(program)f(a)j Fh(typedef)46 b Fm(as)27 b(follo)n(ws:)245 -1596 y Fd(#include) -245 1696 y(#include)245 -1796 y(#include)245 1895 y(typedef)41 +(ensure)278 1151 y(robustness.)71 1442 y(The)25 b(follo)n(wing)f(mem)n +(b)r(er)g(functions)i(are)d(used)i(to)g(access)f(the)h(n)n(umerical)f +(v)-5 b(alue)25 b(for)f(the)h(di\033eren)n(t)g(n)n(um)n(b)r(er)g(t)n +(yp)r(es:)71 1667 y Fh(CT)431 b(.value\(\))969 b Fm(returns)27 +b(the)h(wrapp)r(ed)f(v)-5 b(alue.)71 1921 y Fh(ET)434 +b(.exact\(\))968 b Fm(returns)27 b(the)h(con)n(v)n(erted)e(v)-5 +b(alue)27 b(to)h Fh(ET)11 b Fm(.)71 2175 y Fh(Interval)352 +2177 y(_)420 2175 y(nt)495 2177 y(_)562 2175 y(advanced)620 +2370 y(.interval\(\))879 b Fm(returns)226 b(the)h(con)n(v)n(erted)e(v) +-5 b(alue)226 b(to)1866 2470 y Fh(Interval)2147 2472 +y(_)2215 2470 y(nt)2290 2472 y(_)2357 2470 y(advanced)9 +b Fm(.)71 2681 y(F)-7 b(or)29 b(e\036ciency)h(reasons,)f(the)h(con)n(v) +n(ersion)d(of)j(the)h Fh(value)36 b Fm(to)30 b(an)g Fh(Interval)2417 +2683 y(_)2485 2681 y(nt)2560 2683 y(_)2627 2681 y(advanced)41 +b Fm(ma)n(y)29 b(b)r(e)h(cac)n(hed)f(using)71 2781 y +Fh(Filter)272 2783 y(_)340 2781 y(Cache)46 b Fm(as)36 +b(optionnal)h(third)h(template)g(parameter)d(of)j(the)g(class.)65 +b(This)38 b(is)f(only)g(wishful)h(if)g Fh(CT)49 b Fm(is)37 +b(a)71 2881 y(complicated)26 b(t)n(yp)r(e)g(for)g(whic)n(h)g(the)g(con) +n(v)n(ersion)e(to)i(an)g(in)n(terv)-5 b(al)26 b(tak)n(es)f(a)h +(somewhat)f(long)g(time,)i(and)f(is)h(ask)n(ed)e(for)71 +2980 y(the)k(same)f(v)-5 b(ariable)28 b(sev)n(eral)f(times.)41 +b(Y)-7 b(ou)29 b(migh)n(t)g(w)n(an)n(t)f(to)h(exp)r(erimen)n(t)g(with)g +(this)h(feature,)e(dep)r(ending)i(on)e(y)n(our)71 3080 +y(needs.)71 3393 y Fi(Example)71 3588 y Fm(Y)-7 b(ou)27 +b(migh)n(t)h(use)f(at)h(the)g(b)r(eginning)f(of)h(y)n(our)e(program)f +(a)j Fh(typedef)46 b Fm(as)27 b(follo)n(ws:)245 3879 +y Fd(#include)245 +3979 y(#include)245 4079 +y(#include)245 4178 y(typedef)41 b(Filtered_exact<)o(dou)o(bl)o(e,)c(leda_real>)i(NT;)71 -2174 y Fm(Or)27 b(if)h(y)n(ou)e(are)h(sure)g(that)h(the)g(predicates)e +4470 y Fm(Or)27 b(if)h(y)n(ou)e(are)h(sure)g(that)h(the)g(predicates)e (in)n(v)n(olv)n(ed)g(do)i(not)f(use)h(divisions)f(nor)f(square)h(ro)r -(ots:)245 2453 y Fd(#include)245 2553 y(#include)245 2652 -y(#include)245 2752 y(typedef)41 b(Filtered_exact<)o -(int)o(,)c(Gmpz>)42 b(NT;)71 3031 y Fm(And)28 b(if)g(y)n(ou)f(kno)n(w)g +(ots:)245 4762 y Fd(#include)245 4861 y(#include)245 4961 +y(#include)245 5060 y(typedef)41 b(Filtered_exact<)o +(int)o(,)c(Gmpz>)42 b(NT;)71 5352 y Fm(And)28 b(if)g(y)n(ou)f(kno)n(w)g (that)g(the)h(double)g(v)-5 b(ariables)26 b(con)n(tain)h(in)n(teger)f -(v)-5 b(alues,)28 b(y)n(ou)e(can)i(use:)245 3309 y Fd(#include)245 3409 y(#include)245 3509 y(#include)245 -3608 y(typedef)41 b(Filtered_exact<)o(dou)o(bl)o(e,)c(Gmpz>)k(NT;)71 -3887 y Fm(As)28 b(a)f(general)f(rule,)h(w)n(e)g(advise)g(the)h(use)f -(of)h Fh(Filtered)1774 3889 y(_)1843 3887 y(exact)8 b -Fd(<)p Fh(double,)30 b(leda)2504 3889 y(_)2574 3887 y(real)9 -b Fd(>)p Fm(.)71 4184 y Fi(Implemen)m(tation)71 4376 -y Fm(The)64 b(template)h(de\034nition)g(of)f(the)h(lo)n(w)f(lev)n(el)g -(predicates)f(of)h Fj(Cgal)h Fm(are)e(o)n(v)n(erloaded)f(for)i(the)h(t) -n(yp)r(e)71 4475 y Fh(Filtered)352 4477 y(_)421 4475 -y(exact)8 b Fd(<)p Fh(CT,ET)j Fd(>)p Fm(.)60 b(It)35 +(v)-5 b(alues,)28 b(y)n(ou)e(can)i(use:)p eop +%%Page: 6 6 +6 5 bop 71 -231 a Fm(6)245 2 y Fd(#include)245 102 y(#include)245 +201 y(#include)245 301 y(typedef)41 +b(Filtered_exact<)o(dou)o(bl)o(e,)c(Gmpz>)k(NT;)71 558 +y Fm(As)28 b(a)f(general)f(rule,)h(w)n(e)g(advise)g(the)h(use)f(of)h +Fh(Filtered)1774 560 y(_)1843 558 y(exact)8 b Fd(<)p +Fh(double,)30 b(leda)2504 560 y(_)2574 558 y(real)9 b +Fd(>)p Fm(.)71 746 y(If)28 b(y)n(ou)f(need)g(exact)g(computations)g +(also)g(outside)g(the)h(predicates,)f(y)n(ou)g(can)g(use)g(the)h(follo) +n(wing:)245 1003 y Fd(#include)245 1102 y(#include)245 +1202 y(typedef)41 b(Filtered_exact<)o(led)o(a_)o(re)o(al,)c(leda_real,) +i(Filter_Cache>)f(NT;)71 1547 y Fi(Implemen)m(tation)71 +1735 y Fm(The)64 b(template)h(de\034nition)g(of)f(the)h(lo)n(w)f(lev)n +(el)g(predicates)f(of)h Fj(Cgal)h Fm(are)e(o)n(v)n(erloaded)f(for)i +(the)h(t)n(yp)r(e)71 1835 y Fh(Filtered)352 1837 y(_)421 +1835 y(exact)8 b Fd(<)p Fh(CT,ET)j Fd(>)p Fm(.)60 b(It)35 b(is)f(a)h(partial)f(sp)r(ecialisation,)h(whic)n(h)g(implies)g(that)g -(this)g(is)g(not)g(supp)r(orted)f(b)n(y)71 4575 y(the)g(compilers)f +(this)g(is)g(not)g(supp)r(orted)f(b)n(y)71 1935 y(the)g(compilers)f (that)h(do)f(not)h(supp)r(ort)f(this)h(C++)f(feature)h(\(MipsPro)f (7.2\).)55 b(A)34 b(w)n(ork)-5 b(around)32 b(is)h(in)h(place)g(that)71 -4675 y(allo)n(ws)d(to)h(use)g(one)g(suc)n(h)g(\034ltered)g(n)n(um)n(b)r +2034 y(allo)n(ws)d(to)h(use)g(one)g(suc)n(h)g(\034ltered)g(n)n(um)n(b)r (er)g(t)n(yp)r(e)g(at)g(once,)h(b)n(y)f(explicitely)g(sp)r(ecializing)g -(the)g(predicates)g(for)g(it.)71 4774 y(T)-7 b(o)30 b(do)g(so,)g(just)g -(de\034ne)h(the)f(macros)f Fh(CGAL)1518 4776 y(_)1586 -4774 y(IA)1680 4776 y(_)1748 4774 y(CT)42 b Fm(and)30 -b Fh(CGAL)2309 4776 y(_)2377 4774 y(IA)2471 4776 y(_)2539 -4774 y(ET)42 b Fm(to)30 b(the)g(corresp)r(onding)e(n)n(um)n(b)r(er)71 -4874 y(t)n(yp)r(es)f(b)r(efore)h(an)n(y)e(inclusion)i(of)f +(the)g(predicates)g(for)g(it.)71 2134 y(T)-7 b(o)30 b(do)g(so,)g(just)g +(de\034ne)h(the)f(macros)f Fh(CGAL)1518 2136 y(_)1586 +2134 y(IA)1680 2136 y(_)1748 2134 y(CT)42 b Fm(and)30 +b Fh(CGAL)2309 2136 y(_)2377 2134 y(IA)2471 2136 y(_)2539 +2134 y(ET)42 b Fm(to)30 b(the)g(corresp)r(onding)e(n)n(um)n(b)r(er)71 +2233 y(t)n(yp)r(es)f(b)r(efore)h(an)n(y)e(inclusion)i(of)f Fj(Cgal)h Fm(\034les,)f(as)g(w)n(ell)h(as)e Fh(CGAL)2175 -4876 y(_)2244 4874 y(IA)2338 4876 y(_)2405 4874 y(CACHE)10 -b Fm(.)29 b(F)-7 b(or)26 b(example)i(:)71 5153 y Fd(#define)40 -b(CGAL_IA_CT)g(double)71 5252 y(#define)g(CGAL_IA_ET)g(leda_real)71 -5352 y(#define)g(CGAL_IA_CACHE)f(No_Filter_Cache)p eop -%%Page: 6 6 -6 5 bop 71 -231 a Fm(6)71 2 y(F)-7 b(or)61 b(eac)n(h)h(predicate)f -(\034le,)72 b(the)62 b(o)n(v)n(erloaded)e(co)r(de)i(is)g(generated)f -(automatically)g(b)n(y)h(a)g Fh(PERL)g Fm(script)71 102 -y(\()p Fh(examples/Interval)748 104 y(_)817 102 y(arithmetic/filtered) -1480 104 y(_)1551 102 y(predicate)1879 104 y(_)1949 102 -y(converter)9 b Fm(\))36 b(that)g(y)n(ou)f(can)h(use)f(for)g(y)n(our)g -(o)n(wn)g(predi-)71 201 y(cates)f(\(see)g Fh(examples/Interval)1104 -203 y(_)1174 201 y(arithmetic/README)10 b Fm(\).)36 b(This)f(script)f -(parses)f(the)i(template)g(declaration)e(of)71 301 y(the)28 -b(functions)g(and)f(generates)f(the)i(o)n(v)n(erloaded)d(co)r(de)i(the) -h(follo)n(wing)f(w)n(a)n(y:)195 558 y Fg(\017)41 b Fm(con)n(v)n(ert)32 -b(the)h(en)n(tries)g(to)g(in)n(terv)-5 b(als)32 b(using)g -Fh(convert)1930 560 y(_)1998 558 y(to)5 b Fd(<)p Fh(Interval)2398 -560 y(_)2466 558 y(nt)2541 560 y(_)2609 558 y(advanced)k -Fd(>)p Fh(\(CT\))37 b Fm(\(via)c(the)h(.in)n(ter-)278 -658 y(v)-5 b(al\(\))28 b(mem)n(b)r(er)g(function\),)195 -824 y Fg(\017)41 b Fm(call)28 b(the)f(original)f(template)i(function)g -(with)g(the)g(t)n(yp)r(e)g Fh(Interval)2344 826 y(_)2412 -824 y(nt)2487 826 y(_)2554 824 y(advanced)9 b Fm(,)195 -990 y Fg(\017)41 b Fm(if)28 b(no)g(exception)f(is)g(thro)n(wn,)g -(return)g(the)h(v)-5 b(alue,)195 1156 y Fg(\017)41 b -Fm(if)86 b(an)f(exception)f(is)h(thro)n(wn)f(\(the)i(\034lter)f +2235 y(_)2244 2233 y(IA)2338 2235 y(_)2405 2233 y(CACHE)10 +b Fm(.)29 b(F)-7 b(or)26 b(example)i(:)71 2490 y Fd(#define)40 +b(CGAL_IA_CT)g(double)71 2590 y(#define)g(CGAL_IA_ET)g(leda_real)71 +2690 y(#define)g(CGAL_IA_CACHE)f(No_Filter_Cache)71 2947 +y Fm(F)-7 b(or)61 b(eac)n(h)h(predicate)f(\034le,)72 +b(the)62 b(o)n(v)n(erloaded)e(co)r(de)i(is)g(generated)f(automatically) +g(b)n(y)h(a)g Fh(PERL)g Fm(script)71 3046 y(\()p Fh(examples/Interval) +748 3048 y(_)817 3046 y(arithmetic/filtered)1480 3048 +y(_)1551 3046 y(predicate)1879 3048 y(_)1949 3046 y(converter)9 +b Fm(\))36 b(that)g(y)n(ou)f(can)h(use)f(for)g(y)n(our)g(o)n(wn)g +(predi-)71 3146 y(cates)f(\(see)g Fh(examples/Interval)1104 +3148 y(_)1174 3146 y(arithmetic/README)10 b Fm(\).)36 +b(This)f(script)f(parses)f(the)i(template)g(declaration)e(of)71 +3245 y(the)28 b(functions)g(and)f(generates)f(the)i(o)n(v)n(erloaded)d +(co)r(de)i(the)h(follo)n(wing)f(w)n(a)n(y:)195 3489 y +Fg(\017)41 b Fm(con)n(v)n(ert)26 b(the)h(en)n(tries)f(to)h(in)n(terv)-5 +b(als)26 b(using)h Fh(convert)1894 3491 y(_)1962 3489 +y(to)5 b Fd(<)p Fh(Interval)2362 3491 y(_)2430 3489 y(nt)2505 +3491 y(_)2572 3489 y(advanced)k Fd(>)p Fh(\(CT\))s Fm(,)29 +b(using)d(the)h Fh(inter-)278 3588 y(val\(\))32 b Fm(mem)n(b)r(er)27 +b(function,)195 3749 y Fg(\017)41 b Fm(call)28 b(the)f(original)f +(template)i(function)g(with)g(the)g(t)n(yp)r(e)g Fh(Interval)2344 +3751 y(_)2412 3749 y(nt)2487 3751 y(_)2554 3749 y(advanced)9 +b Fm(,)195 3909 y Fg(\017)41 b Fm(if)28 b(no)g(exception)f(is)g(thro)n +(wn,)g(return)g(the)h(v)-5 b(alue,)195 4069 y Fg(\017)41 +b Fm(if)86 b(an)f(exception)f(is)h(thro)n(wn)f(\(the)i(\034lter)f (failed\),)100 b(con)n(v)n(ert)83 b(the)j(original)d(en)n(tries)h -(using)278 1256 y Fh(convert)544 1258 y(_)612 1256 y(to)5 -b Fd(<)p Fh(ET)11 b Fd(>)p Fh(\(CT\))32 b Fm(\(via)27 -b(the)h(.exact\(\))g(mem)n(b)r(er)f(function\),)195 1422 -y Fg(\017)41 b Fm(and)28 b(call)f(the)h(original)e(template)i(function) -g(with)g(the)g(t)n(yp)r(e)g Fh(ET)11 b Fm(.)71 1779 y -Fi(Example)71 1970 y Fm(The)36 b(lo)n(w)g(lev)n(el)g(template)g +(using)278 4169 y Fh(convert)544 4171 y(_)612 4169 y(to)5 +b Fd(<)p Fh(ET)11 b Fd(>)p Fh(\(CT\))s Fm(,)29 b(using)e(the)h +Fh(exact\(\))j Fm(mem)n(b)r(er)c(function,)195 4329 y +Fg(\017)41 b Fm(and)28 b(call)f(the)h(original)e(template)i(function)g +(with)g(the)g(t)n(yp)r(e)g Fh(ET)11 b Fm(.)71 4661 y +Fi(Example)71 4849 y Fm(The)36 b(lo)n(w)g(lev)n(el)g(template)g (predicates)g(of)g Fj(Cgal)g Fm(are)f(in)i(\034les)f(named)g -Fh(CGAL/predicates)3059 1972 y(_)3130 1970 y(on)3219 -1972 y(_)3287 1970 y(ftC2.h)44 b Fm(\(resp.)71 2069 y(ftC3\),)36 +Fh(CGAL/predicates)3059 4851 y(_)3130 4849 y(on)3219 +4851 y(_)3287 4849 y(ftC2.h)44 b Fm(\(resp.)71 4948 y(ftC3\),)36 b(the)f(script)f(is)g(used)g(to)g(pro)r(duce)f(the)i(\034les)f -Fh(CGAL/Arithmetic)2416 2071 y(_)2485 2069 y(filter/predicates)3061 -2071 y(_)3132 2069 y(on)3221 2071 y(_)3289 2069 y(ftC2.h)42 -b Fm(\(resp.)71 2169 y(ftC3\).)71 2360 y(F)-7 b(or)28 +Fh(CGAL/Arithmetic)2416 4950 y(_)2485 4948 y(filter/predicates)3061 +4950 y(_)3132 4948 y(on)3221 4950 y(_)3289 4948 y(ftC2.h)42 +b Fm(\(resp.)71 5048 y(ftC3\).)71 5236 y(F)-7 b(or)28 b(the)h(momen)n(t,)g(only)g(the)g(cartesian)f(predicates)f(of)i(the)g (k)n(ernel)f(are)g(supp)r(orted,)h(as)f(w)n(ell)h(as)f(the)h(p)r(o)n(w) -n(er)f(tests)71 2459 y(used)f(b)n(y)h(the)g(regular)d(triangulation.)p +n(er)f(tests)71 5336 y(used)f(b)n(y)h(the)g(regular)d(triangulation.)p eop %%Page: 7 7 7 6 bop 71 757 a Fa(Bibliograph)-6 b(y)1893 5562 y Fm(7)p diff --git a/Packages/Interval_arithmetic/version b/Packages/Interval_arithmetic/version index 861015b4f13..20c01ec0627 100644 --- a/Packages/Interval_arithmetic/version +++ b/Packages/Interval_arithmetic/version @@ -1 +1 @@ -4.19 ( 6 Jul 1999) +4.20 ( 8 Jul 1999)