1 Introduction

Distance Geometry (DG) deals with calculation of points using distances between some of them [30, 31]. One of the most important applications of DG is related to the determination of 3D protein structures using distance data from Nuclear Magnetic Resonance (NMR) experiments [11, 27, 34, 40]. For other applications and more information about DG, see [4, 5, 32, 33, 36].

Given a graph \(G=(V,E,d)\), where V represents the set of atoms of a molecule and E is the set of atom pairs for which a distance is available (defined by \(d:E\rightarrow (0,\infty )\)), the Molecular Distance Geometry Problem (MDGP) is to find a function \(x:V\rightarrow \mathbb {R}^{3} \) that associates each element of V with a point in \(\mathbb {R}^{3}\) in such a way that the Euclidean distances between the points correspond to the values given by d [30].

Information from protein geometry and NMR data allow us to solve the MDGP using a combinatorial method, called Branch-and-Prune (BP) [7, 29]. The discrete MDGP is called the Discretizable MDGP (DMDGP), which is based on a vertex order \( v_{1},...,v_{n}\in V\), also given as input of the problem [8, 15, 25, 26, 35]. Formally, the DMDGP is defined as follows [19, 20] (we denote \(x_{i}\) instead of \( x(v_{i})\) and \(d_{i,j}\) instead of \(d(v_{i},v_{j})\)):

Definition 1

Given a simple undirected graph \(G=(V,E,d)\), whose edges are weighted by \( d:E\rightarrow (0,\infty )\), and a vertex order \(v_{1},...,v_{n}\in V\), such that

  1. 1.

    For \(v_{1},v_{2},v_{3}\in V\), there exist \(x_{1},x_{2},x_{3}\in \mathbb {R}^{3}\) satisfying the given distances;

  2. 2.

    For \(i>3\),

    $$\begin{aligned} \{\{v_{i-3},v_{i}\},\{v_{i-2},v_{i}\},\{v_{i-1},v_{i}\}\}\subset E \end{aligned}$$
    (1)

and

$$\begin{aligned} d_{i-3,i-2}+d_{i-2,i-1}>d_{i-3,i-1}, \end{aligned}$$
(2)

find a function \(x:V\rightarrow \mathbb {R}^{3}\) satisfying

$$\begin{aligned} \forall \{v_{i},v_{j}\}\in E,\text { }||x_{i}-x_{j}||=d_{i,j}. \end{aligned}$$
(3)

Property 1 avoids solutions modulo rotations and translations and Property 2 allows us to calculate the two possible positions for \(v_{4}\). For each position for \(v_{4}\), we have other two for \(v_{5}\), and so on, implying that the DMDGP search space is finite [20].

For \(i>3\), we may also have \(\{v_{j},v_{i}\}\in E\), \(j<i-3\), adding another equation (\(||x_{i}-x_{j}||=d_{j,i}\)) to the system related to \(v_{i}\):

$$\begin{aligned} ||x_{i}-x_{i-1}||= & {} d_{i-1,i}, \nonumber \\ ||x_{i}-x_{i-2}||= & {} d_{i-2,i}, \\ ||x_{i}-x_{i-3}||= & {} d_{i-3,i}. \nonumber \end{aligned}$$
(4)

We obtain a unique solution \(x_{i}^{*}\) for \(v_{i}\), supposing \( ||x_{i}^{*}-x_{j}||=d_{j,i}\) and that the points \( x_{i-1},x_{i-2,}x_{i-3},x_{j}\in \mathbb {R}^{3}\) are not in the same plane. If both possible positions for \(v_{i}\) are unfeasible with respect to additional distances \(d_{j,i}\), \(j<i-3\), it is necessary to consider the other possible position for \(v_{i-1}\) and repeat the procedure. Essentially, this is what the BP algorithm does [20].

