Derivation of a low multiplicative complexity algorithm for multiplying ...

2 downloads 0 Views 173KB Size Report
Keywords: hyperbolic octonion, multiplication of hypercomplex numbers, fast algorithms. 1. ..... where sign “ ⊕ ” – denotes the direct sum of two matrices [24],.
Derivation of a low multiplicative complexity algorithm for multiplying hyperbolic octonions Aleksandr Cariow, Galina Cariowa, Jarosław Knapiński Faculty of Computer Sciences and Information Technologies, Żołnierska 52 71-210 Szczecin, Poland {atariov, gtariova, jknapinski}@wi.zut.edu.pl tel. +48 91 4495573

Abstract. We present an efficient algorithm to multiply two hyperbolic (countercomplex) octonions. The direct multiplication of two hyperbolic octonions requires 64 real multiplications and 56 real additions. More effective solutions still do not exist. We show how to compute a product of the hyperbolic octonions with 26 real multiplications and 92 real additions. During synthesis of the discussed algorithm we use the fact that product of two hyperbolic octonions may be represented as a matrix–vector product. The matrix multiplicand that participates in the product calculating has unique structural properties that allow performing its advantageous factorization. Namely this factorization leads to significant reducing of the computational complexity of hyperbolic octonions multiplication. Keywords: hyperbolic octonion, multiplication of hypercomplex numbers, fast algorithms.

1.

Introduction

The development of theory and practice of data processing as well as necessity of solving more and more complex problems of theoretical and applied computer science requires using advanced mathematical methods and formalisms. At present hypercomplex numbers [1] are seeing increased application in various fields of digital signal and image processing [2-5], computer graphics and machine vision [6, 7], telecommunications [810] and in public key cryptography [11]. Among other arithmetical operations in the hypercomplex algebras, multiplication is the most time consuming one. The reason for this is, because the usual multiplication of these numbers requires N ( N − 1) real additions and N 2 real multiplication. It is easy to see that the increasing of dimension of hypernumber increases the computational complexity of its multiplication. Therefore, reducing the computational complexity of the multiplication of hypercomplex numbers is an important theoretical and practical task. Efficient algorithms for the multiplication of various hypercomplex numbers already exist [12-21]. No such algorithms for the multiplication of the hyperbolic octonions have been proposed. In this paper, an efficient algorithm for this purpose is suggested.

2.

Preliminary Remarks A hyperbolic octonion can be defined as follows [22, 23]:

oˆ = b0 + b1e1 + b2 e2 + b3e3 + b4ε 4 + b5ε 5 + b6ε 6 + b7ε 7

(1)

where {bi }, i = 0,1,...,7 are real numbers, e1 , e2 , e3 are quaternion imaginary units, ε 4 (ε 42 = 1) is a counterimaginary unit, and the bases of hyperbolic octonions are defined as follows: e1ε 4 = ε 5 , e2ε 4 = ε 6 ,

e3ε 4 = ε 7 , (ε 52 = ε 62 = ε 72 = 1) [23]. The bases of hyperbolic octonions have multiplication rules as in Table 1:

1

Table 1. Rules for multiplication of hyperbolic octonion bases

× e1 e2 e3 e4 e5 e6 e7

e1 −1 − e3 e2 − ε5 − ε4

ε7 − ε6

e2 e3 −1 − e1 − ε6 − ε7 − ε4

ε5

e3 − e2 e1 −1 − ε7

ε4 ε5 ε6 ε7

ε5 ε6 ε7 ε4 − ε7 ε6 ε7 ε4 − ε5 ε4 − ε6 ε5

1

e1 1 − e3 e2

ε 6 − e1 − ε 5 − e2 − ε 4 − e3

e2 e3 1 − e1

e3 − e2 e1 1

Assume we want to compute the product of two hyperbolic octonions oˆ3 = oˆ1oˆ2 :

oˆ1 = x0 + x1e1 + x2 e2 + x3e3 + x4ε 4 + x5ε 5 + x6ε 6 + x7ε 7 , oˆ2 = b0 + b1e1 + b2 e2 + b3e3 + b4ε 4 + b5ε 5 + b6ε 6 + b7ε 7 , oˆ3 = y0 + y1e1 + y 2 e2 + y3e3 + y4ε 4 + y5ε 5 + y6ε 6 + y7ε 7 Using “pen and paper” method we can write:

