+ All Categories
Home > Documents > Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1...

Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1...

Date post: 21-Aug-2020
Category:
Upload: others
View: 2 times
Download: 0 times
Share this document with a friend
203
1 Lecture 5 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New York University KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005
Transcript
Page 1: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

1Lecture 5Numeric-Algebraic Computation with

Curves

Chee YapCourant Institute of Mathematical Sciences

New York University

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 2: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

2Overview

We introduce some basic concepts of algebraic curves and their

computation. There is a general algebraic technique called

cylindrical algebraic decomposition (cad). Such techniques are

too slow even in the plane. We seek more adaptive techniques.

We describe one such algorithm, for Bezier curves.

• 0. Review

• I. Cylindrical Algebraic Decomposition

• II. Bezier Curves

• III. Quadric Surfaces

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 3: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

3

0. REVIEW

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 4: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

4QUESTIONS and DISCUSSIONS

• PROBLEM: You want to find all real solutions

of the following “triangular system”, P (X) =0, Q(X, Y ) = 0, numerically:

∗ For each zero α of P (X), find all β of Q(X, Y ).

∗ REMARK: First figure out how to do this non-

numerically

• PROBLEM: Suppose you want to plot a curve. Use

resultants to compute points on the curve?

∗ Can your approach resolve the topology of curves?

∗ REMARK: This is implemented in CORE

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 5: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

4QUESTIONS and DISCUSSIONS

• PROBLEM: You want to find all real solutions

of the following “triangular system”, P (X) =0, Q(X, Y ) = 0, numerically:

∗ For each zero α of P (X), find all β of Q(X, Y ).

∗ REMARK: First figure out how to do this non-

numerically

• PROBLEM: Suppose you want to plot a curve. Use

resultants to compute points on the curve?

∗ Can your approach resolve the topology of curves?

∗ REMARK: This is implemented in CORE

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 6: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

4QUESTIONS and DISCUSSIONS

• PROBLEM: You want to find all real solutions

of the following “triangular system”, P (X) =0, Q(X, Y ) = 0, numerically:

∗ For each zero α of P (X), find all β of Q(X, Y ).

∗ REMARK: First figure out how to do this non-

numerically

• PROBLEM: Suppose you want to plot a curve. Use

resultants to compute points on the curve?

∗ Can your approach resolve the topology of curves?

∗ REMARK: This is implemented in CORE

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 7: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

5Fundamentals of AlgebraicComputation

• Algebraic numbers form a (computational) field

∗ Tradition algorithms (in computer algebra) use

representation by minimal polynomials, or by isolating

intervals

∗ In contrast, we use numerical approach via Expressions

• Resultant is a main tool to derive basic properties

of algebraic numbers, including zero bounds

• Sturm sequence theory gives us global technique

for detecting all real zeros

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 8: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

5Fundamentals of AlgebraicComputation

• Algebraic numbers form a (computational) field

∗ Tradition algorithms (in computer algebra) use

representation by minimal polynomials, or by isolating

intervals

∗ In contrast, we use numerical approach via Expressions

• Resultant is a main tool to derive basic properties

of algebraic numbers, including zero bounds

• Sturm sequence theory gives us global technique

for detecting all real zeros

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 9: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

5Fundamentals of AlgebraicComputation

• Algebraic numbers form a (computational) field

∗ Tradition algorithms (in computer algebra) use

representation by minimal polynomials, or by isolating

intervals

∗ In contrast, we use numerical approach via Expressions

• Resultant is a main tool to derive basic properties

of algebraic numbers, including zero bounds

• Sturm sequence theory gives us global technique

for detecting all real zeros

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 10: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

5Fundamentals of AlgebraicComputation

• Algebraic numbers form a (computational) field

∗ Tradition algorithms (in computer algebra) use

representation by minimal polynomials, or by isolating

intervals

∗ In contrast, we use numerical approach via Expressions

• Resultant is a main tool to derive basic properties

of algebraic numbers, including zero bounds

• Sturm sequence theory gives us global technique

for detecting all real zeros

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 11: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

6• Newton iteration gives an extremely fast local

technique for approximating such roots

∗ Use of bigfloats is essential

• In numerical computation, the local complexity of

bigfloats computation is essentially O(M(n) log n),from Brent

∗ The global complexity is less clear

• Another essential extension of Brent is to consider

approximate operations

• EXERCISE

∗ What is the optimal global complexity of evaluating a

polynomial?

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 12: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

6• Newton iteration gives an extremely fast local

technique for approximating such roots

∗ Use of bigfloats is essential

• In numerical computation, the local complexity of

bigfloats computation is essentially O(M(n) log n),from Brent

∗ The global complexity is less clear

• Another essential extension of Brent is to consider

approximate operations

• EXERCISE

∗ What is the optimal global complexity of evaluating a

polynomial?

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 13: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

6• Newton iteration gives an extremely fast local

technique for approximating such roots

∗ Use of bigfloats is essential

• In numerical computation, the local complexity of

bigfloats computation is essentially O(M(n) log n),from Brent

∗ The global complexity is less clear

• Another essential extension of Brent is to consider

approximate operations

• EXERCISE

∗ What is the optimal global complexity of evaluating a

polynomial?

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 14: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

6• Newton iteration gives an extremely fast local

technique for approximating such roots

∗ Use of bigfloats is essential

• In numerical computation, the local complexity of

bigfloats computation is essentially O(M(n) log n),from Brent

∗ The global complexity is less clear

• Another essential extension of Brent is to consider

approximate operations

• EXERCISE

∗ What is the optimal global complexity of evaluating a

polynomial?

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 15: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

7∗ How can we quantify the difference between our

numerical approach to algebraic numbers versus isolating

interval representation?

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 16: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

7∗ How can we quantify the difference between our

numerical approach to algebraic numbers versus isolating

interval representation?

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 17: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

8

I. CYLINDRICALALGEBRAIC

DECOMPOSITIONSkipped for time

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 18: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

9

II. Curves

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 19: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

10Complete Subdivision Algorithm forIntersecting Bezier Curves

• There are two distinct approaches: algebraic and

analytic

• In algebraic view, a curve is basically given by a

bivariate polynomial A(X, Y ) ∈ K[X, Y ].

• The analytic approach views curves as a

parametrized curve C(t). The emphasis is in

differential properties and local properties of curves.

• One confusing aspect is that when we view curves

in the complex setting, the curve is topologically a

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 20: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

11surface! So the two terminology gets mixed.

• For this lecture, we will focus on a recent new

algorithm for intersecting a very special class of

curves: Bezier curves.

• Through this algorithm, we will expose many of

the issues from our perspective of doing algebraic

computation via numerical approximations.

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 21: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

12ALGORITHM OVERVIEW

• Introduction

• Separation Bounds for Algebraic Curves

• Tangency Criterion for Elementary Curves

• Sub-Algorithms

• Intersection Algorithm

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 22: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

12ALGORITHM OVERVIEW

• Introduction

• Separation Bounds for Algebraic Curves

• Tangency Criterion for Elementary Curves

• Sub-Algorithms

• Intersection Algorithm

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 23: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

12ALGORITHM OVERVIEW

• Introduction

• Separation Bounds for Algebraic Curves

• Tangency Criterion for Elementary Curves

• Sub-Algorithms

• Intersection Algorithm

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 24: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

12ALGORITHM OVERVIEW

• Introduction

• Separation Bounds for Algebraic Curves

• Tangency Criterion for Elementary Curves

• Sub-Algorithms

• Intersection Algorithm

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 25: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

12ALGORITHM OVERVIEW

• Introduction

• Separation Bounds for Algebraic Curves

• Tangency Criterion for Elementary Curves

• Sub-Algorithms

• Intersection Algorithm

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 26: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

12ALGORITHM OVERVIEW

• Introduction

• Separation Bounds for Algebraic Curves

• Tangency Criterion for Elementary Curves

• Sub-Algorithms

• Intersection Algorithm

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 27: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

13

I. INTRODUCTION

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 28: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

14Two Approaches to Curve Intersection

• Basic Problem: intersecting algebraic curves

• Two distinct approaches in literature:

“Algebraic View” “Geometric View”

1. Representation polynomial equations parametric form

complete curves curves segments

2. Techniques symbolic/algebraic numerical

cell decomposition homotopy, subdivision

3. Algorithms exact, slow inexact, fast

theoretical practical

non-adaptive adaptive

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 29: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

14Two Approaches to Curve Intersection

• Basic Problem: intersecting algebraic curves

• Two distinct approaches in literature:

“Algebraic View” “Geometric View”

1. Representation polynomial equations parametric form

complete curves curves segments

2. Techniques symbolic/algebraic numerical

cell decomposition homotopy, subdivision

3. Algorithms exact, slow inexact, fast

theoretical practical

non-adaptive adaptive

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 30: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

14Two Approaches to Curve Intersection

• Basic Problem: intersecting algebraic curves

• Two distinct approaches in literature:

“Algebraic View” “Geometric View”

1. Representation polynomial equations parametric form

complete curves curves segments

2. Techniques symbolic/algebraic numerical

cell decomposition homotopy, subdivision

3. Algorithms exact, slow inexact, fast

theoretical practical

non-adaptive adaptive

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 31: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

14Two Approaches to Curve Intersection

• Basic Problem: intersecting algebraic curves

• Two distinct approaches in literature:

“Algebraic View” “Geometric View”

