Top Banner
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
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

Aug 21, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
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