예제 #1
0
 def check_distribution(self, dist_func, dfnum_dtype, dfden_dtype):
     dfnum = cupy.ones(self.dfnum_shape, dtype=dfnum_dtype)
     dfden = cupy.ones(self.dfden_shape, dtype=dfden_dtype)
     out = dist_func(dfnum, dfden, self.shape)
     self.assertEqual(self.shape, out.shape)
     # numpy and dpdp output dtype is float64
     self.assertEqual(out.dtype, numpy.float64)
예제 #2
0
 def check_distribution(self, dist_func, shape_dtype, scale_dtype):
     shape = cupy.ones(self.shape_shape, dtype=shape_dtype)
     scale = cupy.ones(self.scale_shape, dtype=scale_dtype)
     out = dist_func(shape, scale, self.shape)
     self.assertEqual(self.shape, out.shape)
     # numpy and dpdp output dtype is float64
     self.assertEqual(out.dtype, numpy.float64)
예제 #3
0
 def check_distribution(self, dist_func, mu_dtype, kappa_dtype):
     mu = cupy.ones(self.mu_shape, dtype=mu_dtype)
     kappa = cupy.ones(self.kappa_shape, dtype=kappa_dtype)
     out = dist_func(mu, kappa, self.shape)
     self.assertEqual(self.shape, out.shape)
     # numpy and dpdp output dtype is float64
     self.assertEqual(out.dtype, numpy.float64)
예제 #4
0
 def check_distribution(self, dist_func, ngood_dtype, nbad_dtype,
                        nsample_dtype, dtype):
     ngood = cupy.ones(self.ngood_shape, dtype=ngood_dtype)
     nbad = cupy.ones(self.nbad_shape, dtype=nbad_dtype)
     nsample = cupy.ones(self.nsample_shape, dtype=nsample_dtype)
     out = dist_func(ngood, nbad, nsample, self.shape, dtype)
     self.assertEqual(self.shape, out.shape)
     self.assertEqual(out.dtype, dtype)
예제 #5
0
 def check_distribution(self, dist_func, ngood_dtype, nbad_dtype,
                        nsample_dtype):
     ngood = cupy.ones(self.ngood_shape, dtype=ngood_dtype)
     nbad = cupy.ones(self.nbad_shape, dtype=nbad_dtype)
     nsample = cupy.ones(self.nsample_shape, dtype=nsample_dtype)
     out = dist_func(ngood, nbad, nsample, self.shape)
     self.assertEqual(self.shape, out.shape)
     # numpy output dtype is int64, dpnp output is int32
     self.assertEqual(out.dtype, numpy.int64)
예제 #6
0
 def test_mode(self):
     d = dpnp.ones(100)
     k = dpnp.ones(3)
     default_mode = dpnp.convolve(d, k, mode='full')
     full_mode = dpnp.convolve(d, k, mode='f')
     numpy.testing.assert_array_equal(full_mode, default_mode)
     # integer mode
     with numpy.testing.assert_raises(ValueError):
         dpnp.convolve(d, k, mode=-1)
     numpy.testing.assert_array_equal(dpnp.convolve(d, k, mode=2),
                                      full_mode)
     # illegal arguments
     with numpy.testing.assert_raises(TypeError):
         dpnp.convolve(d, k, mode=None)
예제 #7
0
def test_multiply_scalar2(shape, dtype):
    a = numpy.ones(shape, dtype=dtype)
    ia = inp.ones(shape, dtype=dtype)

    result = 0.5 * ia
    expected = 0.5 * a
    numpy.testing.assert_array_equal(result, expected)
예제 #8
0
 def test_logseries_for_invalid_p(self, p_dtype, dtype):
     with self.assertRaises(ValueError):
         cp_params = {'p': cupy.zeros(self.p_shape, dtype=p_dtype)}
         _distributions.logseries(size=self.shape, dtype=dtype, **cp_params)
     with self.assertRaises(ValueError):
         cp_params = {'p': cupy.ones(self.p_shape, dtype=p_dtype)}
         _distributions.logseries(size=self.shape, dtype=dtype, **cp_params)
예제 #9
0
def test_multiply_scalar2(shape, dtype):
    np_a = numpy.ones(shape, dtype=dtype)
    dpnp_a = dpnp.ones(shape, dtype=dtype)

    result = 0.5 * dpnp_a
    expected = 0.5 * np_a
    numpy.testing.assert_array_equal(result, expected)
예제 #10
0
 def test_histogram_weights_basic(self):
     v = cupy.random.rand(100)
     w = cupy.ones(100) * 5
     a, b = cupy.histogram(v)
     na, nb = cupy.histogram(v, density=True)
     wa, wb = cupy.histogram(v, weights=w)
     nwa, nwb = cupy.histogram(v, weights=w, density=True)
     testing.assert_array_almost_equal(a * 5, wa)
     testing.assert_array_almost_equal(na, nwa)
