void check_svd (double *M , double * U, double * S, double *V) { double T1 [4] ; double T2 [4] ; print_matrix("M",M) ; print_matrix("U",U) ; print_matrix("S",S) ; print_matrix("V",V) ; transp2(T1, V) ; prod2(T2, S, T1) ; prod2(T1, U, T2) ; print_matrix("USV'",T1) ; transp2(T1, U) ; prod2(T2, T1, U) ; print_matrix("U'U",T2) ; transp2(T1, V) ; prod2(T2, T1, V) ; print_matrix("V'V",T2) ; printf("det(M) = %f\n", det2(M)) ; printf("det(U) = %f\n", det2(U)) ; printf("det(V) = %f\n", det2(V)) ; printf("det(S) = %f\n", det2(S)) ; printf("\n") ; }
static void c2p_16x4(CARD32 d[2]) { transp2(d, 8); transp2(d, 2); transp2x(d, 1); transp2(d, 16); transp2(d, 4); transp2(d, 1); }