Qualitative Symbolic Perturbation

In a classical Symbolic Perturbation scheme, degeneracies are handled by substituting some polynomials in ε for the inputs of a predicate. Instead of a single perturbation, we propose to use a sequence of (simpler) perturbations. Moreover, we look at their eﬀects geometrically instead of algebraically; this allows us to tackle cases that were not tractable with the classical algebraic approach


Introduction
In earlier computational geometry papers, the treatment of degenerate configurations was mainly ignored.However, degenerate situations actually do occur in practice.When data are highly degenerate by nature, a direct handling of special cases in a particular algorithm can be efficient [3].But in many situations, degeneracies happen only occasionally, and perturbation schemes are an easy and efficient generic solution.Controlled perturbations [11] combine increasing arithmetic precision together with actual displacement of the data, and eventually compute a non-degenerate configuration.On the other hand, the use of a symbolic perturbation allows a geometric algorithm or data structure that was originally designed without addressing degeneracies, to still operate on degenerate cases, without concretely modifying the input [7,14,15].Actually, similar strategies were often used by earlier implementors of simple geometric algorithms, without identifying them as symbolic perturbations: for instance when incrementally computing a convex hull, when the new inserted point was lying on a facet of the convex hull, the point was decided to be inside the convex hull.
Let G(u) be a geometric structure defined when the input data u satisfies some nondegeneracy assumptions, and let u 0 be some input that is degenerate for G.A symbolic perturbation consists in using as input u for G a continuous function π(u 0 , ε) of a parameter ε.This is done in such a way that for ε = 0, π(u 0 , 0) is equal to u 0 , and π(u 0 , ε) is non-degenerate for G for sufficiently small positive values of ε.In that case the structure G(u 0 ) is defined as the limit of G(π(u 0 , ε)) when ε → 0 + .
A symbolic perturbation allows an algorithm that computes G(u) in generic situations to compute G(u 0 ) for the degenerate input u 0 .Most decisions made by the algorithm are usually made by looking at geometric predicates, which are combinations of elementary predicates.An elementary predicate is the sign of a continuous real function of the input.The general position assumption is that such a function p never returns 0. When applying a symbolic perturbation, a predicate sign(p(u)) evaluated at u 0 returns the limit of sign(p(π(u 0 , ε))) as ε → 0 + .The sign of p(u 0 ) can thus be evaluated, provided that p(π(u 0 , ε)) is not identically equal to 0 for ε in an open interval (0, a ) for some a > 0. A perturbation scheme is said to be effective for a predicate sign(p(u)) if for any u 0 the function ε → p(π(u 0 , ε)) is never the null function on any open interval (0, a), with a ≤ a .
The main difficulty when designing a perturbation scheme for G(u) is to find a function π(u 0 , ε), such that the perturbation scheme can be proved to be effective for all relevant functions p(u), and the perturbed predicates are easy to evaluate, e.g., using as few as possible arithmetic operations.The work of designing and proving the effectiveness of a perturbation for G is typically tailored to a specific algorithm for computing the geometric structure G.
In previous works [1,6,7,8,12], a predicate is the sign of a polynomial P in some input u ∈ R m .The input u is perturbed as an element π(u 0 , ε) of R m whose coordinates are polynomials in u 0 and ε, such that π(u 0 , ε) goes to u 0 when ε → 0 + .In the perturbed setting, the predicate returns the sign of the limit lim ε→0 + sign(P (π(u 0 , ε))).Since P is a polynomial, P (π(u 0 , ε)) can be rewritten as a polynomial in ε whose monomials in ε are ordered in terms of increasing degree.The constant monomial is actually P (u 0 ), while the signs of the remaining coefficients can be viewed as auxiliary predicates on u 0 .The coefficients of P (π(u 0 , ε)) are evaluated in increasing degrees in ε, until a non-vanishing coefficient is found.The sign of this coefficient is then returned as the value of the predicate sign(P (u 0 )).

