From 5d560c2b2c585792067b12601981d04638e8bd1b Mon Sep 17 00:00:00 2001 From: Martin Reinecke Date: Wed, 19 Dec 2018 14:12:58 +0100 Subject: [PATCH 1/3] adjust array size --- libsharp/sharp_ylmgen_c.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/libsharp/sharp_ylmgen_c.c b/libsharp/sharp_ylmgen_c.c index e967773..548f061 100644 --- a/libsharp/sharp_ylmgen_c.c +++ b/libsharp/sharp_ylmgen_c.c @@ -74,9 +74,9 @@ void sharp_Ylmgen_init (sharp_Ylmgen_C *gen, int l_max, int m_max, int spin) gen->mfac[0] = inv_sqrt4pi; for (int m=1; m<=gen->mmax; ++m) gen->mfac[m] = gen->mfac[m-1]*sqrt((2*m+1.)/(2*m)); - gen->root = RALLOC(double,2*gen->lmax+5); - gen->iroot = RALLOC(double,2*gen->lmax+5); - for (int m=0; m<2*gen->lmax+5; ++m) + gen->root = RALLOC(double,2*gen->lmax+7); + gen->iroot = RALLOC(double,2*gen->lmax+7); + for (int m=0; m<2*gen->lmax+7; ++m) { gen->root[m] = sqrt(m); gen->iroot[m] = (m==0) ? 0. : 1./gen->root[m]; From d295e4c60990459eed84a84955989a63ec7dab59 Mon Sep 17 00:00:00 2001 From: Martin Reinecke Date: Wed, 19 Dec 2018 15:07:17 +0100 Subject: [PATCH 2/3] fix --- libsharp/sharp_core.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/libsharp/sharp_core.c b/libsharp/sharp_core.c index 2dcee90..37f7710 100644 --- a/libsharp/sharp_core.c +++ b/libsharp/sharp_core.c @@ -261,10 +261,8 @@ NOINLINE static void calc_alm2map (sharp_job * restrict job, d->p1i[i] += d->lam2[i]*d->corfac[i]*ai1; d->lam2[i] = f20*d->cth[i]*d->lam1[i] - f21*d->lam2[i]; if (rescale(&d->lam1[i], &d->lam2[i], &d->scale[i], vload(sharp_ftol))) - { getCorfac(d->scale[i], &d->corfac[i], gen->cf); - full_ieee &= vallTrue(vge(d->scale[i],vload(sharp_minscale))); - } + full_ieee &= vallTrue(vge(d->scale[i],vload(sharp_minscale))); d->p2r[i] += d->lam1[i]*d->corfac[i]*ar2; d->p2i[i] += d->lam1[i]*d->corfac[i]*ai2; } @@ -336,16 +334,15 @@ NOINLINE static void calc_map2alm(sharp_job * restrict job, atmp[1] += d->lam2[i]*d->corfac[i]*d->p1i[i]; d->lam2[i] = f20*d->cth[i]*d->lam1[i] - f21*d->lam2[i]; if (rescale(&d->lam1[i], &d->lam2[i], &d->scale[i], vload(sharp_ftol))) - { getCorfac(d->scale[i], &d->corfac[i], gen->cf); - full_ieee &= vallTrue(vge(d->scale[i],vload(sharp_minscale))); - } + full_ieee &= vallTrue(vge(d->scale[i],vload(sharp_minscale))); atmp[2] += d->lam1[i]*d->corfac[i]*d->p2r[i]; atmp[3] += d->lam1[i]*d->corfac[i]*d->p2i[i]; } vhsum_cmplx_special (atmp[0], atmp[1], atmp[2], atmp[3], &alm[l]); l+=2; } + if (l>lmax) return; for (int i=0; i Date: Wed, 19 Dec 2018 15:14:05 +0100 Subject: [PATCH 3/3] more fixes --- libsharp/sharp_core.c | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/libsharp/sharp_core.c b/libsharp/sharp_core.c index 37f7710..7e08b94 100644 --- a/libsharp/sharp_core.c +++ b/libsharp/sharp_core.c @@ -515,15 +515,11 @@ NOINLINE static void calc_alm2map_spin (sharp_job * restrict job, d->l2p[i] = (d->cth[i]-fx21)*fx20*d->l1p[i] - fx22*d->l2p[i]; d->l2m[i] = (d->cth[i]+fx21)*fx20*d->l1m[i] - fx22*d->l2m[i]; if (rescale(&d->l1p[i], &d->l2p[i], &d->scp[i], vload(sharp_ftol))) - { getCorfac(d->scp[i], &d->cfp[i], gen->cf); - full_ieee &= vallTrue(vge(d->scp[i],vload(sharp_minscale))); - } + full_ieee &= vallTrue(vge(d->scp[i],vload(sharp_minscale))); if (rescale(&d->l1m[i], &d->l2m[i], &d->scm[i], vload(sharp_ftol))) - { getCorfac(d->scm[i], &d->cfm[i], gen->cf); - full_ieee &= vallTrue(vge(d->scm[i],vload(sharp_minscale))); - } + full_ieee &= vallTrue(vge(d->scm[i],vload(sharp_minscale))); } l+=2; } @@ -625,15 +621,11 @@ NOINLINE static void calc_map2alm_spin (sharp_job * restrict job, acr2 += d->p2mr[i]*lw + d->p1pi[i]*lx; aci2 += d->p2mi[i]*lw - d->p1pr[i]*lx; if (rescale(&d->l1p[i], &d->l2p[i], &d->scp[i], vload(sharp_ftol))) - { getCorfac(d->scp[i], &d->cfp[i], gen->cf); - full_ieee &= vallTrue(vge(d->scp[i],vload(sharp_minscale))); - } + full_ieee &= vallTrue(vge(d->scp[i],vload(sharp_minscale))); if (rescale(&d->l1m[i], &d->l2m[i], &d->scm[i], vload(sharp_ftol))) - { getCorfac(d->scm[i], &d->cfm[i], gen->cf); - full_ieee &= vallTrue(vge(d->scm[i],vload(sharp_minscale))); - } + full_ieee &= vallTrue(vge(d->scm[i],vload(sharp_minscale))); } vhsum_cmplx_special (agr1,agi1,acr1,aci1,&alm[2*l]); vhsum_cmplx_special (agr2,agi2,acr2,aci2,&alm[2*l+2]);