oˆ3 = a0b0 + a0b1e1 + a0 b2 e2 + a0 b3e3 + a0b4ε 4 + a0 b5ε 5 + a0b6ε 6 + a0 b7ε 7 ,

+ a1b0e1 + a1b1e12 + a1b2e1e2 + a1b3e1e3 + a1b4e1ε 4 + a1b5e1ε 5 + a1b6 e1ε 6 + a1b7 e1ε 7 , + a2b0 e2 + a2b1e2 e1 + a2b2 e2 2 + a2b3e2e3 + a2b4 e2ε 4 + a2b5e2ε 5 + a2b6e2ε 6 + a2b7 e2ε 7 , + a3b0 e3 + a3b1e3e1 + a3b2 e3e2 + a3b3e3 2 + a3b4e3ε 4 + a3b5e3ε 5 + a3b6 e3ε 6 + a3b7 e3ε 7 , + a4b0ε 4 + a4b1ε 4e1 + a4b2ε 4 e2 + a4b3ε 4e3 + a4b4ε 4 2 + a4b5ε 4ε 5 + a4b6ε 4ε 6 + a4b7ε 4ε 7 , + a5b0ε 5 + a5b1ε 5e1 + a5b2ε 5e2 + a5b3ε 5e3 + a5b4ε 5ε 4 + a5b5ε 5 2 + a5b6ε 5ε 6 + a5b7ε 5ε 7 , + a6b0ε 6 + a6b1ε 6e1 + a6b2ε 6 e2 + a6b3ε 6e3 + a6b4ε 6ε 4 + a6b5ε 6ε 5 + a6b6ε 6 2 + a6b7ε 6ε 7 , + a7b0ε 7 + a7b1ε 7 e1 + a7b2ε 7 e2 + a7b3ε 7 e3 + a7 b4ε 7ε 4 + a7b5ε 7ε 5 + a7b6ε 7ε 6 + a7b7ε 7 2 . Then we have:

y0 = x0b0 − x1b1 − x2b2 − x3b3 + x4b4 + x5b5 + x6 p6 + x7 b7 , y1 = x0b1 + x1b0 + x2b3 − x3b2 + x4b5 − x5b4 + x6b7 − x7b6 , y2 = x0b2 − x1b3 + x2b0 + x3b1 + x4b6 − x5b7 − x6b4 + x7 b5 , y3 = x0b3 + x1b2 − x2b1 + x3b0 + x4b7 + x5b6 − x6b5 − x7b4 , y 4 = x0b4 + x1b5 + x2b6 + x3b7 + x4b0 − x5b1 − x6b2 − x7b3 , y5 = x0b5 + x1b4 − x2b7 + x3b6 − x4b1 + x5b0 − x6b3 + x7b2 , y6 = x0b6 + x1b7 + x2b4 − x3b5 − x4b2 + x5b3 + x6b0 − x7 b1 , y7 = x0b7 − x1b6 + x2b5 + x3b4 − x4b3 − x5b2 + x6b1 + x7 b0 . We can see that the schoolbook method of multiplication of two hyperbolic octonions requires 64 real multiplications and 56 real additions. In matrix notation, the above relations can be written more compactly as:

Y8×1 = B8 X8×1

(2)

where X 8×1 = [ x0 , x1 , x2 , x3 .x 4 , x5 , x6 , x7 ]Τ , Y8×1 = [ y 0 , y1 , y 2 , y3 . y 4 , y5 , y 6 , y 7 ]Τ ,

and 2

 b0 b  1  b2  b B8 =  3 b 4   b5 b  6  b7

− b1

− b2

− b3

b4

b5

b6

b0

b3

− b2

b5

− b4

b7

− b3

b0

b1

b6

− b7

− b4

b2

− b1

b0

b7

b6

− b5

b5

b6

b7

b0

− b1

− b2

b4

− b7

b6

− b1

b0

− b3

b7

b4

− b5

− b2

b3

b0

− b6

b5

b4

− b3

− b2

b1

b7  − b6  b5   − b4  , − b3   b2  − b1   b0 

The direct realization of (2) requires 64 real multiplications and 56 real additions too. We shall present the algorithm, which reduce arithmetical complexity to 26 real multiplications and 92 real additions.

3.

Synthesis of a rationalized algorithm for multiplying two hyperbolic octonions At first, we multiply by (-1) the sixth, seventh and eighth rows of the matrix B8 . Then we interchange the

