1
0
mirror of https://github.com/TREX-CoE/qmckl.git synced 2024-11-03 20:54:09 +01:00

Fixed bug in 3-body Jastrow. Tested in CHAMP->correct

This commit is contained in:
Anthony Scemama 2023-09-12 16:41:26 +02:00
parent fc7d8b2af5
commit 4133a6ba0e

View File

@ -42,7 +42,7 @@
\sum_{p=2}^{N_{\text{ord}}} \sum_{p=2}^{N_{\text{ord}}}
\sum_{k=0}^{p-1} \sum_{k=0}^{p-1}
\sum_{l=0}^{p-k-2\delta_{k,0}} \sum_{l=0}^{p-k-2\delta_{k,0}}
c_{lkp\alpha} \left[ g_\text{ee}({r}_{ij}) \right]^k c_{lkp\alpha} \left[ g_\text{e}({r}_{ij}) \right]^k
\left[ \left[ g_\alpha({R}_{i\alpha}) \right]^l + \left[ g_\alpha({R}_{j\alpha}) \right]^l \right] \left[ \left[ g_\alpha({R}_{i\alpha}) \right]^l + \left[ g_\alpha({R}_{j\alpha}) \right]^l \right]
\left[ g_\alpha({R}_{i\,\alpha}) \, g_\alpha({R}_{j\alpha}) \right]^{(p-k-l)/2} \left[ g_\alpha({R}_{i\,\alpha}) \, g_\alpha({R}_{j\alpha}) \right]^{(p-k-l)/2}
\] \]
@ -60,7 +60,7 @@
$J_{\text{ee}}$ and $J_{\text{eN}}$ have an asymptotic value of zero. $J_{\text{ee}}$ and $J_{\text{eN}}$ have an asymptotic value of zero.
The eN and eeN parameters are the same of all identical nuclei. The eN and eeN parameters are the same of all identical nuclei.
The types of nuclei use zero-based indexing. Warning: The types of nuclei use zero-based indexing.
* Headers :noexport: * Headers :noexport:
#+begin_src elisp :noexport :results none #+begin_src elisp :noexport :results none
@ -581,12 +581,12 @@ qmckl_set_jastrow_champ_type_nucl_vector(qmckl_context context,
for (int i=0 ; i<nucl_num ; ++i) { for (int i=0 ; i<nucl_num ; ++i) {
if (type_nucl_vector[i] < 0) { if (type_nucl_vector[i] < 0) {
return qmckl_failwith( context, QMCKL_INVALID_ARG_2, return qmckl_failwith( context, QMCKL_INVALID_ARG_2,
"qmckl_set_type_nucl_vector", "qmckl_set_jastrow_champ_type_nucl_vector",
"Inconsistent values of type_nucl_vector (<0)" ); "Inconsistent values of type_nucl_vector (<0)" );
} }
if (type_nucl_vector[i] >= type_nucl_num) { if (type_nucl_vector[i] >= type_nucl_num) {
return qmckl_failwith( context, QMCKL_INVALID_ARG_2, return qmckl_failwith( context, QMCKL_INVALID_ARG_2,
"qmckl_set_type_nucl_vector", "qmckl_set_jastrow_champ_type_nucl_vector",
"Inconsistent values of type_nucl_vector (>=nucl_num). Values should use 0-based indexing as in C." ); "Inconsistent values of type_nucl_vector (>=nucl_num). Values should use 0-based indexing as in C." );
} }
} }
@ -595,7 +595,7 @@ qmckl_set_jastrow_champ_type_nucl_vector(qmckl_context context,
qmckl_exit_code rc = qmckl_free(context, ctx->jastrow_champ.type_nucl_vector); qmckl_exit_code rc = qmckl_free(context, ctx->jastrow_champ.type_nucl_vector);
if (rc != QMCKL_SUCCESS) { if (rc != QMCKL_SUCCESS) {
return qmckl_failwith( context, rc, return qmckl_failwith( context, rc,
"qmckl_set_type_nucl_vector", "qmckl_set_jastrow_champ_type_nucl_vector",
"Unable to free ctx->jastrow_champ.type_nucl_vector"); "Unable to free ctx->jastrow_champ.type_nucl_vector");
} }
} }
@ -676,7 +676,7 @@ qmckl_set_jastrow_champ_a_vector(qmckl_context context,
if(new_array == NULL) { if(new_array == NULL) {
return qmckl_failwith( context, return qmckl_failwith( context,
QMCKL_ALLOCATION_FAILED, QMCKL_ALLOCATION_FAILED,
"qmckl_set_jastrow_champ_coefficient", "qmckl_set_jastrow_champ_a_vector",
NULL); NULL);
} }
@ -736,7 +736,7 @@ qmckl_set_jastrow_champ_b_vector(qmckl_context context,
if(new_array == NULL) { if(new_array == NULL) {
return qmckl_failwith( context, return qmckl_failwith( context,
QMCKL_ALLOCATION_FAILED, QMCKL_ALLOCATION_FAILED,
"qmckl_set_jastrow_champ_coefficient", "qmckl_set_jastrow_champ_b_vector",
NULL); NULL);
} }
@ -807,7 +807,7 @@ qmckl_set_jastrow_champ_c_vector(qmckl_context context,
if(new_array == NULL) { if(new_array == NULL) {
return qmckl_failwith( context, return qmckl_failwith( context,
QMCKL_ALLOCATION_FAILED, QMCKL_ALLOCATION_FAILED,
"qmckl_set_jastrow_champ_coefficient", "qmckl_set_jastrow_champ_c_vector",
NULL); NULL);
} }
@ -2008,7 +2008,7 @@ rc = qmckl_check(context,
); );
assert(rc == QMCKL_SUCCESS); assert(rc == QMCKL_SUCCESS);
rc = qmckl_check(context, rc = qmckl_check(context,
qmckl_set_jastrow_champ_c_vector(context, c_vector,dim_c_vector*type_nucl_num) qmckl_set_jastrow_champ_c_vector(context, c_vector, dim_c_vector*type_nucl_num)
); );
assert(rc == QMCKL_SUCCESS); assert(rc == QMCKL_SUCCESS);
@ -7589,15 +7589,15 @@ qmckl_exit_code qmckl_provide_dtmp_c(qmckl_context context)
:END: :END:
#+NAME: qmckl_factor_c_vector_full_args #+NAME: qmckl_factor_c_vector_full_args
| Variable | Type | In/Out | Description | | Variable | Type | In/Out | Description |
|--------------------+----------------------------------------+--------+------------------------------| |--------------------+---------------------------------------+--------+------------------------------|
| ~context~ | ~qmckl_context~ | in | Global state | | ~context~ | ~qmckl_context~ | in | Global state |
| ~nucl_num~ | ~int64_t~ | in | Number of atoms | | ~nucl_num~ | ~int64_t~ | in | Number of atoms |
| ~dim_c_vector~ | ~int64_t~ | in | dimension of cord full table | | ~dim_c_vector~ | ~int64_t~ | in | dimension of cord full table |
| ~type_nucl_num~ | ~int64_t~ | in | dimension of cord full table | | ~type_nucl_num~ | ~int64_t~ | in | dimension of cord full table |
| ~type_nucl_vector~ | ~int64_t[nucl_num]~ | in | dimension of cord full table | | ~type_nucl_vector~ | ~int64_t[nucl_num]~ | in | dimension of cord full table |
| ~c_vector~ | ~double[dim_c_vector][type_nucl_num]~ | in | dimension of cord full table | | ~c_vector~ | ~double[dim_c_vector][type_nucl_num]~ | in | dimension of cord full table |
| ~c_vector_full~ | ~double[dim_c_vector][nucl_num]~ | out | Full list of coefficients | | ~c_vector_full~ | ~double[nucl_num][dim_c_vector]~ | out | Full list of coefficients |
#+begin_src f90 :comments org :tangle (eval f) :noweb yes #+begin_src f90 :comments org :tangle (eval f) :noweb yes
integer function qmckl_compute_c_vector_full_doc_f( & integer function qmckl_compute_c_vector_full_doc_f( &
@ -7611,8 +7611,8 @@ integer function qmckl_compute_c_vector_full_doc_f( &
integer*8 , intent(in) :: dim_c_vector integer*8 , intent(in) :: dim_c_vector
integer*8 , intent(in) :: type_nucl_num integer*8 , intent(in) :: type_nucl_num
integer*8 , intent(in) :: type_nucl_vector(nucl_num) integer*8 , intent(in) :: type_nucl_vector(nucl_num)
double precision , intent(in) :: c_vector(type_nucl_num, dim_c_vector) double precision , intent(in) :: c_vector(dim_c_vector, type_nucl_num)
double precision , intent(out) :: c_vector_full(nucl_num,dim_c_vector) double precision , intent(out) :: c_vector_full(nucl_num, dim_c_vector)
double precision :: x double precision :: x
integer*8 :: i, a, k, l, nw integer*8 :: i, a, k, l, nw
@ -7625,7 +7625,7 @@ integer function qmckl_compute_c_vector_full_doc_f( &
if (info /= QMCKL_SUCCESS) return if (info /= QMCKL_SUCCESS) return
do a = 1, nucl_num do a = 1, nucl_num
c_vector_full(a,1:dim_c_vector) = c_vector(type_nucl_vector(a)+1,1:dim_c_vector) c_vector_full(a,1:dim_c_vector) = c_vector(1:dim_c_vector, type_nucl_vector(a)+1)
end do end do
end function qmckl_compute_c_vector_full_doc_f end function qmckl_compute_c_vector_full_doc_f
@ -7677,7 +7677,7 @@ qmckl_exit_code qmckl_compute_c_vector_full_hpc (
for (int i=0; i < dim_c_vector; ++i) { for (int i=0; i < dim_c_vector; ++i) {
for (int a=0; a < nucl_num; ++a){ for (int a=0; a < nucl_num; ++a){
c_vector_full[a + i*nucl_num] = c_vector[(type_nucl_vector[a])+i*type_nucl_num]; c_vector_full[a + i*nucl_num] = c_vector[i + type_nucl_vector[a]*dim_c_vector];
} }
} }
@ -7746,7 +7746,7 @@ qmckl_exit_code qmckl_compute_c_vector_full (
:FRetType: qmckl_exit_code :FRetType: qmckl_exit_code
:END: :END:
#+NAME: qmckl_factor_lkpm_combined_index_args #+NAME: lkpm_combined_index_args
| Variable | Type | In/Out | Description | | Variable | Type | In/Out | Description |
|-----------------------+----------------------------+--------+-------------------------------| |-----------------------+----------------------------+--------+-------------------------------|
| ~context~ | ~qmckl_context~ | in | Global state | | ~context~ | ~qmckl_context~ | in | Global state |
@ -7755,7 +7755,7 @@ qmckl_exit_code qmckl_compute_c_vector_full (
| ~lkpm_combined_index~ | ~int64_t[4][dim_c_vector]~ | out | Full list of combined indices | | ~lkpm_combined_index~ | ~int64_t[4][dim_c_vector]~ | out | Full list of combined indices |
#+begin_src f90 :comments org :tangle (eval f) :noweb yes #+begin_src f90 :comments org :tangle (eval f) :noweb yes
integer function qmckl_compute_lkpm_combined_index_f( & integer function qmckl_compute_lkpm_combined_index_doc_f( &
context, cord_num, dim_c_vector, lkpm_combined_index) & context, cord_num, dim_c_vector, lkpm_combined_index) &
result(info) result(info)
use qmckl use qmckl
@ -7777,13 +7777,13 @@ integer function qmckl_compute_lkpm_combined_index_f( &
kk = 0 kk = 0
do p = 2, cord_num do p = 2, cord_num
do k = p - 1, 0, -1 do k = p - 1, 0, -1
if (k .ne. 0) then if (k /= 0) then
lmax = p - k lmax = p - k
else else
lmax = p - k - 2 lmax = p - k - 2
end if end if
do l = lmax, 0, -1 do l = lmax, 0, -1
if (iand(p - k - l, 1_8) .eq. 1) cycle if (iand(p - k - l, 1_8) .eq. 1_8) cycle
m = (p - k - l)/2 m = (p - k - l)/2
kk = kk + 1 kk = kk + 1
lkpm_combined_index(kk, 1) = l lkpm_combined_index(kk, 1) = l
@ -7794,11 +7794,11 @@ integer function qmckl_compute_lkpm_combined_index_f( &
end do end do
end do end do
end function qmckl_compute_lkpm_combined_index_f end function qmckl_compute_lkpm_combined_index_doc_f
#+end_src #+end_src
#+begin_src c :comments org :tangle (eval c) :noweb yes #+begin_src c :comments org :tangle (eval c) :noweb yes
qmckl_exit_code qmckl_compute_lkpm_combined_index ( qmckl_exit_code qmckl_compute_lkpm_combined_index_hpc (
const qmckl_context context, const qmckl_context context,
const int64_t cord_num, const int64_t cord_num,
const int64_t dim_c_vector, const int64_t dim_c_vector,
@ -7834,8 +7834,85 @@ qmckl_exit_code qmckl_compute_lkpm_combined_index (
} }
#+end_src #+end_src
# #+CALL: generate_c_header(table=qmckl_factor_lkpm_combined_index_args,rettyp=get_value("CRetType"),fname=get_value("Name")) #+CALL: generate_c_interface(table=lkpm_combined_index_args,rettyp=get_value("CRetType"),fname="qmckl_compute_lkpm_combined_index_doc")
#+RESULTS:
#+begin_src f90 :tangle (eval f) :comments org :exports none
integer(c_int32_t) function qmckl_compute_lkpm_combined_index_doc &
(context, cord_num, dim_c_vector, lkpm_combined_index) &
bind(C) result(info)
use, intrinsic :: iso_c_binding
implicit none
integer (c_int64_t) , intent(in) , value :: context
integer (c_int64_t) , intent(in) , value :: cord_num
integer (c_int64_t) , intent(in) , value :: dim_c_vector
integer (c_int64_t) , intent(out) :: lkpm_combined_index(dim_c_vector,4)
integer(c_int32_t), external :: qmckl_compute_lkpm_combined_index_doc_f
info = qmckl_compute_lkpm_combined_index_doc_f &
(context, cord_num, dim_c_vector, lkpm_combined_index)
end function qmckl_compute_lkpm_combined_index_doc
#+end_src
#+begin_src c :comments org :tangle (eval c) :noweb yes
qmckl_exit_code qmckl_compute_lkpm_combined_index (
const qmckl_context context,
const int64_t cord_num,
const int64_t dim_c_vector,
int64_t* const lkpm_combined_index ) {
#ifdef HAVE_HPC
return qmckl_compute_lkpm_combined_index_hpc(context, cord_num, dim_c_vector, lkpm_combined_index);
#else
return qmckl_compute_lkpm_combined_index_doc(context, cord_num, dim_c_vector, lkpm_combined_index);
#endif
}
#+end_src
#+CALL: generate_c_header(table=lkpm_combined_index_args,rettyp=get_value("CRetType"),fname=get_value("Name"))
#+begin_src c :comments org :tangle (eval h_private_func) :noweb yes :exports none
qmckl_exit_code qmckl_compute_lkpm_combined_index (
const qmckl_context context,
const int64_t cord_num,
const int64_t dim_c_vector,
int64_t* const lkpm_combined_index );
#+end_src
#+CALL: generate_c_header(table=lkpm_combined_index_args,rettyp=get_value("CRetType"),fname="qmckl_compute_lkpm_combined_index_doc")
#+RESULTS:
#+begin_src c :tangle (eval h_func) :comments org
qmckl_exit_code qmckl_compute_lkpm_combined_index_doc (
const qmckl_context context,
const int64_t cord_num,
const int64_t dim_c_vector,
int64_t* const lkpm_combined_index );
#+end_src
#+CALL: generate_c_header(table=lkpm_combined_index_args,rettyp=get_value("CRetType"),fname="qmckl_compute_lkpm_combined_index_hpc")
#+RESULTS:
#+begin_src c :tangle (eval h_func) :comments org
qmckl_exit_code qmckl_compute_lkpm_combined_index_hpc (
const qmckl_context context,
const int64_t cord_num,
const int64_t dim_c_vector,
int64_t* const lkpm_combined_index );
#+end_src
#+begin_src c :comments org :tangle (eval h_private_func) :noweb yes :exports none
qmckl_exit_code qmckl_compute_lkpm_combined_index (
const qmckl_context context,
const int64_t cord_num,
const int64_t dim_c_vector,
int64_t* const lkpm_combined_index );
#+end_src
#+CALL: generate_c_header(table=lkpm_combined_index_args,rettyp=get_value("CRetType"),fname=get_value("Name"))
#+begin_src c :comments org :tangle (eval h_private_func) :noweb yes :exports none #+begin_src c :comments org :tangle (eval h_private_func) :noweb yes :exports none
qmckl_exit_code qmckl_compute_lkpm_combined_index ( qmckl_exit_code qmckl_compute_lkpm_combined_index (
const qmckl_context context, const qmckl_context context,
@ -8526,6 +8603,20 @@ qmckl_exit_code qmckl_provide_jastrow_champ_factor_een(qmckl_context context)
ctx->jastrow_champ.factor_een = factor_een; ctx->jastrow_champ.factor_een = factor_een;
} }
/*
rc = qmckl_compute_jastrow_champ_factor_een_naive(context,
ctx->electron.walker.num,
ctx->electron.num,
ctx->nucleus.num,
ctx->jastrow_champ.cord_num,
ctx->jastrow_champ.dim_c_vector,
ctx->jastrow_champ.c_vector_full,
ctx->jastrow_champ.lkpm_combined_index,
ctx->jastrow_champ.een_rescaled_e,
ctx->jastrow_champ.een_rescaled_n,
ctx->jastrow_champ.factor_een);
*/
rc = qmckl_compute_jastrow_champ_factor_een(context, rc = qmckl_compute_jastrow_champ_factor_een(context,
ctx->electron.walker.num, ctx->electron.walker.num,
ctx->electron.num, ctx->electron.num,
@ -8566,8 +8657,8 @@ qmckl_exit_code qmckl_provide_jastrow_champ_factor_een(qmckl_context context)
| ~dim_c_vector~ | ~int64_t~ | in | dimension of full coefficient vector | | ~dim_c_vector~ | ~int64_t~ | in | dimension of full coefficient vector |
| ~c_vector_full~ | ~double[dim_c_vector][nucl_num]~ | in | full coefficient vector | | ~c_vector_full~ | ~double[dim_c_vector][nucl_num]~ | in | full coefficient vector |
| ~lkpm_combined_index~ | ~int64_t[4][dim_c_vector]~ | in | combined indices | | ~lkpm_combined_index~ | ~int64_t[4][dim_c_vector]~ | in | combined indices |
| ~een_rescaled_e~ | ~double[walk_num][elec_num][elec_num][0:cord_num]~ | in | Electron-nucleus rescaled | | ~een_rescaled_e~ | ~double[walk_num][0:cord_num][elec_num][elec_num]~ | in | Electron-nucleus rescaled |
| ~een_rescaled_n~ | ~double[walk_num][elec_num][nucl_num][0:cord_num]~ | in | Electron-nucleus rescaled factor | | ~een_rescaled_n~ | ~double[walk_num][0:cord_num][nucl_num][elec_num]~ | in | Electron-nucleus rescaled factor |
| ~factor_een~ | ~double[walk_num]~ | out | Electron-nucleus jastrow | | ~factor_een~ | ~double[walk_num]~ | out | Electron-nucleus jastrow |
#+begin_src f90 :comments org :tangle (eval f) :noweb yes #+begin_src f90 :comments org :tangle (eval f) :noweb yes
@ -8582,8 +8673,8 @@ integer function qmckl_compute_jastrow_champ_factor_een_naive_f( &
integer*8 , intent(in) :: walk_num, elec_num, cord_num, nucl_num, dim_c_vector integer*8 , intent(in) :: walk_num, elec_num, cord_num, nucl_num, dim_c_vector
integer*8 , intent(in) :: lkpm_combined_index(dim_c_vector,4) integer*8 , intent(in) :: lkpm_combined_index(dim_c_vector,4)
double precision , intent(in) :: c_vector_full(nucl_num, dim_c_vector) double precision , intent(in) :: c_vector_full(nucl_num, dim_c_vector)
double precision , intent(in) :: een_rescaled_e(0:cord_num, elec_num, elec_num, walk_num) double precision , intent(in) :: een_rescaled_e(elec_num, elec_num, 0:cord_num, walk_num)
double precision , intent(in) :: een_rescaled_n(0:cord_num, nucl_num, elec_num, walk_num) double precision , intent(in) :: een_rescaled_n(elec_num, nucl_num, 0:cord_num, walk_num)
double precision , intent(out) :: factor_een(walk_num) double precision , intent(out) :: factor_een(walk_num)
integer*8 :: i, a, j, l, k, p, m, n, nw integer*8 :: i, a, j, l, k, p, m, n, nw
@ -8597,34 +8688,58 @@ integer function qmckl_compute_jastrow_champ_factor_een_naive_f( &
if (nucl_num <= 0) info = QMCKL_INVALID_ARG_4 if (nucl_num <= 0) info = QMCKL_INVALID_ARG_4
if (cord_num < 0) info = QMCKL_INVALID_ARG_5 if (cord_num < 0) info = QMCKL_INVALID_ARG_5
if (info /= QMCKL_SUCCESS) return if (info /= QMCKL_SUCCESS) return
factor_een = 0.0d0
! do nw =1, walk_num
! factor_een(nw) = 0.0d0
! do n = 1, dim_c_vector
! l = lkpm_combined_index(n, 1)
! k = lkpm_combined_index(n, 2)
! p = lkpm_combined_index(n, 3)
! m = lkpm_combined_index(n, 4)
! do a = 1, nucl_num
! accu2 = 0.0d0
! cn = c_vector_full(a, n)
! do j = 1, elec_num
! accu = 0.0d0
! do i = 1, elec_num
! accu = accu + een_rescaled_e(i,j,k,nw) * &
! een_rescaled_n(i,a,m,nw)
! end do
! accu2 = accu2 + accu * een_rescaled_n(j,a,m + l,nw)
! end do
! factor_een(nw) = factor_een(nw) + accu2 * cn
! end do
! end do
! end do
do nw =1, walk_num do nw =1, walk_num
do n = 1, dim_c_vector factor_een(nw) = 0.d0
l = lkpm_combined_index(n, 1) do n = 1, dim_c_vector
k = lkpm_combined_index(n, 2) l = lkpm_combined_index(n, 1)
p = lkpm_combined_index(n, 3) k = lkpm_combined_index(n, 2)
m = lkpm_combined_index(n, 4) p = lkpm_combined_index(n, 3)
m = lkpm_combined_index(n, 4)
do a = 1, nucl_num do a = 1, nucl_num
accu2 = 0.0d0 accu2 = 0.0d0
cn = c_vector_full(a, n) cn = c_vector_full(a, n)
do j = 1, elec_num print *, a, l, k, p, cn
accu = 0.0d0 do j = 1, elec_num
do i = 1, elec_num accu = 0.0d0
accu = accu + een_rescaled_e(k,i,j,nw) * & do i = 1, j-1
een_rescaled_n(m,a,i,nw)
!if(nw .eq. 1) then accu = accu + een_rescaled_e(i,j,k,nw) * &
! print *,l,k,p,m,j,i,een_rescaled_e(k,i,j,nw), een_rescaled_n(m,a,i,nw), accu (een_rescaled_n(i,a,l,nw) + een_rescaled_n(j,a,l,nw)) * &
!endif (een_rescaled_n(i,a,m,nw) * een_rescaled_n(j,a,m,nw))
end do
accu2 = accu2 + accu
end do
factor_een(nw) = factor_een(nw) + accu2 * cn
end do end do
accu2 = accu2 + accu * een_rescaled_n(m + l,a,j,nw) end do
!print *, l,m,nw,accu, accu2, een_rescaled_n(m + l, a, j, nw), cn, factor_een(nw)
end do
factor_een(nw) = factor_een(nw) + accu2 * cn
end do
end do
end do end do
end function qmckl_compute_jastrow_champ_factor_een_naive_f end function qmckl_compute_jastrow_champ_factor_een_naive_f
@ -8786,11 +8901,12 @@ qmckl_compute_jastrow_champ_factor_een_doc (const qmckl_context context,
const int64_t dim_c_vector, const int64_t dim_c_vector,
const double* c_vector_full, const double* c_vector_full,
const int64_t* lkpm_combined_index, const int64_t* lkpm_combined_index,
const double* een_rescaled_e, const double* tmp_c,
const double* een_rescaled_n, const double* een_rescaled_n,
double* const factor_een ); double* const factor_een );
qmckl_exit_code qmckl_exit_code
qmckl_compute_jastrow_champ_factor_een (const qmckl_context context, qmckl_compute_jastrow_champ_factor_een (const qmckl_context context,
const int64_t walk_num, const int64_t walk_num,
const int64_t elec_num, const int64_t elec_num,
@ -8799,7 +8915,7 @@ qmckl_compute_jastrow_champ_factor_een (const qmckl_context context,
const int64_t dim_c_vector, const int64_t dim_c_vector,
const double* c_vector_full, const double* c_vector_full,
const int64_t* lkpm_combined_index, const int64_t* lkpm_combined_index,
const double* een_rescaled_e, const double* tmp_c,
const double* een_rescaled_n, const double* een_rescaled_n,
double* const factor_een ); double* const factor_een );
#+end_src #+end_src
@ -8814,17 +8930,17 @@ qmckl_compute_jastrow_champ_factor_een (const qmckl_context context,
const int64_t dim_c_vector, const int64_t dim_c_vector,
const double* c_vector_full, const double* c_vector_full,
const int64_t* lkpm_combined_index, const int64_t* lkpm_combined_index,
const double* een_rescaled_e, const double* tmp_c,
const double* een_rescaled_n, const double* een_rescaled_n,
double* const factor_een ) double* const factor_een )
{ {
#ifdef HAVE_HPC #ifdef HAVE_HPC
return qmckl_compute_jastrow_champ_factor_een_doc (context, walk_num, elec_num, nucl_num, cord_num, dim_c_vector, return qmckl_compute_jastrow_champ_factor_een_doc (context, walk_num, elec_num, nucl_num, cord_num, dim_c_vector,
c_vector_full, lkpm_combined_index, een_rescaled_e, een_rescaled_n, c_vector_full, lkpm_combined_index, tmp_c, een_rescaled_n,
factor_een ); factor_een );
#else #else
return qmckl_compute_jastrow_champ_factor_een_doc (context, walk_num, elec_num, nucl_num, cord_num, dim_c_vector, return qmckl_compute_jastrow_champ_factor_een_doc (context, walk_num, elec_num, nucl_num, cord_num, dim_c_vector,
c_vector_full, lkpm_combined_index, een_rescaled_e, een_rescaled_n, c_vector_full, lkpm_combined_index, tmp_c, een_rescaled_n,
factor_een ); factor_een );
#endif #endif
} }