many small changes that could break backward compatibility
- I changed "matrix_alloc" to "matrix_alloc_jpd" everywhere to reduce the chance of future naming collisions.
(This should not effect most users unless they were explicitly using "#include<matrix_alloc.hpp>", in their code. In that case they will have to change that line to "#include<matrix_alloc_jpd.hpp>". However there is no reason I can think of that most users would want to include this header file in their code, so hopefully this small change won't effect many people.) - Jacobi::Diagonalize() now returns number of iterations (ie. the number of off-diagonal pivots considered, which is always > 0), or 0 when convergence failed. (In the past, it used to return the number of sweeps, where each "sweep" corresponds to n(n-1)/2 iterations.) Now it's much easier to tell if it converged or not, simply by checking whether the return value is 0. (Note: If you were not checking for convergence, then this change to jacobi_pd should not break compatibility with your code.)
- This code now runs on 1x1 matrices without crashing.
- "include<cassert>" was removed. (I also commented out all of the assert() statements. I left them in the code because I think they improve code readability.)
I don't anticipate making any future modifications which will break backward compatibility.