first and the fifth column of this matrix and call the resulting matrix B′8 .

b4 b  5  b6  b B′8 =  7 b 0   b1 b  2  b3

− b1

− b2

− b3

b0

b5

b6

b0

b3

− b2

b1

− b4

b7

− b3

b0

b1

b2

− b7

− b4

b2

− b1

b0

b3

b6

− b5

b5

b6

b7

b4

− b1

− b2

− b4

b7

− b6

− b5

− b0

b3

− b7

− b4

b5

− b6

− b3

− b0

b6

− b5

− b4

− b7

b2

− b1

b7  − b6  b5   − b4  . − b3   − b2  b1   − b0 

Then we can write

Y8×1 = R 8(1) B′8 P8(1) X8×1 where

P8(1)

1   1   1  1           1 1     1 1  , R (1) =  . = 8 1    1     1 −1        1  −1      1  − 1

This transformation is done in order to present a modified in this manner matrix as an algebraic sum of the block-symmetric Toeplitz-type matrix and some sparse matrix, i.e. matrix containing only small number of nonzero elements. Now the matrix B′8 can be represented as an algebraic sum of a symmetric Toeplitz-type matrix and another matrix which has many zero elements B′8 = B′8′ + 2M 8( 0) :

3

      B′8′ =        

b4

− b1 − b 2 − b 3

b5 − b 0

b3 − b 2

b6 − b3 − b0 b7

b2

b0

b5

b1 − b 4

b6

b5

b6

b1 − b 4

b7

b2 −b7 − b4

b1

− b1 − b 0 b7

b7 − b6

b 2 − b7 − b 4 b3

b0

b3

b6 − b5

b4

− b1 − b 2

b5 − b 0

b3

b6 − b3 − b0

b5

b 6 − b5 − b 4

b7

b2

− b1

  b 7  − b 6    b 5   − b 4 , M ( 0) =   8  − b 3   − b 2    b1    − b 0

b0

04

b0 b0

04

− b5 −b6 − b7

      ,      

Taking into account a proposed decomposition, the computational procedure for multiplication hyperbolic octonions can be rewritten as follows: (1) ( 2) Y8×1 = R 8 Σ 8×16 (B′8′ ⊕ 2M 8 ( 0) )P16 ×8 P8 X 8×1

(3)

where sign “ ⊕ ” – denotes the direct sum of two matrices [24],

R 8 = diag (1,1,1,1,1,−1,−1,−1)

Σ8×16

1 1   1  1     1 1   1 1  , P ( 2) =   16×8 1 1   1 1    1 1    1 1 

A It is easy to see that B′8′ has the following structure: B′8′ =  4 B4   A4 =    

b4 b5 b6 b7

 1   1     1   1     1   1    1    1  = .  1   1   1     1   1     1    1    1 

B4  , A4 

 b0 − b1 − b 2 − b 3 b5 b6 b7    − b0 b3 − b 2 b1 − b 4 b 7 − b6 , B4 =  .  b2 − b7 − b 4 − b3 − b0 b1 b 5    b 2 − b1 − b 0  b 6 − b5 − b 4  b3

It is easily to verify [25-27] that the matrix with this structure can be effectively factorized:

1 B′′8 = (H 2 ⊗ I 4 ) [(A 4 + B 4 ) ⊕ ( A 4 − B 4 )](H 2 ⊗ I 4 ) , 2

4

  A4 + B4 =    

b 0 + b 4 − b1 + b 5 − b 2 + b 6 − b 3 + b 7   b1 + b5 − b 0 − b 4 b 3 + b 7 − b 2 − b 6 = E(40) ,  + − − − − + b2 b6 b3 b7 b0 b4 b1 b 5  b3 + b7 b 2 + b 6 − b1 − b 5 − b 0 − b 4

− b 0 + b 4 − b1 − b5 − b 2 − b 6 − b 3 − b 7  − +  b1 b 5 − b 0 + b 4 b3 − b 7 − b 2 + b6 A4 − B4 =  = F4( 0) , − b 2 + b 6 − b 3 + b 7 − b 0 + b 4 b1 − b 5   b 2 − b 6 − b1 + b 5 − b 0 + b 4   − b3 + b7 1 1  where H 2 =   – is the order 2 Hadamard matrix, I N is the order N identity matrix, and sign “ ⊗ ” 1 − 1 denotes the Kronecker product of two matrices respectively [24]. Than the computational procedure for multiplication of the hyperbolic octonions at this step of the algorithm design can be represented as follows: (1) ( 0) ( 2) Y8×1 = R 8 Σ8×16 W16D16 W16P16 ×8 P8 X8×1

