@@ -128,88 +128,6 @@ DPCTLSyclEventRef (*dpnp_correlate_ext_c)(DPCTLSyclQueueRef,
128128 const DPCTLEventVectorRef) =
129129 dpnp_correlate_c<_DataType_output, _DataType_input1, _DataType_input2>;
130130
131- template <typename _DataType, typename _ResultType>
132- DPCTLSyclEventRef dpnp_median_c (DPCTLSyclQueueRef q_ref,
133- void *array1_in,
134- void *result1,
135- const shape_elem_type *shape,
136- size_t ndim,
137- const shape_elem_type *axis,
138- size_t naxis,
139- const DPCTLEventVectorRef dep_event_vec_ref)
140- {
141- // avoid warning unused variable
142- (void )dep_event_vec_ref;
143-
144- __attribute__ ((unused)) void *tmp = (void *)(axis + naxis);
145-
146- DPCTLSyclEventRef event_ref = nullptr ;
147-
148- const size_t size = std::accumulate (shape, shape + ndim, 1 ,
149- std::multiplies<shape_elem_type>());
150- if (!size) {
151- return event_ref;
152- }
153-
154- sycl::queue q = *(reinterpret_cast <sycl::queue *>(q_ref));
155-
156- DPNPC_ptr_adapter<_ResultType> result_ptr (q_ref, result1, 1 , true , true );
157- _ResultType *result = result_ptr.get_ptr ();
158-
159- _DataType *sorted = reinterpret_cast <_DataType *>(
160- sycl::malloc_shared (size * sizeof (_DataType), q));
161-
162- dpnp_sort_c<_DataType>(array1_in, sorted, size);
163-
164- if (size % 2 == 0 ) {
165- result[0 ] =
166- static_cast <_ResultType>(sorted[size / 2 ] + sorted[size / 2 - 1 ]) /
167- 2 ;
168- }
169- else {
170- result[0 ] = sorted[(size - 1 ) / 2 ];
171- }
172-
173- sycl::free (sorted, q);
174-
175- return event_ref;
176- }
177-
178- template <typename _DataType, typename _ResultType>
179- void dpnp_median_c (void *array1_in,
180- void *result1,
181- const shape_elem_type *shape,
182- size_t ndim,
183- const shape_elem_type *axis,
184- size_t naxis)
185- {
186- DPCTLSyclQueueRef q_ref = reinterpret_cast <DPCTLSyclQueueRef>(&DPNP_QUEUE);
187- DPCTLEventVectorRef dep_event_vec_ref = nullptr ;
188- DPCTLSyclEventRef event_ref = dpnp_median_c<_DataType, _ResultType>(
189- q_ref, array1_in, result1, shape, ndim, axis, naxis, dep_event_vec_ref);
190- DPCTLEvent_WaitAndThrow (event_ref);
191- DPCTLEvent_Delete (event_ref);
192- }
193-
194- template <typename _DataType, typename _ResultType>
195- void (*dpnp_median_default_c)(void *,
196- void *,
197- const shape_elem_type *,
198- size_t ,
199- const shape_elem_type *,
200- size_t ) = dpnp_median_c<_DataType, _ResultType>;
201-
202- template <typename _DataType, typename _ResultType>
203- DPCTLSyclEventRef (*dpnp_median_ext_c)(DPCTLSyclQueueRef,
204- void *,
205- void *,
206- const shape_elem_type *,
207- size_t ,
208- const shape_elem_type *,
209- size_t ,
210- const DPCTLEventVectorRef) =
211- dpnp_median_c<_DataType, _ResultType>;
212-
213131void func_map_init_statistics (func_map_t &fmap)
214132{
215133 fmap[DPNPFuncName::DPNP_FN_CORRELATE][eft_INT][eft_INT] = {
@@ -278,35 +196,5 @@ void func_map_init_statistics(func_map_t &fmap)
278196 fmap[DPNPFuncName::DPNP_FN_CORRELATE_EXT][eft_DBL][eft_DBL] = {
279197 eft_DBL, (void *)dpnp_correlate_ext_c<double , double , double >};
280198
281- fmap[DPNPFuncName::DPNP_FN_MEDIAN][eft_INT][eft_INT] = {
282- eft_DBL, (void *)dpnp_median_default_c<int32_t , double >};
283- fmap[DPNPFuncName::DPNP_FN_MEDIAN][eft_LNG][eft_LNG] = {
284- eft_DBL, (void *)dpnp_median_default_c<int64_t , double >};
285- fmap[DPNPFuncName::DPNP_FN_MEDIAN][eft_FLT][eft_FLT] = {
286- eft_FLT, (void *)dpnp_median_default_c<float , float >};
287- fmap[DPNPFuncName::DPNP_FN_MEDIAN][eft_DBL][eft_DBL] = {
288- eft_DBL, (void *)dpnp_median_default_c<double , double >};
289-
290- fmap[DPNPFuncName::DPNP_FN_MEDIAN_EXT][eft_INT][eft_INT] = {
291- get_default_floating_type (),
292- (void *)dpnp_median_ext_c<
293- int32_t , func_type_map_t ::find_type<get_default_floating_type ()>>,
294- get_default_floating_type<std::false_type>(),
295- (void *)dpnp_median_ext_c<
296- int32_t , func_type_map_t ::find_type<
297- get_default_floating_type<std::false_type>()>>};
298- fmap[DPNPFuncName::DPNP_FN_MEDIAN_EXT][eft_LNG][eft_LNG] = {
299- get_default_floating_type (),
300- (void *)dpnp_median_ext_c<
301- int64_t , func_type_map_t ::find_type<get_default_floating_type ()>>,
302- get_default_floating_type<std::false_type>(),
303- (void *)dpnp_median_ext_c<
304- int64_t , func_type_map_t ::find_type<
305- get_default_floating_type<std::false_type>()>>};
306- fmap[DPNPFuncName::DPNP_FN_MEDIAN_EXT][eft_FLT][eft_FLT] = {
307- eft_FLT, (void *)dpnp_median_ext_c<float , float >};
308- fmap[DPNPFuncName::DPNP_FN_MEDIAN_EXT][eft_DBL][eft_DBL] = {
309- eft_DBL, (void *)dpnp_median_ext_c<double , double >};
310-
311199 return ;
312200}
0 commit comments