Since distances \(d_{i-1,i}\) and \(d_{i-2,i}\) are related to bond lengths and bond angles of a protein, they can be considered precise values. This may not happen to distances \(d_{j,i}\), \(j\le i-3\), since they may be provided by NMR experiments [28, 40]. In [21], distances \(d_{j,i}\) are represented as interval distances \([\underline{d}_{j,i}, \overline{d}_{j,i}]\), \(\underline{d}_{j,i}\le d_{j,i}\le \overline{d}_{j,i} \), and an extension of the BP algorithm, called iBP, is proposed. The idea is to sample values from intervals \([\underline{d}_{i-3,i}, \overline{d}_{i-3,i}]\) in order to solve the associated system to calculate positions to \(v_{i}\), which implies that, choosing many values, the search space increases exponentially, and for small samples, a solution may not be found [1, 9, 10, 16, 37, 39].

Geometrically, even considering interval distances, solving systems like (4) is to intersect spheres and spherical shells centered at the positions for vertices \(v_{i-1},v_{i-2},v_{i-3},v_{j}\) (\(j<i-3\)) with radius \(d_{i-1,i},d_{i-2,i},[\underline{d}_{i-3,i},\overline{d}_{i-3,i}],[ \underline{d}_{j,i},\overline{d}_{j,i}]\), respectively.

In [2, 3], Conformal Geometric Algebra (CGA) was used to model uncertainties in the DMDGP, for the branching phase of iBP (intersection of two spheres and a spherical shell), and, in [24], the Oriented CGA (OCGA) [6] was applied for the pruning phase of iBP (when additional spherical shells must be considered in the intersection). Another CGA approach is discussed in [13].

We present new results that simplify the calculations in the pruning phase of iBP algorithm.

Next section explains how CGA and OCGA replace the classical approach for solving the DMDGP and Sect. 3 provides our contribution.

2 Conformal Geometric Algebra (CGA) and Oriented CGA (OCGA) for the iBP Algorithm

2.1 CGA for Branching

Replacing \(d_{i-3,i}\in \mathbb {R}\) by interval distance \([\underline{d} _{i-3,i},\overline{d}_{i-3,i}]\) in (4), we have to intersect two spheres with one spherical shell resulting in two arcs, instead of two points in \(\mathbb {R}^{3}\) (see Fig. 1).

Fig. 1
figure 1

Intersection of two spheres and a spherical shell resulting in two arcs

The points \(\underline{P_{i}^{0}},\underline{P_{i}^{1}}\) and \(\overline{P_{i}^{0}},\overline{P_{i}^{1}}\), from the intersection of spheres centered at the positions for \(v_{i-1},v_{i-2},v_{i-3}\) with radius \( d_{i-1,i},d_{i-2,i},\underline{d}_{i-3,i}\) and \(d_{i-1,i},d_{i-2,i}, \overline{d}_{i-3,i}\), respectively (see Fig. 1), can be obtained from the point pairs generated by

$$S_{i-1,i}\wedge S_{i-2,i}\wedge \underline{S}_{i-3,i} \text{ and } S_{i-1,i}\wedge S_{i-2,i}\wedge \overline{S}_{i-3,i},$$

where underline and overline indicate the use of \(\underline{d} _{i-3,i}\) and \(\overline{d}_{i-3,i}\), respectively [2] (in the conformal model, \(S_{i,j}\) is the sphere centered at the position for vertex \(v_{i}\) with radius \(d_{i,j}\)).

With the starting and the ending point of an arc, we can define a rotor, for \(i\ge 4\), given by

$$\begin{aligned} R_{i}=\cos \left( \frac{\lambda _{i}}{2}\right) -\sin \left( \frac{\lambda _{i}}{2}\right) z_{i}^{*}, \end{aligned}$$
(5)

where \(\lambda _{i}\in [0,\; \phi _{i}]\) is the rotation angle corresponding to the arcs \(\underline{P_{i}^{0}}\overline{P_{i}^{0}}\) and \(\underline{P_{i}^{1}} \overline{P_{i}^{1}}\) (see Fig. 1), \(z_{i}^{*}\) is the dual of \(z_{i}\), and

$$\begin{aligned} z_{i}=X_{i-2}\wedge X_{i-1}\wedge e_{\infty }, \end{aligned}$$