1. Representation polynomial equations parametric form

complete curves curves segments

2. Techniques symbolic/algebraic numerical

cell decomposition homotopy, subdivision

3. Algorithms exact, slow inexact, fast

theoretical practical

non-adaptive adaptive

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 32: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

14Two Approaches to Curve Intersection

• Basic Problem: intersecting algebraic curves

• Two distinct approaches in literature:

“Algebraic View” “Geometric View”

1. Representation polynomial equations parametric form

complete curves curves segments

2. Techniques symbolic/algebraic numerical

cell decomposition homotopy, subdivision

3. Algorithms exact, slow inexact, fast

theoretical practical

non-adaptive adaptive

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 33: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

14Two Approaches to Curve Intersection

• Basic Problem: intersecting algebraic curves

• Two distinct approaches in literature:

“Algebraic View” “Geometric View”

1. Representation polynomial equations parametric form

complete curves curves segments

2. Techniques symbolic/algebraic numerical

cell decomposition homotopy, subdivision

3. Algorithms exact, slow inexact, fast

theoretical practical

non-adaptive adaptive

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 34: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

14Two Approaches to Curve Intersection

• Basic Problem: intersecting algebraic curves

• Two distinct approaches in literature:

“Algebraic View” “Geometric View”

1. Representation polynomial equations parametric form

complete curves curves segments

2. Techniques symbolic/algebraic numerical

cell decomposition homotopy, subdivision

3. Algorithms exact, slow inexact, fast

theoretical practical

non-adaptive adaptive

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 35: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

14Two Approaches to Curve Intersection

• Basic Problem: intersecting algebraic curves

• Two distinct approaches in literature:

“Algebraic View” “Geometric View”

1. Representation polynomial equations parametric form

complete curves curves segments

2. Techniques symbolic/algebraic numerical

cell decomposition homotopy, subdivision

3. Algorithms exact, slow inexact, fast

theoretical practical

non-adaptive adaptive

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 36: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

14Two Approaches to Curve Intersection

• Basic Problem: intersecting algebraic curves

• Two distinct approaches in literature:

“Algebraic View” “Geometric View”

1. Representation polynomial equations parametric form

complete curves curves segments

2. Techniques symbolic/algebraic numerical

cell decomposition homotopy, subdivision

3. Algorithms exact, slow inexact, fast

theoretical practical

non-adaptive adaptive

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 37: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

14Two Approaches to Curve Intersection

• Basic Problem: intersecting algebraic curves

• Two distinct approaches in literature:

“Algebraic View” “Geometric View”

1. Representation polynomial equations parametric form

complete curves curves segments

2. Techniques symbolic/algebraic numerical

cell decomposition homotopy, subdivision

3. Algorithms exact, slow inexact, fast

theoretical practical

non-adaptive adaptive

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 38: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

15Related Work• Recent work:

∗ Exacus Project, CGAL, etc

∗ Arrangement of low-degree curves and surfaces

∗ Devillers et al [SCG’00], Geissmann et al [SCG’01],

Berberich et al [ESA’02], Wein [ESA’02], Eigenwillig et al

[SCG’04], etc

∗ Goal: exact and efficient implementations of the

“algebraic view”

• Our Goal:

∗ Make algorithms under the “Geometric View” robust

∗ Use adaptive algorithms based on subdivisions

∗ More generally: “numerical algebraic computation”

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 39: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

15Related Work• Recent work:

∗ Exacus Project, CGAL, etc

∗ Arrangement of low-degree curves and surfaces

∗ Devillers et al [SCG’00], Geissmann et al [SCG’01],

Berberich et al [ESA’02], Wein [ESA’02], Eigenwillig et al

[SCG’04], etc

∗ Goal: exact and efficient implementations of the

“algebraic view”

• Our Goal:

∗ Make algorithms under the “Geometric View” robust

∗ Use adaptive algorithms based on subdivisions

∗ More generally: “numerical algebraic computation”

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 40: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

15Related Work• Recent work:

∗ Exacus Project, CGAL, etc

∗ Arrangement of low-degree curves and surfaces

∗ Devillers et al [SCG’00], Geissmann et al [SCG’01],

Berberich et al [ESA’02], Wein [ESA’02], Eigenwillig et al

[SCG’04], etc

∗ Goal: exact and efficient implementations of the

“algebraic view”

• Our Goal:

∗ Make algorithms under the “Geometric View” robust

∗ Use adaptive algorithms based on subdivisions

∗ More generally: “numerical algebraic computation”

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 41: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

15Related Work• Recent work:

∗ Exacus Project, CGAL, etc

∗ Arrangement of low-degree curves and surfaces

∗ Devillers et al [SCG’00], Geissmann et al [SCG’01],

Berberich et al [ESA’02], Wein [ESA’02], Eigenwillig et al

[SCG’04], etc

∗ Goal: exact and efficient implementations of the

“algebraic view”

• Our Goal:

∗ Make algorithms under the “Geometric View” robust

∗ Use adaptive algorithms based on subdivisions

∗ More generally: “numerical algebraic computation”

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 42: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

15Related Work• Recent work:

∗ Exacus Project, CGAL, etc

∗ Arrangement of low-degree curves and surfaces

∗ Devillers et al [SCG’00], Geissmann et al [SCG’01],

Berberich et al [ESA’02], Wein [ESA’02], Eigenwillig et al

[SCG’04], etc

∗ Goal: exact and efficient implementations of the

“algebraic view”

• Our Goal:

∗ Make algorithms under the “Geometric View” robust

∗ Use adaptive algorithms based on subdivisions

∗ More generally: “numerical algebraic computation”

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 43: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

15Related Work• Recent work:

∗ Exacus Project, CGAL, etc

∗ Arrangement of low-degree curves and surfaces

∗ Devillers et al [SCG’00], Geissmann et al [SCG’01],

Berberich et al [ESA’02], Wein [ESA’02], Eigenwillig et al

[SCG’04], etc

∗ Goal: exact and efficient implementations of the

“algebraic view”

• Our Goal:

∗ Make algorithms under the “Geometric View” robust

∗ Use adaptive algorithms based on subdivisions

∗ More generally: “numerical algebraic computation”

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 44: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

15Related Work• Recent work:

∗ Exacus Project, CGAL, etc

∗ Arrangement of low-degree curves and surfaces

∗ Devillers et al [SCG’00], Geissmann et al [SCG’01],

Berberich et al [ESA’02], Wein [ESA’02], Eigenwillig et al

[SCG’04], etc

∗ Goal: exact and efficient implementations of the

“algebraic view”

• Our Goal:

∗ Make algorithms under the “Geometric View” robust

∗ Use adaptive algorithms based on subdivisions

∗ More generally: “numerical algebraic computation”

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 45: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

15Related Work• Recent work:

∗ Exacus Project, CGAL, etc

∗ Arrangement of low-degree curves and surfaces

∗ Devillers et al [SCG’00], Geissmann et al [SCG’01],

Berberich et al [ESA’02], Wein [ESA’02], Eigenwillig et al

[SCG’04], etc

∗ Goal: exact and efficient implementations of the

“algebraic view”

• Our Goal:

∗ Make algorithms under the “Geometric View” robust

∗ Use adaptive algorithms based on subdivisions

∗ More generally: “numerical algebraic computation”

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 46: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

15Related Work• Recent work:

∗ Exacus Project, CGAL, etc

∗ Arrangement of low-degree curves and surfaces

∗ Devillers et al [SCG’00], Geissmann et al [SCG’01],

Berberich et al [ESA’02], Wein [ESA’02], Eigenwillig et al

[SCG’04], etc

∗ Goal: exact and efficient implementations of the

“algebraic view”

• Our Goal:

∗ Make algorithms under the “Geometric View” robust

∗ Use adaptive algorithms based on subdivisions

∗ More generally: “numerical algebraic computation”

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 47: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

16

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 48: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

17Bezier Curves• Bezier curves: popular parametric form

• Curve F defined by its Control Polygon P (F )∗ P (F ) = (p0, p1, . . . , pn)

∗ De Casteljau’s Algorithm to determine F (1/2)

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 49: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

17Bezier Curves• Bezier curves: popular parametric form

• Curve F defined by its Control Polygon P (F )∗ P (F ) = (p0, p1, . . . , pn)

∗ De Casteljau’s Algorithm to determine F (1/2)

p1

p3

p2

p0

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 50: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

17Bezier Curves• Bezier curves: popular parametric form

• Curve F defined by its Control Polygon P (F )∗ P (F ) = (p0, p1, . . . , pn)

∗ De Casteljau’s Algorithm to determine F (1/2)

p1

p3

p2

p0

p10

p12

p11

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 51: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

17Bezier Curves• Bezier curves: popular parametric form

• Curve F defined by its Control Polygon P (F )∗ P (F ) = (p0, p1, . . . , pn)

∗ De Casteljau’s Algorithm to determine F (1/2)

p1

p3

p2

p0

p10

p12

p11

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 52: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

17Bezier Curves• Bezier curves: popular parametric form

• Curve F defined by its Control Polygon P (F )∗ P (F ) = (p0, p1, . . . , pn)

∗ De Casteljau’s Algorithm to determine F (1/2)

p1

p3

p2

p0

p10

p12

p11

p21

p20

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 53: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

17Bezier Curves• Bezier curves: popular parametric form

• Curve F defined by its Control Polygon P (F )∗ P (F ) = (p0, p1, . . . , pn)

