# Low-Complexity Recursive Least-Squares Adaptive Algorithm Based on Tensorial Forms
## 3 Tensor-Based RLS Algorithms
### Tensor-Based Recursive Least-Squares Dichotomous Coordinate Descent Algorithm (RLS-DCD-T)
```
Step Action  Initialization : \(a_{i}=H_{i}/2,\ m_{i}=1\) \(\Delta\hat{\mathbf{h}}_{i}=\mathbf{0}_{L_{i}\times 1}\)  For \((q\ =\ 1\...\ N_{u,i})\) : \(p=\arg\max_{k=1,2,...,l}\{|r_{k|i}|\}\) \(N_{u,j}\times(L_{i}-1)\)  While \(((m_{i}\leq M_{u,j})\ \ \&\ \ (|r_{p,j}|\geq(\alpha_{i}/2)R_{p,\#j}))\) : \((\leq M_{b})+(\leq N_{u,j})\) \(m_{i}+...+\alpha_{i}=a_{i}/2\) \(0\)  if \(m_{i}>M_{b}\) == the algorithm stops \(0\) \(\Delta\hat{\mathbf{h}}_{p,i}=\Delta\hat{\mathbf{h}}_{p,j}+\mathrm{sign}(r_{p,j })\ \alpha_{i}\) \(N_{u,j}\) \(N_{u,j}\) \(N_{u,j}\times L_{i}\) \(\mathbf{Overall}\ (\mathit{inverse case})\) \(N_{u,j}(2L_{i}+1)+M_{b}\)
```  
**Algorithm 3**The DCD iterations with a _leading_ element and overall complexity  
The arithmetic processes needed for the hardware implementation of the leading DCD do not require multiplications. In addition, considering the fact that the quantity of additions is variable due to the greedy behavior, we approach this estimate in terms of _worse case_ (or the _upper limits_). It can be noticed in Algorithm 3 that the highest computational workload is necessary when all \(N_{u,i}\) allowed updates are performed and the decision process passes through all possible values for \(m_{i}\) (the _while_ loop). The status of \(m_{i}\) and the value of the step size \(\alpha\) can be tracked using _shift registries_. Moreover, any apparent multiplication operations involving \(\alpha\) are actually replaceable with bit-shifts. In step 1 from Algorithm 3, the determination of \(p\) requires \(L_{i}-1\) comparisons, which are equivalent to additions. This process can be necessary for a maximum amount of \(N_{u,i}\) times. In a similar manner, the comparison in step 2 can be employed no more than \(N_{u,i}+M_{b}\) total times (equivalent to the maximum numbers of _successful_ and _unsuccessful_ DCD iterations). Finally, steps 4 and 5 are performed when a _successful iteration_ is triggered. Consequently, for maximum \(N_{u,i}\) times, one addition is spent on updating a bit for some value in \(\Delta\mathbf{h}_{i}(n)\) (step 4) and \(L_{i}\) additions are used for updating \(\mathbf{r}_{i}(n)\) (step 5). Rounding up, from a hardware implementation point of view, the leading DCD iterations require for \(N_{u,i}\) successful updates \(N_{u,j}(2L_{i}+1)\) additions (corresponding to steps 1, 4, 5 and the _true_ results of the second condition in the _while_ loop), plus a maximum of \(M_{b}\) additions for the _false_ results of the condition in step 2. The rest of the apparent arithmetic workload can be performed using bit-shift operations. Consequently, the complexity of the Exponential Weighted RLS-T algorithm presented in Algorithm 2 reflects its split functionality design. Excepting step 1, the overall computational effort is a sum of values proportional to the individual filter lengths, in terms of multiplications, respectively additions. Considering the fact that decompositions can be performed such that \(L_{i}\ll L\), the proposed reduction in complexity for steps 2-7 represents a migration from a setup difficult to implement on hardware platforms to an attractive solution for multiple adaptive systems configurations. Using the conventional RLS family of algorithms [14] (i.e., the direct estimation of the global impulse response) could be very costly for large values of \(L\), since the computational complexity order would be \(\mathcal{O}(L^{2})\). On the other hand, the computational complexity of the RLS-T algorithms is proportional to \(\sum_{i=1}^{N}\mathcal{O}(L_{i}^{2})\), which could be much more advantageous when \(L_{i}\ll L\). In addition, since the RLS-T operates with shorter filters, improved performance is expected, as compared to the conventional RLS algorithm. The RLS-DCD-T brings an extra layer of efficiency by performing the same tasks with workloads of order \(\sum_{i=1}^{N}\mathcal{O}(L_{i})\). These observations are also supported by the simulation results provided in the next section.