since the rotation axis of \(R_{i}\) is defined by \(X_{i-2}\) and \(X_{i-1}\) (the positions for \(v_{i-2}\) and \(v_{i-1}\) in the conformal model). Note that \(\phi _{i}\), \(i\ge 4\), can be computed apriori based on the given intervals \([\underline{d}_{i-3,i},\overline{d}_{i-3,i}]\) and the DMDGP definition [2].

In order to consider the effect of changing points in the arcs (to avoid the sampling process), the rotation axes of the rotors must be replaced by (see [3])

$$\begin{aligned} z_{i}=\left( R_{i}\cdots R_{4}\right) \left( \underline{P_{i-2}^{b}}\wedge \underline{P_{i-1}^{b}}\wedge e_{\infty }\right) \left( R_{4}^{-1}\cdots R_{i}^{-1}\right) , \end{aligned}$$

implying that

$$\begin{aligned} X_{i}^{b}(\lambda _{4},\ldots ,\lambda _{i})=\left( R_{i}\cdots R_{4}\right) \underline{P_{i}^{b}}\left( R_{4}^{-1}\cdots R_{i}^{-1}\right) , \end{aligned}$$

for \(i\ge 4\). The values \(b\in \{0,1\}\) are defined when iBP chooses one of the branches in the search tree [3].

Note that, when all distances \(d_{i-3,i}\) are precise values, i.e. \( \phi _{i}=0\) for \(i\ge 4\),

$$\begin{aligned} X_{i}^{b}(0,\ldots ,0)=\underline{P_{i}^{b}}=\overline{P_{i}^{b}}. \end{aligned}$$

2.2 OCGA for Pruning

During the pruning phase of iBP, when additional spherical shells must be considered, the arc orientation is even more important. In [24], this was done using the Oriented Conformal Geometric Algebra (OCGA) [6], which is an extension of the Oriented Projective Geometry [38].

First, we define an orientation for the circle obtained from the intersection \({S_{i-1,i}\wedge S_{i-2,i}}\) (Fig. 2), given by

$$\begin{aligned} C_{i}=\underline{P_{i}^{0}}\wedge \overline{P_{i}^{0}}\wedge \overline{P_{i}^{1}}. \end{aligned}$$

Since \(C_{i}\) is a trivector in the conformal space, its dual \(C_{i}^{*}\) is a bivector orthogonal to the plane that contains the circle \(C_{i}\), which implies that the line

$$\begin{aligned} C_{i}^{*}\wedge e_{\infty } \end{aligned}$$

is oriented according to \(C_{i}\).

Fig. 2
figure 2

Oriented circle \(C_i\)

Using the normalized bivector dual to the rotation axis \(C_{i}^{*}\wedge e_{\infty }\), we can define \(z_i^{*}\) in a different way, that carries the orientation of \(C_i\). The associated rotor \(R_{i}\) is now defined by:

$$\begin{aligned} R_{i}=\cos \left( \frac{\lambda _{i}}{2}\right) -\sin \left( \frac{\lambda _{i}}{2}\right) z_{i}^{*},\text { }0\le \lambda _{i}\le \phi _{i}, \end{aligned}$$

where

$$\begin{aligned} z_{i}=\frac{C_{i}^{*}\wedge e_{\infty }}{||C_{i}^{*}\wedge e_{\infty }||}\text {.} \end{aligned}$$

Supposing that for \(v_{i}\), \(i>4\), there is a pruning edge \( \{v_{j},v_{i}\}\in E\), \(j<i-3\), with interval distance \([\underline{d}_{j,i}, \overline{d}_{j,i}]\), and denoting by \(\underline{P_{j}^{0}}\overline{ P_{j}^{0}}\) and \(\underline{P_{j}^{1}}\overline{P_{j}^{1}}\) the arcs obtained from the intersections \(S_{i-1,i}\wedge S_{i-2,i}\wedge \underline{S}_{j,i}\) and \(S_{i-1,i}\wedge S_{i-2,i}\wedge \overline{S}_{j,i}\), we compute the new starting and ending points of the associated rotors doing the following calculations [24] (all the possible cases are illustrated in Fig. 3):

