def _integrand(self, k_y): """...""" if self.x == 0: xi = k_y return _cexp(1.0j * (-(xi**3) / 3 + (xi * self._ry / self._W_y))) else: # next line needs _integrand declared cpdef without nogil attribute, # and will execute slower than repeating the super class integration # routine function here #return super(IncAiry2d, self)._integrand(k_y) return self.spectrum(k_y) * _cexp( 1j * self._phase(k_y, self.x, self._ry))
def _f_Laguerre_Gauss_spherical(self, sin_theta, theta, phi, W_y, k, m): """Laguerre-Gaussian spectrum amplitude. Implementation for spherical coordinates. """ return self._f_Gauss_spherical(sin_theta, W_y, k) * theta**_abs(m) * \ _cexp(1j*m*phi)
def _f_Laguerre_Gauss_cartesian(self, k_y, k_z, W_y, k, m): """Laguerre-Gaussian spectrum amplitude. Impementation for Cartesian coordinates. """ return self._f_Gauss_cartesian(k_y, k_z, W_y) * \ _cexp(1j*m*self._phi(k_y, k_z)) * self._theta(k_y, k_z, k)**_abs(m)
def _integrand(self, theta, phi): """Integrand function.""" sin_theta = _sin(theta) cos_theta = _cos(theta) return sin_theta * cos_theta * self.spectrum(sin_theta, theta, phi) * \ _cexp(1j*self._phase(sin_theta, cos_theta, phi, self.x, self._ry, self._rz))
def _integrand(self, k_y, k_z): """Integrand function.""" return self.spectrum(k_y, k_z) * \ _cexp(1j*self._phase(k_y, k_z, self.x, self._ry, self._rz))
def _integrand(self, k_y): """Integrand function.""" return self.spectrum(k_y) * _cexp( 1j * self._phase(k_y, self.x, self._ry))
def _f_Airy(self, k_y, W_y, M, W): """Airy spectrum amplitude.""" return W_y * _cexp(1.0j*(-1/3)*(k_y*W_y)**3) \ * self._heaviside(W_y * k_y - (M - W)) \ * self._heaviside((M + W) - W_y * k_y)