Contribution
In this paper we propose QSP (Qualitative Symbolic Perturbation), a new framework for resolving degenerate configurations in geometric computing.Unlike classical symbolic perturbation techniques, QSP resolves degeneracies in a purely geometric manner, and independently of a specific algebraic formulation of the predicate.So, the technique is particularly suitable for predicates whose algebraic description is not unique or too complicated, such as the ones treated in this paper.In fact, QSP can even handle predicates that are signs of non-polynomial functions.
In addition, instead of having a single perturbation parameter that governs the way the input objects and/or predicates are modified, QSP allows for a sequence of perturbation parameters: conceptually, we symbolically perturb the input objects one-by-one, using a welldefined canonical ordering that corresponds to considering first the object that is perturbed most.To achieve termination, we must devise an appropriate sequence of perturbations which guarantees that eventually, i.e., after having perturbed sufficiently many input objects, the degenerate predicate is resolved in a non-degenerate manner.The number of objects that need to be perturbed depends on the specific predicate that we analyze.For example in the 2D Apollonius diagram, for a given predicate, perturbing a single object always suffices, whereas in its 3D counterpart, we may need to perturb two input objects.
Standard algebraic symbolic perturbation schemes [7,8,12] automatically provide us with the auxiliary predicates that we need to evaluate.These predicates are, by design, of at most the same algebraic degree as the original predicate, but evaluating them in an efficient manner (e.g., by factorizing the predicate) is far from being an obvious task.QSP schemes cannot guarantee that the auxiliary predicates are not more complicated algebraically (i.e., are of lower algebraic degree) from the original predicate; however, in principle, the auxiliary predicates that we have to deal with are expected to be more tractable, since their analysis is based on geometric considerations.As for any perturbation scheme, QSP assumes exact arithmetic to detect degeneracies.Degeneracies are rare enough to allow high efficiency using the exact geometric computing paradigm [16].
In the next section of the paper we formally define the QSP framework.In Section 3 we describe QSP schemes for the main predicates of the 2D Apollonius diagram.In the full version of the paper [5], we apply our technique to the 3D Apollonius diagram and to the arrangement of circles.We end with Section 4, where we discuss the advantages and disadvantages of our framework, and indicate directions for future research.

General framework
Let us start with two easy observations about the limit of the sign of a function of two variables.

Preliminary observations
The first observation allows us to swap the order of evaluation of limits:
The function has constant sign s on (0, δ] × (0, ∞) so the limit is s.

