# An Efficient Library for Reliability Block Diagram Evaluation
## 3 RBD Computation Library-librbd
### Validation  
To validate the developed library, we perform a comparison of librbd output with the one obtained by using SHARPE tool [41]. Two different RBD models for each RBD block have been generated, one using identical components and the other using generic components. The validation process has been carried out by using fifteen electronics components with constant failure rate validated using Telcordia SR-332 [51]: their failure rate is shown in Table 1. The eight RBD blocks modeled during the validation process are shown in Table 2.  
For each RBD model, we have produced an output file containing the reliability of each analyzed time instant using both librbd and SHARPE. The reliability has been formatted using scientific notation with eight decimal places. Please note that, due to the chosen numerical representation, the uncertainty of the comparison operations is limited to \(1.00\times 10^{-8}\). The reliability curves obtained for each analyzed block are shown in Figure 4a-h. For a better graphical visualization, only the first 100,000 h are plotted for each reliability curve. The blue line represents the reliability curve obtained using librbd, while the red one uses SHARPE tool. In all the figures, the blue and red curves are overlapping, with the blue line completely hiding the red one. The visual inspection of the reliability curves obtained from the RBD models with both librbd and SHARPE tool proves the validity of the developed library.  
\begin{table}
\begin{tabular}{c c c c} \hline
**Component** & **Failure Rate \(\lambda\) (h\({}^{-1}\))** & **Component** & **Failure Rate \(\lambda\) (h\({}^{-1}\))** \\ \hline C1 & 0.0000084019 & C9 & 0.0000027777 \\ C2 & 0.0000039438 & C10 & 0.0000055397 \\ C3 & 0.0000078310 & C11 & 0.0000047740 \\ C4 & 0.0000079844 & C12 & 0.0000062887 \\ C5 & 0.0000091165 & C13 & 0.0000036478 \\ C6 & 0.0000019755 & C14 & 0.0000051340 \\ C7 & 0.0000033522 & C15 & 0.0000095223 \\ C8 & 0.0000076823 & & \\ \hline \end{tabular}
\end{table}
Table 1: Components and their respective failure rate \(\lambda\).  
\begin{table}
\begin{tabular}{c c c c} \hline
**RBD Block** & **Topology** & \(T\) **(h)** & **Components** \\ \hline Series identical & 15 components & 200,000 & C1 \\ Series generic & 15 components & 200,000 & All \\ Parallel identical & 15 components & 200,000 & C1 \\ Parallel generic & 15 components & 200,000 & All \\ KooN identical & 8 oo15 & 200,000 & C1 \\ KooN generic & 8 oo15 & 200,000 & All \\ Bridge identical & 5 components & 200,000 & C1 \\ Bridge generic & 5 components & 200,000 & From C1 to C5 \\ \hline \end{tabular}
\end{table}
Table 2: RBD models used during validation.  
Figure 4: Validation of reliability of RBD blocks.  
To further strengthen the results of this validation we have computed, for each analyzed RDB model, the error function as the difference between the two reliability curves and we have computed the maximum and minimum value of this error function. The obtained minimum and maximum error are shown, for each RBD model, in Table 3. We suppose that this error is due to the different implementation of the two tools, in particular regarding the exact sequence of operations performed over floating-point numbers. From the analysis of the obtained results, we can observe that the maximum and minimum error between the two solutions is lower than the maximum uncertainty, hence it can be considered negligible.  
Hence, we can conclude that librbd produces the valid result, i.e., the correct reliability curve, for each implemented RBD basic block.