Version 3.0 2022.07.01
Optimized calculations.
Version 2.0 2016.12.27
Optimized the calculations