Skip to content

Commit b992a65

Browse files
median: use masked indexing for int overflow-safe mean (2.3x faster)
1 parent d749801 commit b992a65

File tree

1 file changed

+3
-1
lines changed

1 file changed

+3
-1
lines changed

scripts/statistics/median.m

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -557,7 +557,9 @@
557557
function m = mid_two_vals (m1, m2, is_int)
558558
if (is_int)
559559
samesign = sign (m1) == sign (m2);
560-
m = samesign .* (m1 + (m2 - m1) / 2) + ! samesign .* ((m1 + m2) / 2);
560+
m = zeros (size (m1), "like", m1);
561+
m(samesign) = m1(samesign) + (m2(samesign) - m1(samesign)) / 2;
562+
m(! samesign) = (m1(! samesign) + m2(! samesign)) / 2;
561563
else
562564
m = (m1 + m2) / 2;
563565
endif

0 commit comments

Comments
 (0)