Skip to content

Commit 8162f16

Browse files
committed
Refactor matrix_index_reange_labels
1 parent 20073f3 commit 8162f16

1 file changed

Lines changed: 10 additions & 13 deletions

File tree

src/unicode_plot/matrix.cr

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -94,25 +94,22 @@ module UnicodePlot
9494
{% raise "matrix_extrema_finite requires numeric matrix elements" %}
9595
{% end %}
9696

97-
min_value = nil.as(Float64?)
98-
max_value = nil.as(Float64?)
97+
extrema = nil.as({Float64, Float64}?)
9998

10099
matrix.each_cell do |_row, _col, value|
101100
v = value.to_f64
102101
next unless v.finite?
103102

104-
if min_value.nil?
105-
min_value = v
106-
max_value = v
107-
else
108-
current_min = min_value || v
109-
current_max = max_value || v
110-
min_value = v if v < current_min
111-
max_value = v if v > current_max
112-
end
103+
extrema = if current = extrema
104+
{
105+
v < current[0] ? v : current[0],
106+
v > current[1] ? v : current[1],
107+
}
108+
else
109+
{v, v}
110+
end
113111
end
114112

115-
return if min_value.nil?
116-
{min_value || 0.0, max_value || 0.0}
113+
extrema
117114
end
118115
end

0 commit comments

Comments
 (0)