$$\begin{aligned} t_{1}=(\underline{P_{j}^{0}}\wedge \overline{P_{i}^{0}}\wedge \overline{P_{i}^{1}})C_{i}\text {, }t_{2}=(\underline{P_{i}^{0}}\wedge \underline{P_{j}^{0}}\wedge \overline{P_{i}^{1}})C_{i} \end{aligned}$$

and

$$\begin{aligned} t_{1}=(\overline{P_{j}^{0}}\wedge \overline{P_{i}^{0}}\wedge \overline{P_{i}^{1}})C_{i}\text {, }t_{2}=(\underline{P_{i}^{0}}\wedge \overline{P_{j}^{0}}\wedge \overline{P_{i}^{1}})C_{i}, \end{aligned}$$

where

$$\begin{aligned} C_{i}=\underline{P_{i}^{0}}\wedge \overline{P_{i}^{0}}\wedge \overline{P_{i}^{1}}. \end{aligned}$$

The same procedure must be done for \(\underline{P_{j}^{1}}\) and \(\overline{P_{j}^{1}}\).

Fig. 3
figure 3

Possible cases for intersecting arcs

3 New Approach for iBP Prunning Phase

Considering a circle C, obtained from the intersection of spheres \(S_{1}\) and \(S_{2}\), we obtain

$$\begin{aligned} C=S_{1}\wedge S_{2}\Rightarrow \left( \frac{C}{||C||}\right) ^{*}= \frac{S_{1}^{*}\wedge S_{2}^{*}}{||S_{1}^{*}\wedge S_{2}^{*}||}. \end{aligned}$$

Since C can also be defined by three points \(P_{1},P_{2},\,P_{3}\in C\), let us suppose that

$$\begin{aligned} \left( \frac{P_{1}\wedge P_{2}\wedge P_{3}}{||P_{1}\wedge P_{2}\wedge P_{3}|| }\right) ^{*}= \frac{S_{1}^{*}\wedge S_{2}^{*}}{||S_{1}^{*}\wedge S_{2}^{*}||} . \end{aligned}$$

For other three points \(Q_{1},Q_{2},\,Q_{3}\in C\), but with opposite orientation, we have

$$\begin{aligned} \left( \frac{Q_{1}\wedge Q_{2}\wedge Q_{3}}{||Q_{1}\wedge Q_{2}\wedge Q_{3}|| }\right) ^{*}=-\left( \frac{P_{1}\wedge P_{2}\wedge P_{3}}{||P_{1}\wedge P_{2}\wedge P_{3}||}\right) ^{*}. \end{aligned}$$

Thus, for any three distinct points in C, given by \(S_{1}\wedge S_{2}\), the expression \(\left( \frac{C}{||C||}\right) ^{*}\) is constant (up to a sign ±). This implies that to distinguish the orientation of two trivectors that define C, it is enough to check the signs of some fixed coordinate (\(\ne 0\)) of the trivectors.

For example, for points \(P_{1},P_{2},\,P_{3}\in C\), with

$$\begin{aligned} P_{1}= & {} e_{0}+x_{1}e_{1}+x_{2}e_{2}+x_{3}e_{3}+\frac{1}{2} ||(x_{1},x_{2},x_{3})||^{2}e_{\infty }, \\ P_{2}= & {} e_{0}+y_{1}e_{1}+y_{2}e_{2}+y_{3}e_{3}+\frac{1}{2} ||(y_{1},y_{2},y_{3})||^{2}e_{\infty }, \\ P_{3}= & {} e_{0}+z_{1}e_{1}+z_{2}e_{2}+z_{3}e_{3}+\frac{1}{2} ||(z_{1},z_{2},z_{3})||^{2}e_{\infty }, \end{aligned}$$

and choosing the coordinate of

$$\begin{aligned} e_{1}\wedge e_{2}\wedge e_{0} \end{aligned}$$

of the trivector \(P_{1}\wedge P_{2}\wedge P_{3}\), we have to calcultate

