|  | @@ -50,10 +50,10 @@ cdef inline double *npy2c(np.ndarray a):
 | 
											
												
													
														|  |      return <double *>(a.data)
 |  |      return <double *>(a.data)
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  cdef extern from "py_nmie.h":
 |  |  cdef extern from "py_nmie.h":
 | 
											
												
													
														|  | -    cdef int nMie(int L, int pl, vector[double] x, vector[complex] m, int nTheta, vector[double] Theta, int n_max, double *Qext, double *Qsca, double *Qabs, double *Qbk, double *Qpr, double *g, double *Albedo, double S1r[], double S1i[], double S2r[], double S2i[])
 |  | 
 | 
											
												
													
														|  | -    cdef int nField(int L, int pl, vector[double] x, vector[complex] m, int n_max, int nCoords, vector[double] Xp, vector[double] Yp, vector[double] Zp, double Er[], double Ei[], double Hr[], double Hi[])
 |  | 
 | 
											
												
													
														|  | 
 |  | +    cdef int nMie(int L, int pl, vector[double] x, vector[complex] m, int nTheta, vector[double] Theta, int nmax, double *Qext, double *Qsca, double *Qabs, double *Qbk, double *Qpr, double *g, double *Albedo, double S1r[], double S1i[], double S2r[], double S2i[])
 | 
											
												
													
														|  | 
 |  | +    cdef int nField(int L, int pl, vector[double] x, vector[complex] m, int nmax, int nCoords, vector[double] Xp, vector[double] Yp, vector[double] Zp, double Er[], double Ei[], double Hr[], double Hi[])
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | -def scattnlay(np.ndarray[np.float64_t, ndim = 2] x, np.ndarray[np.complex128_t, ndim = 2] m, np.ndarray[np.float64_t, ndim = 1] theta = np.zeros(0, dtype = np.float64), np.int_t pl = -1, np.int_t n_max = -1):
 |  | 
 | 
											
												
													
														|  | 
 |  | +def scattnlay(np.ndarray[np.float64_t, ndim = 2] x, np.ndarray[np.complex128_t, ndim = 2] m, np.ndarray[np.float64_t, ndim = 1] theta = np.zeros(0, dtype = np.float64), np.int_t pl = -1, np.int_t nmax = -1):
 | 
											
												
													
														|  |      cdef Py_ssize_t i
 |  |      cdef Py_ssize_t i
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |      cdef np.ndarray[np.int_t, ndim = 1] terms = np.zeros(x.shape[0], dtype = np.int)
 |  |      cdef np.ndarray[np.int_t, ndim = 1] terms = np.zeros(x.shape[0], dtype = np.int)
 | 
											
										
											
												
													
														|  | @@ -80,14 +80,14 @@ def scattnlay(np.ndarray[np.float64_t, ndim = 2] x, np.ndarray[np.complex128_t,
 | 
											
												
													
														|  |          S2r = np.zeros(theta.shape[0], dtype = np.float64)
 |  |          S2r = np.zeros(theta.shape[0], dtype = np.float64)
 | 
											
												
													
														|  |          S2i = np.zeros(theta.shape[0], dtype = np.float64)
 |  |          S2i = np.zeros(theta.shape[0], dtype = np.float64)
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | -        terms[i] = nMie(x.shape[1], pl, x[i].copy('C'), m[i].copy('C'), theta.shape[0], theta.copy('C'), n_max, &Qext[i], &Qsca[i], &Qabs[i], &Qbk[i], &Qpr[i], &g[i], &Albedo[i], npy2c(S1r), npy2c(S1i), npy2c(S2r), npy2c(S2i))
 |  | 
 | 
											
												
													
														|  | 
 |  | +        terms[i] = nMie(x.shape[1], pl, x[i].copy('C'), m[i].copy('C'), theta.shape[0], theta.copy('C'), nmax, &Qext[i], &Qsca[i], &Qabs[i], &Qbk[i], &Qpr[i], &g[i], &Albedo[i], npy2c(S1r), npy2c(S1i), npy2c(S2r), npy2c(S2i))
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |          S1[i] = S1r.copy('C') + 1.0j*S1i.copy('C')
 |  |          S1[i] = S1r.copy('C') + 1.0j*S1i.copy('C')
 | 
											
												
													
														|  |          S2[i] = S2r.copy('C') + 1.0j*S2i.copy('C')
 |  |          S2[i] = S2r.copy('C') + 1.0j*S2i.copy('C')
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |      return terms, Qext, Qsca, Qabs, Qbk, Qpr, g, Albedo, S1, S2
 |  |      return terms, Qext, Qsca, Qabs, Qbk, Qpr, g, Albedo, S1, S2
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | -def fieldnlay(np.ndarray[np.float64_t, ndim = 2] x, np.ndarray[np.complex128_t, ndim = 2] m, np.ndarray[np.float64_t, ndim = 2] coords = np.zeros((0, 3), dtype = np.float64), np.int_t pl = 0, np.int_t n_max = 0):
 |  | 
 | 
											
												
													
														|  | 
 |  | +def fieldnlay(np.ndarray[np.float64_t, ndim = 2] x, np.ndarray[np.complex128_t, ndim = 2] m, np.ndarray[np.float64_t, ndim = 2] coords = np.zeros((0, 3), dtype = np.float64), np.int_t pl = 0, np.int_t nmax = 0):
 | 
											
												
													
														|  |      cdef Py_ssize_t i
 |  |      cdef Py_ssize_t i
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |      cdef np.ndarray[np.int_t, ndim = 1] terms = np.zeros(x.shape[0], dtype = np.int)
 |  |      cdef np.ndarray[np.int_t, ndim = 1] terms = np.zeros(x.shape[0], dtype = np.int)
 | 
											
										
											
												
													
														|  | @@ -106,7 +106,7 @@ def fieldnlay(np.ndarray[np.float64_t, ndim = 2] x, np.ndarray[np.complex128_t,
 | 
											
												
													
														|  |          Hr = np.zeros(coords.shape[0], dtype = np.float64)
 |  |          Hr = np.zeros(coords.shape[0], dtype = np.float64)
 | 
											
												
													
														|  |          Hi = np.zeros(coords.shape[0], dtype = np.float64)
 |  |          Hi = np.zeros(coords.shape[0], dtype = np.float64)
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | -        terms[i] = nField(x.shape[1], pl, x[i].copy('C'), m[i].copy('C'), n_max, coords.shape[0], coords[:, 0].copy('C'), coords[:, 1].copy('C'), coords[:, 2].copy('C'), npy2c(Er), npy2c(Ei), npy2c(Hr), npy2c(Hi))
 |  | 
 | 
											
												
													
														|  | 
 |  | +        terms[i] = nField(x.shape[1], pl, x[i].copy('C'), m[i].copy('C'), nmax, coords.shape[0], coords[:, 0].copy('C'), coords[:, 1].copy('C'), coords[:, 2].copy('C'), npy2c(Er), npy2c(Ei), npy2c(Hr), npy2c(Hi))
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |          E[i] = Er.copy('C') + 1.0j*Ei.copy('C')
 |  |          E[i] = Er.copy('C') + 1.0j*Ei.copy('C')
 | 
											
												
													
														|  |          H[i] = Hr.copy('C') + 1.0j*Hi.copy('C')
 |  |          H[i] = Hr.copy('C') + 1.0j*Hi.copy('C')
 |