--- ray/src/cal/cal/spharm.cal 2005/02/09 17:36:28 1.3 +++ ray/src/cal/cal/spharm.cal 2005/02/10 17:07:45 1.5 @@ -1,4 +1,4 @@ -{ RCSid $Id: spharm.cal,v 1.3 2005/02/09 17:36:28 greg Exp $ } +{ RCSid $Id: spharm.cal,v 1.5 2005/02/10 17:07:45 greg Exp $ } { The first few Spherical Harmonics @@ -58,8 +58,7 @@ LegendreP2(n,m,x,s) : select(n+1, odd(n) : .5*n - floor(.5*n) - .25; LegendreP(n,m,x) : if(m+.5, LegendreP2(n,m,x,sqrt(1-x*x)), - if(odd(-m),-1,1)*fact(n+m)/fact(n-m) * - LegendreP2(n,-m,x,sqrt(1-x*x)) + fact(n+m)/fact(n-m) * LegendreP2(n,-m,x,sqrt(1-x*x)) ); { SH normalization factor } SHnormF(l,m) : sqrt(0.25/PI*(2*l+1)*fact(l-m)/fact(l+m)); @@ -91,9 +90,10 @@ SphericalHarmonicYi(l,m,theta,phi) : SHthetaF(l,m,thet 11 3 1 e ... } -SH_B4(l,m,o,theta,phi) : if(m-.5, if(o, SphericalHarmonicYi(l,m,theta,phi), +SH_B4(l,m,o,theta,phi) : if(m-.5, sqrt(2) * + if(o, SphericalHarmonicYi(l,m,theta,phi), SphericalHarmonicYr(l,m,theta,phi)), - SHthetaF(l,0,theta) ); + SHthetaF(l,0,theta) ); SH_B3(l,r,theta,phi) : SH_B4(l,floor((r+1.00001)/2),odd(r+1),theta,phi); SH_B2(l,i,theta,phi) : SH_B3(l,i-l*l-1,theta,phi); SphericalHarmonicB(i,theta,phi) : SH_B2(ceil(sqrt(i)-1.00001),i,theta,phi);