∗ De Casteljau’s Algorithm to determine F (1/2)

p1

p3

p2

p0

p10

p12

p11

p21

p20

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 54: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

17Bezier Curves• Bezier curves: popular parametric form

• Curve F defined by its Control Polygon P (F )∗ P (F ) = (p0, p1, . . . , pn)

∗ De Casteljau’s Algorithm to determine F (1/2)

p1

p3

p2

p0

p10

p12

p11

p21

p20

p30

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 55: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

17Bezier Curves• Bezier curves: popular parametric form

• Curve F defined by its Control Polygon P (F )∗ P (F ) = (p0, p1, . . . , pn)

∗ De Casteljau’s Algorithm to determine F (1/2)

p1

p3

p2

p0

p10

p12

p11

p21

p20

p30

F (12)

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 56: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

18Intersection of Bezier Curves

• Generic Algorithm to intersect Bezier curves F,G:

[1] If CH(P (F )) ∩ CH(P (G)) = ∅, return(NO)

[2] If diameter(P (F ) ∪ P (G)) < ε, return(YES)

[3] Split the larger curve (F ) into subcurves (F0, F1)

[5] Recursively, intersect (Fi, G) (i = 0, 1).

• Subdivision Algorithms:

∗ simple, adaptive, good to any ε

∗ but incomplete!

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 57: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

18Intersection of Bezier Curves

• Generic Algorithm to intersect Bezier curves F,G:

[1] If CH(P (F )) ∩ CH(P (G)) = ∅, return(NO)

[2] If diameter(P (F ) ∪ P (G)) < ε, return(YES)

[3] Split the larger curve (F ) into subcurves (F0, F1)

[5] Recursively, intersect (Fi, G) (i = 0, 1).

• Subdivision Algorithms:

∗ simple, adaptive, good to any ε

∗ but incomplete!

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 58: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

18Intersection of Bezier Curves

• Generic Algorithm to intersect Bezier curves F,G:

[1] If CH(P (F )) ∩ CH(P (G)) = ∅, return(NO)

[2] If diameter(P (F ) ∪ P (G)) < ε, return(YES)

[3] Split the larger curve (F ) into subcurves (F0, F1)

[5] Recursively, intersect (Fi, G) (i = 0, 1).

• Subdivision Algorithms:

∗ simple, adaptive, good to any ε

∗ but incomplete!

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 59: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

18Intersection of Bezier Curves

• Generic Algorithm to intersect Bezier curves F,G:

[1] If CH(P (F )) ∩ CH(P (G)) = ∅, return(NO)

[2] If diameter(P (F ) ∪ P (G)) < ε, return(YES)

[3] Split the larger curve (F ) into subcurves (F0, F1)

[5] Recursively, intersect (Fi, G) (i = 0, 1).

• Subdivision Algorithms:

∗ simple, adaptive, good to any ε

∗ but incomplete!

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 60: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

18Intersection of Bezier Curves

• Generic Algorithm to intersect Bezier curves F,G:

[1] If CH(P (F )) ∩ CH(P (G)) = ∅, return(NO)

[2] If diameter(P (F ) ∪ P (G)) < ε, return(YES)

[3] Split the larger curve (F ) into subcurves (F0, F1)

[5] Recursively, intersect (Fi, G) (i = 0, 1).

• Subdivision Algorithms:

∗ simple, adaptive, good to any ε

∗ but incomplete!

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 61: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

18Intersection of Bezier Curves

• Generic Algorithm to intersect Bezier curves F,G:

[1] If CH(P (F )) ∩ CH(P (G)) = ∅, return(NO)

[2] If diameter(P (F ) ∪ P (G)) < ε, return(YES)

[3] Split the larger curve (F ) into subcurves (F0, F1)

[5] Recursively, intersect (Fi, G) (i = 0, 1).

• Subdivision Algorithms:

∗ simple, adaptive, good to any ε

∗ but incomplete!

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 62: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

18Intersection of Bezier Curves

• Generic Algorithm to intersect Bezier curves F,G:

[1] If CH(P (F )) ∩ CH(P (G)) = ∅, return(NO)

[2] If diameter(P (F ) ∪ P (G)) < ε, return(YES)

[3] Split the larger curve (F ) into subcurves (F0, F1)

[5] Recursively, intersect (Fi, G) (i = 0, 1).

• Subdivision Algorithms:

∗ simple, adaptive, good to any ε

∗ but incomplete!

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 63: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

18Intersection of Bezier Curves

• Generic Algorithm to intersect Bezier curves F,G:

[1] If CH(P (F )) ∩ CH(P (G)) = ∅, return(NO)

[2] If diameter(P (F ) ∪ P (G)) < ε, return(YES)

[3] Split the larger curve (F ) into subcurves (F0, F1)

[5] Recursively, intersect (Fi, G) (i = 0, 1).

• Subdivision Algorithms:

∗ simple, adaptive, good to any ε

∗ but incomplete!

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 64: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

18Intersection of Bezier Curves

• Generic Algorithm to intersect Bezier curves F,G:

[1] If CH(P (F )) ∩ CH(P (G)) = ∅, return(NO)

[2] If diameter(P (F ) ∪ P (G)) < ε, return(YES)

[3] Split the larger curve (F ) into subcurves (F0, F1)

[5] Recursively, intersect (Fi, G) (i = 0, 1).

• Subdivision Algorithms:

∗ simple, adaptive, good to any ε

∗ but incomplete!

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 65: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

19What is Wrong?

• What does YES output really mean?

∗ Could mean NO or MULTIPLE intersections!

∗ We really want UNIQUE intersection

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 66: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

19What is Wrong?

• What does YES output really mean?

∗ Could mean NO or MULTIPLE intersections!

∗ We really want UNIQUE intersection

• Three kinds of intersections:

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 67: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

19What is Wrong?

• What does YES output really mean?

∗ Could mean NO or MULTIPLE intersections!

∗ We really want UNIQUE intersection

• Three kinds of intersections:

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 68: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

19What is Wrong?

• What does YES output really mean?

∗ Could mean NO or MULTIPLE intersections!

∗ We really want UNIQUE intersection

• Three kinds of intersections:

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 69: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

19What is Wrong?

• What does YES output really mean?

∗ Could mean NO or MULTIPLE intersections!

∗ We really want UNIQUE intersection

• Three kinds of intersections:

Transversal Intersection

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 70: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

19What is Wrong?

• What does YES output really mean?

∗ Could mean NO or MULTIPLE intersections!

∗ We really want UNIQUE intersection

• Three kinds of intersections:

Transversal Intersection Tangential, crossing

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 71: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

19What is Wrong?

• What does YES output really mean?

∗ Could mean NO or MULTIPLE intersections!

∗ We really want UNIQUE intersection

• Three kinds of intersections:

Transversal Intersection Tangential, crossing Tangential, non-crossing

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 72: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

20Can it be Fixed?

• Transversal intersections could probably be handled

as follows:

∗ Replace the ε test by:

[4] If (F,G) is a “transversal rep”, return(YES)

∗ Problem: infinite loop if tangential intersection

Page 73: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

20Can it be Fixed?

• Transversal intersections could probably be handled

as follows:

∗ Replace the ε test by:

[4] If (F,G) is a “transversal rep”, return(YES)

∗ Problem: infinite loop if tangential intersection

• Intersection Criteria

∗ Complete criterion: output YES/NO

∗ Semi-criterion: output YES/NO/MAYBE

∗ Semi-criteria are useful

Page 74: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

20Can it be Fixed?

• Transversal intersections could probably be handled

as follows:

∗ Replace the ε test by:

[4] If (F,G) is a “transversal rep”, return(YES)

∗ Problem: infinite loop if tangential intersection

• Intersection Criteria

∗ Complete criterion: output YES/NO

∗ Semi-criterion: output YES/NO/MAYBE

∗ Semi-criteria are useful

• No complete criterion is known for noncrossing

intersections

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 75: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

21∗ How to ever affirm a noncrossing intersection?

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 76: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

22Work of Nicola Wolpert

• If F,G are non-singular, how can we affirm a

tangential intersection within a box?

∗ Use Jacobi curves, H1 = FxGy − FyGx = 0

∗ Need generalized Jacobi curves, H1,H2, . . .

• Comparison of Techniques:

∗ Wolpert: Jacobi curves, Resultant computations

∗ Ours: only subdivision

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 77: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

23

II. SEPARATION BOUNDSFOR CURVES

Main Algebraic Tool

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 78: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

24Assumption for curves F,G• F,G are the curves A(x, y) = 0 and B(x, y) = 0,

∗ m = deg(A), n = deg(B)

∗ a = ‖A‖2, b = ‖B‖2.

• Definition of antipodal pair (p, q):∗ p ∈ F and q ∈ G

∗ The line pq is normal to F at p, and normal to G at q.

Page 79: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

24Assumption for curves F,G• F,G are the curves A(x, y) = 0 and B(x, y) = 0,

∗ m = deg(A), n = deg(B)

∗ a = ‖A‖2, b = ‖B‖2.

• Definition of antipodal pair (p, q):∗ p ∈ F and q ∈ G

∗ The line pq is normal to F at p, and normal to G at q.

G

F

Antipodal pair (p, q)

Page 80: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

24Assumption for curves F,G• F,G are the curves A(x, y) = 0 and B(x, y) = 0,

∗ m = deg(A), n = deg(B)

