Hi Steven, these are great suggestions!
The amount of zeros is ≈ 17%, and 14% are equal to 1.0. I tried to exclude obviosly-trivial Clebsches in the rand_clebsch()
function (+fixed a typo).
Just checked the other suggestions:
- type stability +
logfact2
gives 1-2 μs gain -
@inbounds
removes extra 2-4 μs for the same tests.
Not so much, but still cool. Thanks a lot for pointing out!
Did you notice if I am doing something wrong with SymPy
calls? My colleagues running tensorflow used to calculate both the Clebsch-Gordan coefficientss and the Wigner d using the sympy.physics.wigner
. It is hard to believe that the call time which they are working with is x1000. I have not benchmarked it thoroughly, tho.