|  | @@ -1102,7 +1102,7 @@ namespace nmie {
 | 
	
		
			
				|  |  |        z = size_param_[l]*m[l];
 | 
	
		
			
				|  |  |        z1 = size_param_[l]*m1[l];
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -      printf("\nz[%i] = %gr%+gi; z1[%i] = %gr%+gi\n", l, std::real(z), std::imag(z), l, std::real(z1), std::imag(z1));
 | 
	
		
			
				|  |  | +      //printf("\nz[%i] = %gr%+gi; z1[%i] = %gr%+gi\n", l, std::real(z), std::imag(z), l, std::real(z1), std::imag(z1));
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |        calcD1D3(z, D1z, D3z);
 | 
	
		
			
				|  |  |        calcD1D3(z1, D1z1, D3z1);
 | 
	
	
		
			
				|  | @@ -1112,7 +1112,7 @@ namespace nmie {
 | 
	
		
			
				|  |  |        for (int n = 0; n < nmax_; n++) {
 | 
	
		
			
				|  |  |          int n1 = n + 1;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        printf("Psiz[%02i] = %11.4e,%11.4e\tZetaz[%02i] = %11.4e,%11.4e\tPsiz1[%02i] = %11.4e,%11.4e\tZetaz1[%02i] = %11.4e,%11.4e\n", n1, real(Psiz[n1]), imag(Psiz[n1]), n1, real(Zetaz[n1]), imag(Zetaz[n1]), n1, real(Psiz1[n1]), imag(Psiz1[n1]), n1, real(Zetaz1[n1]), imag(Zetaz1[n1]));
 | 
	
		
			
				|  |  | +        //printf("Psiz[%02i] = %11.4e,%11.4e\tZetaz[%02i] = %11.4e,%11.4e\tPsiz1[%02i] = %11.4e,%11.4e\tZetaz1[%02i] = %11.4e,%11.4e\n", n1, real(Psiz[n1]), imag(Psiz[n1]), n1, real(Zetaz[n1]), imag(Zetaz[n1]), n1, real(Psiz1[n1]), imag(Psiz1[n1]), n1, real(Zetaz1[n1]), imag(Zetaz1[n1]));
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          denomZeta = Zetaz[n1]*(D1z[n1] - D3z[n1]);
 | 
	
		
			
				|  |  |          denomPsi  =  Psiz[n1]*(D1z[n1] - D3z[n1]);
 | 
	
	
		
			
				|  | @@ -1123,7 +1123,7 @@ namespace nmie {
 | 
	
		
			
				|  |  |          T3 = (dln_[l + 1][n]*D1z1[n1]*Psiz1[n1] - aln_[l + 1][n]*D3z1[n1]*Zetaz1[n1])*m[l]/m1[l];
 | 
	
		
			
				|  |  |          T4 =  cln_[l + 1][n]*D1z1[n1]*Psiz1[n1] - bln_[l + 1][n]*D3z1[n1]*Zetaz1[n1];
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        printf("T1[%02i] = %11.4e,%11.4e\tT2[%02i] = %11.4e,%11.4e\tT3[%02i] = %11.4e,%11.4e\tT4[%02i] = %11.4e,%11.4e\n", n, real(D1z[n1]*T1 + T3), imag(D1z[n1]*T1 + T3), n, real(D1z[n1]*T2 + T4), imag(D1z[n1]*T2 + T4), n, real(D3z[n1]*T2 + T4), imag(D3z[n1]*T2 + T4), n, real(D3z[n1]*T1 + T3), imag(D3z[n1]*T1 + T3));
 | 
	
		
			
				|  |  | +        //printf("T1[%02i] = %11.4e,%11.4e\tT2[%02i] = %11.4e,%11.4e\tT3[%02i] = %11.4e,%11.4e\tT4[%02i] = %11.4e,%11.4e\n", n, real(D1z[n1]*T1 + T3), imag(D1z[n1]*T1 + T3), n, real(D1z[n1]*T2 + T4), imag(D1z[n1]*T2 + T4), n, real(D3z[n1]*T2 + T4), imag(D3z[n1]*T2 + T4), n, real(D3z[n1]*T1 + T3), imag(D3z[n1]*T1 + T3));
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          // aln
 | 
	
		
			
				|  |  |          aln_[l][n] = (D1z[n1]*T1 + T3)/denomZeta;
 | 
	
	
		
			
				|  | @@ -1138,22 +1138,20 @@ namespace nmie {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      // Check the result and change  aln_[0][n] and aln_[0][n] for exact zero
 | 
	
		
			
				|  |  |      for (int n = 0; n < nmax_; ++n) {
 | 
	
		
			
				|  |  | -      aln_[0][n] = 0.0;
 | 
	
		
			
				|  |  | -      bln_[0][n] = 0.0;
 | 
	
		
			
				|  |  |        //printf("n=%d, aln_=%g,%g,   bln_=%g,%g \n", n, real(aln_[0][n]), imag(aln_[0][n]),
 | 
	
		
			
				|  |  |        //   real(bln_[0][n]), imag(bln_[0][n]));
 | 
	
		
			
				|  |  | -      //if (std::abs(aln_[0][n]) < 1e-10) aln_[0][n] = 0.0;
 | 
	
		
			
				|  |  | -      //else throw std::invalid_argument("Unstable calculation of aln_[0][n]!");
 | 
	
		
			
				|  |  | -      //if (std::abs(bln_[0][n]) < 1e-10) bln_[0][n] = 0.0;
 | 
	
		
			
				|  |  | -      //else throw std::invalid_argument("Unstable calculation of bln_[0][n]!");
 | 
	
		
			
				|  |  | +      if (std::abs(aln_[0][n]) < 1e-10) aln_[0][n] = 0.0;
 | 
	
		
			
				|  |  | +      else throw std::invalid_argument("Unstable calculation of aln_[0][n]!");
 | 
	
		
			
				|  |  | +      if (std::abs(bln_[0][n]) < 1e-10) bln_[0][n] = 0.0;
 | 
	
		
			
				|  |  | +      else throw std::invalid_argument("Unstable calculation of bln_[0][n]!");
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    for (int l = L; l >= 0; l--) {
 | 
	
		
			
				|  |  | -      for (int n = 0; n < nmax_; n++) {
 | 
	
		
			
				|  |  | -        printf("aln_[%02i, %02i] = %11.4e,%11.4e\tbln_[%02i, %02i] = %11.4e,%11.4e\tcln_[%02i, %02i] = %11.4e,%11.4e\tdln_[%02i, %02i] = %11.4e,%11.4e\n", l, n, real(aln_[l][n]), imag(aln_[l][n]), l, n, real(bln_[l][n]), imag(bln_[l][n]), l, n, real(cln_[l][n]), imag(cln_[l][n]), l, n, real(dln_[l][n]), imag(dln_[l][n]));
 | 
	
		
			
				|  |  | -      }
 | 
	
		
			
				|  |  | -      printf("\n");
 | 
	
		
			
				|  |  | -    }
 | 
	
		
			
				|  |  | +//    for (int l = L; l >= 0; l--) {
 | 
	
		
			
				|  |  | +//      for (int n = 0; n < nmax_; n++) {
 | 
	
		
			
				|  |  | +//        printf("aln_[%02i, %02i] = %11.4e,%11.4e\tbln_[%02i, %02i] = %11.4e,%11.4e\tcln_[%02i, %02i] = %11.4e,%11.4e\tdln_[%02i, %02i] = %11.4e,%11.4e\n", l, n, real(aln_[l][n]), imag(aln_[l][n]), l, n, real(bln_[l][n]), imag(bln_[l][n]), l, n, real(cln_[l][n]), imag(cln_[l][n]), l, n, real(dln_[l][n]), imag(dln_[l][n]));
 | 
	
		
			
				|  |  | +//      }
 | 
	
		
			
				|  |  | +//      printf("\n");
 | 
	
		
			
				|  |  | +//    }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      isExpCoeffsCalc_ = true;
 | 
	
		
			
				|  |  |    }  // end of   void MultiLayerMie::ExpanCoeffs()
 |