@@ -37,26 +37,13 @@ and the rest of the library
3737
3838__all__ += [
3939 " dpnp_choose" ,
40- " dpnp_diag_indices" ,
41- " dpnp_fill_diagonal" ,
4240 " dpnp_putmask" ,
4341 " dpnp_select" ,
44- " dpnp_tril_indices" ,
45- " dpnp_tril_indices_from" ,
46- " dpnp_triu_indices" ,
47- " dpnp_triu_indices_from"
4842]
4943
5044ctypedef c_dpctl.DPCTLSyclEventRef(* fptr_dpnp_choose_t)(c_dpctl.DPCTLSyclQueueRef,
5145 void * , void * , void ** , size_t, size_t, size_t,
5246 const c_dpctl.DPCTLEventVectorRef)
53- ctypedef c_dpctl.DPCTLSyclEventRef(* fptr_dpnp_diag_indices)(c_dpctl.DPCTLSyclQueueRef,
54- void * , size_t,
55- const c_dpctl.DPCTLEventVectorRef)
56- ctypedef c_dpctl.DPCTLSyclEventRef(* custom_indexing_2in_func_ptr_t)(c_dpctl.DPCTLSyclQueueRef,
57- void * , void * , shape_elem_type * , const size_t,
58- const c_dpctl.DPCTLEventVectorRef)
59-
6047
6148cpdef utils.dpnp_descriptor dpnp_choose(utils.dpnp_descriptor x1, list choices1):
6249 cdef vector[void * ] choices
@@ -105,71 +92,6 @@ cpdef utils.dpnp_descriptor dpnp_choose(utils.dpnp_descriptor x1, list choices1)
10592 return res_array
10693
10794
108- cpdef tuple dpnp_diag_indices(n, ndim):
109- cdef size_t res_size = 0 if n < 0 else n
110-
111- cdef DPNPFuncType param1_type = dpnp_dtype_to_DPNPFuncType(dpnp.int64)
112-
113- cdef DPNPFuncData kernel_data = get_dpnp_function_ptr(DPNP_FN_DIAG_INDICES_EXT, param1_type, param1_type)
114-
115- cdef fptr_dpnp_diag_indices func = < fptr_dpnp_diag_indices > kernel_data.ptr
116-
117- cdef c_dpctl.SyclQueue q
118- cdef c_dpctl.DPCTLSyclQueueRef q_ref
119- cdef c_dpctl.DPCTLSyclEventRef event_ref
120-
121- res_list = []
122- cdef utils.dpnp_descriptor res_arr
123- cdef shape_type_c result_shape = utils._object_to_tuple(res_size)
124- for i in range (ndim):
125- res_arr = utils.create_output_descriptor(result_shape, kernel_data.return_type, None )
126-
127- q = < c_dpctl.SyclQueue> res_arr.get_array().sycl_queue
128- q_ref = q.get_queue_ref()
129-
130- event_ref = func(q_ref, res_arr.get_data(), res_size, NULL )
131-
132- with nogil: c_dpctl.DPCTLEvent_WaitAndThrow(event_ref)
133- c_dpctl.DPCTLEvent_Delete(event_ref)
134-
135- res_list.append(res_arr.get_pyobj())
136-
137- return tuple (res_list)
138-
139-
140- cpdef dpnp_fill_diagonal(dpnp_descriptor x1, val):
141- x1_obj = x1.get_array()
142-
143- cdef shape_type_c x1_shape = x1.shape
144- cdef utils.dpnp_descriptor val_arr = utils_py.create_output_descriptor_py((1 ,),
145- x1.dtype,
146- None ,
147- device = x1_obj.sycl_device,
148- usm_type = x1_obj.usm_type,
149- sycl_queue = x1_obj.sycl_queue)
150-
151- val_arr.get_pyobj()[0 ] = val
152-
153- cdef DPNPFuncType param1_type = dpnp_dtype_to_DPNPFuncType(x1.dtype)
154-
155- cdef DPNPFuncData kernel_data = get_dpnp_function_ptr(DPNP_FN_FILL_DIAGONAL_EXT, param1_type, param1_type)
156-
157- cdef c_dpctl.SyclQueue q = < c_dpctl.SyclQueue> x1_obj.sycl_queue
158- cdef c_dpctl.DPCTLSyclQueueRef q_ref = q.get_queue_ref()
159-
160- cdef custom_indexing_2in_func_ptr_t func = < custom_indexing_2in_func_ptr_t > kernel_data.ptr
161-
162- cdef c_dpctl.DPCTLSyclEventRef event_ref = func(q_ref,
163- x1.get_data(),
164- val_arr.get_data(),
165- x1_shape.data(),
166- x1.ndim,
167- NULL ) # dep_events_ref
168-
169- with nogil: c_dpctl.DPCTLEvent_WaitAndThrow(event_ref)
170- c_dpctl.DPCTLEvent_Delete(event_ref)
171-
172-
17395cpdef dpnp_putmask(utils.dpnp_descriptor arr, utils.dpnp_descriptor mask, utils.dpnp_descriptor values):
17496 cdef int values_size = values.size
17597
@@ -197,91 +119,3 @@ cpdef utils.dpnp_descriptor dpnp_select(list condlist, list choicelist, default)
197119 res_array.get_pyobj()[ind] = val
198120
199121 return res_array
200-
201-
202- cpdef tuple dpnp_tril_indices(n, k = 0 , m = None ):
203- array1 = []
204- array2 = []
205- if m is None :
206- for i in range (n):
207- for j in range (i + 1 + k):
208- if j >= n:
209- continue
210- else :
211- array1.append(i)
212- array2.append(j)
213- else :
214- for i in range (n):
215- for j in range (i + 1 + k):
216- if j < m:
217- array1.append(i)
218- array2.append(j)
219-
220- array1 = dpnp.array(array1, dtype = dpnp.int64)
221- array2 = dpnp.array(array2, dtype = dpnp.int64)
222- return (array1, array2)
223-
224-
225- cpdef tuple dpnp_tril_indices_from(dpnp_descriptor arr, k = 0 ):
226- m = arr.shape[0 ]
227- n = arr.shape[1 ]
228- array1 = []
229- array2 = []
230- if m is None :
231- for i in range (n):
232- for j in range (i + 1 + k):
233- if j >= n:
234- continue
235- else :
236- array1.append(i)
237- array2.append(j)
238- else :
239- for i in range (n):
240- for j in range (i + 1 + k):
241- if j < m:
242- array1.append(i)
243- array2.append(j)
244-
245- array1 = dpnp.array(array1, dtype = dpnp.int64)
246- array2 = dpnp.array(array2, dtype = dpnp.int64)
247- return (array1, array2)
248-
249-
250- cpdef tuple dpnp_triu_indices(n, k = 0 , m = None ):
251- array1 = []
252- array2 = []
253- if m is None :
254- for i in range (n):
255- for j in range (i + k, n):
256- array1.append(i)
257- array2.append(j)
258- else :
259- for i in range (n):
260- for j in range (i + k, m):
261- array1.append(i)
262- array2.append(j)
263-
264- array1 = dpnp.array(array1, dtype = dpnp.int64)
265- array2 = dpnp.array(array2, dtype = dpnp.int64)
266- return (array1, array2)
267-
268-
269- cpdef tuple dpnp_triu_indices_from(dpnp_descriptor arr, k = 0 ):
270- m = arr.shape[0 ]
271- n = arr.shape[1 ]
272- array1 = []
273- array2 = []
274- if m is None :
275- for i in range (n):
276- for j in range (i + k, n):
277- array1.append(i)
278- array2.append(j)
279- else :
280- for i in range (n):
281- for j in range (i + k, m):
282- array1.append(i)
283- array2.append(j)
284-
285- array1 = dpnp.array(array1, dtype = dpnp.int64)
286- array2 = dpnp.array(array2, dtype = dpnp.int64)
287- return (array1, array2)
0 commit comments