@@ -41,14 +41,12 @@ static double median(const af_array& in) {
41
41
} else if (nElems == 2 ) {
42
42
T result[2 ];
43
43
AF_CHECK (af_get_data_ptr ((void *)&result, in));
44
- if (input.isFloating ()) {
45
- return division (result[0 ] + result[1 ], 2.0 );
46
- } else {
47
- return division ((float )result[0 ] + (float )result[1 ], 2.0 );
48
- }
44
+ return division (
45
+ (static_cast <double >(result[0 ]) + static_cast <double >(result[1 ])),
46
+ 2.0 );
49
47
}
50
48
51
- double mid = (nElems + 1 ) / 2 ;
49
+ double mid = static_cast < double > (nElems + 1 ) / 2.0 ;
52
50
af_seq mdSpan[1 ] = {af_make_seq (mid - 1 , mid, 1 )};
53
51
54
52
Array<T> sortedArr = sort<T>(input, 0 , true );
@@ -68,11 +66,9 @@ static double median(const af_array& in) {
68
66
if (nElems % 2 == 1 ) {
69
67
result = resPtr[0 ];
70
68
} else {
71
- if (input.isFloating ()) {
72
- result = division (resPtr[0 ] + resPtr[1 ], 2 );
73
- } else {
74
- result = division ((float )resPtr[0 ] + (float )resPtr[1 ], 2 );
75
- }
69
+ result = division (
70
+ static_cast <double >(resPtr[0 ]) + static_cast <double >(resPtr[1 ]),
71
+ 2.0 );
76
72
}
77
73
78
74
return result;
@@ -90,9 +86,9 @@ static af_array median(const af_array& in, const dim_t dim) {
90
86
91
87
Array<T> sortedIn = sort<T>(input, dim, true );
92
88
93
- int dimLength = input.dims ()[dim];
94
- double mid = (dimLength + 1 ) / 2 ;
95
- af_array left = 0 ;
89
+ size_t dimLength = input.dims ()[dim];
90
+ double mid = static_cast < double > (dimLength + 1 ) / 2.0 ;
91
+ af_array left = 0 ;
96
92
97
93
af_seq slices[4 ] = {af_span, af_span, af_span, af_span};
98
94
slices[dim] = af_make_seq (mid - 1.0 , mid - 1.0 , 1.0 );
0 commit comments