- Timestamp:
- Jun 1, 2006, 4:34:31 PM (19 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/SophyaLib/Samba/lambdaBuilder.cc
r2958 r2959 223 223 224 224 //DEL lambda_(l,m) = lam_2*lam_mm; 225 *almp += (lam_2*lam_mm) * phi; 226 almp++; 225 *almp += (lam_2*lam_mm) * phi; almp++; 227 226 228 227 b_rec=1./a_rec; … … 244 243 TVector< complex<r_4> >& phase, Alm<r_4> & alm) 245 244 { 246 TVector< complex<r_8> > phase8; 247 phase8 = phase; 248 Alm<r_8> alm8(alm.Lmax()); 249 ComputeAlmFrPhase(theta, lmax, mmax, phase8, alm8); 250 for(sa_size_t k=0; k<alm.Size(); k++) 251 alm(k) = complex<r_4>((r_4)alm8(k).real() , (r_4)alm8(k).imag()); 252 return; 245 updateArrayRecurrence(lmax); 246 r_8 cth = cos(theta); 247 r_8 sth = sin(theta); 248 249 r_8 bignorm2 = 1.e268; // = 1e-20*1.d288 250 251 r_8 lam_mm = 1. / sqrt(4.*Pi) *bignorm2; 252 r_8 lam_0, lam_1, lam_2; 253 register r_8 a_rec, b_rec; 254 register r_4 cff; 255 complex<r_4>* almp = alm.columnData(0); 256 r_8* arecp = a_recurrence_.columnData(0); 257 258 int_4 l, m; 259 for (m=0; m<=mmax;m++) { 260 //MOV^ complex<r_4>* almp = alm.columnData(m); 261 complex<r_4> phi = phase(m); 262 263 cff = lam_mm / bignorm2; 264 *almp += cff*phi; almp++; 265 266 lam_0=0.; 267 lam_1=1. /bignorm2 ; 268 269 //MOV^ r_8* arecp = a_recurrence_.columnData(m); 270 a_rec = *arecp; arecp++; // a_recurrence_(m,m); 271 b_rec = 0.; 272 for (l=m+1; l<=lmax; l++) { 273 lam_2 = (cth*lam_1-b_rec*lam_0)*a_rec; 274 275 //DEL lambda_(l,m) = lam_2*lam_mm; 276 cff = (lam_2*lam_mm); 277 *almp += cff * phi; almp++; 278 279 b_rec=1./a_rec; 280 // a_rec= LWK->a_recurr(l,m); 281 a_rec= *arecp; arecp++; // a_recurrence_(l,m); 282 lam_0 = lam_1; 283 lam_1 = lam_2; 284 } 285 lam_mm = -lam_mm*sth* sqrt( (2.*m+3.)/ (2.*m+2.) ); 286 } 253 287 } 254 288
Note:
See TracChangeset
for help on using the changeset viewer.