Amazing work with this framework, and I am really happy to see that you used numba to speed up the computation. I was wondering if there is a reason why the `prange` function of numba has not been used to parallelize some for-loops. They have a small [doc page about prange](https://numba.readthedocs.io/en/stable/user/parallel.html) and its use. By simply skimming the code, I found some possible places where `prange` could be used: - [_mie_scalar](https://github.com/scottprahl/miepython/blob/0c188876eef5e670f1172bac4455f2149a19eded/miepython/miepython.py#L323) - [mie](https://github.com/scottprahl/miepython/blob/0c188876eef5e670f1172bac4455f2149a19eded/miepython/miepython.py#L371) - [_mie_S1_S2](https://github.com/scottprahl/miepython/blob/0c188876eef5e670f1172bac4455f2149a19eded/miepython/miepython.py#L506) - [mie_mu_with_uniform_cdf](https://github.com/scottprahl/miepython/blob/0c188876eef5e670f1172bac4455f2149a19eded/miepython/miepython.py#L668) and possibly here too: - [_mie_An_Bn](https://github.com/scottprahl/miepython/blob/0c188876eef5e670f1172bac4455f2149a19eded/miepython/miepython.py#L168) If there is an interest in implementing some `prange` functionality, I could try to make some changes. It would be nice also to have some standard tests, so the framework can be benchmarked and tested so that the output hasn't altered by the modifications made. Do you have any data for that currently?