70 research outputs found
Formal certification of arithmetic filters for geometric predicates
International audienceFloating-point arithmetic provides a fast but inexact way of computing geometric predicates. In order for these predicates to be exact, it is important to rule out all the numerical situations where floating-point computations could lead to wrong results. Taking into account all the potential problems is a tedious work to do by hand. We study in this paper a floating-point implementation of a filter for the orientation-2 predicate, and how a formal and partially automatized verification of this algorithm avoided many pitfalls. The presented method is not limited to this particular predicate, it can easily be used to produce correct semi-static floating-point filters for other geometric predicates
Formally Certified Floating-Point Filters For Homogeneous Geometric Predicates
International audienceFloating-point arithmetic provides a fast but inexact way of computing geometric predicates. In order for these predicates to be exact, it is important to rule out all the numerical situations where floating-point computations could lead to wrong results. Taking into account all the potential problems is a tedious work to do by hand. We study in this paper a floating-point implementation of a filter for the orientation-2 predicate, and how a formal and partially automatized verification of this algorithm avoided many pitfalls. The presented method is not limited to this particular predicate, it can easily be used to produce correct semi-static floating-point filters for other geometric predicates
A Generic Lazy Evaluation Scheme for Exact Geometric Computations
We present a generic C++ design to perform efficient and exact geometric
computations using lazy evaluations. Exact geometric computations are critical
for the robustness of geometric algorithms. Their efficiency is also critical
for most applications, hence the need for delaying the exact computations at
run time until they are actually needed. Our approach is generic and extensible
in the sense that it is possible to make it a library which users can extend to
their own geometric objects or primitives. It involves techniques such as
generic functor adaptors, dynamic polymorphism, reference counting for the
management of directed acyclic graphs and exception handling for detecting
cases where exact computations are needed. It also relies on multiple precision
arithmetic as well as interval arithmetic. We apply our approach to the whole
geometric kernel of CGAL
A proposal for the C++ standard : Bool_set, multi-valued logic
We propose a design for multi-valued logic, for integration into the C++ standard. The main motivation for this class comes from interval arithmetic, where it can be conveniently used as return type of comparison operators. It also has many other potential applications
Constructive root bound for k-ary rational input numbers
International audienceGuaranteeing accuracy is the critical capability in exact geometric computation, an important paradigm for constructing robust geometric algorithms. Constructive root bounds is the fundamental technique needed to achieve such guaranteed accuracy. Current bounds are overly pessimistic in the presence of general rational input numbers. In this paper, we introduce a method which greatly improves the known bounds for k-ary rational input numbers. Since a majority of input numbers in scientific and engineering applications are either binary (k =2) or decimal (k =10), our results could lead to a significant speedup for a large class of applications. We apply our method to two of the best available constructive root bounds, the BFMSS Bound and the Degree-Measure Bound. Implementation and experimental results based on the Core Library are reported
A Generic Lazy Evaluation Scheme for Exact Geometric Computations
International audienceWe present a generic C++ design to perform exact geometric computations efficiently using lazy evaluations. Exact geometric computations are critical for the robustness of geometric algorithms. Their efficiency is also important for many applications, hence the need for delaying the costly exact computations at run time until they are actually needed, if at all. Our approach is generic and extensible in the sense that it is possible to make it a library that users can apply to their own geometric objects and primitives. It involves techniques such as generic functor-adaptors, static and dynamic polymorphism, reference counting for the management of directed acyclic graphs, and exception handling for triggering exact computations when needed. It also relies on multi-precision arithmetic as well as interval arithmetic. We apply our approach to the whole geometry kernel of CGAL
Directed Rounding Arithmetic Operations in C++
We propose the addition of new functions to the C++0x standard library that provide floating-point operations (+, -, *, /, sqrt and fma) as well as conversion functions with directed rounding. This set of functions is necessary to provide efficient support for interval arithmetic and related computations, and they directly map to IEEE-754 specifications. These functions require special compiler support due to their "constexpr" nature. This document is submitted to the ISO/WG21 working group which standardizes the C++ language, under the document N2811 (http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2811.pdf)
Constructive Root Bound for k-Ary Rational Input Numbers
International audienceConstructive root bounds is the fundamental technique needed to achieve guaranteed accuracy, the critical capability in Exact Geometric Computation. Known bounds are overly pessimistic in the presence of general rational input numbers. In this paper, we introduce a method which greatly improves the known bounds for k-ary rational input numbers. Since majority of input numbers in scientific and engineering applications are such numbers, this could lead to a significant speedup for a large class of applications. We apply our method to the BFMSS Bound. Implementation and experimental results based on the CORE library are reported
Amélioration des calculs de volume de polytope basés sur le Monte Carlo Hamiltonien avec des réflexions sur les bords et des arithmétiques édulcorées
International audienceComputing the volume of a high dimensional polytope is a fundamental problem in geometry, also connected to the calculation of densities of states in statistical physics, and a central building block of such algorithms is the method used to sample a target probability distribution. This paper studies Hamiltonian Monte Carlo (HMC) with reflections on the boundary of a domain, providing an enhanced alternative to Hit-and-run (HAR) to sample a target distribution restricted to the polytope. We make three contributions. First, we provide a convergence bound, paving the way to more precise mixing time analysis. Second, we present a robust implementation based on multi-precision arithmetic, a mandatory ingredient to guarantee exact predicates and robust constructions. We however allow controlled failures to happen, introducing the Sweeten Exact Geometric Computing (SEGC) paradigm. Third, we use our HMC random walk to perform H-polytope volume calculations, using it as an alternative to HAR within the volume algorithm by Cousins and Vempala. The systematic tests conducted up to dimension = 100 on the cube, the isotropic and the standard simplex show that HMC significantly outperforms HAR both in terms of accuracy and running time. Additional tests show that calculations may be handled up to dimension = 500. These tests also establish that multiprecision is mandatory to avoid exits from the polytope
Hamiltonian Monte Carlo avec réflexions, et application au calcul du volume de polytopes
This paper studies HMC with reflections on the boundary of a domain, providing an enhanced alternative to Hit-and-run (HAR) to sample a target distribution in a bounded domain. We make three contributions. First, we provide a convergence bound, paving the way to more precise mixing time analysis. Second, we present a robust implementation based on multi-precision arithmetic – a mandatory ingredient to guarantee exact predicates and robust constructions. Third, we use our HMC random walk to perform polytope volume calculations, using it as an alternative to HAR within the volume algorithm by Cousins and Vempala. The tests, conducted up to dimension 50, show that the HMC RW outperforms HAR.Ce papier étudie HMC avec réflexions au bord du domaine, donnant une meilleure alternative a Hit-and-Run (HAR) pour échantillonner une distribution cible dans un domaine borné. Nous apportons trois contributions. Premièrement, nous prouvons une borne de convergence, préparant le terrain pour une analyse plus précise du mixing time. Deuxièmement, nous produisons une implémentation robuste basée sur l’arithmétique multi-precision. Troisièmement, nous utilisons HMC avec réflexions comme une alternative à HAR pour calculer le volume de polytopes pour l’algorithme de Cousins et Vempala. Les tests, conduits jusqu’en dimension 50 montrent que HMC avec réflexions est plus performant que HAR
- …