From af3bad5b0ffbe0f19b0f85519c85a385326dec03 Mon Sep 17 00:00:00 2001
From: Samo Penic <samo@amalthea>
Date: Sat, 19 Mar 2011 21:10:19 +0000
Subject: [PATCH] Spherical harmonics should be ok. Note, that there are some difference from proposed theoretical scheme. Is Miha's theory wrong?

---
 src/shdiscover.c |    5 +++--
 src/sh.c         |    8 ++++----
 2 files changed, 7 insertions(+), 6 deletions(-)

diff --git a/src/sh.c b/src/sh.c
index b494b25..f0b19fa 100644
--- a/src/sh.c
+++ b/src/sh.c
@@ -64,11 +64,11 @@
 		fatal("Error using shY function!",1);
 
 	fac1=1.0;
-	for(i=1; i<=l-m;i++){
+	for(i=1; i<=l-abs(m);i++){
 		fac1 *= i;
 	}
 	fac2=1.0;
-	for(i=1; i<=l+m;i++){
+	for(i=1; i<=l+abs(m);i++){
 		fac2 *= i;
 	}
 
@@ -81,9 +81,9 @@
 	else {
 		//K=pow(-1.0,abs(m))*sqrt(1.0/(2.0*M_PI))*cos(m*fi);
 		if(abs(m)%2==0)
-		K=sqrt(1.0/(M_PI))*sin(m*fi);
+		K=sqrt(1.0/(M_PI))*cos(m*fi);
 		else
-		K=-sqrt(1.0/(M_PI))*sin(m*fi);
+		K=-sqrt(1.0/(M_PI))*cos(m*fi);
 	}
 	
 	return K*sqrt((2.0*l+1.0)/2.0*fac1/fac2)*plgndr(l,abs(m),cos(theta));	
diff --git a/src/shdiscover.c b/src/shdiscover.c
index 9783ef6..f16239f 100644
--- a/src/shdiscover.c
+++ b/src/shdiscover.c
@@ -24,14 +24,15 @@
 ts_fprintf(stdout,"P(0,0,0.5)=%f (%f)\n",plgndr(0,0,0.5),1.0);
 ts_fprintf(stdout,"P(1,0,0.5)=%f (%f)\n",plgndr(1,0,0.5),0.5);
 ts_fprintf(stdout,"P(2,0,0.5)=%f (%f)\n",plgndr(2,0,0.5),0.5*(3*0.5*0.5-1));
+ts_fprintf(stdout,"P(2,2,0.5)=%f (ni to:%f)\n",plgndr(2,2,0.5),0.5*(3*0.5*0.5-1));
 
 ts_fprintf(stdout,"Y(0,0,pi/6,pi/4)=%f (%f)\n",shY(0,0,M_PI/6,M_PI/4),sqrt(1/(4*M_PI)));
 ts_fprintf(stdout,"Y(1,0,pi/6,pi/4)=%f (%f)\n",shY(1,0,M_PI/6,M_PI/4),sqrt(3/(4*M_PI))*cos(M_PI/6));
 ts_fprintf(stdout,"Y(1,0,4*pi/6,6*pi/4)=%f (%f)\n",shY(1,0,4*M_PI/6,6*M_PI/4),sqrt(3/(4*M_PI))*cos(4*M_PI/6));
-ts_fprintf(stdout,"Y(1,1,pi/6,pi/4)=%f (%f)\n",shY(1,1,M_PI/6,M_PI/4),-sqrt(3/(8*M_PI))*sin(M_PI/6)*sin(M_PI/4));
+ts_fprintf(stdout,"Y(1,1,pi/6,pi/4)=%f (%f)\n",shY(1,1,M_PI/6,M_PI/4),-sqrt(3/(8*M_PI))*sin(M_PI/6)*cos(M_PI/4));
 ts_fprintf(stdout,"Y(2,0,pi/6,pi/4)=%f (%f)\n",shY(2,0,M_PI/6,M_PI/4),sqrt(5/(4*M_PI))*(3.0/2.0*cos(M_PI/6)*cos(M_PI/6)-1.0/2.0));
 ts_fprintf(stdout,"Y(2,-2,pi/6,pi/4)=%f (0)\n",shY(2,-2,M_PI/6,M_PI/4));
-ts_fprintf(stdout,"Y(2,2,pi/6,pi/4)=%f (0)\n",shY(2,2,M_PI/6,M_PI/4));
+ts_fprintf(stdout,"Y(2,2,pi/6,pi/3)=%f (%f)\n",shY(2,2,M_PI/6,M_PI/3), sqrt(15.0/(32.0*M_PI))*sin(M_PI/6)*sin(M_PI/6)*cos(2*M_PI/3));
 	
 	for(j=1;j<argc;j++){
 		l=(int)sqrt(j-1); /* determine l from dataline */

--
Gitblit v1.9.3