1
0
mirror of https://github.com/TREX-CoE/qmckl.git synced 2024-08-25 06:31:45 +02:00

Merge pull request #100 from fmgjcoppens/master

Return QMCKL_FAILURE if return code from qmckl_slagel_splitting equal…
This commit is contained in:
Anthony Scemama 2023-01-27 13:16:24 +01:00 committed by GitHub
commit 345cf8525b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1006,14 +1006,16 @@ qmckl_exit_code qmckl_sherman_morrison_splitting(const qmckl_context context,
uint64_t later_index[N_updates]; uint64_t later_index[N_updates];
uint64_t later = 0; uint64_t later = 0;
(void) qmckl_slagel_splitting( qmckl_exit_code rc = qmckl_slagel_splitting(
LDS, Dim, N_updates, Updates, Updates_index, breakdown, Slater_inv, LDS, Dim, N_updates, Updates, Updates_index, breakdown, Slater_inv,
later_updates, later_index, &later, determinant); later_updates, later_index, &later, determinant);
if (rc != QMCKL_SUCCESS) return QMCKL_FAILURE;
if (later > 0) { if (later > 0) {
(void) qmckl_sherman_morrison_splitting( qmckl_exit_code rc = qmckl_sherman_morrison_splitting(
context, LDS, Dim, later, later_updates, later_index, breakdown, context, LDS, Dim, later, later_updates, later_index, breakdown,
Slater_inv, determinant); Slater_inv, determinant);
if (rc != QMCKL_SUCCESS) return QMCKL_FAILURE;
} }
return QMCKL_SUCCESS; return QMCKL_SUCCESS;
@ -1251,17 +1253,19 @@ qmckl_exit_code qmckl_sherman_morrison_smw32s(const qmckl_context context,
const double* Updates_1block = &Updates[n_of_3blocks * length_3block]; const double* Updates_1block = &Updates[n_of_3blocks * length_3block];
const uint64_t* Updates_index_1block = &Updates_index[3 * n_of_3blocks]; const uint64_t* Updates_index_1block = &Updates_index[3 * n_of_3blocks];
uint64_t l = 0; uint64_t l = 0;
(void) qmckl_slagel_splitting( qmckl_exit_code rc = qmckl_slagel_splitting(
LDS, Dim, 1, Updates_1block, Updates_index_1block, breakdown, LDS, Dim, 1, Updates_1block, Updates_index_1block, breakdown,
Slater_inv, later_updates + (LDS * later), later_index + later, &l, Slater_inv, later_updates + (LDS * later), later_index + later, &l,
determinant); determinant);
if (rc != QMCKL_SUCCESS) return QMCKL_FAILURE;
later += l; later += l;
} }
if (later > 0) { if (later > 0) {
(void) qmckl_sherman_morrison_splitting( qmckl_exit_code rc = qmckl_sherman_morrison_splitting(
context, LDS, Dim, later, later_updates, later_index, breakdown, context, LDS, Dim, later, later_updates, later_index, breakdown,
Slater_inv, determinant); Slater_inv, determinant);
if (rc != QMCKL_SUCCESS) return QMCKL_FAILURE;
} }
return QMCKL_SUCCESS; return QMCKL_SUCCESS;