|  | @@ -512,6 +512,32 @@ namespace nmie {
 | 
											
												
													
														|  |    // Output parameters:                                                               //
 |  |    // Output parameters:                                                               //
 | 
											
												
													
														|  |    //   D1, D3: Logarithmic derivatives of the Riccati-Bessel functions                //
 |  |    //   D1, D3: Logarithmic derivatives of the Riccati-Bessel functions                //
 | 
											
												
													
														|  |    //**********************************************************************************//
 |  |    //**********************************************************************************//
 | 
											
												
													
														|  | 
 |  | +//   //ovidio
 | 
											
												
													
														|  | 
 |  | +//   void MultiLayerMie::calcD1D3(std::complex<double> z, 
 | 
											
												
													
														|  | 
 |  | +// 		      std::vector<std::complex<double> >& D1,
 | 
											
												
													
														|  | 
 |  | +// 		      std::vector<std::complex<double> >& D3) {
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +//   int n;
 | 
											
												
													
														|  | 
 |  | +//   std::complex<double> nz, PsiZeta;
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +//   // Downward recurrence for D1 - equations (16a) and (16b)
 | 
											
												
													
														|  | 
 |  | +//   D1[nmax_] = std::complex<double>(0.0, 0.0);
 | 
											
												
													
														|  | 
 |  | +//   for (n = nmax_; n > 0; n--) {
 | 
											
												
													
														|  | 
 |  | +//     nz = double(n)/z;
 | 
											
												
													
														|  | 
 |  | +//     D1[n - 1] = nz - 1.0/(D1[n] + nz);
 | 
											
												
													
														|  | 
 |  | +//   }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +//   // Upward recurrence for PsiZeta and D3 - equations (18a) - (18d)
 | 
											
												
													
														|  | 
 |  | +//   PsiZeta = 0.5*(1.0 - std::complex<double>(cos(2.0*z.real()), sin(2.0*z.real()))*exp(-2.0*z.imag()));
 | 
											
												
													
														|  | 
 |  | +//   D3[0] = std::complex<double>(0.0, 1.0);
 | 
											
												
													
														|  | 
 |  | +//   for (n = 1; n <= nmax_; n++) {
 | 
											
												
													
														|  | 
 |  | +//     nz = double(n)/z;
 | 
											
												
													
														|  | 
 |  | +//     PsiZeta = PsiZeta*(nz - D1[n - 1])*(nz - D3[n - 1]);
 | 
											
												
													
														|  | 
 |  | +//     D3[n] = D1[n] + std::complex<double>(0.0, 1.0)/PsiZeta;
 | 
											
												
													
														|  | 
 |  | +//   }
 | 
											
												
													
														|  | 
 |  | +// }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +  //tig
 | 
											
												
													
														|  |    void MultiLayerMie::calcD1D3(std::complex<double> z,
 |  |    void MultiLayerMie::calcD1D3(std::complex<double> z,
 | 
											
												
													
														|  |  			       std::vector<std::complex<double> >& D1,
 |  |  			       std::vector<std::complex<double> >& D1,
 | 
											
												
													
														|  |  			       std::vector<std::complex<double> >& D3) {
 |  |  			       std::vector<std::complex<double> >& D3) {
 |