## 5 Algorithm Synthesis  
Taking into account Formulas (1)-(35), we synthesize an algorithm for approximating the workspace of a parallel manipulator. The left sides of the system of inequalities (8) are coordinate functions in the form \(g_{j}(x)\), \(j\in 1,\ldots,6\): \(g_{1}=l_{min}-l_{1}\), \(g_{2}=l_{min}-l_{2}\), \(g_{3}=l_{min}-l_{3}\), \(g_{4}=l_{1}-l_{max}\), \(g_{5}=l_{2}-l_{max}\), \(g_{6}=l_{3}-l_{max}\). Let us approximate the set of solutions of system (8) for transferring the constraint of input coordinates according to (7) and (19) into the space of coordinates \(z_{1},\theta,\psi\) of the moving platform. The approximated set is a covering consisting of n-dimensional boxes. To do this, we will set the initial box B, which is guaranteed to include all possible positions of the movable platform. Let \(m(B)=\max\limits_{j=1,\ldots,6}\min\limits_{x\in B}g_{i}(x)\) and \(M(B)=\max\limits_{j=1,\ldots,6}\max\limits_{x\in B}g_{i}(x)\). If \(m(B)>0\), then B does not contain possible points for system (8) and is excluded. If \(M(B)\leq 0\), then each point of the box \(B\) is a solution to the system (8). Based on this, let us add B to the coverage as an inner box. In other cases, the box is divided into two equal boxes along the larger edge, and for each of them, the procedure is repeated until their diameter is less than the specified approximation accuracy \(\delta\). After that, the remaining boxes are checked for intersections and singularity zones. Taking this into account, the resulting constraints in the form of a set of boxes are transferred to the coordinate space of the end effector \(x_{O^{\prime}}^{(Z)},\ y_{O^{\prime}}^{(Z)},\ z_{O^{\prime}}^{(Z)}\) as a partially ordered set of integers. The set has the following structure--the values \(x_{O^{\prime}}^{(Z)}\), as well as the corresponding values of \(y_{O^{\prime}}^{(Z)}\), are ordered in ascending order, and the values \(z_{O^{\prime}}^{(Z)}\) corresponding to each of \(y_{O^{\prime}}^{(Z)}\) are ordered in ascending order and consecutive ones are combined into intervals. To transfer the constraints, we divide each of the boxes describing the constraints in the space \(z_{1},\theta,\psi\) by a uniform mesh along each axis. We calculated for each of the grid nodes the values \(x_{O^{\prime}}^{(Z)},\ y_{O^{\prime}}^{(Z)},\ z_{O^{\prime}}^{(Z)}\) using (4) and (5). Let us arrange the set of calculated values \(x_{O^{\prime}}^{(Z)},\ y_{O^{\prime}}^{(Z)}\) and \(z_{O^{\prime}}^{(Z)}\).  
The synthesized algorithm is implemented in a C ++ program. The sets of boxes are represented as a vector using the _vector_ standard library. A vector consists of elements, the number of which is equal to the number of boxes. Each element consists of 2n numbers,  
Figure 5: Checking the intersection of links for case 2 —(a) no intersection for \(u_{2}=0\), (b) no intersection for \(u_{2}>0\), (c) intersection for \(u_{2}=0\), (d) intersection for \(u_{2}>0\).  
that is, for each of the n dimensions of the box, two numbers describe the beginning and end of the interval. A partially ordered set of integers is similarly represented as a vector, but with a different structure. The vector has a three-level structure. Each of the first level elements includes the corresponding vector of elements of the second level and one number. The number is the \(x_{O^{\prime}}^{(Z)}\) value. Each of the elements of the second level similarly includes the corresponding vector of elements of the third level and number, while the number is the value \(y_{O^{\prime}}^{(Z)}\). Each of the elements of the third level includes only two numbers describing the beginning and end of the intervals of values \(z_{O^{\prime}}^{(Z)}\). Let us simulate the workspace of a parallel manipulator using distributed computing to determine \(m(B)\) and \(M(B)\), implemented using the OpenMP library [23].