Skip to content

Commit

Permalink
Do not rely on global precision when displaying the precision
Browse files Browse the repository at this point in the history
  • Loading branch information
OlivierHnt authored Dec 20, 2023
1 parent 521b889 commit 0974c8a
Showing 1 changed file with 15 additions and 5 deletions.
20 changes: 15 additions & 5 deletions src/display.jl
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,7 @@ function _str_repr(a::BareInterval{BigFloat}, format::Symbol)
if format === :midpoint && str_interval != ""
str_interval = string('(', str_interval, ')')
end
return string(str_interval, _subscriptify(precision(BigFloat)))
return string(str_interval, _str_precision(a))
end

function _str_repr(a::Interval{T}, format::Symbol) where {T<:NumTypes}
Expand Down Expand Up @@ -146,15 +146,15 @@ function _str_repr(a::Interval{BigFloat}, format::Symbol)
if format === :midpoint && str_interval != ""
str_interval = string('(', str_interval, ')')
end
display_options.decorations || return string(str_interval, _subscriptify(precision(BigFloat)))
return string(str_interval, _subscriptify(precision(BigFloat)), '_', decoration(a))
display_options.decorations || return string(str_interval, _str_precision(a))
return string(str_interval, _str_precision(a), '_', decoration(a))
else
format === :full && return string("Interval{", BigFloat, "}(", str_interval, ", ", decoration(a), ", NG)")
if format === :midpoint && str_interval != ""
str_interval = string('(', str_interval, ')')
end
display_options.decorations || return string(str_interval, _subscriptify(precision(BigFloat)), "_NG")
return string(str_interval, _subscriptify(precision(BigFloat)), '_', decoration(a), "_NG")
display_options.decorations || return string(str_interval, _str_precision(a), "_NG")
return string(str_interval, _str_precision(a), '_', decoration(a), "_NG")
end
end

Expand All @@ -179,6 +179,16 @@ end

#

function _str_precision(x)
plo = precision(inf(x))
phi = precision(sup(x))
pstr = _subscriptify(plo)
plo == phi && return pstr
return string(pstr, "_", _subscriptify(phi))
end

#

function _str_basic_repr(a::BareInterval{<:AbstractFloat}, format::Symbol)
# `format` is either `:infsup`, `:midpoint` or `:full`
# do not use `inf(a)` to avoid `-0.0`
Expand Down

0 comments on commit 0974c8a

Please sign in to comment.