(4)

where

W16 = (H 2 ⊗ I 4 ) ⊕ I 8 =

          =           

1

1 1

1 1

1 1

1

−1

1

−1

1 1

08

−1 −1

1

1 1 1 1

08

1 1 1 1

( 0) D16 = (E (40) ⊕ F4(0) ) ⊕ 2M 8(0)

 1 ( 0) 04  2 E4  1 (1)  04 F 2 4 =   08   

08

2M 8(0)

           ,          

    .     

Fig. 1 shows a data flow diagram of the rationalized algorithm for computation of a product of a hyperbolic octonions. In this paper, data flow diagrams are oriented from left to right. Straight lines in the figures denote the operations of data transfer. Points where lines converge denote summation. The dashed lines indicate the sign change operation. We deliberately use the usual lines without arrows on purpose, so as not to clutter the picture. The rectangles indicate the matrix–vector multiplications with the matrix inscribed inside a rectangle. 5

1 E4 2

− y0

x0

x2

H2

x1

y1

H2

1 F4 2

y2

x3

y3

x4

y4

x5

y5

x6

y6

x7

y7 2M 8

Fig. 1. Data flow diagram for rationalized hyperbolic octonion multiplication algorithm in accordance with the procedure (4).

Let us now consider the structures of the matrices E (40) and F4( 0) . First we multiply by (-1) every element of the first row of matrix E (40) and call the resulting matrix E (41) :

E (41)

− b 0 − b 4 b1 − b 5 b2 − b6 b 3 − b7    b1 + b5 − b 0 − b 4 b3 + b 7 − b 2 − b 6 = .  b2 + b6 − b3 − b7 − b0 − b 4 b1 + b5   b 2 + b 6 − b1 − b 5 − b 0 − b 4   b3 + b7

The matrix E (41) can be decomposed as an algebraic sum of a symmetric Toeplitz matrix and another matrix which has many zero elements E (41) = E (42) + 2M (41) :

E (41)

− b 0 − b 4  b1 + b 5 b2 + b6 b3 + b 7    b1 + b 5 − b 0 − b 4 b3 + b7 b 2 + b 6 = + 2  b2 + b6  b3 + b7 − b0 − b 4 b1 + b 5    b 2 + b6 b1 + b5 − b 0 − b 4  b3 + b 7 

− b5

− b6

0

0

0

0

− b3 − b7

0

0

0

− b1 − b5

0

− b7  − b 2 − b 6  ,  0  0  6

E (42)

− b0 − b4 b1 + b5 b2 + b6 b3 + b7    b1 + b5 − b0 − b4 b3 + b7 b 2 + b6   A 2 = =  b 2 + b6 b3 + b7 − b0 − b4 b1 + b5  B 2   b2 + b6 b1 + b5 − b0 − b4   b3 + b7

B2  , A 2 

− b 0 − b 4 b2 + b6 b3 + b7  b1 + b 5 A2 =  , B2 =   ,  b1 + b 5 − b 0 − b 4 b3 + b7 b2 + b6 

M (41)

  =   

0

− b5

− b6

0

0

0

0

− b3 − b7

0

0

0

− b1 − b 5

− b7  − b 2 − b 6 0   0 

(5)

1 E(42) = (H 2 ⊗ I 2 ) [(A 2 + B 2 ) ⊕ ( A 2 − B 2 )](H 2 ⊗ I 2 ) 2

(6)

− b 0 − b 4 + b 2 + b 6 b1 + b 5 + b3 + b 7  ( 0) A2 + B2 =   = E2 , + + + − − + + b b b b b b b b 0 4 2 6  1 5 3 7 − b 0 − b 4 − b 2 − b 6 b1 + b 5 − b 3 − b 7  ( 0) A2 − B2 =   = F2 .  b1 + b 5 − b3 − b 7 − b 0 − b 4 − b 2 − b 6 Let us return now to the structure of the matrix F4( 0) . It easy to see than the matrix F4( 0) can also be represented as an algebraic sum of a symmetric Toeplitz matrix and another matrix which has many zero elements F4(0) = F4(1) + 2M (42) :

