When calling the advanced gemm in the matrix class, there is no check to see if there are any elements in each symmetry. This caused a segmentation fault when I called the routine in a minimal basis. Presumably when Matrix::gemm calls C_DGEMM with non existent pointers. Adding if(m[h] && n[h] && k[h]) seemed to fix the problem.
On a somewhat related note. Is there any way to flush the outfile print?
Thats very odd that all gemm calls but one have that protection. Can you make a PR with the required change? We would usually write that as:
if (!k[h] || !m[h] || !n[h]) continue;
This is just the standard convection to skip the loop rather than go further into nesting with the
if statement. Either way works for me!
I added the line and made a PR. Not done that before, so hope I did it correctly.
All the other gemms call a basic gemm that contains the test, except the C1 advanced gemm. Maybe it too should have a test?