24#define M_PI 3.1415926535897932384626433
33 int *powers,
double *coeffs,
40 pot->
powers = (
int *)calloc(num_primitives,
sizeof(
int));
41 pot->
coeffs = (
double *)calloc(num_primitives,
sizeof(
double));
42 pot->
alpha = (
double *)calloc(num_primitives,
sizeof(
double));
45 for (
int i = 0;
i < num_primitives;
i++) {
64 if (potential == NULL) {
70 free(potential->
alpha);
86 potential->
coeffs[
i] * pow(r, n - 2) * exp(-potential->
alpha[
i] * r_2);
99 int *new_powers = calloc(n,
sizeof(
int));
100 double *new_coeffs = calloc(n,
sizeof(
double));
101 double *new_alpha = calloc(n,
sizeof(
double));
103 int n_nonzero_primitives = 0;
104 for (
int i = 0;
i < n;
i++) {
106 new_powers[n_nonzero_primitives] = src_potential->
powers[
i];
107 new_coeffs[n_nonzero_primitives] = src_potential->
coeffs[
i];
108 new_alpha[n_nonzero_primitives] = src_potential->
alpha[
i];
109 n_nonzero_primitives++;
114 src_potential->
L, src_potential->
J, n_nonzero_primitives, new_powers,
115 new_coeffs, new_alpha);
static void const int const int i
double libgrpp_potential_value(libgrpp_potential_t *potential, double r)
void libgrpp_delete_potential(libgrpp_potential_t *potential)
libgrpp_potential_t * libgrpp_shrink_potential(libgrpp_potential_t *src_potential)
libgrpp_potential_t * libgrpp_new_potential(int L, int J, int num_primitives, int *powers, double *coeffs, double *alpha)
#define LIBGRPP_ZERO_THRESH