31#define M_PI 3.14159265358979323846
49 for (
int mu = -lambda; mu <= lambda; mu++) {
51 for (
int r = 0; r <= lambda; r++) {
52 for (
int s = 0; s <= lambda; s++) {
53 for (
int t = 0; t <= lambda; t++) {
54 if (r + s + t == lambda) {
59 sum2 += y_lm_rst * usp_int;
75 const int m,
const int a,
const int b,
76 const int c,
const double *rsh_values) {
86 for (
int mu = -lambda; mu <= lambda; mu++) {
88 double rsh_value_k = rsh_values[mu + lambda];
93 for (
int icomb_uvw = 0; icomb_uvw < ncomb_uvw; icomb_uvw++) {
98 double y_lm_uvw = rsh_coef_L->
coeffs[(m + L) * ncomb_uvw + icomb_uvw];
103 for (
int icomb_rst = 0; icomb_rst < ncomb_rst; icomb_rst++) {
108 double y_lam_mu_rst =
109 rsh_coef_lambda->
coeffs[(mu + lambda) * ncomb_rst + icomb_rst];
115 a + r + u, b + s + v, c + t + w);
117 sum2 += y_lam_mu_rst * y_lm_uvw * usp_int;
121 sum += sum2 * rsh_value_k;
132 if ((
i % 2 == 0) && (j % 2 == 0) && (k % 2 == 0)) {
137 return 4 *
M_PI * dfac_i * dfac_j * dfac_k / dfac_ijk;
static void const int const int i
static double integrate_unitary_sphere_polynomial(int i, int j, int k)
double libgrpp_angular_type1_integral(int lambda, int II, int JJ, int KK, double *k)
double libgrpp_angular_type2_integral(const int lambda, const int L, const int m, const int a, const int b, const int c, const double *rsh_values)
double libgrpp_double_factorial(int n)
rsh_coef_table_t * libgrpp_get_real_spherical_harmonic_table(int L)
double libgrpp_spherical_to_cartesian_coef(int l, int m, int lx, int ly)
double libgrpp_evaluate_real_spherical_harmonic(const int l, const int m, const double *k)
#define LIBGRPP_ZERO_THRESH