# A Parallel Algorithm for Dividing Octonions
## 1 Introduction  
The dynamic development of science and technology of data processing as well as the need to implement more and more complex problems and practical applications require the use of ever more complex mathematical methods and formalisms. Currently, the algebra of hypercomplex numbers [1] is increasingly used for the synthesis, description, and implementation of highly efficient numerical algorithms in the field of digital signals, like in [2; 3; 4; 5] where the analysis of complex signals was extended to multidimensional hypercomplex signals and hypercomplex digital signal processing. Frequency-domain adaptive filters used for the derivation of the most popular algorithms for a wide variety of signals, from real-valued ones to hypercomplex-valued signals are presented in [6]. The use of hypercomplex numbers for image recognition, due to their internal correlation, is a more natural fit for recognition of multicolor patterns than does the use of color vector spaces [7; 8]. Similarly, the use of complex numbers with their internal correlation allows for a more complete analysis of the image [9; 10], or analyse the various watermarking techniques [11]. Hypercomplex numbers are widely used in robotics, in rotation and moving of robot manipulators [12; 13; 14], in automation for the analysis of multidimensional spaces [11; 15], or in wireless data transmission [16]. Deep neural networks are also a popular area of application for hypercomplex numbers: quaternion valued neural network [17; 18] and octonion valued neural network [19; 20]. A promising area also seems to be the application of hypercomplex numbers to big data analysis, e.g., in parallel training architecture for large-scale convolutional neural networks [21], in parallel extreme learning machine [22; 23; 24], in cloud computing service system based on big data [25], in blockchain [26; 27], or in IoT [28]. In all of the above cases, the use of octonions in parallel algorithms can provide significant benefits, due to the internal relations of hypercomplex numbers. When performing the aforementioned hypercomplex-valued algorithms, the most time-consuming macro operations are multiplication and division, since they require several dozen of the nested real multiplications and additions [29; 30]. For natural reasons, the intention of developers of highly efficient algorithms for processing hypercomplex data has always been to look for ways to reduce the number of arithmetic operationsin these algorithms. This, in particular, refers to the minimization of the number of real multiplications, which from the very beginning of the development of computerization has been the most time-consuming operation in the entire set of data processing operations. As for the operation of multiplying hypercomplex numbers, everything is more or less clear. Quite a lot of efficient algorithms for multiplying hypercomplex numbers have been developed. However, if various hypercomplex numbers have already been invented, then it would be good to have efficient algorithms on hand to perform all the defined mathematical operations on those numbers. Nevertheless, fast algorithms for dividing hypercomplex numbers are practically not described anywhere. The only exception is the fast quaternion division algorithm [31]. To eliminate this disadvantage, the authors proposed an algorithm for the fast division of octonions. Thus, the purpose of this article is to present the original results of the synthesis of a rationalized algorithm for calculating the quotient of two octonions, which requires fewer real multiplications compared to the direct naive calculation method at the cost of some increase in the number of real additions. The paper is organized as follows: The next section presents a short background of dividing two octonions. The main chapter, which presents the synthesis of a fast algorithm for octonion division is given in Section 3. Evaluation of computational complexity of proposed algorithm is provided in Section 4.