$$\begin{aligned} x_{1}y_{2}-x_{2}y_{1}-(x_{1}-y_{1})z_{2}+(x_{2}-y_{2})z_{1}. \end{aligned}$$
(6)

From Sect. 2, in order to know the position of \(\underline{P_{j}^{0}}\) (obtained from the intersection \(S_{i-1,i}\wedge S_{i-2,i}\wedge \underline{S}_{j,i}\)), in terms of arc \(\underline{P_{i}^{0}}\overline{P_{i}^{0}}\), we have to calculate

$$\begin{aligned} t_{1}=(\underline{P_{j}^{0}}\wedge \overline{P_{i}^{0}}\wedge \overline{P_{i}^{1}})C_{i}\text { and }t_{2}=(\underline{P_{i}^{0}}\wedge \underline{P_{j}^{0}}\wedge \overline{P_{i}^{1}})C_{i}. \end{aligned}$$

Using the new idea, in addition to avoid two trivector products, we just calculate (and compare the signs) expressions like (6): one for \( \underline{P_{j}^{0}}\wedge \overline{P_{i}^{0}}\wedge \overline{P_{i}^{1}}\) and another for \(\underline{P_{i}^{0}}\wedge \underline{P_{j}^{0}}\wedge \overline{P_{i}^{1}}\).

Without loss of generality, let us suppose that the sign of expression (6), associated to the points \(\underline{P_{j}^{0}},\overline{P_{i}^{0}}, \overline{P_{i}^{1}}\), is positive, denoted by

$$\begin{aligned} \left[ \underline{P_{j}^{0}},\overline{P_{i}^{0}},\overline{P_{i}^{1}}\right] >0. \end{aligned}$$

So, all the cases illustrated in Fig. 3 are given, respectively, by

  • Case 1:

    $$\begin{aligned} \left[ \underline{P_{j}^{0}},\overline{P_{i}^{0}},\overline{P_{i}^{1}}\right]> & {} 0 \\ \left[ \underline{P_{i}^{0}},\underline{P_{j}^{0}},\overline{P_{i}^{1}} \right]< & {} 0 \\ \left[ \overline{P_{j}^{0}},\overline{P_{i}^{0}},\overline{P_{i}^{1}}\right]> & {} 0 \\ \left[ \underline{P_{i}^{0}},\overline{P_{j}^{0}},\overline{P_{i}^{1}}\right]> & {} 0 \end{aligned}$$
  • Case 2:

    $$\begin{aligned} \left[ \underline{P_{j}^{0}},\overline{P_{i}^{0}},\overline{P_{i}^{1}}\right]> & {} 0 \\ \left[ \underline{P_{i}^{0}},\underline{P_{j}^{0}},\overline{P_{i}^{1}} \right]> & {} 0 \\ \left[ \overline{P_{j}^{0}},\overline{P_{i}^{0}},\overline{P_{i}^{1}}\right]< & {} 0 \\ \left[ \underline{P_{i}^{0}},\overline{P_{j}^{0}},\overline{P_{i}^{1}}\right]> & {} 0 \end{aligned}$$
  • Case 3:

    $$\begin{aligned} \left[ \underline{P_{j}^{0}},\overline{P_{i}^{0}},\overline{P_{i}^{1}}\right]> & {} 0 \\ \left[ \underline{P_{i}^{0}},\underline{P_{j}^{0}},\overline{P_{i}^{1}} \right]> & {} 0 \\ \left[ \overline{P_{j}^{0}},\overline{P_{i}^{0}},\overline{P_{i}^{1}}\right]> & {} 0 \\ \left[ \underline{P_{i}^{0}},\overline{P_{j}^{0}},\overline{P_{i}^{1}}\right]> & {} 0 \end{aligned}$$
  • Case 4:

    $$\begin{aligned} \left[ \underline{P_{j}^{0}},\overline{P_{i}^{0}},\overline{P_{i}^{1}}\right]< & {} 0 \\ \left[ \underline{P_{i}^{0}},\underline{P_{j}^{0}},\overline{P_{i}^{1}} \right]> & {} 0 \\ \left[ \overline{P_{j}^{0}},\overline{P_{i}^{0}},\overline{P_{i}^{1}}\right]< & {} 0 \\ \left[ \underline{P_{i}^{0}},\overline{P_{j}^{0}},\overline{P_{i}^{1}}\right]> & {} 0 \end{aligned}$$

