https://9dok.org/document/zx5nx4mv-nihu-multi-purpose-open-source-fast-multipole-solver.html