예제 #11
0
 def test_cumprod_huge_array(self):
     size = 2**32
     # Free huge memory for slow test
     cupy.get_default_memory_pool().free_all_blocks()
     a = cupy.ones(size, 'b')
     result = cupy.cumprod(a, dtype='b')
     del a
     self.assertTrue((result == 1).all())
     # Free huge memory for slow test
     del result
     cupy.get_default_memory_pool().free_all_blocks()
예제 #12
0
 def test_no_overwrite(self):
     d = dpnp.ones(100)
     k = dpnp.ones(3)
     dpnp.convolve(d, k)
     numpy.testing.assert_array_equal(d, dpnp.ones(100))
     numpy.testing.assert_array_equal(k, dpnp.ones(3))
예제 #13
0
 def check_distribution(self, dist_func, mu_dtype, kappa_dtype, dtype):
     mu = cupy.ones(self.mu_shape, dtype=mu_dtype)
     kappa = cupy.ones(self.kappa_shape, dtype=kappa_dtype)
     out = dist_func(mu, kappa, self.shape, dtype)
     self.assertEqual(self.shape, out.shape)
     self.assertEqual(out.dtype, dtype)
예제 #14
0
 def check_distribution(self, dist_func, df_dtype, dtype):
     df = cupy.ones(self.df_shape, dtype=df_dtype)
     out = dist_func(df, self.shape, dtype)
     self.assertEqual(self.shape, out.shape)
     self.assertEqual(out.dtype, dtype)
예제 #15
0
 def check_distribution(self, dist_func, a_dtype, dtype):
     a = cupy.ones(self.a_shape, dtype=a_dtype)
     out = dist_func(a, self.shape, dtype)
     self.assertEqual(self.shape, out.shape)
     self.assertEqual(out.dtype, dtype)
예제 #16
0
 def check_distribution(self, dist_func, p_dtype, dtype):
     p = 0.5 * cupy.ones(self.p_shape, dtype=p_dtype)
     out = dist_func(p, self.shape, dtype)
     self.assertEqual(self.shape, out.shape)
     self.assertEqual(out.dtype, dtype)
예제 #17
0
 def check_distribution(self, dist_func, a_dtype):
     a = cupy.ones(self.a_shape, dtype=a_dtype)
     out = dist_func(a, self.shape)
     self.assertEqual(self.shape, out.shape)
     # numpy and dpdp output dtype is float64
     self.assertEqual(out.dtype, numpy.float64)
예제 #18
0
 def test_real_inplace(self, dtype):
     x = cupy.zeros((2, 3), dtype=dtype)
     x.real[:] = 1
     expected = cupy.ones((2, 3), dtype=dtype)
     assert cupy.all(x == expected)
예제 #19
0
 def check_distribution(self, dist_func, p_dtype):
     p = 0.5 * cupy.ones(self.p_shape, dtype=p_dtype)
     out = dist_func(p, self.shape)
     self.assertEqual(self.shape, out.shape)
     # numpy output dtype is int64, dpnp output is int32
     self.assertEqual(out.dtype, numpy.int64)
예제 #20
0
 def check_distribution(self, dist_func, dfnum_dtype, dfden_dtype, dtype):
     dfnum = cupy.ones(self.dfnum_shape, dtype=dfnum_dtype)
     dfden = cupy.ones(self.dfden_shape, dtype=dfden_dtype)
     out = dist_func(dfnum, dfden, self.shape, dtype)
     self.assertEqual(self.shape, out.shape)
     self.assertEqual(out.dtype, dtype)
예제 #21
0
 def check_distribution(self, dist_func, shape_dtype, scale_dtype, dtype):
     shape = cupy.ones(self.shape_shape, dtype=shape_dtype)
     scale = cupy.ones(self.scale_shape, dtype=scale_dtype)
     out = dist_func(shape, scale, self.shape, dtype)
     self.assertEqual(self.shape, out.shape)
     self.assertEqual(out.dtype, dtype)
예제 #22
0
    b = T * mr

    z = T * sig_sig_two
    c = 0.25 * z
    y = 1./np.sqrt(z)

    w1 = (a - b + c) * y
    w2 = (a - b - c) * y

    d1 = 0.5 + 0.5 * np.erf(w1)
    d2 = 0.5 + 0.5 * np.erf(w2)

    Se = np.exp(b) * S

    r =  P * d1 - Se * d2
    call[:] = r  # temporary `r` is necessary for faster `put` computation
    put[:] = r - P + Se


np.random.seed(SEED)
price = np.random.uniform(PL, PH, SIZE)
strike = np.random.uniform(SL, SH, SIZE)
t = np.random.uniform(TL, TH, SIZE)

call = np.zeros(SIZE, dtype=DTYPE)
put  = -np.ones(SIZE, dtype=DTYPE)

black_scholes(price, strike, t, RISK_FREE, VOLATILITY, call, put)
print(call[:10])
print(put[:10])
예제 #23
0
파일: test_basic.py 프로젝트: shssf/dpnp
    def test_ones_like_reshape_cupy_only(self, dtype):
        a = testing.shaped_arange((2, 3, 4), cupy, dtype)
        b = cupy.ones_like(a, shape=self.shape)
        c = cupy.ones(self.shape, dtype=dtype)

        testing.assert_array_equal(b, c)