Skip to content

Commit 3d28cca

Browse files
authored
trunk and 1of1 functions to desc (#845)
1 parent a0e28a0 commit 3d28cca

File tree

7 files changed

+61
-51
lines changed

7 files changed

+61
-51
lines changed

dpnp/dpnp_algo/dpnp_algo.pxd

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -368,26 +368,26 @@ Trigonometric functions
368368
"""
369369
cpdef dpnp_descriptor dpnp_arccos(dpnp_descriptor array1)
370370
cpdef dpnp_descriptor dpnp_arccosh(dpnp_descriptor array1)
371-
cpdef dpnp_descriptor dpnp_arcsin(dpnp_descriptor array1, dparray out)
371+
cpdef dpnp_descriptor dpnp_arcsin(dpnp_descriptor array1, dpnp_descriptor out)
372372
cpdef dpnp_descriptor dpnp_arcsinh(dpnp_descriptor array1)
373-
cpdef dpnp_descriptor dpnp_arctan(dpnp_descriptor array1, dparray out)
373+
cpdef dpnp_descriptor dpnp_arctan(dpnp_descriptor array1, dpnp_descriptor out)
374374
cpdef dpnp_descriptor dpnp_arctanh(dpnp_descriptor array1)
375375
cpdef dpnp_descriptor dpnp_cbrt(dpnp_descriptor array1)
376-
cpdef dpnp_descriptor dpnp_cos(dpnp_descriptor array1, dparray out)
376+
cpdef dpnp_descriptor dpnp_cos(dpnp_descriptor array1, dpnp_descriptor out)
377377
cpdef dpnp_descriptor dpnp_cosh(dpnp_descriptor array1)
378378
cpdef dpnp_descriptor dpnp_degrees(dpnp_descriptor array1)
379-
cpdef dpnp_descriptor dpnp_exp(dpnp_descriptor array1, dparray out)
379+
cpdef dpnp_descriptor dpnp_exp(dpnp_descriptor array1, dpnp_descriptor out)
380380
cpdef dpnp_descriptor dpnp_exp2(dpnp_descriptor array1)
381381
cpdef dpnp_descriptor dpnp_expm1(dpnp_descriptor array1)
382-
cpdef dpnp_descriptor dpnp_log(dpnp_descriptor array1, dparray out)
382+
cpdef dpnp_descriptor dpnp_log(dpnp_descriptor array1, dpnp_descriptor out)
383383
cpdef dpnp_descriptor dpnp_log10(dpnp_descriptor array1)
384384
cpdef dpnp_descriptor dpnp_log1p(dpnp_descriptor array1)
385385
cpdef dpnp_descriptor dpnp_log2(dpnp_descriptor array1)
386386
cpdef dpnp_descriptor dpnp_radians(dpnp_descriptor array1)
387387
cpdef dpnp_descriptor dpnp_recip(dpnp_descriptor array1)
388-
cpdef dpnp_descriptor dpnp_sin(dpnp_descriptor array1, dparray out)
388+
cpdef dpnp_descriptor dpnp_sin(dpnp_descriptor array1, dpnp_descriptor out)
389389
cpdef dpnp_descriptor dpnp_sinh(dpnp_descriptor array1)
390390
cpdef dpnp_descriptor dpnp_sqrt(dpnp_descriptor array1)
391391
cpdef dpnp_descriptor dpnp_square(dpnp_descriptor array1)
392-
cpdef dpnp_descriptor dpnp_tan(dpnp_descriptor array1, dparray out)
392+
cpdef dpnp_descriptor dpnp_tan(dpnp_descriptor array1, dpnp_descriptor out)
393393
cpdef dpnp_descriptor dpnp_tanh(dpnp_descriptor array1)

dpnp/dpnp_algo/dpnp_algo.pyx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -268,7 +268,7 @@ cdef utils.dpnp_descriptor call_fptr_1out(DPNPFuncName fptr_name,
268268
cdef utils.dpnp_descriptor call_fptr_1in_1out(DPNPFuncName fptr_name,
269269
utils.dpnp_descriptor x1,
270270
shape_type_c result_shape,
271-
dparray out=None,
271+
utils.dpnp_descriptor out=None,
272272
func_name=None):
273273

274274
""" Convert type (x1.dtype) to C enum DPNPFuncType """
@@ -289,7 +289,8 @@ cdef utils.dpnp_descriptor call_fptr_1in_1out(DPNPFuncName fptr_name,
289289
utils.checker_throw_value_error(func_name, 'out.dtype', out.dtype, result_type)
290290
if out.shape != result_shape:
291291
utils.checker_throw_value_error(func_name, 'out.shape', out.shape, result_shape)
292-
result = dpnp_descriptor(out)
292+
293+
result = out
293294

294295
cdef fptr_1in_1out_t func = <fptr_1in_1out_t > kernel_data.ptr
295296

dpnp/dpnp_algo/dpnp_algo_mathematical.pyx

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -134,8 +134,8 @@ cpdef dpnp_around(utils.dpnp_descriptor x1, int decimals):
134134
return result
135135

136136

137-
cpdef utils.dpnp_descriptor dpnp_ceil(utils.dpnp_descriptor x1, dparray out):
138-
return call_fptr_1in_1out(DPNP_FN_CEIL, x1, x1.shape, out=out, func_name='ceil')
137+
cpdef utils.dpnp_descriptor dpnp_ceil(utils.dpnp_descriptor x1, utils.dpnp_descriptor out):
138+
return call_fptr_1in_1out(DPNP_FN_CEIL, x1, x1.shape, out, func_name='ceil')
139139

140140

141141
cpdef utils.dpnp_descriptor dpnp_conjugate(utils.dpnp_descriptor x1):
@@ -229,8 +229,8 @@ cpdef utils.dpnp_descriptor dpnp_fabs(utils.dpnp_descriptor x1):
229229
return call_fptr_1in_1out(DPNP_FN_FABS, x1, x1.shape)
230230

231231

232-
cpdef utils.dpnp_descriptor dpnp_floor(utils.dpnp_descriptor x1, dparray out):
233-
return call_fptr_1in_1out(DPNP_FN_FLOOR, x1, x1.shape, out=out, func_name='floor')
232+
cpdef utils.dpnp_descriptor dpnp_floor(utils.dpnp_descriptor x1, utils.dpnp_descriptor out):
233+
return call_fptr_1in_1out(DPNP_FN_FLOOR, x1, x1.shape, out, func_name='floor')
234234

235235

236236
cpdef utils.dpnp_descriptor dpnp_floor_divide(utils.dpnp_descriptor x1_obj,
@@ -492,5 +492,5 @@ cpdef dpnp_trapz(utils.dpnp_descriptor y1, dparray x1, double dx):
492492
return result[0]
493493

494494

495-
cpdef utils.dpnp_descriptor dpnp_trunc(utils.dpnp_descriptor x1, dparray out):
496-
return call_fptr_1in_1out(DPNP_FN_TRUNC, x1, x1.shape, out=out, func_name='trunc')
495+
cpdef utils.dpnp_descriptor dpnp_trunc(utils.dpnp_descriptor x1, utils.dpnp_descriptor out):
496+
return call_fptr_1in_1out(DPNP_FN_TRUNC, x1, x1.shape, out, func_name='trunc')

dpnp/dpnp_algo/dpnp_algo_trigonometric.pyx

Lines changed: 22 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -72,16 +72,16 @@ cpdef utils.dpnp_descriptor dpnp_arccosh(utils.dpnp_descriptor x1):
7272
return call_fptr_1in_1out(DPNP_FN_ARCCOSH, x1, x1.shape)
7373

7474

75-
cpdef utils.dpnp_descriptor dpnp_arcsin(utils.dpnp_descriptor x1, dparray out):
76-
return call_fptr_1in_1out(DPNP_FN_ARCSIN, x1, x1.shape, out=out, func_name='arcsin')
75+
cpdef utils.dpnp_descriptor dpnp_arcsin(utils.dpnp_descriptor x1, utils.dpnp_descriptor out):
76+
return call_fptr_1in_1out(DPNP_FN_ARCSIN, x1, x1.shape, out, func_name='arcsin')
7777

7878

7979
cpdef utils.dpnp_descriptor dpnp_arcsinh(utils.dpnp_descriptor x1):
8080
return call_fptr_1in_1out(DPNP_FN_ARCSINH, x1, x1.shape)
8181

8282

83-
cpdef utils.dpnp_descriptor dpnp_arctan(utils.dpnp_descriptor x1, dparray out):
84-
return call_fptr_1in_1out(DPNP_FN_ARCTAN, x1, x1.shape, out=out, func_name='arctan')
83+
cpdef utils.dpnp_descriptor dpnp_arctan(utils.dpnp_descriptor x1, utils.dpnp_descriptor out):
84+
return call_fptr_1in_1out(DPNP_FN_ARCTAN, x1, x1.shape, out, func_name='arctan')
8585

8686

8787
cpdef utils.dpnp_descriptor dpnp_arctanh(utils.dpnp_descriptor x1):
@@ -92,8 +92,8 @@ cpdef utils.dpnp_descriptor dpnp_cbrt(utils.dpnp_descriptor x1):
9292
return call_fptr_1in_1out(DPNP_FN_CBRT, x1, x1.shape)
9393

9494

95-
cpdef utils.dpnp_descriptor dpnp_cos(utils.dpnp_descriptor x1, dparray out):
96-
return call_fptr_1in_1out(DPNP_FN_COS, x1, x1.shape, out=out, func_name='cos')
95+
cpdef utils.dpnp_descriptor dpnp_cos(utils.dpnp_descriptor x1, utils.dpnp_descriptor out):
96+
return call_fptr_1in_1out(DPNP_FN_COS, x1, x1.shape, out, func_name='cos')
9797

9898

9999
cpdef utils.dpnp_descriptor dpnp_cosh(utils.dpnp_descriptor x1):
@@ -104,8 +104,8 @@ cpdef utils.dpnp_descriptor dpnp_degrees(utils.dpnp_descriptor x1):
104104
return call_fptr_1in_1out(DPNP_FN_DEGREES, x1, x1.shape)
105105

106106

107-
cpdef utils.dpnp_descriptor dpnp_exp(utils.dpnp_descriptor x1, dparray out):
108-
return call_fptr_1in_1out(DPNP_FN_EXP, x1, x1.shape, out=out, func_name='exp')
107+
cpdef utils.dpnp_descriptor dpnp_exp(utils.dpnp_descriptor x1, utils.dpnp_descriptor out):
108+
return call_fptr_1in_1out(DPNP_FN_EXP, x1, x1.shape, out, func_name='exp')
109109

110110

111111
cpdef utils.dpnp_descriptor dpnp_exp2(utils.dpnp_descriptor x1):
@@ -116,8 +116,8 @@ cpdef utils.dpnp_descriptor dpnp_expm1(utils.dpnp_descriptor x1):
116116
return call_fptr_1in_1out(DPNP_FN_EXPM1, x1, x1.shape)
117117

118118

119-
cpdef utils.dpnp_descriptor dpnp_log(utils.dpnp_descriptor x1, dparray out):
120-
return call_fptr_1in_1out(DPNP_FN_LOG, x1, x1.shape, out=out, func_name='log')
119+
cpdef utils.dpnp_descriptor dpnp_log(utils.dpnp_descriptor x1, utils.dpnp_descriptor out):
120+
return call_fptr_1in_1out(DPNP_FN_LOG, x1, x1.shape, out, func_name='log')
121121

122122

123123
cpdef utils.dpnp_descriptor dpnp_log10(utils.dpnp_descriptor x1):
@@ -140,8 +140,8 @@ cpdef utils.dpnp_descriptor dpnp_radians(utils.dpnp_descriptor x1):
140140
return call_fptr_1in_1out(DPNP_FN_RADIANS, x1, x1.shape)
141141

142142

143-
cpdef utils.dpnp_descriptor dpnp_sin(utils.dpnp_descriptor x1, dparray out):
144-
return call_fptr_1in_1out(DPNP_FN_SIN, x1, x1.shape, out=out, func_name='sin')
143+
cpdef utils.dpnp_descriptor dpnp_sin(utils.dpnp_descriptor x1, utils.dpnp_descriptor out):
144+
return call_fptr_1in_1out(DPNP_FN_SIN, x1, x1.shape, out, func_name='sin')
145145

146146

147147
cpdef utils.dpnp_descriptor dpnp_sinh(utils.dpnp_descriptor x1):
@@ -156,26 +156,25 @@ cpdef utils.dpnp_descriptor dpnp_square(utils.dpnp_descriptor x1):
156156
return call_fptr_1in_1out(DPNP_FN_SQUARE, x1, x1.shape)
157157

158158

159-
cpdef utils.dpnp_descriptor dpnp_tan(utils.dpnp_descriptor x1, dparray out):
160-
return call_fptr_1in_1out(DPNP_FN_TAN, x1, x1.shape, out=out, func_name='tan')
159+
cpdef utils.dpnp_descriptor dpnp_tan(utils.dpnp_descriptor x1, utils.dpnp_descriptor out):
160+
return call_fptr_1in_1out(DPNP_FN_TAN, x1, x1.shape, out, func_name='tan')
161161

162162

163163
cpdef utils.dpnp_descriptor dpnp_tanh(utils.dpnp_descriptor x1):
164164
return call_fptr_1in_1out(DPNP_FN_TANH, x1, x1.shape)
165165

166166

167-
cpdef dparray dpnp_unwrap(dparray array1):
167+
cpdef utils.dpnp_descriptor dpnp_unwrap(utils.dpnp_descriptor array1):
168168

169-
call_type = array1.dtype
170-
cdef dparray result
169+
result_type = dpnp.float64
171170

172-
if call_type == numpy.float32:
173-
result = dparray(array1.shape, dtype=call_type)
174-
else:
175-
result = dparray(array1.shape)
171+
if array1.dtype == dpnp.float32:
172+
result_type = dpnp.float32
173+
174+
cdef utils.dpnp_descriptor result = utils_py.create_output_descriptor_py(array1.shape, result_type, None)
176175

177176
for i in range(result.size):
178-
val, = numpy.unwrap([array1[i]])
179-
result[i] = val
177+
val, = numpy.unwrap([array1.get_pyobj()[i]])
178+
result.get_pyobj()[i] = val
180179

181180
return result

dpnp/dpnp_iface_mathematical.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -281,7 +281,8 @@ def ceil(x1, out=None, **kwargs):
281281

282282
x1_desc = dpnp.get_dpnp_descriptor(x1)
283283
if x1_desc and not kwargs:
284-
return dpnp_ceil(x1_desc, out).get_pyobj()
284+
out_desc = dpnp.get_dpnp_descriptor(out) if out is not None else None
285+
return dpnp_ceil(x1_desc, out_desc).get_pyobj()
285286

286287
return call_origin(numpy.ceil, x1, out=out, **kwargs)
287288

@@ -691,7 +692,8 @@ def floor(x1, out=None, **kwargs):
691692

692693
x1_desc = dpnp.get_dpnp_descriptor(x1)
693694
if x1_desc and not kwargs:
694-
return dpnp_floor(x1_desc, out).get_pyobj()
695+
out_desc = dpnp.get_dpnp_descriptor(out) if out is not None else None
696+
return dpnp_floor(x1_desc, out_desc).get_pyobj()
695697

696698
return call_origin(numpy.floor, x1, out=out, **kwargs)
697699

@@ -1657,6 +1659,7 @@ def trunc(x1, out=None, **kwargs):
16571659

16581660
x1_desc = dpnp.get_dpnp_descriptor(x1)
16591661
if x1_desc and not kwargs:
1660-
return dpnp_trunc(x1_desc, out).get_pyobj()
1662+
out_desc = dpnp.get_dpnp_descriptor(out) if out is not None else None
1663+
return dpnp_trunc(x1_desc, out_desc).get_pyobj()
16611664

16621665
return call_origin(numpy.trunc, x1, out=out, **kwargs)

dpnp/dpnp_iface_trigonometric.py

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -187,7 +187,8 @@ def arcsin(x1, out=None, **kwargs):
187187

188188
x1_desc = dpnp.get_dpnp_descriptor(x1)
189189
if x1_desc:
190-
return dpnp_arcsin(x1_desc, out).get_pyobj()
190+
out_desc = dpnp.get_dpnp_descriptor(out) if out is not None else None
191+
return dpnp_arcsin(x1_desc, out_desc).get_pyobj()
191192

192193
return call_origin(numpy.arcsin, x1, out=out, **kwargs)
193194

@@ -251,7 +252,8 @@ def arctan(x1, out=None, **kwargs):
251252

252253
x1_desc = dpnp.get_dpnp_descriptor(x1)
253254
if x1_desc:
254-
return dpnp_arctan(x1_desc, out).get_pyobj()
255+
out_desc = dpnp.get_dpnp_descriptor(out) if out is not None else None
256+
return dpnp_arctan(x1_desc, out_desc).get_pyobj()
255257

256258
return call_origin(numpy.arctan, x1, out=out, **kwargs)
257259

@@ -394,7 +396,8 @@ def cos(x1, out=None, **kwargs):
394396

395397
x1_desc = dpnp.get_dpnp_descriptor(x1)
396398
if x1_desc:
397-
return dpnp_cos(x1_desc, out).get_pyobj()
399+
out_desc = dpnp.get_dpnp_descriptor(out) if out is not None else None
400+
return dpnp_cos(x1_desc, out_desc).get_pyobj()
398401

399402
return call_origin(numpy.cos, x1, out=out, **kwargs)
400403

@@ -506,7 +509,8 @@ def exp(x1, out=None, **kwargs):
506509

507510
x1_desc = dpnp.get_dpnp_descriptor(x1)
508511
if x1_desc:
509-
return dpnp_exp(x1_desc, out).get_pyobj()
512+
out_desc = dpnp.get_dpnp_descriptor(out) if out is not None else None
513+
return dpnp_exp(x1_desc, out_desc).get_pyobj()
510514

511515
return call_origin(numpy.exp, x1, out=out, **kwargs)
512516

@@ -615,16 +619,15 @@ def hypot(x1, x2, dtype=None, out=None, where=True, **kwargs):
615619
pass
616620
elif x2_desc and x2_desc.ndim == 0:
617621
pass
618-
elif out is not None and not isinstance(out, dparray):
619-
pass
620622
elif dtype is not None:
621623
pass
622624
elif out is not None:
623625
pass
624626
elif not where:
625627
pass
626628
else:
627-
return dpnp_hypot(x1_desc, x2_desc, dtype=dtype, out=out, where=where).get_pyobj()
629+
out_desc = dpnp.get_dpnp_descriptor(out) if out is not None else None
630+
return dpnp_hypot(x1_desc, x2_desc, dtype, out_desc, where).get_pyobj()
628631

629632
return call_origin(numpy.hypot, x1, x2, dtype=dtype, out=out, where=where, **kwargs)
630633

@@ -661,7 +664,8 @@ def log(x1, out=None, **kwargs):
661664

662665
x1_desc = dpnp.get_dpnp_descriptor(x1)
663666
if x1_desc:
664-
return dpnp_log(x1_desc, out).get_pyobj()
667+
out_desc = dpnp.get_dpnp_descriptor(out) if out is not None else None
668+
return dpnp_log(x1_desc, out_desc).get_pyobj()
665669

666670
return call_origin(numpy.log, x1, out=out, **kwargs)
667671

@@ -875,7 +879,8 @@ def sin(x1, out=None, **kwargs):
875879

876880
x1_desc = dpnp.get_dpnp_descriptor(x1)
877881
if x1_desc:
878-
return dpnp_sin(x1_desc, out).get_pyobj()
882+
out_desc = dpnp.get_dpnp_descriptor(out) if out is not None else None
883+
return dpnp_sin(x1_desc, out_desc).get_pyobj()
879884

880885
return call_origin(numpy.sin, x1, out=out, **kwargs)
881886

@@ -998,7 +1003,8 @@ def tan(x1, out=None, **kwargs):
9981003

9991004
x1_desc = dpnp.get_dpnp_descriptor(x1)
10001005
if x1_desc:
1001-
return dpnp_tan(x1_desc, out).get_pyobj()
1006+
out_desc = dpnp.get_dpnp_descriptor(out) if out is not None else None
1007+
return dpnp_tan(x1_desc, out_desc).get_pyobj()
10021008

10031009
return call_origin(numpy.tan, x1, out=out, **kwargs)
10041010

dpnp/dpnp_utils/dpnp_algo_utils.pyx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ except ImportError:
5656
"""
5757
config.__DPNP_DPCTL_AVAILABLE__ = False
5858

59+
# config.__DPNP_DPCTL_AVAILABLE__ = False
5960

6061
"""
6162
Python import functions

0 commit comments

Comments
 (0)