F4(1)

− b 0 + b 4 − b1 + b5 − b 2 + b 6 − b 3 + b 7   − +   b1 b 5 − b 0 + b 4 − b 3 + b 7 − b 2 + b 6  = + 2 − b 2 + b 6 − b 3 + b 7 − b 0 + b 4 − b1 + b 5       − b3 + b 7 − b 2 + b 6 − b1 + b 5 − b 0 + b 4  

F4(1)

0 0 0 0

− b5 − b5 0 b3 − b7 0 0 0 b 2 − b6

− b 0 + b 4 − b1 + b5 − b 2 + b 6 − b 3 + b 7  − +  b1 b5 − b 0 + b 4 − b 3 + b 7 − b 2 + b 6  C 2  = = − b 2 + b 6 − b 3 + b 7 − b 0 + b 4 − b1 + b 5  D 2    − b 3 + b 7 − b 2 + b 6 − b1 + b 5 − b 0 + b 4 

− b5  0  , b1 − b 5   0 

D2  , C 2 

− b 0 + b 4 − b1 + b 5  − b 2 + b 6 − b 3 + b 7  C2 =  , D2 =   ,  − b1 + b 5 − b 0 + b 4   − b3 + b 7 − b 2 + b 6 

M (42)

  =   

0 0 0 0

− b5 − b5 0 b3 − b7 0 0 0 b2 − b6

− b5  0  b1 − b 5   0 

(7)

It is easily to verify [25-27] that the matrix F4(1) can be factorized in the same way:

1 F4(1) = (H 2 ⊗ I 2 ) [(C 2 + D 2 ) ⊕ (C 2 − D 2 )](H 2 ⊗ I 2 ) 2

(8)

7

− b 0 + b 4 − b 2 + b 6 − b1 + b 5 − b 3 + b 7  ( 0) C2 + D2 =   = K2 ,  − b1 + b5 − b 3 + b 7 − b 0 + b 4 − b 2 + b 6  − b 0 + b 4 + b 2 − b 6 − b1 + b 5 + b 3 − b 7  ( 0) C2 − D2 =   = L2 . − + + − − + + − b 0 b 4 b 2 b 6  b1 b 5 b 3 b 7 Substituting (5), (6), (7), and (8) in (4) we can write: ( 5) (1) (1) (1) ( 4) ( 2) (1) Y8×1 = R 8 Σ8(3×)16 W16 R16 Σ16 × 24 W24 D 24 W24 P24×16 W16 P16×8 P8 X8×1

(9)

where

(5) Σ16 × 24

1 1   1  1     1 1   1 1     1 1   1 1     1 1   1 1   = . 1     1   1     1   1     1    1    1 

