1
0
mirror of https://github.com/TREX-CoE/qmckl.git synced 2025-01-08 04:19:15 +01:00

Inline powers in AOs

This commit is contained in:
Anthony Scemama 2022-10-13 11:48:40 +02:00
parent 485571f771
commit 3e2ea5f2ca

View File

@ -4834,7 +4834,7 @@ end function qmckl_ao_polynomial_vgl_doc_f
const int64_t ldv ); const int64_t ldv );
#+end_src #+end_src
#+CALL: generate_c_header(table=qmckl_ao_polynomial_vgl_args,rettyp=get_value("CRetType"),fname="qmckl_ao_polynomial_transp_vgl_hpc") # #+CALL: generate_c_header(table=qmckl_ao_polynomial_vgl_args,rettyp=get_value("CRetType"),fname="qmckl_ao_polynomial_transp_vgl_hpc")
#+RESULTS: #+RESULTS:
#+begin_src c :tangle (eval h_func) :comments org #+begin_src c :tangle (eval h_func) :comments org
@ -4999,8 +4999,8 @@ end function qmckl_ao_polynomial_transp_vgl_doc_f
#+end_src #+end_src
#+begin_src c :tangle (eval c) :comments org #+begin_src c :tangle (eval c) :comments org
qmckl_exit_code static inline qmckl_exit_code
qmckl_ao_polynomial_transp_vgl_hpc (const qmckl_context context, qmckl_ao_polynomial_transp_vgl_hpc_inline (const qmckl_context context,
const double* restrict X, const double* restrict X,
const double* restrict R, const double* restrict R,
const int32_t lmax, const int32_t lmax,
@ -5274,6 +5274,21 @@ qmckl_ao_polynomial_transp_vgl_hpc (const qmckl_context context,
,*n = m; ,*n = m;
return QMCKL_SUCCESS; return QMCKL_SUCCESS;
} }
qmckl_exit_code
qmckl_ao_polynomial_transp_vgl_hpc (const qmckl_context context,
const double* restrict X,
const double* restrict R,
const int32_t lmax,
int64_t* n,
int32_t* restrict const L,
const int64_t ldl,
double* restrict const VGL,
const int64_t ldv )
{
return qmckl_ao_polynomial_transp_vgl_hpc_inline (context,
X, R, lmax, n, L, ldl, VGL, ldv );
}
#+end_src #+end_src
#+CALL: generate_c_interface(table=qmckl_ao_polynomial_vgl_args,rettyp=get_value("CRetType"),fname="qmckl_ao_polynomial_transp_vgl_doc") #+CALL: generate_c_interface(table=qmckl_ao_polynomial_vgl_args,rettyp=get_value("CRetType"),fname="qmckl_ao_polynomial_transp_vgl_doc")
@ -5707,7 +5722,7 @@ qmckl_compute_ao_value_hpc_gaussian (const qmckl_context context,
<<ao_value_constants>> <<ao_value_constants>>
#ifdef HAVE_OPENMP #ifdef HAVE_OPENMP
#pragma omp parallel #pragma omp parallel if (point_num > 16)
#endif #endif
{ {
qmckl_exit_code rc; qmckl_exit_code rc;
@ -5787,7 +5802,7 @@ qmckl_compute_ao_value_hpc_gaussian (const qmckl_context context,
break; break;
default: default:
rc = qmckl_ao_polynomial_transp_vgl_hpc(context, e_coord, n_coord, rc = qmckl_ao_polynomial_transp_vgl_hpc_inline(context, e_coord, n_coord,
nucleus_max_ang_mom[inucl], nucleus_max_ang_mom[inucl],
&n_poly, powers, (int64_t) 3, &n_poly, powers, (int64_t) 3,
poly_vgl, size_max); poly_vgl, size_max);
@ -6597,7 +6612,7 @@ qmckl_compute_ao_vgl_hpc_gaussian (
break; break;
default: default:
rc = qmckl_ao_polynomial_transp_vgl_hpc(context, e_coord, n_coord, rc = qmckl_ao_polynomial_transp_vgl_hpc_inline(context, e_coord, n_coord,
nucleus_max_ang_mom[inucl], nucleus_max_ang_mom[inucl],
&n_poly, powers, (int64_t) 3, &n_poly, powers, (int64_t) 3,
&(poly_vgl[0][0]), size_max); &(poly_vgl[0][0]), size_max);