∗ a = ‖A‖2, b = ‖B‖2.

• Definition of antipodal pair (p, q):∗ p ∈ F and q ∈ G

∗ The line pq is normal to F at p, and normal to G at q.

G

F

Antipodal pair (p, q)

p = q

q

p

Page 81: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

24Assumption for curves F,G• F,G are the curves A(x, y) = 0 and B(x, y) = 0,

∗ m = deg(A), n = deg(B)

∗ a = ‖A‖2, b = ‖B‖2.

• Definition of antipodal pair (p, q):∗ p ∈ F and q ∈ G

∗ The line pq is normal to F at p, and normal to G at q.

G

F

Antipodal pair (p, q)

p = q

q

p

Page 82: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

24Assumption for curves F,G• F,G are the curves A(x, y) = 0 and B(x, y) = 0,

∗ m = deg(A), n = deg(B)

∗ a = ‖A‖2, b = ‖B‖2.

• Definition of antipodal pair (p, q):∗ p ∈ F and q ∈ G

∗ The line pq is normal to F at p, and normal to G at q.

G

F

Antipodal pair (p, q)

p = q

q

p

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 83: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

25• Assume (F,G) has finitely many anti-podal pairs.

∗ This implies A,B are relatively prime

• If F contains an offset of G then there are infinitely

many anti-podal pairs

∗ Conjecture: converse holds

∗ Proved by S.-W. Choi

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 84: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

26Separation Bounds for Algebraic Roots

• Let Σ = {A1, A2, . . . , An}, where

∗ Ai ∈ Z[x1, . . . , xn] and deg(Ai) = di

∗ Σ has finitely many complex zeros

∗ ‖A‖k is the k-norm (for k = 1, 2,∞)

• THEOREM

If (x1, . . . , xn) is a zero of Σ and x1 6= 0 then

|x1| > (23/2NK)−D2−(n+1)d1···dn where

∗ K = max{√

n + 1, ‖A1‖2, . . . , ‖An‖2},∗ N =

(1+

∑i di

n

), D = (1 +

∑i(1/di))

∏i di

∗ See “Fundamental Problems in Algorithmic Algebra”,

C.Yap, Oxford Press (2000) or website

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 85: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

26Separation Bounds for Algebraic Roots

• Let Σ = {A1, A2, . . . , An}, where

∗ Ai ∈ Z[x1, . . . , xn] and deg(Ai) = di

∗ Σ has finitely many complex zeros

∗ ‖A‖k is the k-norm (for k = 1, 2,∞)

• THEOREM

If (x1, . . . , xn) is a zero of Σ and x1 6= 0 then

|x1| > (23/2NK)−D2−(n+1)d1···dn where

∗ K = max{√

n + 1, ‖A1‖2, . . . , ‖An‖2},∗ N =

(1+

∑i di

n

), D = (1 +

∑i(1/di))

∏i di

∗ See “Fundamental Problems in Algorithmic Algebra”,

C.Yap, Oxford Press (2000) or website

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 86: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

26Separation Bounds for Algebraic Roots

• Let Σ = {A1, A2, . . . , An}, where

∗ Ai ∈ Z[x1, . . . , xn] and deg(Ai) = di

∗ Σ has finitely many complex zeros

∗ ‖A‖k is the k-norm (for k = 1, 2,∞)

• THEOREM

If (x1, . . . , xn) is a zero of Σ and x1 6= 0 then

|x1| > (23/2NK)−D2−(n+1)d1···dn where

∗ K = max{√

n + 1, ‖A1‖2, . . . , ‖An‖2},∗ N =

(1+

∑i di

n

), D = (1 +

∑i(1/di))

∏i di

∗ See “Fundamental Problems in Algorithmic Algebra”,

C.Yap, Oxford Press (2000) or website

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 87: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

26Separation Bounds for Algebraic Roots

• Let Σ = {A1, A2, . . . , An}, where

∗ Ai ∈ Z[x1, . . . , xn] and deg(Ai) = di

∗ Σ has finitely many complex zeros

∗ ‖A‖k is the k-norm (for k = 1, 2,∞)

• THEOREM

If (x1, . . . , xn) is a zero of Σ and x1 6= 0 then

|x1| > (23/2NK)−D2−(n+1)d1···dn where

∗ K = max{√

n + 1, ‖A1‖2, . . . , ‖An‖2},∗ N =

(1+

∑i di

n

), D = (1 +

∑i(1/di))

∏i di

∗ See “Fundamental Problems in Algorithmic Algebra”,

C.Yap, Oxford Press (2000) or website

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 88: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

26Separation Bounds for Algebraic Roots

• Let Σ = {A1, A2, . . . , An}, where

∗ Ai ∈ Z[x1, . . . , xn] and deg(Ai) = di

∗ Σ has finitely many complex zeros

∗ ‖A‖k is the k-norm (for k = 1, 2,∞)

• THEOREM

If (x1, . . . , xn) is a zero of Σ and x1 6= 0 then

|x1| > (23/2NK)−D2−(n+1)d1···dn where

∗ K = max{√

n + 1, ‖A1‖2, . . . , ‖An‖2},∗ N =

(1+

∑i di

n

), D = (1 +

∑i(1/di))

∏i di

∗ See “Fundamental Problems in Algorithmic Algebra”,

C.Yap, Oxford Press (2000) or website

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 89: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

26Separation Bounds for Algebraic Roots

• Let Σ = {A1, A2, . . . , An}, where

∗ Ai ∈ Z[x1, . . . , xn] and deg(Ai) = di

∗ Σ has finitely many complex zeros

∗ ‖A‖k is the k-norm (for k = 1, 2,∞)

• THEOREM

If (x1, . . . , xn) is a zero of Σ and x1 6= 0 then

|x1| > (23/2NK)−D2−(n+1)d1···dn where

∗ K = max{√

n + 1, ‖A1‖2, . . . , ‖An‖2},∗ N =

(1+

∑i di

n

), D = (1 +

∑i(1/di))

∏i di

∗ See “Fundamental Problems in Algorithmic Algebra”,

C.Yap, Oxford Press (2000) or website

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 90: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

26Separation Bounds for Algebraic Roots

• Let Σ = {A1, A2, . . . , An}, where

∗ Ai ∈ Z[x1, . . . , xn] and deg(Ai) = di

∗ Σ has finitely many complex zeros

∗ ‖A‖k is the k-norm (for k = 1, 2,∞)

• THEOREM

If (x1, . . . , xn) is a zero of Σ and x1 6= 0 then

|x1| > (23/2NK)−D2−(n+1)d1···dn where

∗ K = max{√

n + 1, ‖A1‖2, . . . , ‖An‖2},∗ N =

(1+

∑i di

n

), D = (1 +

∑i(1/di))

∏i di

∗ See “Fundamental Problems in Algorithmic Algebra”,

C.Yap, Oxford Press (2000) or website

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 91: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

27∗ Cf. Canny (1988)

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 92: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

27∗ Cf. Canny (1988)

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 93: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

28Geometric Separation Bounds

• THEOREM 1: If (p, q) is an antipodal pair, then

p 6= q implies ‖p− q‖ ≥ ∆1(m,n, a, b) where

∗ ∆1 = (3NK)−D2−12m2n2,

∗ K = max{√

13, 4ma, 4nb},∗ N =

(3+2m+2n

5

), D = m2n2(3 + (4/m) + (4/n))

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 94: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

28Geometric Separation Bounds

• THEOREM 1: If (p, q) is an antipodal pair, then

p 6= q implies ‖p− q‖ ≥ ∆1(m,n, a, b) where

∗ ∆1 = (3NK)−D2−12m2n2,

∗ K = max{√

13, 4ma, 4nb},∗ N =

(3+2m+2n

5

), D = m2n2(3 + (4/m) + (4/n))

• THEOREM 2: If p ∈ F ∩G and q ∈ F ∩G, then

p 6= q implies ‖p− q‖ ≥ ∆2(m,n, a, b) where

∗ ∆2 = (3NK)−D2−12m2n2,

∗ K = max{√

13,m, n},∗ with N,D as before.

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 95: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

29How Close can a Point be to a Curve?

• Let q be a point not on the curve F : A(x, y) = 0.

∗ Coordinates of q are L-bit floats,

∗ i.e., numbers m2−` where |m| < 2L and 0 ≤ ` ≤ L.

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 96: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

29How Close can a Point be to a Curve?

• Let q be a point not on the curve F : A(x, y) = 0.

∗ Coordinates of q are L-bit floats,

∗ i.e., numbers m2−` where |m| < 2L and 0 ≤ ` ≤ L.

• THEOREM 3: If p ∈ F , and the curve F does not

contain a circle centered at q, then

‖p− q‖ ≥ ∆3(m,a, L) where

∗ ∆3 = (3NK)−D2−8m2,

∗ K = max{8L√

3, 4L3ma},∗ N =

(3+2m

3

), D = m2(3 + (4/m))

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 97: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

30Norm for Equation of Bezier Curve

• Apply the separation bounds to a Bezier curve F

∗ Control points (p0, . . . , pm)

∗ Each coordinate of the pi’s are L-bit floats

• THEOREM 4: F satisfies an equation A(x, y) = 0where ‖A‖2 ≤ (16L9m)m.

∗ Use a generalized Hadamard bound (extended to

multivariate polynomials)

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 98: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

30Norm for Equation of Bezier Curve

