def test_fabs(self):
        # Test that blaze.abs(x +- 0j) == blaze.abs(x) (as mandated by C99 for cabs)
        x = blaze.array([1+0j], dshape="complex[float64]")
        assert_array_equal(blaze.abs(x), blaze.real(x))

        x = blaze.array([complex(1, -0.)], dshape="complex[float64]")
        assert_array_equal(blaze.abs(x), blaze.real(x))

        x = blaze.array([complex(blaze.inf, -0.)], dshape="complex[float64]")
        assert_array_equal(blaze.abs(x), blaze.real(x))

        x = blaze.array([complex(blaze.nan, -0.)], dshape="complex[float64]")
        assert_array_equal(blaze.abs(x), blaze.real(x))
    def test_fabs(self):
        # Test that blaze.abs(x +- 0j) == blaze.abs(x) (as mandated by C99 for cabs)
        x = blaze.array([1+0j], dshape="complex[float64]")
        assert_array_equal(blaze.abs(x), blaze.real(x))

        x = blaze.array([complex(1, -0.)], dshape="complex[float64]")
        assert_array_equal(blaze.abs(x), blaze.real(x))

        x = blaze.array([complex(blaze.inf, -0.)], dshape="complex[float64]")
        assert_array_equal(blaze.abs(x), blaze.real(x))

        x = blaze.array([complex(blaze.nan, -0.)], dshape="complex[float64]")
        assert_array_equal(blaze.abs(x), blaze.real(x))
Exemple #3
0
 def test_simple(self):
     x = blaze.array([1+1j, 0+2j, 1+2j, blaze.inf, blaze.nan])
     y_r = blaze.array([blaze.sqrt(2.), 2, blaze.sqrt(5),
                        blaze.inf, blaze.nan])
     y = blaze.abs(x)
     for i in range(len(x)):
         assert_almost_equal(y[i], y_r[i])
Exemple #4
0
    def test_cabs_inf_nan(self):
        # cabs(+-nan + nani) returns nan
        self.assertTrue(blaze.isnan(blaze.abs(complex(blaze.nan, blaze.nan))))
        self.assertTrue(blaze.isnan(blaze.abs(complex(-blaze.nan, blaze.nan))))
        self.assertTrue(blaze.isnan(blaze.abs(complex(blaze.nan, -blaze.nan))))
        self.assertTrue(blaze.isnan(blaze.abs(complex(-blaze.nan, -blaze.nan))))

        # According to C99 standard, if exactly one of the real/part is inf and
        # the other nan, then cabs should return inf
        assert_equal(blaze.abs(complex(blaze.inf, blaze.nan)), blaze.inf)
        assert_equal(blaze.abs(complex(blaze.nan, blaze.inf)), blaze.inf)
        assert_equal(blaze.abs(complex(-blaze.inf, blaze.nan)), blaze.inf)
        assert_equal(blaze.abs(complex(blaze.nan, -blaze.inf)), blaze.inf)

        values = [complex(blaze.nan, blaze.nan),
                  complex(-blaze.nan, blaze.nan),
                  complex(blaze.inf, blaze.nan),
                  complex(-blaze.inf, blaze.nan)]

        for z in values:
            abs_conj_z = blaze.abs(blaze.conj(z))
            conj_abs_z = blaze.conj(blaze.abs(z))
            abs_z = blaze.abs(z)
            assert_equal(abs_conj_z, conj_abs_z)
            assert_equal(abs_conj_z, abs_z)
            assert_equal(conj_abs_z, abs_z)
 def g(a, b):
     return blaze.abs(complex(a, b))
 def f(a):
     return blaze.abs(blaze.conj(a))
 def g(a, b):
     return blaze.abs(complex(a, b))
 def f(a):
     return blaze.abs(blaze.conj(a))