singular if f x p x-extreme if f x p Notation 0, and 0 (i.e. x-critical and non-singular) 11 of 42 curve: square free polynomial f ∈ Q [ x , y ] a point p = ( α , β ) ∈ C 2 is x-critical if f ( p ) = f y ( p ) = 0,
x-extreme if f x p Notation 0 (i.e. x-critical and non-singular) 11 of 42 curve: square free polynomial f ∈ Q [ x , y ] a point p = ( α , β ) ∈ C 2 is x-critical if f ( p ) = f y ( p ) = 0, � singular if f x ( p ) = 0, and
Notation 11 of 42 curve: square free polynomial f ∈ Q [ x , y ] a point p = ( α , β ) ∈ C 2 is x-critical if f ( p ) = f y ( p ) = 0, � singular if f x ( p ) = 0, and � x-extreme if f x ( p ) ̸ = 0 (i.e. x-critical and non-singular)
The Rational Univariate Representation root of S of the system S interval arithmetic for computing the separating boxes of the roots the roots of f are isolated with Descartes’ method we obtain the RUR from the Gröbner basis of S the RUR preserves multiplicities 12 of 42 S is a bivariate system, RUR � univariate polynomial f , such that ( g x ( t ) ) g y ( t ) t root of f ⇐ ⇒ h ( t ) , h ( t ) g x , g y , h ∈ Q ( t )
The Rational Univariate Representation root of S of the system S 12 of 42 S is a bivariate system, RUR � univariate polynomial f , such that ( g x ( t ) ) g y ( t ) t root of f ⇐ ⇒ h ( t ) , h ( t ) g x , g y , h ∈ Q ( t ) � the RUR preserves multiplicities � we obtain the RUR from the Gröbner basis of S � the roots of f are isolated with Descartes’ method � interval arithmetic for computing the separating boxes of the roots
Topology at extreme points 2. refine boxes to get only two crossings on the border later) . . 13 of 42 f ( x , y ) = 0 ∂ f 1. isolate the extreme system S e = ∂ y = 0 ∂ f ∂ x ̸ = 0 3. store the multiplicities in the system S e for the connection step (see
y k [Seidel & Wolpert, 2005] Topology at singularities 2. compute multiplicities k in fibers 3. refine the box to avoid the curve f y k k f 4. refine the box to avoid top/boom crossings . . 14 of 42 1. isolate singular points in boxes
y k [Seidel & Wolpert, 2005] Topology at singularities 2. compute multiplicities k in fibers 3. refine the box to avoid the curve f y k k f 4. refine the box to avoid top/boom crossings . . 14 of 42 1. isolate singular points in boxes
Topology at singularities 2. compute multiplicities k in fibers 4. refine the box to avoid top/boom crossings . . 14 of 42 1. isolate singular points in boxes 3. refine the box to avoid the curve f y k = ∂ k f ∂ y k [Seidel & Wolpert, 2005]
Topology at singularities 2. compute multiplicities k in fibers 4. refine the box to avoid top/boom crossings . . 14 of 42 1. isolate singular points in boxes 3. refine the box to avoid the curve f y k = ∂ k f ∂ y k [Seidel & Wolpert, 2005]
Rectangle decomposition of the plane critical boxes compute a vertical decomposition of the plane with respect to these boxes compute intersections of the curve with the decomposition . . 15 of 42 � the topology is known inside
Rectangle decomposition of the plane critical boxes decomposition of the plane with respect to these boxes compute intersections of the curve with the decomposition . . 15 of 42 � the topology is known inside � compute a vertical
Rectangle decomposition of the plane critical boxes decomposition of the plane with respect to these boxes curve with the decomposition . . 15 of 42 � the topology is known inside � compute a vertical � compute intersections of the
Rectangle decomposition of the plane critical boxes decomposition of the plane with respect to these boxes curve with the decomposition . . 15 of 42 � the topology is known inside � compute a vertical � compute intersections of the
Greedy connection algorithm using multiplicities . . ? . even . odd 16 of 42
Greedy connection algorithm using multiplicities . . ? . even . odd 16 of 42
Greedy connection algorithm using multiplicities . . ? . even . odd 16 of 42
Greedy connection algorithm using multiplicities . . ? . even . odd 16 of 42
Greedy connection algorithm using multiplicities . . ? . even . odd 16 of 42
Greedy connection algorithm using multiplicities . . ? . even . odd 16 of 42
Greedy connection algorithm using multiplicities . . ? . even . odd 16 of 42
d 2 , we have B N 26 if N Complexity analysis max d τ and R is does not reflect practical performance 17 of 42 � the algorithm runs in � O B ( R d 22 τ 2 ) , where � R : number of real critical points, � d : degree of the polynomial f , � τ : maximum coefficient bitsize of f .
does not reflect practical performance Complexity analysis 17 of 42 � the algorithm runs in � O B ( R d 22 τ 2 ) , where � R : number of real critical points, � d : degree of the polynomial f , � τ : maximum coefficient bitsize of f . � if N = max { d , τ } and R is O ( d 2 ) , we have � O B ( N 26 )
Complexity analysis 17 of 42 � the algorithm runs in � O B ( R d 22 τ 2 ) , where � R : number of real critical points, � d : degree of the polynomial f , � τ : maximum coefficient bitsize of f . � if N = max { d , τ } and R is O ( d 2 ) , we have � O B ( N 26 ) � does not reflect practical performance
Implementation in Maple Isotop: +7000 lines of Maple code, using 18 of 42 � FGb for Gröbner basis (Faugère) � RS for RUR and isolation (Rouillier) � complete: handles vertical asymptotes and vertical components � certified � http://vegas.loria.fr/isotop
19 of 42 Isotop interface ISOTOP:-topology_real_curve(y^4 - 6*y^2*x + x^2 - 4*y^2*x^2 + 24*x^3, verbosity=0, precision=10, plot_graph=true, nb_splits=10);
Isotop experiments we ran large-scale tests, testing around 600 curves 20 of 42 � random curves � ACS curves � O. Labs’ tough curves � resultants of degree-3 random surfaces � n translations ∏ n j = 0 f ( x , y + j ) � symmetric polynomials f 2 ( x , y ) + f 2 ( x , − y )
Isotop experiments: input curves . number of critical points degrees . . . . . . . 21 of 42 . . . . . . 10 ≤ d < 20 c < 20 d < 10 50 ≤ d ≤ 90 60 ≤ c ≤ 121 40 ≤ d < 50 30 ≤ d < 40 40 ≤ c < 60 20 ≤ d < 30 20 ≤ c < 40
22 of 42 timeout time . [E&K&W, 2007] . . . . . . . . Top . . [GV&N, 2002] . . . . . timeout . . Insulate . [S&W, 2005] timeout . CA . . [Brown, 2002] time Isotop . . . . . . aborted . Cad2d . . . . . . Experiments: results, r = ⅓ < r ≤ 1 0 < r ≤ ⅓ ⅓ < r ≤ 1 1 < r ≤ 3 r ≤ ⅓ 3 < r 1 < r ≤ 3 3 < r 1 < r ≤ 3 ⅓ < r ≤ 1 3 < r 3 < r 1 < r ≤ 3 r ≤ ⅓ r ≤ 1
Experiments: conclusions slower for random curves curves with high-tangency points why? 23 of 42 � faster for � non-generic curves � high degree curves
Experiments: conclusions why? 23 of 42 � faster for � non-generic curves � high degree curves � slower for � random curves � curves with high-tangency points
23 of 42 Experiments: conclusions � faster for � non-generic curves � high degree curves � slower for � random curves � curves with high-tangency points � why?
Algebraic algorithms in CGAL in general lack of algebro-geometric tools in C or C++ CGAL C++ library standard in the community generic programming equip CGAL with algebraic tools also useful for future algorithms 24 of 42 � Isotop is in Maple, but � it is not a standard in the CG community � Maple programs cannot be used as libraries
CGAL Algebraic algorithms in CGAL C++ library standard in the community generic programming equip CGAL with algebraic tools also useful for future algorithms 24 of 42 � Isotop is in Maple, but � it is not a standard in the CG community � Maple programs cannot be used as libraries � in general � lack of algebro-geometric tools in C or C++
equip CGAL with algebraic tools Algebraic algorithms in CGAL also useful for future algorithms 24 of 42 � Isotop is in Maple, but � it is not a standard in the CG community � Maple programs cannot be used as libraries � in general � lack of algebro-geometric tools in C or C++ � CGAL � C++ library � standard in the community � generic programming
24 of 42 Algebraic algorithms in CGAL � Isotop is in Maple, but � it is not a standard in the CG community � Maple programs cannot be used as libraries � in general � lack of algebro-geometric tools in C or C++ � CGAL � C++ library � standard in the community � generic programming � equip CGAL with algebraic tools � also useful for future algorithms
Algebraic tools in CGAL specific non-linear objects, kernels circles spheres curves of arbitrary degree, algebraic kernels univariate and bivariate many variables 25 of 42 � specific non-linear objects, particular algorithms � arrangements of conics
curves of arbitrary degree, algebraic kernels Algebraic tools in CGAL univariate and bivariate many variables 25 of 42 � specific non-linear objects, particular algorithms � arrangements of conics � specific non-linear objects, kernels � circles � spheres
Algebraic tools in CGAL 25 of 42 � specific non-linear objects, particular algorithms � arrangements of conics � specific non-linear objects, kernels � circles � spheres � curves of arbitrary degree, algebraic kernels � univariate and bivariate � many variables
Algebraic Kernel combines algebra and geometry for manipulating non-linear objects features root finding algebraic number comparison all related polynomial operations concepts and models model of univariate algebraic kernel 26 of 42
Algebraic Kernel combines algebra and geometry for manipulating non-linear objects concepts and models model of univariate algebraic kernel 26 of 42 � features � root finding � algebraic number comparison � all related polynomial operations
Algebraic Kernel combines algebra and geometry for manipulating non-linear objects model of univariate algebraic kernel 26 of 42 � features � root finding � algebraic number comparison � all related polynomial operations � concepts and models
Algebraic Kernel combines algebra and geometry for manipulating non-linear objects 26 of 42 � features � root finding � algebraic number comparison � all related polynomial operations � concepts and models � model of univariate algebraic kernel
Tools we use RS univariate polynomials with integer coefficients interval Descartes algorithm coded in C memory management multiple platforms (Unix, Mac OS, Win) MPFR arbitrary multiple-precision floating-point numbers MPFI arbitrary multiple-precision floating-point intervals 27 of 42 � GMP � GNU multiple-precision number library
Tools we use MPFR arbitrary multiple-precision floating-point numbers MPFI arbitrary multiple-precision floating-point intervals 27 of 42 � GMP � GNU multiple-precision number library � RS � univariate polynomials with integer coefficients � interval Descartes algorithm � coded in C � memory management � multiple platforms (Unix, Mac OS, Win)
Tools we use MPFI arbitrary multiple-precision floating-point intervals 27 of 42 � GMP � GNU multiple-precision number library � RS � univariate polynomials with integer coefficients � interval Descartes algorithm � coded in C � memory management � multiple platforms (Unix, Mac OS, Win) � MPFR � arbitrary multiple-precision floating-point numbers
Tools we use 27 of 42 � GMP � GNU multiple-precision number library � RS � univariate polynomials with integer coefficients � interval Descartes algorithm � coded in C � memory management � multiple platforms (Unix, Mac OS, Win) � MPFR � arbitrary multiple-precision floating-point numbers � MPFI � arbitrary multiple-precision floating-point intervals
Our algebraic kernel root isolation uses RS gives as result algebraic numbers isolating interval: MPFI pointer to a polynomial comparison of algebraic numbers easy when intervals do not overlap otherwise, test for equality greatest common divisor (gcd) algebraic number refinement 28 of 42 � 8000 lines of code
Our algebraic kernel comparison of algebraic numbers easy when intervals do not overlap otherwise, test for equality greatest common divisor (gcd) algebraic number refinement 28 of 42 � 8000 lines of code � root isolation � uses RS � gives as result algebraic numbers � isolating interval: MPFI � pointer to a polynomial
28 of 42 Our algebraic kernel � 8000 lines of code � root isolation � uses RS � gives as result algebraic numbers � isolating interval: MPFI � pointer to a polynomial � comparison of algebraic numbers � easy when intervals do not overlap � otherwise, test for equality � greatest common divisor (gcd) � algebraic number refinement
Auxiliar operations factorizations) refinement bisection quadratic refinement 29 of 42 � gcd � boleneck of the implementation (used for comparisons and square free � two modular implementations � fast detection of coprime polynomials
Auxiliar operations factorizations) 29 of 42 � gcd � boleneck of the implementation (used for comparisons and square free � two modular implementations � fast detection of coprime polynomials � refinement � bisection � quadratic refinement
Benchmarks functionalities root isolation algebraic number comparison application: arrangement construction 30 of 42 � soware � MPII’s algebraic kernel (using CORE NT) � Synaps/Mathemagix code (using NCF2 and GMP NT) � our algebraic kernel
Benchmarks 30 of 42 � soware � MPII’s algebraic kernel (using CORE NT) � Synaps/Mathemagix code (using NCF2 and GMP NT) � our algebraic kernel � functionalities � root isolation � algebraic number comparison � application: arrangement construction
Benchmark data 31 of 42 � first time such a big amount of data for polynomials is tested � 60,000 polynomials (3.8 Gb) � several weeks in total
Root isolation: varying bitsize degree-12 random polynomials 32 of 42 . ✹✵ ❖✉r ❦❡r♥❡❧ ▼P■■✬s ❦❡r♥❡❧ ❙❨◆❆P❙✬ ❦❡r♥❡❧ ✐s♦❧❛t✐♦♥ t✐♠❡ ❬♠s❪ ✸✵ ✷✵ ✶✵ ✵ ✵ ✶✵✵✵✵ ✷✵✵✵✵ ✸✵✵✵✵ ✹✵✵✵✵ ✺✵✵✵✵ ❝♦❡✣❝✐❡♥t ❜✐ts✐③❡
Root isolation: varying bitsize II degree-100 random polynomials 33 of 42 . ✷✺✵ ❖✉r ❦❡r♥❡❧ ▼P■■✬s ❦❡r♥❡❧ ❙❨◆❆P❙✬ ❦❡r♥❡❧ ✷✵✵ ✐s♦❧❛t✐♦♥ t✐♠❡ ❬♠s❪ ✶✺✵ ✶✵✵ ✺✵ ✵ ✵ ✺✵✵✵ ✶✵✵✵✵ ✶✺✵✵✵ ✷✵✵✵✵ ✷✺✵✵✵ ❝♦❡✣❝✐❡♥t ❜✐ts✐③❡
Root isolation: Mignoe polynomials 34 of 42 . f = x d − 2 ( kx − 1 ) 2 ✻ ❖✉r ❦❡r♥❡❧ ▼P■■✬s ❦❡r♥❡❧ ✺ ❙❨◆❆P❙✬ ❦❡r♥❡❧ ✐s♦❧❛t✐♦♥ t✐♠❡ ❬s❪ ✹ ✸ ✷ ✶ ✵ ✵ ✶✵ ✷✵ ✸✵ ✹✵ ✺✵ d
Root isolation: varying degree bitsize-1000 random polynomials 35 of 42 . ✼✵ ❖✉r ❦❡r♥❡❧ ▼P■■✬s ❦❡r♥❡❧ ✻✵ ❙❨◆❆P❙✬ ❦❡r♥❡❧ ✐s♦❧❛t✐♦♥ t✐♠❡ ❬s❪ ✺✵ ✹✵ ✸✵ ✷✵ ✶✵ ✵ ✵ ✺✵✵ ✶✵✵✵ ✶✺✵✵ ✷✵✵✵ ♣♦❧②♥♦♠✐❛❧ ❞❡❣r❡❡
Algebraic number comparison almost-identical polynomials of degree 20 36 of 42 . ✶✵✵✵ ❖✉r ❜✐s❡❝t✐♦♥ ▼P■■✬s q✉❛❞r❛t✐❝ ▼P■■✬s ❜✐s❡❝t✐♦♥ ❝♦♠♣❛r✐s♦♥ t✐♠❡ ❬♠s❪ ✼✺✵ ✺✵✵ ✷✺✵ ✵ ✵ ✺✵✵ ✶✵✵✵ ✶✺✵✵ ✷✵✵✵ ✷✺✵✵ ✸✵✵✵ ❝♦❡✣❝✐❡♥t ❜✐ts✐③❡
Arrangement benchmarks test programs test data generate n random polynomials shi them vertically m times n m 1 polynomials of bitsize τ and degree d we fix n 5 and m 4 here 37 of 42 � CGAL’s arrangement package (Tel-Aviv University) � parameterised with � a traits class that uses CORE � a new traits class for our kernel
Arrangement benchmarks test programs test data 37 of 42 � CGAL’s arrangement package (Tel-Aviv University) � parameterised with � a traits class that uses CORE � a new traits class for our kernel � generate n random polynomials � shi them vertically m times � n ( m + 1 ) polynomials of bitsize τ and degree d � we fix n = 5 and m = 4 here
Arrangements: varying bitsize 38 of 42 . d = 20 ✷✵✵ ❖✉r ❦❡r♥❡❧ ❈❖❘❊ ❝♦♥str✉❝t✐♦♥ t✐♠❡ ❬s❪ ✶✺✵ ✶✵✵ ✺✵ ✵ ✵ ✷✵✵ ✹✵✵ ✻✵✵ ✽✵✵ ✶✵✵✵ ❝♦❡✣❝✐❡♥t ❜✐ts✐③❡
Arrangements: varying degree 39 of 42 . τ = 32 ✷✵✵ ❖✉r ❦❡r♥❡❧ ❈❖❘❊ ❝♦♥str✉❝t✐♦♥ t✐♠❡ ❬s❪ ✶✺✵ ✶✵✵ ✺✵ ✵ ✵ ✹✵ ✽✵ ✶✷✵ ✶✻✵ ✷✵✵ ❞❡❣r❡❡
Experimentation highlights root isolation our kernel is faster for high degrees and bitsizes Synaps isolation performs much beer in Mignoe’s polynomials algebraic number refinement MPII quadratic refinement is really fast arrangement experiments validate the algebraic kernel approach 40 of 42 � our algebraic kernel is included in CGAL 3.6 � MPII kernel is unstable due to external library issues � Synaps kernel is not complete
Experimentation highlights algebraic number refinement MPII quadratic refinement is really fast arrangement experiments validate the algebraic kernel approach 40 of 42 � our algebraic kernel is included in CGAL 3.6 � MPII kernel is unstable due to external library issues � Synaps kernel is not complete � root isolation � our kernel is faster for high degrees and bitsizes � Synaps isolation performs much beer in Mignoe’s polynomials
Experimentation highlights arrangement experiments validate the algebraic kernel approach 40 of 42 � our algebraic kernel is included in CGAL 3.6 � MPII kernel is unstable due to external library issues � Synaps kernel is not complete � root isolation � our kernel is faster for high degrees and bitsizes � Synaps isolation performs much beer in Mignoe’s polynomials � algebraic number refinement � MPII quadratic refinement is really fast
Experimentation highlights 40 of 42 � our algebraic kernel is included in CGAL 3.6 � MPII kernel is unstable due to external library issues � Synaps kernel is not complete � root isolation � our kernel is faster for high degrees and bitsizes � Synaps isolation performs much beer in Mignoe’s polynomials � algebraic number refinement � MPII quadratic refinement is really fast � arrangement experiments � validate the algebraic kernel approach
Recommend
More recommend