beyn pure BLAS: fix indices and strides

Also fix amos reference in CMakeLists
This commit is contained in:
Marek Nečada 2021-06-10 22:25:56 +03:00
parent 64f77557a7
commit 2be3521333
2 changed files with 5 additions and 5 deletions

View File

@ -412,8 +412,8 @@ static int beyn_process_matrices(BeynSolver *solver, beyn_function_M_t M_functio
MAT(V0, m, K, i, k) = MAT(V0_full, m, l, i, k); MAT(V0, m, K, i, k) = MAT(V0_full, m, l, i, k);
//tmp = gsl_matrix_complex_row(W0T_full, k); //tmp = gsl_matrix_complex_row(W0T_full, k);
//gsl_matrix_complex_set_row(W0T, k, &(tmp.vector)); //gsl_matrix_complex_set_row(W0T, k, &(tmp.vector));
for(int j = 0; j < K; ++j) for(int j = 0; j < l; ++j)
MAT(W0T, K, l, k, j) = MAT(W0T_full, m, l, k, j); MAT(W0T, K, l, k, j) = MAT(W0T_full, l, l, k, j);
} }
//gsl_matrix_complex_free(V0_full); //gsl_matrix_complex_free(V0_full);
free(V0_full); free(V0_full);
@ -535,7 +535,7 @@ static int beyn_process_matrices(BeynSolver *solver, beyn_function_M_t M_functio
//QPMS_ENSURE_SUCCESS(gsl_blas_zgemv(CblasNoTrans, one, Mmat, &(Vk.vector), zero, MVk)); //QPMS_ENSURE_SUCCESS(gsl_blas_zgemv(CblasNoTrans, one, Mmat, &(Vk.vector), zero, MVk));
// Vk[i] == V0S[i, k]; dims: Mmat[m,m], Vk[m] (V0S[m, K]), MVk[m] // Vk[i] == V0S[i, k]; dims: Mmat[m,m], Vk[m] (V0S[m, K]), MVk[m]
cblas_zgemv(CblasRowMajor, CblasNoTrans, m, m, cblas_zgemv(CblasRowMajor, CblasNoTrans, m, m,
&one, Mmat, m, &MAT(V0S, m, K, 0, k), m /* stride of Vk in V0S */, &one, Mmat, m, &MAT(V0S, m, K, 0, k), K /* stride of Vk in V0S */,
&zero, MVk, 1); &zero, MVk, 1);
//residual = gsl_blas_dznrm2(MVk); //residual = gsl_blas_dznrm2(MVk);

View File

@ -73,11 +73,11 @@ target_include_directories( tbeyn3f PRIVATE .. )
target_compile_definitions( tbeyn3f PRIVATE VARIANTF ) target_compile_definitions( tbeyn3f PRIVATE VARIANTF )
#add_executable( tbeyn_gsl tbeyn_gsl.c ) #add_executable( tbeyn_gsl tbeyn_gsl.c )
#target_link_libraries( tbeyn_gsl qpms gsl lapacke amos m ) #target_link_libraries( tbeyn_gsl qpms gsl lapacke ${QPMS_AMOSLIB} m )
#target_include_directories( tbeyn_gsl PRIVATE .. ) #target_include_directories( tbeyn_gsl PRIVATE .. )
#add_executable( tbeyn_gsl2 tbeyn_gsl2.c ) #add_executable( tbeyn_gsl2 tbeyn_gsl2.c )
#target_link_libraries( tbeyn_gsl2 qpms gsl lapacke amos m ) #target_link_libraries( tbeyn_gsl2 qpms gsl lapacke ${QPMS_AMOSLIB} m )
#target_include_directories( tbeyn_gsl2 PRIVATE .. ) #target_include_directories( tbeyn_gsl2 PRIVATE .. )
add_custom_target( mytests DEPENDS test_single_translations_vs_calc test_vswf_translations test_vswf_translations_array tbeyn ) add_custom_target( mytests DEPENDS test_single_translations_vs_calc test_vswf_translations test_vswf_translations_array tbeyn )