• Apply the separation bounds to a Bezier curve F

∗ Control points (p0, . . . , pm)

∗ Each coordinate of the pi’s are L-bit floats

• THEOREM 4: F satisfies an equation A(x, y) = 0where ‖A‖2 ≤ (16L9m)m.

∗ Use a generalized Hadamard bound (extended to

multivariate polynomials)

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 99: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

30Norm for Equation of Bezier Curve

• Apply the separation bounds to a Bezier curve F

∗ Control points (p0, . . . , pm)

∗ Each coordinate of the pi’s are L-bit floats

• THEOREM 4: F satisfies an equation A(x, y) = 0where ‖A‖2 ≤ (16L9m)m.

∗ Use a generalized Hadamard bound (extended to

multivariate polynomials)

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 100: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

30Norm for Equation of Bezier Curve

• Apply the separation bounds to a Bezier curve F

∗ Control points (p0, . . . , pm)

∗ Each coordinate of the pi’s are L-bit floats

• THEOREM 4: F satisfies an equation A(x, y) = 0where ‖A‖2 ≤ (16L9m)m.

∗ Use a generalized Hadamard bound (extended to

multivariate polynomials)

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 101: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

30Norm for Equation of Bezier Curve

• Apply the separation bounds to a Bezier curve F

∗ Control points (p0, . . . , pm)

∗ Each coordinate of the pi’s are L-bit floats

• THEOREM 4: F satisfies an equation A(x, y) = 0where ‖A‖2 ≤ (16L9m)m.

∗ Use a generalized Hadamard bound (extended to

multivariate polynomials)

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 102: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

30Norm for Equation of Bezier Curve

• Apply the separation bounds to a Bezier curve F

∗ Control points (p0, . . . , pm)

∗ Each coordinate of the pi’s are L-bit floats

• THEOREM 4: F satisfies an equation A(x, y) = 0where ‖A‖2 ≤ (16L9m)m.

∗ Use a generalized Hadamard bound (extended to

multivariate polynomials)

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 103: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

31

III. NONCROSSINGINTERSECTION CRITERION

(NIC)How to affirm non-crossing intersection?

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 104: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

32Elementary Curves

• C1[a, b]: bounded, continuously differentiable real

functions on interval [a, b].

• f ∈ C1[a, b] defines a graph F : [a, b] → R2

∗ F (t) = (t, f(t)).

Page 105: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

32Elementary Curves

• C1[a, b]: bounded, continuously differentiable real

functions on interval [a, b].

• f ∈ C1[a, b] defines a graph F : [a, b] → R2

∗ F (t) = (t, f(t)).

•Graph F of f ∈ C1[a, b]

base segment

F (b)

F (a)

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 106: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

33• F is elementary if f is convex or concave.

∗ F is A-elementary if it lies above the base segment

∗ F is B-elementary if it lies below the base segment

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 107: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

33• F is elementary if f is convex or concave.

∗ F is A-elementary if it lies above the base segment

∗ F is B-elementary if it lies below the base segment

•A-Elementary Curve B-Elementary Curve

base segment

base segment

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 108: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

34Elementary Couple

• Define (F,G) to be an elementary couple if

∗ F = F [0, 1] and G = G[a, b]

∗ G(a) ∈ aF (0) and G(b) ∈ aF (1)

∗ The entire curve G lies inside the cone C(F ).

∗ (F,G) is an AA- or AB-elementary couple

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 109: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

34Elementary Couple

• Define (F,G) to be an elementary couple if

∗ F = F [0, 1] and G = G[a, b]

∗ G(a) ∈ aF (0) and G(b) ∈ aF (1)

∗ The entire curve G lies inside the cone C(F ).

∗ (F,G) is an AA- or AB-elementary couple

aF (0)

aF (1)

F

G

aF (0)

aF (1)G

F

An AB-couple An AA-couple

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 110: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

35Alpha Function

• Let (F,G) be an elementary couple as before

∗ F = F [0, 1] and G = G[a, b]

Page 111: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

35Alpha Function

• Let (F,G) be an elementary couple as before

∗ F = F [0, 1] and G = G[a, b]

• LEMMA: If G never dips below F , then there is a

continuous function s : [0, 1] → [a, b] such that for

all t, the normal at F (t) intersects G at a unique

point G(s(t)).

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 112: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

36• Define θF(t) to be the slope angle of the normal at

F (t)

• Define α(t) = θF(t)− θG(s(t))∗ Look at the sign of αF,G(t)

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 113: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

36• Define θF(t) to be the slope angle of the normal at

F (t)

• Define α(t) = θF(t)− θG(s(t))∗ Look at the sign of αF,G(t)

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 114: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

36• Define θF(t) to be the slope angle of the normal at

F (t)

• Define α(t) = θF(t)− θG(s(t))∗ Look at the sign of αF,G(t)

θF (t)

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 115: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

36• Define θF(t) to be the slope angle of the normal at

F (t)

• Define α(t) = θF(t)− θG(s(t))∗ Look at the sign of αF,G(t)

θF (t)

F (t)

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 116: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

36• Define θF(t) to be the slope angle of the normal at

F (t)

• Define α(t) = θF(t)− θG(s(t))∗ Look at the sign of αF,G(t)

θF (t)

F (t)

−θG(s(t))

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 117: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

36• Define θF(t) to be the slope angle of the normal at

F (t)

• Define α(t) = θF(t)− θG(s(t))∗ Look at the sign of αF,G(t)

θF (t)

F (t)

−θG(s(t))

G(s(t))

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 118: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

36• Define θF(t) to be the slope angle of the normal at

F (t)

• Define α(t) = θF(t)− θG(s(t))∗ Look at the sign of αF,G(t)

θF (t)

F (t)

−θG(s(t))

G(s(t))

= α(t)

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 119: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

36• Define θF(t) to be the slope angle of the normal at

F (t)

• Define α(t) = θF(t)− θG(s(t))∗ Look at the sign of αF,G(t)

θF (t)

F (t)

−θG(s(t))

G(s(t))

= α(t)

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 120: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

37Non-Crossing Intersection Criterion(NIC)

• F,G has ∆-separation property if for all p ∈ F and

q ∈ G,

∗ if either (p, q) is an antipodal pair or {p, q} ⊆ F ∩G,

∗ then p 6= q implies d(p, q) > ∆.

• THEOREM 5: Let (F,G) be an elementary couple

with the ∆-separation property, and the diameter

of F ∪G is ≤ ∆.

∗ (i) If α(0)α(1) ≤ 0 then F and G intersect tangentially,

in a unique point.

∗ (ii) If α(0)α(1) > 0 then F and G are disjoint.

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 121: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

37Non-Crossing Intersection Criterion(NIC)

• F,G has ∆-separation property if for all p ∈ F and

q ∈ G,

∗ if either (p, q) is an antipodal pair or {p, q} ⊆ F ∩G,

∗ then p 6= q implies d(p, q) > ∆.

• THEOREM 5: Let (F,G) be an elementary couple

with the ∆-separation property, and the diameter

of F ∪G is ≤ ∆.

∗ (i) If α(0)α(1) ≤ 0 then F and G intersect tangentially,

in a unique point.

∗ (ii) If α(0)α(1) > 0 then F and G are disjoint.

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 122: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

37Non-Crossing Intersection Criterion(NIC)

• F,G has ∆-separation property if for all p ∈ F and

q ∈ G,

∗ if either (p, q) is an antipodal pair or {p, q} ⊆ F ∩G,

∗ then p 6= q implies d(p, q) > ∆.

• THEOREM 5: Let (F,G) be an elementary couple

with the ∆-separation property, and the diameter

of F ∪G is ≤ ∆.

∗ (i) If α(0)α(1) ≤ 0 then F and G intersect tangentially,

in a unique point.

∗ (ii) If α(0)α(1) > 0 then F and G are disjoint.

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 123: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

37Non-Crossing Intersection Criterion(NIC)

• F,G has ∆-separation property if for all p ∈ F and

q ∈ G,

∗ if either (p, q) is an antipodal pair or {p, q} ⊆ F ∩G,

∗ then p 6= q implies d(p, q) > ∆.

• THEOREM 5: Let (F,G) be an elementary couple

with the ∆-separation property, and the diameter

of F ∪G is ≤ ∆.

∗ (i) If α(0)α(1) ≤ 0 then F and G intersect tangentially,

in a unique point.

∗ (ii) If α(0)α(1) > 0 then F and G are disjoint.

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 124: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

37Non-Crossing Intersection Criterion(NIC)

• F,G has ∆-separation property if for all p ∈ F and

q ∈ G,

∗ if either (p, q) is an antipodal pair or {p, q} ⊆ F ∩G,

∗ then p 6= q implies d(p, q) > ∆.

• THEOREM 5: Let (F,G) be an elementary couple

with the ∆-separation property, and the diameter

of F ∪G is ≤ ∆.

∗ (i) If α(0)α(1) ≤ 0 then F and G intersect tangentially,

in a unique point.

∗ (ii) If α(0)α(1) > 0 then F and G are disjoint.

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 125: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

37Non-Crossing Intersection Criterion(NIC)

• F,G has ∆-separation property if for all p ∈ F and

q ∈ G,

∗ if either (p, q) is an antipodal pair or {p, q} ⊆ F ∩G,

∗ then p 6= q implies d(p, q) > ∆.

• THEOREM 5: Let (F,G) be an elementary couple