2.2
The QSP scheme the whole input u; however, in practice, a predicate depends only on a constant size subset of u.We design the perturbation scheme π as a sequence of successive perturbations π i , The number of perturbations N is part of the perturbation scheme and usually depends on the input size.The perturbations are numbered by increasing order of magnitude, i.e., ε i is considered much bigger than ε j if i > j.Since ε is no longer a single real number, we have to determine how the limit is taken; we thus define G(u) to be the limit: QSP implies an evaluation strategy of this limit, as follows.The perturbed predicate lim is evaluated by first computing p(π(u, (0, 0, . . ., 0)))) = p(u), and returning its sign if it is non-zero.If p(u) = 0, we look at the function p(π(u, (0, 0, . . ., ε ; if this function is not vanishing when ε N−1 lies in a sufficiently small neighborhood to the right of 0, its sign can be returned.More formally, we compute the limit If 1 is non-zero, using Observation 1, it is returned as the value of the predicate sign(p(u)).Otherwise, we have to further perturb our geometric input; we examine the limit (2) The expression in Eq.( 2) can be simplified in cases that actually often occur in applications In such a case, and provided that this function is also non-zero, we can evaluate its sign using Observation 2: by taking ε N−1 = 0, Eq.( 2) boils down to The process is iterated until a non-zero limit is found.In very degenerate situations, when the µ − 1 first limits evaluate to 0, i.e., 1 = 2 = . . .= µ−1 = 0, we need to evaluate Similarly to what we described for 2 above, it is frequently the case that the sign of p(π(u, (0, 0, . . ., 0, ε N −µ+1 , . . ., ε N−1 ))) does not depend on ε N −µ+1 , . . ., ε N−1 in a neighborhood of 0 in R µ−1 ; then the simplified evaluation allowed by Observation 2 gives: To assert that the perturbation scheme π is effective, we need to prove that one of these limits is indeed non-zero.When the predicate is a polynomial, we get a sequence of successive evaluations as in algebraic symbolic perturbations; however, the expressions that need to be evaluated have been obtained in a different way and are a priori different.The main advantage of this approach is that we may use a very simple perturbation π ν , since we do not need each perturbation π ν to be effective, but rather the composed perturbation π.For geometric problems, the simplicity of π ν allows us to look at the limit in a geometric manner, instead of algebraically computing some appropriate coefficient of p(π(u, ε)).

First example: orientation of a flat triangle
Let p(u) = x 0 x 3 − x 1 x 2 and u 0 = (q, q ) = ((1, 1), (2, 2)).QSP defines the result for sign(p(u 0 )), the orientation of Oqq , as A standard evaluation of this expression would consist in taking the limits in order: Following the QSP evaluation strategy instead, in such a case, the biggest perturbation, i.e., the perturbation on x 3 , allows to quickly conclude.The only computed limit is the one in Eq. ( 1): The geometric interpretation is that we get the orientation of a triangle Oqq * for a point q * slightly above q .

Qualitative Symbolic Perturbation
In this case, the QSP evaluation strategy is to first compute 1 = lim ε3→0 + sign(p((0, 1), (0, 2 + ε 3 ))) = lim ε3→0 + 0 = 0, which does not allow us to resolve the degeneracy.Then we observe that sign(p((0, 1), (x 2 , x 3 )) = sign(−x 2 ) does not depend on x 3 , thus we can evaluate 2 using Eq. ( 3): Two perturbations π 3 and π 2 must be used, but the simplified evaluation of 2 suffices.The geometric interpretation is that we look at the orientation of a triangle Oqq * for a moved point q * .Since moving q * slightly above q doesn't change anything to the degeneracy, the point is moved to the right, which resolves the degeneracy.

Third example: points and quadratic form
2 and u 0 = (q, q ) = ((0, 2), (0, 1)).The predicate p stands for the difference of a degenerate quadratic form evaluated at q and q .QSP defines the result for sign(p(u 0 )) as which could be evaluated as follows: Again the evaluation strategy first computes 1 = lim ε3→0 + sign(p((0, 2), (0, 1 + ε 3 ))) = lim ε3→0 + 0 = 0, which does not allow us to resolve the degeneracy.Then we observe that sign(p((0, 2), (x 2 , x 3 ))) = sign(x 2 (x 3 − 1) + x 2 2 ) actually depends on x 3 , thus we must evaluate 2 using Eq. ( 2): Notice that since sign(p((2, 0), (x 2 , x 3 ))) depends on x 3 , the simplified evaluation of Eq. ( 3) would have given a wrong result: The geometric interpretation is that q and q are both on one of the two lines defined by the quadratic equation x(y − 1) − x 2 = 0. Point q is first slightly moved upwards but this motion leaves it on that same line, then it is moved to the right, and the sign of the quadratic form depends on the vertical position of q with respect to the other line.
A fourth toy example illustrating a non-polynomial predicate is given in the full version [5].

Multiple epsilons
The idea of utilizing multiple perturbation parameters is already present in Yap's scheme [14], or very recently in Irving and Green's work [10], but without the geometric interpretation allowed by QSP.In other previous works, such as SoS [7], the algebraic symbolic perturbation framework was proved to be effective by a careful choice of the exponents for ε, depending on the choice of G(u), so as to make some terms negligible.QSP can be forced to fit in such a traditional framework, with a single epsilon, by making all the variables ε ν dependent on a single parameter κ that plays the traditional role of ε.For polynomial predicates, it is enough to take ε ν exponentially increasing with respect to ν.For example one such choice can be to set ε N−1 = κ, and The interest of QSP, however, is not to use this traditional view, but rather have the variables ε ν independent; this decoupling allows for additional flexibility, and, in particular, permits us to think of the sequence of perturbations in geometric terms.

Efficiency
The aim of a perturbation scheme is to solve degeneracies, and a common assumption is that such degeneracies are rare enough so that some extra time can be spent to make a reliable decision when a degeneracy happens.Another implicit assumption is that degeneracies are actually detected, that is, it is implicitly assumed that the original predicates are computed exactly, possibly with some filtering mechanism to ensure efficiency [16].
Nevertheless, the actual additional complexity in case of degeneracy must be addressed.Since QSP is geometrically defined and addresses very general problems, such a complexity analysis cannot be done at the general level.For the two applications described in this paper, the extra predicates needed to resolve the degeneracy have the same complexity as the original ones, while the number of epsilons used to perturb is not bigger than two.
QSP, as many other perturbation schemes, relies on an indexing of the input.However, as mentioned earlier, a given predicate usually depends on a constant number of input objects.It is important to keep in mind that the comparison of indices is necessary only for the few objects involved in a given predicate; sorting the whole input with respect to indices is not required.

Generality
In the first three toy examples above, SoS would have taken ε 0 = ε 8 , ε 1 = ε 4 , ε 2 = ε 2 , and ε 3 = ε, which yields the same result as QSP.When it leads to a simple result, the classical algebraic view is a very good solution.However, if the original predicate is a bit intricate, the algebraic way will produce numerous extra predicates to resolve degeneracies.Moreover, as for any predicate, some custom work is often still needed on the polynomial to evaluate it efficiently, e.g., finding a good factorization.
QSP provides a very general approach that is able to handle various predicates, even non-polynomial (as in the fourth example described in [5]).Of course applying this scheme to a given problem requires some problem-specific work, but, as noted in the previous paragraph, this is also often the case for the above-mentioned algebraic approaches.In algebraic approaches, obtaining the coefficient of ε i in a suitable way for an efficient evaluation is a non-trivial task; the task is even harder when the predicate does not boil down to evaluating a single polynomial, as it is the case for Apollonius predicates, which we present in the sequel.

Qualitative Symbolic Perturbation
We would not advise the use of QSP for simple cases such as Delaunay triangulations of points where other approaches work well [6], but rather only in cases where the predicates are very complex or non-polynomial.The applications below use high degree polynomials and QSP is a good solution.As far as we know, no other perturbation scheme has ever been proposed for Apollonius diagrams.Regarding intersections of circles, we successfully addressed the predicate comparing the abscissas of intersection of circles, using QSP [5].The only other result that we know of for perturbing this predicate was recently obtained by Irving and Green [10]; it uses a pseudo-random scheme.

Meaningfulness
According to a classification by Seidel [13], QSP is (geometrically) meaningful, that is we have some control on the direction (in input data space) used to move away from the degeneracies.For example, for the Apollonius diagram we will choose to minimize the number of Apollonius vertices (it is also possible to choose to maximize it).QSP is not independent of indexing, but if this indexing is geometrically meaningful, then we can ensure invariance with respect to some geometric transformations.

3
The Apollonius diagram

Definition
The Given a set of weighted points, also called sites, it is clear that adding the same constant to all weights does not change the Apollonius diagram.Thus, in the sequel, we may freely translate the weights to ensure, for example, that all weights are positive, or that a particular weight is zero.A site (s, w), w ≥ 0, can be identified with the sphere S centered at s and of radius w.The distance from a query point r to a site S = (s, w) is the Euclidean distance from r to S, with a negative sign if r lies inside S.
An Apollonius vertex v is a point at the same distance from d + 1 sites S 0 , S 1 , . . ., S d in general position.We call the configuration external if v is outside sphere S i , for all i = 0, . . ., d, and internal if it is inside the spheres.If the configuration is external (resp., internal), v is the center of a sphere externally (resp., internally) tangent to the sites S i (see green (resp., dark green) disks in figure above).It is always possible to ensure an external configuration locally by adding a suitable constant to the weights of all S i , such that all weights are non-negative, while the smallest among them is equal to zero.
Let us show that d + 1 sites in general position define 0, 1 or 2 Apollonius vertices.Assume, without loss of generality, that all weights are non-negative for i = 1, . . ., d and w 0 = 0, so as to have an external configuration.Consider now the inversion with point s 0 as the pole.The point s 0 goes to infinity, while each sphere S i , i = 1, . . ., d becomes a new sphere Z i = (z i , ρ i ).Determining the balls B α (where α indexes the different solutions) tangent to the spheres S i , i = 0, . . ., d is equivalent to determining halfspaces delimited by the hyperplanes T α tangent to the spheres Z i , i = 1, . . ., d, with all spheres on the same side of T α .Requiring that a given B α is externally tangent to the spheres S i is equivalent to requiring that T α separates the spheres Z i from the origin.The normalized equation of T α : The spheres Bα externally tangent to the sites S i , i = 0, . . ., d, correspond, via the inversion transformation with s0 as the pole, to hyperplanes Tα tangent to the spheres Z i that separate them from the origin.
In the inverted space, the general position hypothesis means that the spheres Z i do not have an infinity of tangent hyperplanes; the latter can occur only if the points z i (and thus the points s i ) are affinely dependent.Therefore, the system (4) of one quadratic and d linear equations in d + 1 unknowns (λ α ∈ R d and δ α ∈ R) has at most two real solutions by Bézout's theorem, hence the first claim follows.Depending on the position of the origin with respect to T α (or equivalently on the sign of δ α ), zero, one or both solutions may correspond to external configurations.An Apollonius vertex is actually defined by a sequence of d + 1 sites in general position, up to a positive permutation of the sequence.Indeed, in the previous paragraph, if there are two solutions T α and T α , we observe that they are symmetric with respect to the hyperplane spanned by the points z i , thus the d-simplex formed by the tangency points and the origin has different orientations for the two solutions.This implies that the two solutions can be distinguished by the signature of the permutation of the spheres S i .
If Tα and T α are both external, the simplices formed by the tangency points and the origin have different orientations.

The VConflict predicate
Several predicates are necessary to compute an Apollonius diagram.We start with the vertex conflict predicate VConflict(S v , Q), which answers the following question: Does an Apollonius vertex v defined, up to a positive permutation, by a (d + 1)-tuple of sites S v = (S i0 , S i1 , . . ., S i d ) remain as a vertex of the diagram after another site Q is added?
If the site centered at v and tangent to the sites of the tuple S v is in internal configuration, we can add a negative constant to the radii of all spheres in S v ∪ {Q} so that the smallest site in S v has zero radius.Then the configuration of the common tangent sphere becomes external.In this manner, we can always restrict our analysis to the case where the Apollonius vertex we consider is in external configuration.Note that this may lead to a negative weight w q for Q, which was a priori excluded above, but is treated below.< 0, we define Q − as the sphere with the same center s q as Q and radius −w q .Then VConflict ..i d and is tangent to its boundary.

S S −
"degenerate" Qualitative perturbation of the VConflict predicate QSP relies on some ordering of the sites.Each site S ν = (s ν , w ν ) is perturbed to S ε = (s ν , w ν +ε ν ), ε ν ≥ 0, with S λ perturbed more than S ν if λ > ν.Following the QSP framework, if the configuration is still degenerate after we have enlarged the site of maximum index, then we enlarge the site with the second largest index, and so on.As mentioned in the general presentation (Section 2.4), we need only consider the sites involved in the predicate, and enlarge them one-by-one until the resulting configuration is non-degenerate, in which case the predicate is resolved.Sites are sorted internally in the predicate, among a constant number of objects; there is no need for sorting the sites, with respect to their index, globally.
Any indexing can be used.We choose what we call the max-weight indexing that assigns a larger index to the site with larger weight.As a result, a site with larger weight is perturbed more, and in order to resolve the predicate we need to consider the sites in order of decreasing weights, until the degeneracy is resolved.To break ties between sites with the same weights, we use the lexicographic comparison of their centers: among two sites with the same weight, the site whose center is lexicographically smaller than the other is assigned a smaller max-weight index.The max-weight indexing has the strong advantage of being geometrically meaningful.It favors sites with larger weights, so, if two sites are internally tangent, then the site with the larger weight will be perturbed more, in which case the site with the smallest weight will be inside the interior of the other site, and its Apollonius region will disappear in the perturbed diagram.As a first consequence, this indexing minimizes the number of Apollonius regions in the diagram, or, equivalently it maximizes the number of hidden sites in the diagram.Secondly, and most importantly, the tangency points of the sites with the Apollonius sites that they define in the diagram are pairwise distinct.This property makes the analysis of the perturbed predicates much simpler, whereas the Apollonius diagram computed does not exhibit pathological cases, such as Apollonius regions with empty interiors.Some inevitable degenerate constructions, such as zero-length Apollonius edges, are handled seamlessly by the method.As a final comment, the max-weight scheme can be used to resolve the degeneracies of all predicates described by Emiris and Karavelas for the 2D case [9].o 1 = "collinear".In this case α = π, and the line through t j and t k coincides with the line through s j and s k .Hence: Orientation(t j , t k , t q ) = Orientation(s j , s k , s q ) (see Q n (resp., Q c ) in the figure (top) to illustrate a position of Q not in conflict (resp., in conflict)).o 1 = "ccw".In this case α > π.We start by evaluating o 2 = Orientation(s j , v ijk , s q ).If o 2 = "ccw" (see Q c in the figure (middle)), t q lies to the right of the line through t j and t k , and thus Orientation(t j , t k , t q ) = "cw".Otherwise, we need to evaluate the orientation S o C G 2 0 1 6

33:14
Qualitative Symbolic Perturbation o 3 = Orientation(v ijk , s k , s q ); then Orientation(t j , t k , t q ) = "ccw" if and only if o 3 = "ccw" (see Q n and Q c in the figure (middle)).o 1 = "cw".In this case α < π.We start by evaluating o 2 = Orientation(s j , v ijk , s q ).If o 2 = "cw", t q lies to the left of the line through t j and t k , and thus Orientation(t j , t k , t q ) = "ccw" (see Q n in the figure (bottom)).Otherwise, we need to evaluate the orientation o 3 = Orientation(v ijk , s k , s q ); then Orientation(t j , t k , t q ) = "cw" if and only if o 3 = "cw" (see Q c and Q n in the figure (bottom)).
To summarize, the evaluation of Step 7 requires at most three orientation tests involving an Apollonius vertex and two sites; one may be obtained as a subproduct of Step 1, while the other two require work similar to the work performed for Step 1.Thus, the evaluation of Step 7 does not increase the algebraic degree of the VConflict predicate.

Conclusion
In this extended abstract, a new framework for dealing with geometric degeneracies has been proposed: QSP, and its application to a predicate used in the computation of the 2D Apollonius diagram.In the full paper we extend the result to the 3D Apollonius diagram and to the computation of arrangement of arcs of circles in the plane.All these predicates are predicates of medium degree (8 to 28) and have complicated algebraic expressions that make them difficult to combine with classical algebraic perturbation schemes.Conversely to usual approaches for symbolic perturbation, the new framework does not rely on a particular algebraic description of the predicate, but rather directly on its geometric description.
A QSP scheme consists of a sequence of perturbations, but given a specific predicate only a few of these perturbations are really active.The number of active perturbations used to resolve a specific predicate depends on the problem at hand.For the 2D Apollonius diagram perturbing one site always suffices.In its 3D counterpart we may need to perturb two sites, whereas in the case of circular arcs we may need perform a rotation (perturb the axes) and perturb up to one supporting circle per predicate.Minimizing the number of active perturbations is not necessarily desirable, since it might result in a more complicated design for the perturbed predicate (for example, trying to resolve degeneracies for the trapezoidal map of circular arcs with a single active perturbation seems much more complicated).
Besides the number of active perturbations, another important issue is the ordering of the perturbations: for the Apollonius diagram we consider sites by decreasing weight, whereas for the trapezoidal map of circular arcs we first consider a (global) rotation and then the circles by means of decreasing radius.Different perturbation sequences than the ones described in this paper are definitely possible; the analysis, however, can become unnecessarily more complicated.
Our qualitative symbolic perturbation framework, and in particular the schemes described in this paper, can also be applied to a variety of other problems, such as the 2D Voronoi diagram of disjoint convex objects under any L p metric, as well as the Euclidean Voronoi diagram of certain disjoint convex objects in 3D (the objects can be, for example, nonintersecting lines, line segments or rays).It suffices to replace a site S i with its Minkowski sum with a ball of radius ε i , and then consider the limits ε i → 0 + , for an appropriately defined ordering of the sites.Another type of geometric problem, involving complex predicates, for which the QSP framework is relevant, is the computation of lines tangent to four given lines in 3D [2,4].

Observation 1 .Observation 2 .
Let f be a continuous function of two variables (a, b) defined in a neighborhood of the origin.Let lim b→0 + signf (0, b) be denoted as s.If s = 0 then lim b→0 + lim a→0 + signf (a, b) = s.Proof.Let us assume that s = 0.There exists δ > 0 such that ∀b ∈ (0, δ], signf (0, b) = s.For any b fixed in (0, δ] the function f (a, b) is a continuous function in variable a, thus lim a→0 + f (a, b) = f (0, b) and, since s = 0, f does not vanish when a is in a neighborhood of 0. We have lim a→0 + signf (a, b) = signf (0, b) = s.For any b ∈ (0, δ] the function lim a→0 + signf (a, b) is the constant function of value s.So its limit is s when b → 0 + .The second observation formalizes a situation that is in fact trivial.Let f be a continuous function in two variables (a, b) defined in a neighborhood of the origin.Assume that ∀b, b ≥ 0, signf (a, b) = signf (a, b ).Then lim b→0 + lim a→0 + signf (a, b) = lim a→0 + signf (a, 0).
We denote by B i0i1...i d the open ball whose closure B i0i1...i d is tangent to the sites of S v .The contact points t i0 , t i1 , . . ., t i d define a positively oriented d-simplex.If w q ≥ 0, the predicate VConflict(S v , Q) answers "conflict" if Q intersects B i0i1...i d , "no conflict" if Q and B i0i1...i d are disjoint, "degenerate" if Q and B i0i1...i d do not intersect, while Q and B i0i1...i d are tangent.If w q