@@ -79,7 +79,12 @@ void dpnp_sum_c(void* result_out,
7979
8080 if (!input_shape && !input_shape_ndim)
8181 { // it is a scalar
82- result[0 ] = input[0 ];
82+ // result[0] = input[0];
83+ _DataType_input input_elem = 0 ;
84+ _DataType_output result_elem = 0 ;
85+ dpnp_memory_memcpy_c (&input_elem, input, sizeof (_DataType_input));
86+ result_elem = input_elem;
87+ dpnp_memory_memcpy_c (result, &result_elem, sizeof (_DataType_output));
8388
8489 return ;
8590 }
@@ -116,7 +121,7 @@ void dpnp_sum_c(void* result_out,
116121 policy, input_it.begin (output_id), input_it.end (output_id), init, std::plus<_DataType_output>());
117122 policy.queue ().wait (); // TODO move out of the loop
118123
119- result[output_id] = accumulator;
124+ dpnp_memory_memcpy_c (&(result[output_id]), &accumulator, sizeof (_DataType_output)); // result[output_id] = accumulator;
120125 }
121126
122127 return ;
@@ -149,7 +154,12 @@ void dpnp_prod_c(void* result_out,
149154
150155 if (!input_shape && !input_shape_ndim)
151156 { // it is a scalar
152- result[0 ] = input[0 ];
157+ // result[0] = input[0];
158+ _DataType_input input_elem = 0 ;
159+ _DataType_output result_elem = 0 ;
160+ dpnp_memory_memcpy_c (&input_elem, input, sizeof (_DataType_input));
161+ result_elem = input_elem;
162+ dpnp_memory_memcpy_c (result, &result_elem, sizeof (_DataType_output));
153163
154164 return ;
155165 }
@@ -167,7 +177,7 @@ void dpnp_prod_c(void* result_out,
167177 policy, input_it.begin (output_id), input_it.end (output_id), init, std::multiplies<_DataType_output>());
168178 policy.queue ().wait (); // TODO move out of the loop
169179
170- result[output_id] = accumulator;
180+ dpnp_memory_memcpy_c (&(result[output_id]), &accumulator, sizeof (_DataType_output)); // result[output_id] = accumulator;
171181 }
172182
173183 return ;
0 commit comments