Sherman-Morrison/QMCChem_dataset_test.m
François Coppens b2b4756b53 Problem solved. Problems was caused by reading the inverse matrix S_inv the same way as the matrix S, but apparently what has been stored is transpose(S_inv) and not S_inv. Therefore it needs to be read transposed compared to S in order to for S*S_inv to give the Identity matrix.
TODO: Calls from C/C++ are still broken because inside the MaponiA3 algo there is compensation for the fact that Fortran sends it's arrays in column-major order. This must be resolved by  transposeing S_inv before it is passed to MaponiA3 and remove the compensations made there.
2021-02-22 15:43:27 +01:00

21 lines
814 B
Mathematica

Sold = dlmread('Slater_old.dat');
Sold_inv = dlmread('Slater_old_inv.dat');
S = dlmread('Slater.dat');
S_inv = dlmread('Slater_inv.dat');
printf("\n")
printf("======================================\n")
printf("OLD Slater-matrix and inverse\n")
printf("--------------------------------------\n")
printf("Determinant of S x S_inv : %f\n", det(Sold*Sold_inv))
printf("Trace of S x S_inv : %f\n", trace(Sold*Sold_inv))
printf("Norm of S x S_inv : %f\n", norm(Sold*Sold_inv))
printf("\n")
printf("NEW Slater-matrix and inverse\n")
printf("--------------------------------------\n")
printf("Determinant of S x S_inv : %f\n", det(S*S_inv))
printf("Trace of S x S_inv : %f\n", trace(S*S_inv))
printf("Norm of S x S_inv : %f\n", norm(S*S_inv))
printf("======================================\n")