with the ∆-separation property, and the diameter

of F ∪G is ≤ ∆.

∗ (i) If α(0)α(1) ≤ 0 then F and G intersect tangentially,

in a unique point.

∗ (ii) If α(0)α(1) > 0 then F and G are disjoint.

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 126: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

37Non-Crossing Intersection Criterion(NIC)

• F,G has ∆-separation property if for all p ∈ F and

q ∈ G,

∗ if either (p, q) is an antipodal pair or {p, q} ⊆ F ∩G,

∗ then p 6= q implies d(p, q) > ∆.

• THEOREM 5: Let (F,G) be an elementary couple

with the ∆-separation property, and the diameter

of F ∪G is ≤ ∆.

∗ (i) If α(0)α(1) ≤ 0 then F and G intersect tangentially,

in a unique point.

∗ (ii) If α(0)α(1) > 0 then F and G are disjoint.

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 127: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

38• Illustrating Noncrossing Intersection Criterion

(NIC)

Page 128: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

38• Illustrating Noncrossing Intersection Criterion

(NIC)

G

F

+

G

F

+

G

F

+

+

F

G

Page 129: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

38• Illustrating Noncrossing Intersection Criterion

(NIC)

G

F

+

G

F

+

G

F

+

+

F

G

−(1) Case (i) for an AB-pair

Page 130: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

38• Illustrating Noncrossing Intersection Criterion

(NIC)

G

F

+

G

F

+

G

F

+

+

F

G

−(1) Case (i) for an AB-pair

(2) Case (i) for an AA-pair

Page 131: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

38• Illustrating Noncrossing Intersection Criterion

(NIC)

G

F

+

G

F

+

G

F

+

+

F

G

−(1) Case (i) for an AB-pair

(2) Case (i) for an AA-pair

(3) Case (ii) for an AB-pair

Page 132: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

38• Illustrating Noncrossing Intersection Criterion

(NIC)

G

F

+

G

F

+

G

F

+

+

F

G

−(1) Case (i) for an AB-pair

(2) Case (i) for an AA-pair

(3) Case (ii) for an AB-pair (4) Case (ii) for an AA-pair

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 133: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

39• “Counter Examples” to NIC

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 134: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

39• “Counter Examples” to NIC

G

+

G

F+

+

F

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 135: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

39• “Counter Examples” to NIC

G

+

G

F+

+

F

“Counter Example (i)”

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 136: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

39• “Counter Examples” to NIC

G

+

G

F+

+

F

“Counter Example (i)”

“Counter Example (ii)”

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 137: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

40Proof

• By ∆-separation, |F ∩ G| ≤ 1. So by LEMMA,

there is a continuous function s : [0, 1] → [a, b].

• (i) Case α(0)α(1) ≤ 0.

∗ By continuity, there exists t such that α(t) = 0.

∗ This (F (t), G(s(t)) is an antipodal pair

∗ If F (t) 6= G(s(t)), then d(F (t), G(s(t)) > ∆,

contradiction

∗ So F (t) = G(s(t)), a tangential intersection

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 138: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

41• (ii) Case α(0)α(1) > 0 (say α(0) > 0, α(1) > 0)

∗ Assume F and G intersect at F (t0)

∗ Then F and G intersect tangentially at F (t0)

∗ Consider the antipodal pair (F (t0), G(s(t0)))

∗ Since F is below G, α(t−0 ) > 0 and α(t+0 ) < 0

∗ By continuity, there exists t1 ∈ (t0, 1) s.t. α(t1) = 0

∗ Then F (t1) must be another tangential intersection

∗ This contradicts the ∆-separation property

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 139: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

42Extended NIC

• Call (F,G) a half-couple if

∗ F = F [0, 1] and G = G[c, d]

∗ G(c) ∈ aF (0) or G(d) ∈ aF (1)

∗ The entire curve G lies inside the cone C(F ).

Page 140: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

42Extended NIC

• Call (F,G) a half-couple if

∗ F = F [0, 1] and G = G[c, d]

∗ G(c) ∈ aF (0) or G(d) ∈ aF (1)

∗ The entire curve G lies inside the cone C(F ).

aF (0)

aF (1)

F

G

aF (0)

aF (1)G

F

An AB-half couple An AA-half couple

• The following theorem extends the NIC to half-

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 141: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

43couples.

• THEOREM: Let (F [0, 1], G[c, d]) be a half-couple

where aF(0) passes through G(c). Suppose the

upper half-normal aG(d) makes the angle γ with the

x-axis. Then the lower half-normal bG(d) satisfies

exactly one of the following five cases:

(i) bG(d) intersects aF(0).(ii) bG(d) intersects aF(1).(iii) bG(d) intersects F at F (t), and θF(t)−γ > 0.

(iv) bG(d) intersects F at F (t), and θF(t)− γ < 0.

(v) bG(d) intersects F at F (t), and θF(t)− γ = 0.

Furthermore, let aF(t0) pass through G(d) where

t0 ∈ [0, 1]. Then the sign of α(t0) can be deduced

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 142: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

43couples.

• THEOREM: Let (F [0, 1], G[c, d]) be a half-couple

where aF(0) passes through G(c). Suppose the

upper half-normal aG(d) makes the angle γ with the

x-axis. Then the lower half-normal bG(d) satisfies

exactly one of the following five cases:

(i) bG(d) intersects aF(0).(ii) bG(d) intersects aF(1).(iii) bG(d) intersects F at F (t), and θF(t)−γ > 0.

(iv) bG(d) intersects F at F (t), and θF(t)− γ < 0.

(v) bG(d) intersects F at F (t), and θF(t)− γ = 0.

Furthermore, let aF(t0) pass through G(d) where

t0 ∈ [0, 1]. Then the sign of α(t0) can be deduced

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 143: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

44as follows:

(A) In cases (i) or (iii), α(t0) > 0.

(B) In cases (ii) or (iv), α(t0) < 0.

(C) In case (v), α(t0) = 0.

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 144: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

45

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 145: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

45

aF (0)

aF (1)

bG(d) intersects F

aF (0)

aF (1)

bG(d) intersects aF (1)

aF (0)

aF (1)

F

bG(c) intersects F

aF (0)

aF (1)

F

F

F

G[c, d]

G[c, d]

G[c, d]

G[c, d]

bG(d)

bG(c)

bG(d)

bG(c) intersects aF (0).bG(c)

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 146: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

46

IV. SUB-ALGORITHMSHow can we apply the noncrossing criterion?

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 147: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

47Delayed versus Immediate Objects

• Geometric constructors for objects:

∗ E.g., p = ∩[`, `′] is a point expression

• Expressions: represents an object as a DAG

∗ Internal nodes are constructors

∗ Leaves are primitive objects

∗ Similar to Expressions in Core Library

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 148: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

48• Motivation: bigFloats (immediate) vs. algebraic

numbers (delayed)

∗ Queries on immediate objects are O(1).

• Some “Immediate Objects”:

∗ number: A floating point number

∗ point: coordinates are all immediate numbers

∗ line: defining equations with only immediate numbers

∗ Bezier curve: points in control polygon are immediate

∗ Apply “transparent” constructors on immedite objects

• “Delayed Objects”: These are all other objects

∗ e.g., irrational numbers

∗ e.g., points whose coordinates are delayed numbers

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 149: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

49• 2 Bezier curve constructors:

∗ “Transparent”: F ∼ [F ∗, s0, t0]

∗ “Opaque”: F ∼ [F ∗, `0, `1]

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 150: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

50Curve-Line Intersection Reps• When is a pair (F, `) a rep?

∗ Transversal rep: ` intersects base of F

∗ Tangential rep: ` misses base of F ,

and diameter(P (F )) ≤ ∆

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 151: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

50Curve-Line Intersection Reps• When is a pair (F, `) a rep?

∗ Transversal rep: ` intersects base of F

∗ Tangential rep: ` misses base of F ,

and diameter(P (F )) ≤ ∆

• Tangential RepTransversal Rep

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 152: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

51Curve-Line Intersection Algorithm

• Input: Elementary curve F and line `

• Output: list of intersection points or reps

[1] If ` misses P (F ) return(NULL)

[2] If ` intersects endpoint(s) p, return(p)

[3] If ` intersects base segment, return(F, `)

[4] If diam(P (F )) < ∆, return(F, `)

[5] Subdivide F into (F1, F2) at F (1/2)

[5.1] If F (1/2) ∈ `, recursively call (Fi, `) for i = 0 or 1

[5.2] Recursively call (Fi, `) for both i = 0, 1

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 153: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

52Determining Sign of Alpha Angle

• Bezier curve F (t) = (F1(t), F2(t)),and Line `(t) = (ct + d, et + f)∗ c,d,e,f are L-bit floats

∗ Let α∗ = θF (t∗)− slope(`)

where F (t∗) ∈ `

Page 154: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

52Determining Sign of Alpha Angle

• Bezier curve F (t) = (F1(t), F2(t)),and Line `(t) = (ct + d, et + f)∗ c,d,e,f are L-bit floats

∗ Let α∗ = θF (t∗)− slope(`)

where F (t∗) ∈ `

The Angle α∗

F

`

Page 155: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

52Determining Sign of Alpha Angle

• Bezier curve F (t) = (F1(t), F2(t)),and Line `(t) = (ct + d, et + f)∗ c,d,e,f are L-bit floats

∗ Let α∗ = θF (t∗)− slope(`)

where F (t∗) ∈ `

The Angle α∗

F

`

Page 156: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

52Determining Sign of Alpha Angle

• Bezier curve F (t) = (F1(t), F2(t)),and Line `(t) = (ct + d, et + f)∗ c,d,e,f are L-bit floats

∗ Let α∗ = θF (t∗)− slope(`)

