## 5 Results and Discussion
### Reliability and Error Percentage  
As mentioned in Section 3, the MWTF is a metric that represents a trade-off between the fault coverage achieved by the hardening and its execution time overhead. For this case, the normalized MWTF was determined for each version of the program as follows:  
\[Norm.\ MWTF=\frac{ACE\ bits\ nonhard}{ACE\ bits\ hard\ version}\cdot\frac{1}{Time\ overhead}\]  
The normalized MWTF (in logarithmic scale) can be seen in the vertical axis of Figure 12. The different versions of the test programs are shown on the x-axis of the same figure. The percentage of error in the results of the different versions is also shown using colors. Darker tones represent higher percentages of error.  
It should be noted that the accuracy in the results is dependent on each algorithm. For instance, the ln2 program has an error percentage below 3% for the highest approximation level, while in the case of the Emboss filter, the error percentages exceed 30%. This indicates that ln2 is an algorithm very susceptible to approximation (employing loop perforation), unlike the algorithms corresponding to the filters.  
It can be seen that the MWTF increases with each level of approximation. This is because relaxed programs require a shorter execution time. This means that the approximated versions of the programs will be less time exposed to faults. So the probability of a fault occurring during a program execution will be lower. The highest MWTF (24.37\(\times\)) corresponds to the most approximated version of ln2 (A5), which is consistent with the low overhead obtained for this version.  
However, it should be also noted that in some cases the MWTF was less than the non-hardened baseline (1.0\(\times\)), such as for the filters. This means that, although the hardening technique improves the fault coverage, the overheads are so high that they are not compensated with the speed-up reached in the approximation stage. Therefore, it can be affirmed that although these versions have higher fault coverage, their reliability is lower than the original program (without hardening). The same situation can be observed for all the hardened precise versions of the test programs (P columns).  
Figure 12: Normalized MWTF for the different versions of the programs and percentages of error in the results.  
According to the results observed in Figure 12, it can also be concluded that the program that best behaves with the proposed method is ln2. This affirmation is based on two main reasons: First, as mentioned above, ln2 is the algorithm most susceptible to approximation (the loss of precision in the results is very low); and second, this algorithm has the highest MWTF, greater than 1.0\(\times\) for all approximate versions. The first approximate version of ln2 has a normalized MWTF of 1.2\(\times\) with an error in the results of less than 1%. As mentioned earlier, the higher approximated version of this algorithm reaches a normalized MWTF greater than 24\(\times\) with an error percentage below 3%. In the case of the algorithm for the calculation of the Euler number, there are two approximate versions with normalized MWTFs of 1.2\(\times\) and 4.4\(\times\), and error percentages of 1.88% and 26.41%, respectively.  
Results show that, reducing the execution time overheads by means of approximations, it is possible to improve the reliability of a system. This is observed in the increase of the normalized MWTF for the approximate versions. On the other hand, although the approximation of the programs modifies the expected results, in some cases these changes could be negligible.