Adding-Doubling is an analytical method used for the description of light transport in homogeneous and transversely infinite layers. Due to its accuracy and speed, the method presents a great potential for the simulation of biological tissues in biomedicine. By measuring the spectra of reflectance and transmittance of the tissue, we can obtain crucial information about its optical properties, which are beneficial in diagnostic and therapeutic use.
As part of this thesis, we implemented the Adding-Doubling algorithm in Python programming language and optimized it using suitable libraries for use on both the GPU and the CPU. We present the theoretical background of the said algorithm and important light interactions. We describe the implementation and the structure of the algorithm. Furthermore, we compare the accuracy and the speed of the algorithm with the Monte Carlo method and the currently existing Adding-Doubling algorithm in the Matlab programming environment. By varying the parameters, we investigate the optimal algorithm settings for the desired accuracy. The algorithm is used to assess oxygen saturation of human skin. In conclusion, we present the findings and possible improvements.