where F (t∗) ∈ `

The Angle α∗

F

`F (t∗)

Page 157: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

52Determining Sign of Alpha Angle

• Bezier curve F (t) = (F1(t), F2(t)),and Line `(t) = (ct + d, et + f)∗ c,d,e,f are L-bit floats

∗ Let α∗ = θF (t∗)− slope(`)

where F (t∗) ∈ `

The Angle α∗

F

`F (t∗)

θ(t∗)

Page 158: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

52Determining Sign of Alpha Angle

• Bezier curve F (t) = (F1(t), F2(t)),and Line `(t) = (ct + d, et + f)∗ c,d,e,f are L-bit floats

∗ Let α∗ = θF (t∗)− slope(`)

where F (t∗) ∈ `

The Angle α∗

F

`F (t∗)

θ(t∗)

Page 159: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

52Determining Sign of Alpha Angle

• Bezier curve F (t) = (F1(t), F2(t)),and Line `(t) = (ct + d, et + f)∗ c,d,e,f are L-bit floats

∗ Let α∗ = θF (t∗)− slope(`)

where F (t∗) ∈ `

The Angle α∗

F

`F (t∗)

θ(t∗)

α∗

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 160: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

53• Define g(t) = cF ′1(t) + eF ′

2(t)

• THEOREM 6: we have sign(α∗) = sign(g(t∗)).If the control polygon of F uses L-bit floats,

and g(t∗) 6= 0 then |g(t∗)| ≥ (6m128L9m)−m =B(m,L).

• Problem: t∗ is not immediate.

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 161: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

54Sign of Alpha Angle Algorithm

• Input: curve F ∼ [F ∗, s0, t0] and line `

∗ (F, `) is a transversal rep

• Output: sign of α∗

[1] Evaluate g(i)(t) of g(t) at t = s0 (all i ≥ 0)

[2] Compute bound ε on |g(t∗)− g(t0)| via Taylor

[3] If |g(s0)| > ε, return(sign(g(s0)))

[4] If lg(ε) ≤ −1−m(lg 6+lg m+7L+m lg 9), return(0)

[5] Refine F to [F ∗, s1, t1] and go back to step 1.

• Correctness: |g(s∗)| ≤ |g(s0)|+ε ≤ 2ε < B(m,L).

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 162: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

55Coupling Process

• Let (F,G) be an elementary pair.

∗ They are a micro pair, i.e., their union has diameter less

than ∆. So |F ∩G| ≤ 1.

• First we detect if they have crossing intersections.

∗ This is easy to do by checking the intersection of their

vertical spans S(F ) and S(G).

∗ This uses at most two line intersection probes.

• Assuming no crossing intersections, we now try to

apply NIC or its extension:

∗ Wlog, assume F is below G in the strip S(F )∩S(G).

∗ Let F = F [0, 1] and G = G[c, d]. Check if aF (0) and

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 163: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

56aF (1) intersects G. If so, we are done

∗ Otherwise, we conduct a binary search for a t0 ∈ [0, 1]

such that aF (t0) intersects G.

∗ It is not hard to see that we can now reduce the problem

to check non-crossing intersections for two half-couples.

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 164: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

57

V. INTERSECTIONALGORITHM

Putting the pieces together

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 165: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

58What about Non-Elementary Curves?

• F (t) is critical iff

∗ stationary: F ′x(t) = F ′

y(t) = 0

∗ x-extreme: F ′x(t) = 0, F ′

y(t) 6= 0

∗ inflection: F ′x(t)F

′′y (t) = F ′′

x (t)F ′y(t)

• Approach 1: Cut curves at critical points

• Approach 2: New types of elementary curves

∗ S-, X- and I-elementary

• Approach 3: Isolate critical points

∗ New separation bounds

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 166: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

58What about Non-Elementary Curves?

• F (t) is critical iff

∗ stationary: F ′x(t) = F ′

y(t) = 0

∗ x-extreme: F ′x(t) = 0, F ′

y(t) 6= 0

∗ inflection: F ′x(t)F

′′y (t) = F ′′

x (t)F ′y(t)

• Approach 1: Cut curves at critical points

• Approach 2: New types of elementary curves

∗ S-, X- and I-elementary

• Approach 3: Isolate critical points

∗ New separation bounds

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 167: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

58What about Non-Elementary Curves?

• F (t) is critical iff

∗ stationary: F ′x(t) = F ′

y(t) = 0

∗ x-extreme: F ′x(t) = 0, F ′

y(t) 6= 0

∗ inflection: F ′x(t)F

′′y (t) = F ′′

x (t)F ′y(t)

• Approach 1: Cut curves at critical points

• Approach 2: New types of elementary curves

∗ S-, X- and I-elementary

• Approach 3: Isolate critical points

∗ New separation bounds

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 168: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

58What about Non-Elementary Curves?

• F (t) is critical iff

∗ stationary: F ′x(t) = F ′

y(t) = 0

∗ x-extreme: F ′x(t) = 0, F ′

y(t) 6= 0

∗ inflection: F ′x(t)F

′′y (t) = F ′′

x (t)F ′y(t)

• Approach 1: Cut curves at critical points

• Approach 2: New types of elementary curves

∗ S-, X- and I-elementary

• Approach 3: Isolate critical points

∗ New separation bounds

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 169: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

58What about Non-Elementary Curves?

• F (t) is critical iff

∗ stationary: F ′x(t) = F ′

y(t) = 0

∗ x-extreme: F ′x(t) = 0, F ′

y(t) 6= 0

∗ inflection: F ′x(t)F

′′y (t) = F ′′

x (t)F ′y(t)

• Approach 1: Cut curves at critical points

• Approach 2: New types of elementary curves

∗ S-, X- and I-elementary

• Approach 3: Isolate critical points

∗ New separation bounds

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 170: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

58What about Non-Elementary Curves?

• F (t) is critical iff

∗ stationary: F ′x(t) = F ′

y(t) = 0

∗ x-extreme: F ′x(t) = 0, F ′

y(t) 6= 0

∗ inflection: F ′x(t)F

′′y (t) = F ′′

x (t)F ′y(t)

• Approach 1: Cut curves at critical points

• Approach 2: New types of elementary curves

∗ S-, X- and I-elementary

• Approach 3: Isolate critical points

∗ New separation bounds

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 171: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

58What about Non-Elementary Curves?

• F (t) is critical iff

∗ stationary: F ′x(t) = F ′

y(t) = 0

∗ x-extreme: F ′x(t) = 0, F ′

y(t) 6= 0

∗ inflection: F ′x(t)F

′′y (t) = F ′′

x (t)F ′y(t)

• Approach 1: Cut curves at critical points

• Approach 2: New types of elementary curves

∗ S-, X- and I-elementary

• Approach 3: Isolate critical points

∗ New separation bounds

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 172: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

58What about Non-Elementary Curves?

• F (t) is critical iff

∗ stationary: F ′x(t) = F ′

y(t) = 0

∗ x-extreme: F ′x(t) = 0, F ′

y(t) 6= 0

∗ inflection: F ′x(t)F

′′y (t) = F ′′

x (t)F ′y(t)

• Approach 1: Cut curves at critical points

• Approach 2: New types of elementary curves

∗ S-, X- and I-elementary

• Approach 3: Isolate critical points

∗ New separation bounds

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 173: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

58What about Non-Elementary Curves?

• F (t) is critical iff

∗ stationary: F ′x(t) = F ′

y(t) = 0

∗ x-extreme: F ′x(t) = 0, F ′

y(t) 6= 0

∗ inflection: F ′x(t)F

′′y (t) = F ′′

x (t)F ′y(t)

• Approach 1: Cut curves at critical points

• Approach 2: New types of elementary curves

∗ S-, X- and I-elementary

• Approach 3: Isolate critical points

∗ New separation bounds

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 174: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

58What about Non-Elementary Curves?

• F (t) is critical iff

∗ stationary: F ′x(t) = F ′

y(t) = 0

∗ x-extreme: F ′x(t) = 0, F ′

y(t) 6= 0

∗ inflection: F ′x(t)F

′′y (t) = F ′′

x (t)F ′y(t)

• Approach 1: Cut curves at critical points

• Approach 2: New types of elementary curves

∗ S-, X- and I-elementary

• Approach 3: Isolate critical points

∗ New separation bounds

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 175: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

59Separation Bound for Critical Points

• E.g., singular cubic Bezier.

• Prove separation bound ∆4 > 0 such that:

∗ Distinct critical points are ≥ ∆4 apart

∗ If q is critical and q 6∈ F then d(q, F ) ≥ ∆4

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 176: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

59Separation Bound for Critical Points

• E.g., singular cubic Bezier.

• Prove separation bound ∆4 > 0 such that:

∗ Distinct critical points are ≥ ∆4 apart

∗ If q is critical and q 6∈ F then d(q, F ) ≥ ∆4

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 177: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

59Separation Bound for Critical Points

• E.g., singular cubic Bezier.

• Prove separation bound ∆4 > 0 such that:

