I have a function whose main bottleneck is finding a(ny) singular vector pair in the space of the largest singular value, along with the singular value itself. This is done a huge number of times. This is the structure I know about:
- Tiny. 4x4 is the most common case, but anything less than 100x100 could be possible
- Dense and complex
- Square
- Largest singular value bounded by square root of width
Right now we are using Eigen::JacobiSVD. Would anyone recommend something faster? The final iterations of the function require lots of precision, but we may be able to get away with less precision in the beginning iterations.