Python scipy.special.i0() Examples
The following are 30
code examples of scipy.special.i0().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
scipy.special
, or try the search function
.
Example #1
Source File: fit.py From rapidtide with Apache License 2.0 | 6 votes |
def kaiserbessel_eval(x, p): """ Parameters ---------- x: array-like arguments to the KB function p: array-like The Kaiser-Bessel window parameters [alpha, tau] (wikipedia) or [beta, W/2] (Jackson, J. I., Meyer, C. H., Nishimura, D. G. & Macovski, A. Selection of a convolution function for Fourier inversion using gridding [computerised tomography application]. IEEE Trans. Med. Imaging 10, 473–478 (1991)) Returns ------- """ normfac = sps.i0(p[0] * np.sqrt(1.0 - np.square((0.0 / p[1])))) / p[1] return np.where(np.fabs(x) <= p[1], sps.i0(p[0] * np.sqrt(1.0 - np.square((x / p[1])))) / p[1] / normfac, 0.0)
Example #2
Source File: gain.py From DeepXi with Mozilla Public License 2.0 | 6 votes |
def mmse_stsa(xi, gamma): """ Computes the MMSE-STSA gain function. Argument/s: xi - a priori SNR. gamma - a posteriori SNR. Returns: G - MMSE-STSA gain function. """ nu = np.multiply(xi, np.divide(gamma, np.add(1, xi))) G = np.multiply(np.multiply(np.multiply(np.divide(np.sqrt(np.pi), 2), np.divide(np.sqrt(nu), gamma)), np.exp(np.divide(-nu,2))), np.add(np.multiply(np.add(1, nu), i0(np.divide(nu,2))), np.multiply(nu, i1(np.divide(nu, 2))))) # MMSE-STSA gain function. idx = np.isnan(G) | np.isinf(G) # replace by Wiener gain. G[idx] = np.divide(xi[idx], np.add(1, xi[idx])) # Wiener gain. return G
Example #3
Source File: vonmises.py From cgpm with Apache License 2.0 | 6 votes |
def estimate_kappa(N, ssx, scx): if N == 0: return 10.**-6 elif N == 1: return 10*pi else: rbar2 = (ssx / N) ** 2. + (scx / N) ** 2. rbar = rbar2 ** .5 kappa = rbar*(2. - rbar2) / (1. - rbar2) A_p = lambda k : bessel_1(k) / bessel_0(k) Apk = A_p(kappa) kappa_1 = kappa - (Apk - rbar)/(1. - Apk**2 - (1. / kappa) * Apk) Apk = A_p(kappa_1) kappa = kappa_1 - (Apk - rbar)/(1. - Apk**2 - (1. / kappa_1) * Apk) Apk = A_p(kappa) kappa_1 = kappa - (Apk - rbar)/(1. - Apk**2 - (1. / kappa) * Apk) Apk = A_p(kappa_1) kappa = kappa_1 - (Apk - rbar)/(1. - Apk**2 - (1. / kappa_1) * Apk) if isnan(kappa): return 10.**-6 else: return abs(kappa)
Example #4
Source File: test_distributions.py From GraphicDesignPatternByPython with MIT License | 5 votes |
def test_rice_overflow(self): # rice.pdf(999, 0.74) was inf since special.i0 silentyly overflows # check that using i0e fixes it assert_(np.isfinite(stats.rice.pdf(999, 0.74))) assert_(np.isfinite(stats.rice.expect(lambda x: 1, args=(0.74,)))) assert_(np.isfinite(stats.rice.expect(lambda x: 2, args=(0.74,)))) assert_(np.isfinite(stats.rice.expect(lambda x: 3, args=(0.74,))))
Example #5
Source File: _continuous_distns.py From Splunking-Crime with GNU Affero General Public License v3.0 | 5 votes |
def _entropy(self, kappa): return (-kappa * sc.i1(kappa) / sc.i0(kappa) + np.log(2 * np.pi * sc.i0(kappa)))
Example #6
Source File: _continuous_distns.py From Splunking-Crime with GNU Affero General Public License v3.0 | 5 votes |
def _pdf(self, x, kappa): return np.exp(kappa * np.cos(x)) / (2*np.pi*sc.i0(kappa))
Example #7
Source File: _continuous_distns.py From Splunking-Crime with GNU Affero General Public License v3.0 | 5 votes |
def _pdf(self, x, b): # We use (x**2 + b**2)/2 = ((x-b)**2)/2 + xb. # The factor of np.exp(-xb) is then included in the i0e function # in place of the modified Bessel function, i0, improving # numerical stability for large values of xb. return x * np.exp(-(x-b)*(x-b)/2.0) * sc.i0e(x*b)
Example #8
Source File: vonmises.py From Splunking-Crime with GNU Affero General Public License v3.0 | 5 votes |
def von_mises_cdf_normalapprox(k, x): b = np.sqrt(2/np.pi)*np.exp(k)/i0(k) z = b*np.sin(x/2.) return scipy.stats.norm.cdf(z)
Example #9
Source File: marginalized_gaussian_noise.py From gwin with GNU General Public License v3.0 | 5 votes |
def _margphase_loglr(self, mf_snr, opt_snr): """Returns the log likelihood ratio marginalized over phase. """ return numpy.log(special.i0(mf_snr)) - 0.5*opt_snr
Example #10
Source File: marginalized_gaussian_noise.py From gwin with GNU General Public License v3.0 | 5 votes |
def _margdistphase_loglr(self, mf_snr, opt_snr): """Returns the log likelihood ratio marginalized over distance and phase. """ logl = numpy.log(special.i0(mf_snr)) logl_marg = logl/self._dist_array opt_snr_marg = opt_snr/self._dist_array**2 return special.logsumexp(logl_marg - 0.5*opt_snr_marg, b=self._deltad*self.dist_prior)
Example #11
Source File: marginalized_gaussian_noise.py From gwin with GNU General Public License v3.0 | 5 votes |
def _margtimephase_loglr(self, mf_snr, opt_snr): """Returns the log likelihood ratio marginalized over time and phase. """ return special.logsumexp(numpy.log(special.i0(mf_snr)), b=self._deltat) - 0.5*opt_snr
Example #12
Source File: marginalized_gaussian_noise.py From gwin with GNU General Public License v3.0 | 5 votes |
def _margtimephasedist_loglr(self, mf_snr, opt_snr): """Returns the log likelihood ratio marginalized over time, phase and distance. """ logl = special.logsumexp(numpy.log(special.i0(mf_snr)), b=self._deltat) logl_marg = logl/self._dist_array opt_snr_marg = opt_snr/self._dist_array**2 return special.logsumexp(logl_marg - 0.5*opt_snr_marg, b=self._deltad*self.dist_prior)
Example #13
Source File: __init__.py From fluids with MIT License | 5 votes |
def i0(x): import mpmath return mpmath.mpmath.besseli(0, x)
Example #14
Source File: __init__.py From fluids with MIT License | 5 votes |
def erf(*args, **kwargs): from scipy.special import erf return erf(*args, **kwargs) # from scipy.special import lambertw, ellipe, gammaincc, gamma # fluids # from scipy.special import i1, i0, k1, k0, iv # ht # from scipy.special import hyp2f1 # if erf is None: # from scipy.special import erf
Example #15
Source File: __init__.py From fluids with MIT License | 5 votes |
def i0(*args, **kwargs): from scipy.special import i0 return i0(*args, **kwargs)
Example #16
Source File: test_basic.py From GraphicDesignPatternByPython with MIT License | 5 votes |
def test_i0(self): values = [[0.0, 1.0], [1e-10, 1.0], [0.1, 0.9071009258], [0.5, 0.6450352706], [1.0, 0.4657596077], [2.5, 0.2700464416], [5.0, 0.1835408126], [20.0, 0.0897803119], ] for i, (x, v) in enumerate(values): cv = special.i0(x) * exp(-x) assert_almost_equal(cv, v, 8, err_msg='test #%d' % i)
Example #17
Source File: test_basic.py From GraphicDesignPatternByPython with MIT License | 5 votes |
def test_i0_series(self): for z in [1., 10., 200.5]: value, err = self.iv_series(0, z) assert_allclose(special.i0(z), value, atol=err, err_msg=z)
Example #18
Source File: _continuous_distns.py From GraphicDesignPatternByPython with MIT License | 5 votes |
def _entropy(self, kappa): return (-kappa * sc.i1(kappa) / sc.i0(kappa) + np.log(2 * np.pi * sc.i0(kappa)))
Example #19
Source File: _continuous_distns.py From GraphicDesignPatternByPython with MIT License | 5 votes |
def _pdf(self, x, kappa): # vonmises.pdf(x, \kappa) = exp(\kappa * cos(x)) / (2*pi*I[0](\kappa)) return np.exp(kappa * np.cos(x)) / (2*np.pi*sc.i0(kappa))
Example #20
Source File: _continuous_distns.py From GraphicDesignPatternByPython with MIT License | 5 votes |
def _pdf(self, x, b): # rice.pdf(x, b) = x * exp(-(x**2+b**2)/2) * I[0](x*b) # # We use (x**2 + b**2)/2 = ((x-b)**2)/2 + xb. # The factor of np.exp(-xb) is then included in the i0e function # in place of the modified Bessel function, i0, improving # numerical stability for large values of xb. return x * np.exp(-(x-b)*(x-b)/2.0) * sc.i0e(x*b)
Example #21
Source File: vonmises.py From GraphicDesignPatternByPython with MIT License | 5 votes |
def von_mises_cdf_normalapprox(k, x): b = np.sqrt(2/np.pi)*np.exp(k)/i0(k) z = b*np.sin(x/2.) return scipy.stats.norm.cdf(z)
Example #22
Source File: test_basic.py From Computable with MIT License | 5 votes |
def test_i0(self): values = [[0.0, 1.0], [1e-10, 1.0], [0.1, 0.9071009258], [0.5, 0.6450352706], [1.0, 0.4657596077], [2.5, 0.2700464416], [5.0, 0.1835408126], [20.0, 0.0897803119], ] for i, (x, v) in enumerate(values): cv = special.i0(x) * exp(-x) assert_almost_equal(cv, v, 8, err_msg='test #%d' % i)
Example #23
Source File: test_basic.py From Computable with MIT License | 5 votes |
def test_i0_series(self): for z in [1., 10., 200.5]: value, err = self.iv_series(0, z) assert_tol_equal(special.i0(z), value, atol=err, err_msg=z)
Example #24
Source File: test_basic.py From Computable with MIT License | 5 votes |
def test_i0(self): assert_equal(cephes.i0(0),1.0)
Example #25
Source File: vonmises.py From Computable with MIT License | 5 votes |
def von_mises_cdf_normalapprox(k,x,C1): b = np.sqrt(2/np.pi)*np.exp(k)/i0(k) z = b*np.sin(x/2.) C = 24*k chi = z - z**3/((C-2*z**2-16)/3.-(z**4+7/4.*z**2+167./2)/(C+C1-z**2+3))**2 return scipy.stats.norm.cdf(z)
Example #26
Source File: _continuous_distns.py From lambda-packs with MIT License | 5 votes |
def _entropy(self, kappa): return (-kappa * sc.i1(kappa) / sc.i0(kappa) + np.log(2 * np.pi * sc.i0(kappa)))
Example #27
Source File: _continuous_distns.py From lambda-packs with MIT License | 5 votes |
def _pdf(self, x, kappa): # vonmises.pdf(x, \kappa) = exp(\kappa * cos(x)) / (2*pi*I[0](\kappa)) return np.exp(kappa * np.cos(x)) / (2*np.pi*sc.i0(kappa))
Example #28
Source File: _continuous_distns.py From lambda-packs with MIT License | 5 votes |
def _pdf(self, x, b): # rice.pdf(x, b) = x * exp(-(x**2+b**2)/2) * I[0](x*b) # # We use (x**2 + b**2)/2 = ((x-b)**2)/2 + xb. # The factor of np.exp(-xb) is then included in the i0e function # in place of the modified Bessel function, i0, improving # numerical stability for large values of xb. return x * np.exp(-(x-b)*(x-b)/2.0) * sc.i0e(x*b)
Example #29
Source File: vonmises.py From lambda-packs with MIT License | 5 votes |
def von_mises_cdf_normalapprox(k, x): b = np.sqrt(2/np.pi)*np.exp(k)/i0(k) z = b*np.sin(x/2.) return scipy.stats.norm.cdf(z)
Example #30
Source File: vonmises.py From cgpm with Apache License 2.0 | 5 votes |
def log_bessel_0(x): besa = bessel_0(x) # If bessel_0(a) is inf, then use the exponential approximation to # prevent numerical overflow. if isinf(besa): I0 = x - .5*log(2*pi*x) else: I0 = log(besa) return I0