1) D(24 = Q8( 2) ⊕ Q8(3) ⊕ 2M 8 , Q 8( 2) =

Q8( 2)

Q8(3)

1 ( 0) 1 (E ⊕ F2( 0) ) ⊕ M (41) , Q 8(3) = (K (20) ⊕ L(20) ) ⊕ M (42) , 4 4 2

 1 ( 0) 02  4 E2  1 ( 0)  02 F 4 2 =   04     1 ( 0) 02 4 K2  1 ( 0)  02 L 4 2 =   04   

04

M (41)

04

M (42)

    ,          .     

(1) W24 = ( H 2 ⊗ I 2 ) ⊕ I 4 ⊕ ( H 2 ⊗ I 2 ) ⊕ I12 =

8

1  1  1 1  −1  1  1 −1    04         (1) W24 =  08            08      

( 4) P24 ×16

04 08

1

08

1 1 1 1

1 1

−1

1

1

04

−1

1

08

1 1

04

1 1 1 1 1 08

1 1 1 1 1

                ,                 

1   1      1   1   1     1    1   1     1     1   1     1  = 1     1     1   1     1   1     1   1     1     1   1    1 

9

Fig. 2 shows a data flow diagram of the rationalized algorithm for multiplying of two hyperbolic octonions at the second stage of synthesis. Consider now the matrices E (20 ) , F2( 0) , K (20) , and L(20 ) . As can be seen, these matrices also have a "good" structures leading to a decrease in the number of real multiplications during calculation of the hyperbolic octonion product.

− b 0 − b 4 + b 2 + b 6 1 b1 + b 5 + b 3 + b 7  a b  E (20) =   = b a  = H 2 [(a + b) ⊕ (a − b)]H 2 , + + + − − + + 2 b 0 b 4 b 2 b 6   b1 b 5 b 3 b 7  − b 0 − b 4 − b 2 − b 6 b1 + b 5 − b 3 − b 7   c F2(0) =  =  b1 + b 5 − b 3 − b 7 − b 0 − b 4 − b 2 − b 6  d

d 1 = H 2 [(c + d ) ⊕ (c − d )]H 2 ,  c 2

− b 0 + b 4 − b 2 + b 6 − b1 + b5 − b3 + b 7   e K (20) =  =  − b1 + b5 − b 3 + b 7 − b 0 + b 4 − b 2 + b 6  f

f 1 = H 2 [(e + f ) ⊕ (e − f )]H 2 ,  e 2

− b 0 + b 4 + b 2 − b 6 − b1 + b 5 + b 3 − b 7   g L (02) =  =  − b1 + b 5 + b 3 − b 7 − b 0 + b 4 + b 2 − b 6   h

h 1 = H 2 [( g + h) ⊕ ( g − h)]H 2 . g  2

Introduce the following notation:

a + b = c0 = − b 0 − b 4 + b 2 + b 6 + b1 + b 5 + b 3 + b 7 , a − b = c1 = − b 0 − b 4 + b 2 + b 6 − b1 − b 5 − b 3 − b 7 ,

c + d = c2 = − b 0 − b 4 − b 2 − b 6 + b1 + b5 − b 3 − b 7 , c − d = c3 = − b 0 − b 4 − b 2 − b 6 − b1 − b 5 + b 3 + b 7 , e + f = c4 = − b 0 + b 4 − b 2 + b 6 − b1 + b 5 − b3 + b 7 , e − f = c5 = − b 0 + b 4 − b 2 + b 6 + b1 − b 5 + b 3 − b 7 , g + h = c6 = − b 0 + b 4 + b 2 − b 6 − b1 + b 5 + b 3 − b 7 , g − h = c7 = − b 0 + b 4 + b 2 − b 6 + b1 − b 5 − b 3 + b 7 . and s0 =

1 1 1 1 1 1 1 1 c0 , s1 = c1 , s2 = c2 , s3 = c3 , s4 = c4 , s5 = c5 , s6 = c6 , s7 = c7 . 8 8 8 8 8 8 8 8

Using the above notations and combining partial decompositions in a single computational procedure we finally can write following: ) ( 5) (1) ( 2) ( 2) ( 2) (1) ( 4) ( 2) (1) Y8×1 = R 8 P8(×316 W16 R16 Σ16 ×24 W24 W24 D 24 W24 W24 P24×16 W16 P16×8 P8 X8×1

(10)

where

D (242) = Q8( 4) ⊕ Q8(5) ⊕ 2M 8 , Q8( 4) = s0 ⊕ s1 ⊕ s2 ⊕ s3 ⊕ M (41) , Q8(5) = s4 ⊕ s5 ⊕ s6 ⊕ s7 ⊕ M (42) .

Q 8( 4)

 s0 0 02 0 s 1  s2 0   02 0 s3 =   04   

04

M (41)

  s4 0 02  0 s 5   s6 0   02   0 s7  , Q8( 5) =      04      

04

M (42)

     ,     

( 2) W24 = (I 2 ⊗ H 2 ) ⊕ I 4 ⊕ (I 2 ⊗ H 2 ) ⊕ I12 =

10

1 1  1 −1 02  1 1  0  2 1 −1    04         = 08            08      

04 08

1

08

1 1 1 1 1 1 −1

02

02

1 1 1 −1

04 08

1 1

04

1 1 1 1 1 1

08

1 1 1 1

                ,                 

Fig. 3 shows a data flow diagram of the rationalized algorithm for multiplying of two hyperbolic octonions at the final stage of the algorithm derivation. The circles in this figure show the operation of multiplication by a variable (or constant) inscribed inside a circle. We can see that the ordinary approach to calculation of elements {sk }, k = 0,1,...,7 requires 56 additions. It is easy to see that the relations for calculation of {sk } contain repeated algebraic sums. Therefore, the number of additions necessary to calculate these elements can be reduced. So, it is easy to verify that the elements {sk } ,

k = 0,1, ..., 7 can be calculated using the following rationalized matrix–vector procedure: 1 S 8×1 = P ( 78) P8(6) W8 R 8(1) B 8×1 8

(11)

W8 = H 2 ⊗ I 4 ,

S 8×1 = [ s0 , s1 , s2 , s3 , s 4 , s5 , s6 , s7 ]Τ , B 8×1 = [b0 , b1 , b2 , b3 , b4 , b5 , b6 , b7 ]Τ , R 8(1) = diag (−1,1,1,1,1,1,1,1) .

P8( 6)

1     =    1  

           , P (7) =   8    1   1 −1   − 1  1 1

1

1 1

1 −1

1 −1

1 1 1

1 −1

1 1

−1 1

1

1

−1

1

1 1

     .    − 1  1 

Fig. 4 shows a data flow diagram of the process for calculating the vector S8×1 elements. 11

1 F2 4

H2

1 E2 4

H2

M (41)

x0

x2 x1 x3

H2 H2

1 L2 4

x4 x5 x6

− y0

1 K2 4

H2 H2

y1 y2 y3

y4 M (42)

y5 y6 y7

x7

M8

Fig. 2. Data flow diagram for rationalized hyperbolic octonion multiplication algorithm in accordance with the procedure (9).

12

s0

H2

H2 s1

H2

H2

s2

H2

s3

H2

M (41)

x0

x2 x1 x3

s4

H2

x6

H2

s5

H2 H2

H2

s6

H2

H2 s7

x4 x5

− y0

H2

y1 y2 y3

y4 M (42)

y5 y6

y7

x7

M8

Fig. 3. Data flow diagram for rationalized hyperbolic octonion multiplication algorithm in accordance with the procedure (10).

13

s

0

b0

18

s0

b1

18

s1

b2

18

s2

b3

18

s3

b4

18

s4

b5

18

s5

b6

18

s6

b7

18

s7

Fig. 4. Data flow diagram describing the process of calculating elements of the vector S8×1 in accordance with the procedure (11).

4.

Estimation of computational complexity

We calculate how many real multiplications (excluding multiplications by power of two) and real additions are required for realization of the proposed algorithm, and compare it with the number of operations required for a direct evaluation of matrix-vector product in Eq. (2). Let us look to the data flow diagram in Figure 3. It is easy to verify that all the real multiplications which to be performed to computing the product of two hyperbolic octonions are realized only during multiplying a vector of data by the quasi-diagonal matrix D (242) . It can be argued that the multiplication of a vector by the matrix D (242) requires 26 real multiplications and only a few trivial multiplications by the power of two. Multiplication by power of two may be implemented using convention arithmetic shift operations, which have simple realization and hence may be neglected during computational complexity estimation. So, the number of real multiplications required using the proposed algorithm is 26. Thus using the proposed algorithm the number of real multiplications to calculate the hyperbolic octonion product is significantly reduced. Now we calculate the number of additions required in the implementation of the algorithm. It is easily to verify that the number of real additions required using our algorithm is 92. Therefore, the total number of arithmetic operations is still slightly less than the total number of arithmetic operations in the naive algorithm.

5.

Conclusion

In this paper, we have presented an original algorithm that allows us to compute the product of two hyperbolic octonions with reduced multiplicative complexity. The proposed algorithm saves 38 real multiplications compared to the schoolbook algorithm. Unfortunately, the number of real additions in the proposed algorithm is somewhat greater than in the direct algorithm, but the total number of arithmetical operations is still less. For applications where the “cost” of a real multiplication is greater than that of a real addition, the new algorithm is generally more efficient than direct method.

6.

References 1. 2. 3.

Kantor I. and Solodovnikov A., Hypercomplex numbers, Springer-Verlag, New York. (1989) Bülow T. and Sommer G., Hypercomplex signals - a novel extension of the analytic signal to the multidimensional case, IEEE Trans. Sign. Proc., vol. SP-49, No. 11, 2844-2852. (2001) Alfsmann D., On families of 2N-dimensional hypercomplex algebras suitable for digital signal processing, in Proc. European Signal Processing Conf. (EUSIPCO 2006), Florence, Italy. (2006)

14

4.

5.

6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.

Alfsmann D., Göckler H. G., Sangwine S. J. and Ell T. A., Hypercomplex algebras in digital signal processing: Benefits and Drawbacks (Tutorial). Proc. EURASIP 15th European Signal Processing Conference (EUSIPCO 2007), Poznań, Poland, 1322-1326. (2007) Sangwine S. J., Bihan N. Le, Hypercomplex analytic signals: extension of the analytic signal concept to complex signals, Proc. EURASIP 15th European Signal Processing Conference (EUSIPCO 2007), Poznań, Poland, 621-624. (2007) Moxey C. E., Sangwine S. J., and Ell T. A., Hypercomplex correlation techniques for vector images, IEEE Trans. Signal Processing, vol. 51, No 7, 1941-1953. (2003) Xie Sh., Hypercomplex Correlation for Defect Detection, MVHI’10: Proceedings of the 2010 International Conference on Machine Vision and Human-machine Interface, IEEE Computer Society, 3-5, (2010). Calderbank R., Das S., Al-Dhahir N., and Diggavi S., Construction and analysis of a new quaternionic Spacetime code for 4 transmit antennas, Communications in information and systems, vol. 5, No. 1, 1-26. (2005) Belfiore J.-C. and Rekaya G., Quaternionic lattices for space-time coding, Proceedings of the Information Theory Workshop. IEEE, Paris 31 March - 4 April 2003, 267 - 270. (2003) Özgür Ertuğ, Communication over Hypercomplex Kahler Manifolds: capacity of dual-polarized multidimensional-MIMO channels. Wireless Personal Communications, vol. 41, No 1, 155-168. (2007) Malekian E., Zakerolhosseini A., and Mashatan A., QTRU: QuaternionicVersion of the NTRUPublic-Key Cryptosystems, The ISC Int'l Journal of Information Security, vol. 3, No 1, 29-42, (2011) Howell T. D. Lafon J-C., The complexity of the quaternion product, TR 75-245, 1-13. (1975) Makarov O., An algorithm for the multiplication of two quaternions, Zh. Vychisl. Mat. Mat. Fiz., vol. 17, No 6 , 1574–1575. (1977) Dimitrov V.S., Cooklev T.V. and Donevsky B.D., On the multiplication of reduced biquaternions and applications, Infor. Process. Letters, vol.43, no 3, 161-164. (1992) Ţariov A., Ţariova G., Aspekty algorytmiczne organizacji układu procesorowego do mnożenia liczb Cayleya. Elektronika, No 11, 137-140. (2010) Cariow A., Cariowa G., Algorithm for multiplying two octonions, Radioelectronics and Communications Systems. Allerton Press, Inc., vol. 55, No 10, 464-473. (2012) Cariow A., Cariow G., An algorithm for fast multiplication of sedenions, Information Processing Letters 113, 324–331. (2013) Cariow A., Cariowa G., An algorithm for multiplication of Dirac numbers, Journal of Theoretical and Applied Computer Science, vol. 7, No. 4, pp. 26-34. (2013) Cariow A., Cariowa G., An algorithm for multiplication of trigintaduonions, Journal of Theoretical and Applied Computer Science, vol. 8, No 1, 50-57. (2014) Cariow A., Cariowa G., A unified approach for developing rationalized algorithms for hypercomplex number multiplication, Electric Review, vol. 91 No 2, 36-39. (2015) Cariow A., Cariowa G., An algorithm for fast multiplication of Pauli numbers. Advances in Applied Clifford Algebras, vol. 25, No 1, 53-63. (2015)

22. Carmody, K., Circular and hyperbolic quaternions, octonions, and sedenions, Appl. Math. Comput., 28,

47-72. (1988) 23. Tanishli M., Kansu M. E., Demir S., A new approach to Lorentz invariance in electromagnetism with hyperbolic octonions, The European Physical Journal Plus 127:69, 1-12. (2012) 24. Steeb W-H., Hardy Y., Matrix Calculus and Kronecker Product: A Practical Approach to Linear and Multilinear Algebra, World Scientific Publishing Company; 2 edition (March 24, 2011) 25. Ţariov A., Strategie racjonalizacji obliczeń przy wyznaczaniu iloczynów macierzowo-wektorowych. Metody Informatyki Stosowanej, No 1, 147-158. (2008) 26. Ţariov А., Algorytmiczne aspekty racjonalizacji obliczeń w cyfrowym przetwarzaniu sygnałów, Wydawnictwo Zachodniopomorskiego Uniwersytetu Technologicznego. (2011) 27. Cariow A., Strategies for the synthesis of fast algorithms for the computation of the matrix-vector products, Journal of Signal Processing Theory and Applications, vol. 3 No. 1 1-19. (2014)

15