For introduction of the fundamental concept of cycle in the context of MoebInv library see the Jupyter notebook What is a cycle?
Let us start from the familiar case of circles. The graphical view represents a two-dimensional plane—the collection of points with coordinates (x,y). We will call it the point space.
A circle with centre (x0,y0) and radius r is described by equations
(x−x0)2+(y−y0)2=r2. (2) |
It can be equivalently written as:
x2+y2−2x0x−2y0y+m=0 where m=x02+n2−r2. (3) |
Thus we will use the four real numbers (k,l,n,m) to represent a cycle
k(x2+y2)−2lx−2ny+m=0 . (4) |
Clearly coefficients (k,l,n,m) and (λ k, λ l, λ n, λ m) with a non-zero real λ represent the same cycle and will be considered equivalent. Thus we can view a cycle either as the geometric set of points (u,v) satisfying the equation (4) or equivalent tuples (λ k, λ l, λ n, λ m), λ ≠ 0 of coefficients. The former viewpoint was already called point space and the later will be labelled as the cycle space.
It is interesting to make a generalisation by defining a cycle by the equation
k(x2 − σ y2)−2lx−2ny+m=0 , where σ =−1, 0, or 1. (5) |
That is for the three values of the parameter σ we obtain equations of circles, parabolas and hyperbolas. Therefore, these three situations are called elliptic, parabolic, and hyperbolic metrics in the point space.
It is turn out that the cycle space can be also meaningfully equipped with metric of these three flavours. There is an cycle product of cycles C1 and C2 with the explicit expression
⟨C1,′ 2⟩σ =−2l1 l2+ 2 σn1 n2+m1k2+m2k1 . (6) |
It has several important properties:
The three values σ =−1, 0, or 1 in the cycle product (6) are called elliptic, parabolic and hyperbolic metric in the cycle space, respectively. The Yaglom allows to switch to combination of metrics in point and cycle spaces at any time.
We need a vocabulary, which translates geometric properties of cycles on the point space to corresponding relations in the cycle space. The key ingredient is the cycle product (6). As usual, the relation ⟨C1,′ 2 ⟩=0 is called the orthogonality of cycles C1 and C2. If metrics of point and cycles spaces agree, the orthogonality corresponds to orthogonality of cycles in the point space in the respective metrics.
As was pointed out above the orthogonality is a liner condition on the cycles’ coefficients. However, certain other relations, e.g. tangency of cycles, involve polynomials of cycle products and thus are non-linear. For a successful algorithmic implementation, the following observation is important: all non-linear conditions below can be linearised if the additional quadratic condition of normalisation type is imposed:
⟨ ⟨ | C,C | ⟩ ⟩ | =±1. (7) |
Here we provide connections of the cycle product with other cycle relations discussed in § 2.4.
⟨ ⟨ | C,G | ⟩ ⟩ | 2 = | ⟨ ⟨ | C,C | ⟩ ⟩ | ⟨ ⟨ | G ,G | ⟩ ⟩ | ⎛ ⎝ | or | ⎡ ⎣ | C,G | ⎤ ⎦ | =± 1 | ⎞ ⎠ | . (8) |
⟨ ⟨ | C,G | ⟩ ⟩ | = ± | √ |
| . (9) |
⟨ ⟨ | C,G | ⟩ ⟩ | = θ | √ |
| √ |
| (10) |
If we are looking for a cycle C with a given inversive distance θ to a given cycle G , then the normalisation (7) again turns the defining relation (10) into a linear with respect to parameters of the unknown cycle C.
d= | ⟨ ⟨ | C,G | ⟩ ⟩ | + | √ |
| √ |
| , (11) |
If we replace C by the cycle C1=1/√⟨C,C ⟩C satisfying (7), the identity (11) becomes:
d· k= | ⟨ ⟨ | C1,G | ⟩ ⟩ | + | √ |
| , (12) |
where k=1/√⟨C,C ⟩ is the coefficient in front of the quadratic term of C1. The last identity is linear in terms of the coefficients of C1.
[C1, C2; C3, C4]= |
| : |
| (13) |
Summing up: if an unknown cycle is connected to already given cycles by any combination of the above relations, then all conditions can be expressed as a system of linear equations for coefficients of the unknown cycle and at most one quadratic equation (7).