3.1 Example

Let us consider the same example given in [24], that is, a DMDGP instance with the following data (all the calculations were done using GAALOP [18]):

$$\begin{aligned} d_{i-1,i}= & {} 1\text {, }i=2,...,6, \\ d_{i-2,i}= & {} \sqrt{3}\text {, }i=3,...,6, \\ d_{1,4}= & {} 2.15\text {, }d_{2,5}\in [2.20,2.60]\text {, }d_{3,6}\in [2.40,2.60], \\ d_{1,5}\in & {} [2.45,2.55]\text {.} \end{aligned}$$

Since \(d_{1,4}\) is also a precise value, we can fix the first four points, given by

$$\begin{aligned} x_{1}=\left[ \begin{array}{c} 0 \\ 0 \\ 0 \end{array} \right] \text {, }x_{2}=\left[ \begin{array}{c} -1 \\ 0 \\ 0 \end{array} \right] \text {, }x_{3}=\left[ \begin{array}{c} -1.5 \\ \frac{\sqrt{3}}{2} \\ 0 \end{array} \right] \text {, }x_{4}=\left[ \begin{array}{c} -1.311 \\ 1.552 \\ 0.702 \end{array} \right] \text {.} \end{aligned}$$

From the intersections of spheres \(\underline{S}_{2,5}\wedge S_{3,5}\wedge S_{4,5}\) and \(\overline{S}_{2,5}\wedge S_{3,5}\wedge S_{4,5}\), we obtain the arcs \(\underline{P_{5}^{0}}\overline{P_{5}^{0}}\) and \(\underline{P_{5}^{1}} \overline{P_{5}^{1}}\), defined by the points

$$\begin{aligned} \underline{P_{5}^{0}}= & {} e_{0}-0.409e_{1}+1.981e_{2}+0.753e_{3}+2.329e_{\infty }, \\ \underline{P_{5}^{1}}= & {} e_{0}-1.502e_{1}+1.350e_{2}+1.663e_{3}+3.422e_{\infty }, \\ \overline{P_{5}^{0}}= & {} e_{0}-1.386e_{1}+2.525e_{2}+0.484e_{3}+4.266e_{\infty }, \\ \overline{P_{5}^{1}}= & {} e_{0}-2.046e_{1}+2.144e_{2}+1.033e_{3}+4.966e_{\infty }. \end{aligned}$$

Using the interval distance \(d_{1,5}\), we calculate \(\underline{S} _{1,5}\wedge S_{3,5}\wedge S_{4,5}\) and \(\overline{S}_{1,5}\wedge S_{3,5}\wedge S_{4,5}\), giving the points

$$\begin{aligned} \underline{A_{5}^{0}}= & {} e_{0}-0.674e_{1}+2.299e_{2}+0.513e_{3}+3.001e_{\infty }, \\ \underline{A_{5}^{1}}= & {} e_{0}-1.260e_{1}+1.283e_{2}+1.664e_{3}+3.001e_{\infty }, \\ \overline{A_{5}^{0}}= & {} e_{0}-0.795e_{1}+2.377e_{2}+0.470e_{3}+3.251e_{\infty }, \\ \overline{A_{5}^{1}}= & {} e_{0}-1.407e_{1}+1.317e_{2}+1.670e_{3}+3.251e_{\infty }. \end{aligned}$$

With the orientation of \(C_{5}=S_{3,5}\wedge S_{4,5}\) defined by

$$\begin{aligned} C_{5}=\underline{P_{5}^{0}}\wedge \overline{P_{5}^{0}}\wedge \overline{P_{5}^{1}}\text {,} \end{aligned}$$

