  Tensor diagonalization means transforming a given tensor to an exactly or
nearly diagonal form through multiplying the tensor by non-orthogonal
invertible matrices along selected dimensions of the tensor. It is
generalization of approximate joint diagonalization (AJD) of a set of matrices.
In particular, we derive (1) a new algorithm for symmetric AJD, which is called
two-sided symmetric diagonalization of order-three tensor, (2) a similar
algorithm for non-symmetric AJD, also called general two-sided diagonalization
of an order-3 tensor, and (3) an algorithm for three-sided diagonalization of
order-3 or order-4 tensors. The latter two algorithms may serve for canonical
polyadic (CP) tensor decomposition, and they can outperform other CP tensor
decomposition methods in terms of computational speed under the restriction
that the tensor rank does not exceed the tensor multilinear rank. Finally, we
propose (4) similar algorithms for tensor block diagonalization, which is
related to the tensor block-term decomposition.