∗ Distinct critical points are ≥ ∆4 apart

∗ If q is critical and q 6∈ F then d(q, F ) ≥ ∆4

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 178: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

59Separation Bound for Critical Points

• E.g., singular cubic Bezier.

• Prove separation bound ∆4 > 0 such that:

∗ Distinct critical points are ≥ ∆4 apart

∗ If q is critical and q 6∈ F then d(q, F ) ≥ ∆4

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 179: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

60Separation Bound for Critical Points

• THEOREM

Let diam(F ) < ∆4. Then F contains critical point

iff:

∗ (Stationary) CH(∇P (F )) contains (0, 0)

∗ (x-Extreme) (∇p1).x(∇pm).x ≤ 0

and (∇p1).y(∇pm).y > 0∗ (Inflexion) orient(p0, p1, p2)orient(pm−2, pm−1, pm) <

0

• COROLLARY: If diam(F ) < ∆4, and CH(F ) ∩CH(G) 6= ∅, then we can detect any intersection

involving critical points.

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 180: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

60Separation Bound for Critical Points

• THEOREM

Let diam(F ) < ∆4. Then F contains critical point

iff:

∗ (Stationary) CH(∇P (F )) contains (0, 0)

∗ (x-Extreme) (∇p1).x(∇pm).x ≤ 0

and (∇p1).y(∇pm).y > 0∗ (Inflexion) orient(p0, p1, p2)orient(pm−2, pm−1, pm) <

0

• COROLLARY: If diam(F ) < ∆4, and CH(F ) ∩CH(G) 6= ∅, then we can detect any intersection

involving critical points.

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 181: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

60Separation Bound for Critical Points

• THEOREM

Let diam(F ) < ∆4. Then F contains critical point

iff:

∗ (Stationary) CH(∇P (F )) contains (0, 0)

∗ (x-Extreme) (∇p1).x(∇pm).x ≤ 0

and (∇p1).y(∇pm).y > 0∗ (Inflexion) orient(p0, p1, p2)orient(pm−2, pm−1, pm) <

0

• COROLLARY: If diam(F ) < ∆4, and CH(F ) ∩CH(G) 6= ∅, then we can detect any intersection

involving critical points.

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 182: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

60Separation Bound for Critical Points

• THEOREM

Let diam(F ) < ∆4. Then F contains critical point

iff:

∗ (Stationary) CH(∇P (F )) contains (0, 0)

∗ (x-Extreme) (∇p1).x(∇pm).x ≤ 0

and (∇p1).y(∇pm).y > 0∗ (Inflexion) orient(p0, p1, p2)orient(pm−2, pm−1, pm) <

0

• COROLLARY: If diam(F ) < ∆4, and CH(F ) ∩CH(G) 6= ∅, then we can detect any intersection

involving critical points.

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 183: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

60Separation Bound for Critical Points

• THEOREM

Let diam(F ) < ∆4. Then F contains critical point

iff:

∗ (Stationary) CH(∇P (F )) contains (0, 0)

∗ (x-Extreme) (∇p1).x(∇pm).x ≤ 0

and (∇p1).y(∇pm).y > 0∗ (Inflexion) orient(p0, p1, p2)orient(pm−2, pm−1, pm) <

0

• COROLLARY: If diam(F ) < ∆4, and CH(F ) ∩CH(G) 6= ∅, then we can detect any intersection

involving critical points.

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 184: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

60Separation Bound for Critical Points

• THEOREM

Let diam(F ) < ∆4. Then F contains critical point

iff:

∗ (Stationary) CH(∇P (F )) contains (0, 0)

∗ (x-Extreme) (∇p1).x(∇pm).x ≤ 0

and (∇p1).y(∇pm).y > 0∗ (Inflexion) orient(p0, p1, p2)orient(pm−2, pm−1, pm) <

0

• COROLLARY: If diam(F ) < ∆4, and CH(F ) ∩CH(G) 6= ∅, then we can detect any intersection

involving critical points.

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 185: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

60Separation Bound for Critical Points

• THEOREM

Let diam(F ) < ∆4. Then F contains critical point

iff:

∗ (Stationary) CH(∇P (F )) contains (0, 0)

∗ (x-Extreme) (∇p1).x(∇pm).x ≤ 0

and (∇p1).y(∇pm).y > 0∗ (Inflexion) orient(p0, p1, p2)orient(pm−2, pm−1, pm) <

0

• COROLLARY: If diam(F ) < ∆4, and CH(F ) ∩CH(G) 6= ∅, then we can detect any intersection

involving critical points.

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 186: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

61

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 187: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

62Overall Algorithm Curves

• Generic subdivision algorithm: has queue Q0

containing pairs of curves (Fi, Gi), i ≥ 0.

• We now use 2 Queues, Q0 and Q1 for macro and

micro pairs

∗ (F,G) is a micro pair iff diam(F,G) ≤ ∆

• 2 Stages: macro stage and micro stage.

∗ Initially, Q0 = ((F,G)) and Q1 = ∅∗ First do macro stage, then micro stage

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 188: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

63• Macro Stage: acts like the generic subdivision

algorithm.

∗ But put pairs into macro or micro queue

• Micro Stage: extract (F ′, G′) from Q1 and apply

“micro process”.

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 189: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

64Micro Process

• Input: micro pair (F,G)

• Output: intersection reps

∗ 2 cases: base segments intersect or not

∗ Basic principle: do easy tests first

∗ Critical Point intersections can be directly detected

∗ Either output intersection rep, or call “tangential

process”

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 190: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

65Open Problems

• Remove requirement on antipodal pairs for (F,G).

• Prove conjecture about antipodal pairs

• Better Separation Bounds: exploit Bezier form

• Implementation and comparison

• Complexity Analysis

• Extensions to other curves and surfaces

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 191: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

66

III. QUADRIC SURFACESSkipped for time

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 192: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

67Conclusions

• First complete adaptive intersection algorithm

• Complicated, but most of cases are unlikely

• Adaptive complexity

• Micro stage may be fast

∗ Q1 is most likely small

• Arithmetic on algebraic numbers are possible via resultant

methods, but such methods are inefficient

• Algebraic numbers can be manipulated numerically and

compared exactly if you know root bounds

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 193: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

67Conclusions

• First complete adaptive intersection algorithm

• Complicated, but most of cases are unlikely

• Adaptive complexity

• Micro stage may be fast

∗ Q1 is most likely small

• Arithmetic on algebraic numbers are possible via resultant

methods, but such methods are inefficient

• Algebraic numbers can be manipulated numerically and

compared exactly if you know root bounds

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 194: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

67Conclusions

• First complete adaptive intersection algorithm

• Complicated, but most of cases are unlikely

• Adaptive complexity

• Micro stage may be fast

∗ Q1 is most likely small

• Arithmetic on algebraic numbers are possible via resultant

methods, but such methods are inefficient

• Algebraic numbers can be manipulated numerically and

compared exactly if you know root bounds

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 195: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

67Conclusions

• First complete adaptive intersection algorithm

• Complicated, but most of cases are unlikely

• Adaptive complexity

• Micro stage may be fast

∗ Q1 is most likely small

• Arithmetic on algebraic numbers are possible via resultant

methods, but such methods are inefficient

• Algebraic numbers can be manipulated numerically and

compared exactly if you know root bounds

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 196: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

67Conclusions

• First complete adaptive intersection algorithm

• Complicated, but most of cases are unlikely

• Adaptive complexity

• Micro stage may be fast

∗ Q1 is most likely small

• Arithmetic on algebraic numbers are possible via resultant

methods, but such methods are inefficient

• Algebraic numbers can be manipulated numerically and

compared exactly if you know root bounds

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 197: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

67Conclusions

• First complete adaptive intersection algorithm

• Complicated, but most of cases are unlikely

• Adaptive complexity

• Micro stage may be fast

∗ Q1 is most likely small

• Arithmetic on algebraic numbers are possible via resultant

methods, but such methods are inefficient

• Algebraic numbers can be manipulated numerically and

compared exactly if you know root bounds

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 198: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

67Conclusions

• First complete adaptive intersection algorithm

• Complicated, but most of cases are unlikely

• Adaptive complexity

• Micro stage may be fast

∗ Q1 is most likely small

• Arithmetic on algebraic numbers are possible via resultant

methods, but such methods are inefficient

• Algebraic numbers can be manipulated numerically and

compared exactly if you know root bounds

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 199: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

68

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 200: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

69EXERCISES

• Give a direct algorithm for computing intersection of Bezier curves, assuming there are

NO tangential intersection

∗ HINT: Easiest to just adapt my algorithm above!

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 201: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

69EXERCISES

• Give a direct algorithm for computing intersection of Bezier curves, assuming there are

NO tangential intersection

∗ HINT: Easiest to just adapt my algorithm above!

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 202: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

70REFERENCE

• Chapter on curves in [Mehlhorn-Yap]

• Paper on Bezier Curves by Chee

“A rapacious monster lurks within every

computer, and it dines exclusively on accurate

digits.”

– B.D. McCullough (2000)

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005

Page 203: Lecture 5 Numeric-Algebraic Computation with Curves · 2013. 2. 22. · Lecture 5 1 Numeric-Algebraic Computation with Curves Chee Yap Courant Institute of Mathematical Sciences New

71

THE END

KAIST/JAIST Summer School of Algorithms Lectures on Exact Computation. Aug 8-12, 2005


Recommended