44
44
45
45
from dpnp .dpnp_algo import *
46
46
from dpnp .dpnp_utils import *
47
+ from dpnp .dpnp_array import dpnp_array
47
48
import dpnp
48
49
49
50
@@ -237,7 +238,8 @@ def correlate(x1, x2, mode='valid'):
237
238
238
239
239
240
def cov (x1 , y = None , rowvar = True , bias = False , ddof = None , fweights = None , aweights = None ):
240
- """
241
+ """cov(m, y=None, rowvar=True, bias=False, ddof=None, fweights=None, aweights=None):
242
+
241
243
Estimate a covariance matrix, given data and weights.
242
244
243
245
For full documentation refer to :obj:`numpy.cov`.
@@ -248,7 +250,6 @@ def cov(x1, y=None, rowvar=True, bias=False, ddof=None, fweights=None, aweights=
248
250
Dimension of input array ``m`` is limited by ``m.ndim > 2``.
249
251
Size and shape of input arrays are supported to be equal.
250
252
Prameters ``y`` is supported only with default value ``None``.
251
- Prameters ``rowvar`` is supported only with default value ``True``.
252
253
Prameters ``bias`` is supported only with default value ``False``.
253
254
Prameters ``ddof`` is supported only with default value ``None``.
254
255
Prameters ``fweights`` is supported only with default value ``None``.
@@ -280,8 +281,6 @@ def cov(x1, y=None, rowvar=True, bias=False, ddof=None, fweights=None, aweights=
280
281
pass
281
282
elif y is not None :
282
283
pass
283
- elif not rowvar :
284
- pass
285
284
elif bias :
286
285
pass
287
286
elif ddof is not None :
@@ -291,8 +290,14 @@ def cov(x1, y=None, rowvar=True, bias=False, ddof=None, fweights=None, aweights=
291
290
elif aweights is not None :
292
291
pass
293
292
else :
294
- if x1_desc .dtype != dpnp .float64 :
295
- x1_desc = dpnp .get_dpnp_descriptor (dpnp .astype (x1 , dpnp .float64 ), copy_when_nondefault_queue = False )
293
+ if not rowvar and x1 .shape [0 ] != 1 :
294
+ x1 = x1 .get_array () if isinstance (x1 , dpnp_array ) else x1
295
+ x1 = dpnp_array ._create_from_usm_ndarray (x1 .mT )
296
+ x1 = dpnp .astype (x1 , dpnp .float64 ) if x1_desc .dtype != dpnp .float64 else x1
297
+ x1_desc = dpnp .get_dpnp_descriptor (x1 , copy_when_nondefault_queue = False )
298
+ elif x1_desc .dtype != dpnp .float64 :
299
+ x1 = dpnp .astype (x1 , dpnp .float64 )
300
+ x1_desc = dpnp .get_dpnp_descriptor (x1 , copy_when_nondefault_queue = False )
296
301
297
302
return dpnp_cov (x1_desc ).get_pyobj ()
298
303
0 commit comments