Skip to content

Commit 2ec57f9

Browse files
committed
Try to solve qmckl_malloc
1 parent 45efa5c commit 2ec57f9

File tree

2 files changed

+14
-8
lines changed

2 files changed

+14
-8
lines changed

org/qmckl_electron.org

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1199,7 +1199,7 @@ qmckl_get_electron_en_distance(qmckl_context context,
11991199
"distance is a null pointer");
12001200
}
12011201

1202-
size_t sze = ctx->point.num * ctx->nucleus.num;
1202+
int64_t sze = ctx->point.num * ctx->nucleus.num;
12031203
if (size_max < sze) {
12041204
return qmckl_failwith( context,
12051205
QMCKL_INVALID_ARG_3,

org/qmckl_jastrow_champ_single.org

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -112,8 +112,10 @@ typedef struct qmckl_jastrow_champ_single_struct{
112112
double * restrict een_rescaled_single_n_gl;
113113
uint64_t een_rescaled_single_n_gl_date;
114114
double* delta_p_gl;
115+
uint64_t delta_p_gl_maxsize;
115116
uint64_t delta_p_gl_date;
116117
double* delta_een_gl;
118+
uint64_t delta_een_gl_maxsize;
117119
uint64_t delta_een_gl_date;
118120
double* delta_een_g;
119121
uint64_t delta_een_g_date;
@@ -3156,7 +3158,11 @@ qmckl_exit_code qmckl_provide_jastrow_champ_delta_p_gl(qmckl_context context)
31563158
/* Compute if necessary */
31573159
if (ctx->single_point.date > ctx->single_point.delta_p_gl_date) {
31583160

3159-
if (ctx->electron.walker.num > ctx->electron.walker_old.num) {
3161+
qmckl_memory_info_struct mem_info = qmckl_memory_info_struct_zero;
3162+
mem_info.size = 4 * ctx->electron.walker.num * ctx->jastrow_champ.cord_num *
3163+
(ctx->jastrow_champ.cord_num + 1) * ctx->nucleus.num * ctx->electron.num * sizeof(double);
3164+
3165+
if (mem_info.size > ctx->single_point.delta_p_gl_maxsize) {
31603166
if (ctx->single_point.delta_p_gl != NULL) {
31613167
rc = qmckl_free(context, ctx->single_point.delta_p_gl);
31623168
if (rc != QMCKL_SUCCESS) {
@@ -3171,10 +3177,8 @@ qmckl_exit_code qmckl_provide_jastrow_champ_delta_p_gl(qmckl_context context)
31713177
/* Allocate array */
31723178
if (ctx->single_point.delta_p_gl == NULL) {
31733179

3174-
qmckl_memory_info_struct mem_info = qmckl_memory_info_struct_zero;
3175-
mem_info.size = 4 * ctx->electron.walker.num * ctx->jastrow_champ.cord_num *
3176-
(ctx->jastrow_champ.cord_num + 1) * ctx->nucleus.num * ctx->electron.num * sizeof(double);
31773180
double* delta_p_gl = (double*) qmckl_malloc(context, mem_info);
3181+
ctx->single_point.delta_p_gl_maxsize = mem_info.size;
31783182

31793183
if (delta_p_gl == NULL) {
31803184
return qmckl_failwith( context,
@@ -3551,7 +3555,10 @@ qmckl_exit_code qmckl_provide_jastrow_champ_single_een_gl(qmckl_context context)
35513555
/* Compute if necessary */
35523556
if (ctx->single_point.date > ctx->single_point.delta_een_gl_date) {
35533557

3554-
if (ctx->electron.walker.num > ctx->electron.walker_old.num) {
3558+
qmckl_memory_info_struct mem_info = qmckl_memory_info_struct_zero;
3559+
mem_info.size = 4 * ctx->electron.num * ctx->electron.walker.num * sizeof(double);
3560+
3561+
if (mem_info.size > ctx->single_point.delta_een_gl_maxsize) {
35553562
if (ctx->single_point.delta_een_gl != NULL) {
35563563
rc = qmckl_free(context, ctx->single_point.delta_een_gl);
35573564
if (rc != QMCKL_SUCCESS) {
@@ -3566,9 +3573,8 @@ qmckl_exit_code qmckl_provide_jastrow_champ_single_een_gl(qmckl_context context)
35663573
/* Allocate array */
35673574
if (ctx->single_point.delta_een_gl == NULL) {
35683575

3569-
qmckl_memory_info_struct mem_info = qmckl_memory_info_struct_zero;
3570-
mem_info.size = 4 * ctx->electron.num * ctx->electron.walker.num * sizeof(double);
35713576
double* delta_een_gl = (double*) qmckl_malloc(context, mem_info);
3577+
ctx->single_point.delta_een_gl_maxsize = mem_info.size;
35723578

35733579
if (delta_een_gl == NULL) {
35743580
return qmckl_failwith( context,

0 commit comments

Comments
 (0)