def test_bessel_i0(self): x_single = np.arange(-3, 3).reshape(1, 3, 2).astype(np.float32) x_double = np.arange(-3, 3).reshape(1, 3, 2).astype(np.float64) try: from scipy import special # pylint: disable=g-import-not-at-top self.assertAllClose(special.i0(x_single), self.evaluate(special_math_ops.bessel_i0(x_single))) self.assertAllClose(special.i0(x_double), self.evaluate(special_math_ops.bessel_i0(x_double))) except ImportError as e: tf_logging.warn('Cannot test special functions: %s' % str(e))
def test_besseli_boundary(self): self.assertAllClose(1., special_math_ops.bessel_i0(0.)) self.assertAllClose(1., special_math_ops.bessel_i0e(0.)) self.assertAllClose(0., special_math_ops.bessel_i1(0.)) self.assertAllClose(0., special_math_ops.bessel_i1e(0.)) self.assertTrue(np.isnan(self.evaluate(special_math_ops.bessel_i0(np.nan)))) self.assertTrue( np.isnan(self.evaluate(special_math_ops.bessel_i0e(np.nan)))) self.assertTrue(np.isnan(self.evaluate(special_math_ops.bessel_i1(np.nan)))) self.assertTrue( np.isnan(self.evaluate(special_math_ops.bessel_i1e(np.nan))))
def test_i0j0_even(self, dtype): x = np.random.uniform(-100., 100., size=int(1e4)).astype(dtype) self.assertAllClose( self.evaluate(special_math_ops.bessel_i0(x)), self.evaluate(special_math_ops.bessel_i0(-x))) self.assertAllClose( self.evaluate(special_math_ops.bessel_i0e(x)), self.evaluate(special_math_ops.bessel_i0e(-x))) self.assertAllClose( self.evaluate(special_math_ops.bessel_j0(x)), self.evaluate(special_math_ops.bessel_j0(-x)))
def test_besseli_small(self, dtype): x = np.random.uniform(-1., 1., size=int(1e4)).astype(dtype) try: from scipy import special # pylint: disable=g-import-not-at-top self.assertAllClose( special.i0(x), self.evaluate(special_math_ops.bessel_i0(x))) self.assertAllClose( special.i1(x), self.evaluate(special_math_ops.bessel_i1(x))) self.assertAllClose( special.i0e(x), self.evaluate(special_math_ops.bessel_i0e(x))) self.assertAllClose( special.i1e(x), self.evaluate(special_math_ops.bessel_i1e(x))) except ImportError as e: tf_logging.warn('Cannot test special functions: %s' % str(e))