diff --git a/qpms/ewald.c b/qpms/ewald.c index eb8f57b..07f3892 100644 --- a/qpms/ewald.c +++ b/qpms/ewald.c @@ -317,7 +317,7 @@ int ewald32_sigma_short_shiftedpoints( if((m+n) % 2 != 0) // odd coefficients are zero. continue; // nothing needed, already done by memset complex double e_imf = cexp(I*m*Rpq_shifted_arg); - double leg = c->legendre0[gsl_sf_legendre_array_index(n, m)]; + double leg = c->legendre0[gsl_sf_legendre_array_index(n, abs(m))]; qpms_y_t y = qpms_mn2y_sc(m,n); if(err) kahanadd(err + y, err_c + y, cabs(leg * (prefacn / I) * R_pq_pown diff --git a/tests/ewalds.c b/tests/ewalds.c index ebcddd1..faf27ec 100644 --- a/tests/ewalds.c +++ b/tests/ewalds.c @@ -175,7 +175,7 @@ ewaldtest_triang_results *ewaldtest_triang(const ewaldtest_triang_params p) { complex double eimf = cexp(I*m*arg_pq); results->regsigmas_416[y] += 4*M_PI*ipow(n)/p.k/A - * eimf * legendres[gsl_sf_legendre_array_index(n,m)] + * eimf * legendres[gsl_sf_legendre_array_index(n,abs(m))] / denom; } }