Browse Source

Merge branch 'master' of github.com:ovidiopr/scattnlay

Konstantin Ladutenko 10 years ago
parent
commit
d0564ca3ba
1 changed files with 9 additions and 11 deletions
  1. 9 11
      nmie.cc

+ 9 - 11
nmie.cc

@@ -459,17 +459,15 @@ void calcPiTau(int nmax, double Theta, std::vector<double>& Pi, std::vector<doub
   //****************************************************//
   // Equations (26a) - (26c)                            //
   //****************************************************//
-  for (n = 0; n < nmax; n++) {
-    if (n == 0) {
-      // Initialize Pi and Tau
-      Pi[n] = 1.0;
-      Tau[n] = (n + 1)*cos(Theta);
-    } else {
-      // Calculate the actual values
-      Pi[n] = ((n == 1) ? ((n + n + 1)*cos(Theta)*Pi[n - 1]/n)
-                           : (((n + n + 1)*cos(Theta)*Pi[n - 1] - (n + 1)*Pi[n - 2])/n));
-      Tau[n] = (n + 1)*cos(Theta)*Pi[n] - (n + 2)*Pi[n - 1];
-    }
+  // Initialize Pi and Tau
+  Pi[0] = 1.0;
+  Tau[0] = cos(Theta);
+  // Calculate the actual values
+  Pi[1] = 3*Tau[0]*Pi[0];
+  Tau[1] = 2*Tau[0]*Pi[1] - 3*Pi[0];
+  for (n = 2; n < nmax; n++) {
+    Pi[n] = ((n + n + 1)*Tau[0]*Pi[n - 1] - (n + 1)*Pi[n - 2])/n;
+    Tau[n] = (n + 1)*Tau[0]*Pi[n] - (n + 2)*Pi[n - 1];
   }
 }