the calculations necessary to test if \(\underline{A_{5}^{0}}\in \underline{P_{5}^{0}}\overline{P_{5}^{0}}\), using the original strategy, are the following (\(e_{ij}=e_{i}\wedge e_{j}\) and \(E=e_{\infty }\wedge e_{0}\)):

$$\begin{aligned} C_{5}= & {} +0.732e_{12}\wedge e_{0}-0.715e_{13}\wedge e_{0}+0.197e_{23}\wedge e_{0}-1.634e_{13}\wedge e_{\infty } \\&-2.830e_{23}\wedge e_{\infty }+0.634e_{1}\wedge E+1.098e_{2}\wedge E-1.243e_{3}\wedge E+1.887e_{123}, \\ \underline{A_{5}^{0}}\wedge \overline{P_{5}^{0}}\wedge \overline{P_{5}^{1}}= & {} +0.421e_{12}\wedge e_{0}-0.411e_{13}\wedge e_{0}+0.113e_{23}\wedge e_{0}-0.940e_{13}\wedge e_{\infty } \\&-1.628e_{23}\wedge e_{\infty }+0.365e_{1}\wedge E+0.631e_{2}\wedge E-0.715e_{3}\wedge E+1.085e_{123}, \\ \underline{P_{5}^{0}}\wedge \underline{A_{5}^{0}}\wedge \overline{P_{5}^{1}}= & {} +0.478e_{12}\wedge e_{0}-0.467e_{13}\wedge e_{0}+0.128e_{23}\wedge e_{0}-1.067e_{13}\wedge e_{\infty } \\&-1.848e_{23}\wedge e_{\infty }+0.414e_{1}\wedge E+0.717e_{2}\wedge E-0.811e_{3}\wedge E+1.232e_{123} \end{aligned}$$

and

$$\begin{aligned} \left( \underline{A_{5}^{0}}\wedge \overline{P_{5}^{0}}\wedge \overline{P_{5}^{1}}\right) C_{5}= & {} 0.468, \\ \left( \underline{P_{5}^{0}}\wedge \underline{A_{5}^{0}}\wedge \overline{P_{5}^{1}}\right) C_{5}= & {} 0.531. \end{aligned}$$

However, using the proposed approach, we just calculate the coordinates of \({ e_{12}\wedge e_{0}}\), using (6):

$$\begin{aligned} \left[ \underline{A_{5}^{0}},\overline{P_{5}^{0}},\overline{P_{5}^{1}}\right]= & {} (-0.674)(2.525)-(2.299)(-1.386) \\&-(-0.674+1.386)(2.144)+(2.299-2.525)(-2.046) \\= & {} 0.421, \end{aligned}$$

      

$$\begin{aligned} \left[ \underline{P_{5}^{0}},\underline{A_{5}^{0}},\overline{P_{5}^{1}} \right]= & {} (-0.409)(2.299)-(1.981)(-0.674) \\&-(-0.409+0.674)(2.144)+(1.981-2.299)(-2.046) \\= & {} 0.478. \end{aligned}$$

Since \(\left[ \underline{A_{5}^{0}},\overline{P_{5}^{0}},\overline{P_{5}^{1}} \right] >0\) and \(\left[ \underline{P_{5}^{0}},\underline{A_{5}^{0}}, \overline{P_{5}^{1}}\right] >0\), we conclude that

$$\begin{aligned} \underline{A_{5}^{0}}\in \underline{P_{5}^{0}}\overline{P_{5}^{0}}. \end{aligned}$$

4 Conclusion and Acknowledgements

The first mathematical relationship between Distance Geometry and Geometric Algebra was established by Dress and Havel, in 1993 [14]. Since 2015 [22], the connection between the DMDGP and Geometric Algebra has been studied, becoming part of the relevant and challenging applications of Conformal Geometric Algebra [12, 17, 23].

We would like to thank Sebastià Xambó for the organization of the minisymposium “Systems, Patterns and Data Engineering with Geometric Calculi”, at the ICIAM 2019, and to encourage us to write this work. We are also grateful to the Brazilian research agencies CNPq and FAPESP for the support and to the reviewer’s comments.