From d257e92e54718ae5dfc8b4b0824bb69ac8a31fe1 Mon Sep 17 00:00:00 2001 From: Martin Reinecke Date: Mon, 17 Dec 2018 16:53:28 +0100 Subject: [PATCH] compactification --- libsharp/sharp_core.c | 48 +++++++++++++++---------------------------- 1 file changed, 16 insertions(+), 32 deletions(-) diff --git a/libsharp/sharp_core.c b/libsharp/sharp_core.c index e611805..2dcee90 100644 --- a/libsharp/sharp_core.c +++ b/libsharp/sharp_core.c @@ -559,27 +559,19 @@ NOINLINE static void map2alm_spin_kernel(sxdata_v * restrict d, d->l1p[i] = (d->cth[i]-fx11)*fx10*d->l2p[i] - fx12*d->l1p[i]; d->l1m[i] = (d->cth[i]+fx11)*fx10*d->l2m[i] - fx12*d->l1m[i]; Tv lw = d->l2p[i] + d->l2m[i]; - agr1 += d->p1pr[i]*lw; - agi1 += d->p1pi[i]*lw; - acr1 += d->p1mr[i]*lw; - aci1 += d->p1mi[i]*lw; Tv lx = d->l2m[i] - d->l2p[i]; - agr1 -= d->p2mi[i]*lx; - agi1 += d->p2mr[i]*lx; - acr1 += d->p2pi[i]*lx; - aci1 -= d->p2pr[i]*lx; + agr1 += d->p1pr[i]*lw - d->p2mi[i]*lx;; + agi1 += d->p1pi[i]*lw + d->p2mr[i]*lx; + acr1 += d->p1mr[i]*lw + d->p2pi[i]*lx; + aci1 += d->p1mi[i]*lw - d->p2pr[i]*lx; 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]; lw = d->l1p[i] + d->l1m[i]; - agr2 += d->p2pr[i]*lw; - agi2 += d->p2pi[i]*lw; - acr2 += d->p2mr[i]*lw; - aci2 += d->p2mi[i]*lw; lx = d->l1m[i] - d->l1p[i]; - agr2 -= d->p1mi[i]*lx; - agi2 += d->p1mr[i]*lx; - acr2 += d->p1pi[i]*lx; - aci2 -= d->p1pr[i]*lx; + agr2 += d->p2pr[i]*lw - d->p1mi[i]*lx; + agi2 += d->p2pi[i]*lw + d->p1mr[i]*lx; + acr2 += d->p2mr[i]*lw + d->p1pi[i]*lx; + aci2 += d->p2mi[i]*lw - d->p1pr[i]*lx; } vhsum_cmplx_special (agr1,agi1,acr1,aci1,&alm[2*l]); vhsum_cmplx_special (agr2,agi2,acr2,aci2,&alm[2*l+2]); @@ -622,27 +614,19 @@ NOINLINE static void calc_map2alm_spin (sharp_job * restrict job, d->l1p[i] = (d->cth[i]-fx11)*fx10*d->l2p[i] - fx12*d->l1p[i]; d->l1m[i] = (d->cth[i]+fx11)*fx10*d->l2m[i] - fx12*d->l1m[i]; Tv lw = d->l2p[i]*d->cfp[i] + d->l2m[i]*d->cfm[i]; - agr1 += d->p1pr[i]*lw; - agi1 += d->p1pi[i]*lw; - acr1 += d->p1mr[i]*lw; - aci1 += d->p1mi[i]*lw; Tv lx = d->l2m[i]*d->cfm[i] - d->l2p[i]*d->cfp[i]; - agr1 -= d->p2mi[i]*lx; - agi1 += d->p2mr[i]*lx; - acr1 += d->p2pi[i]*lx; - aci1 -= d->p2pr[i]*lx; + agr1 += d->p1pr[i]*lw - d->p2mi[i]*lx; + agi1 += d->p1pi[i]*lw + d->p2mr[i]*lx; + acr1 += d->p1mr[i]*lw + d->p2pi[i]*lx; + aci1 += d->p1mi[i]*lw - d->p2pr[i]*lx; 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]; lw = d->l1p[i]*d->cfp[i] + d->l1m[i]*d->cfm[i]; - agr2 += d->p2pr[i]*lw; - agi2 += d->p2pi[i]*lw; - acr2 += d->p2mr[i]*lw; - aci2 += d->p2mi[i]*lw; lx = d->l1m[i]*d->cfm[i] - d->l1p[i]*d->cfp[i]; - agr2 -= d->p1mi[i]*lx; - agi2 += d->p1mr[i]*lx; - acr2 += d->p1pi[i]*lx; - aci2 -= d->p1pr[i]*lx; + agr2 += d->p2pr[i]*lw - d->p1mi[i]*lx; + agi2 += d->p2pi[i]*lw + d->p1mr[i]*lx; + 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);