Skip to content

OverflowError with quantile with Rational probabilities #136

Open
@sethaxen

Description

@sethaxen

If a user provides Rational probabilities to quantile, then if the input array exceeds a certain length, an OverflowError is raised.

julia> using Statistics

julia> quantile(1.0:10000.0, 1//10)
1000.9

julia> quantile(1.0:20000.0, 1//10)
ERROR: OverflowError: 2000 * 9007199254740992 overflowed for type Int64
Stacktrace:
 [1] throw_overflowerr_binaryop(op::Symbol, x::Int64, y::Int64)
   @ Base.Checked ./checked.jl:163
 [2] checked_mul
   @ ./checked.jl:297 [inlined]
 [3] +
   @ ./rational.jl:304 [inlined]
 [4] #_quantile#57
   @ ~/.julia/juliaup/julia-1.9.0-beta2+0.x64.linux.gnu/share/julia/stdlib/v1.9/Statistics/src/Statistics.jl:997 [inlined]
 [5] quantile!(v::Vector{Float64}, p::Rational{Int64}; sorted::Bool, alpha::Float64, beta::Float64)
   @ Statistics ~/.julia/juliaup/julia-1.9.0-beta2+0.x64.linux.gnu/share/julia/stdlib/v1.9/Statistics/src/Statistics.jl:962
 [6] #quantile#59
   @ ~/.julia/juliaup/julia-1.9.0-beta2+0.x64.linux.gnu/share/julia/stdlib/v1.9/Statistics/src/Statistics.jl:1073 [inlined]
 [7] quantile(v::StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, p::Rational{Int64})
   @ Statistics ~/.julia/juliaup/julia-1.9.0-beta2+0.x64.linux.gnu/share/julia/stdlib/v1.9/Statistics/src/Statistics.jl:1073
 [8] top-level scope
   @ REPL[46]:1

julia> versioninfo()
Julia Version 1.9.0-beta2
Commit 7daffeecb8c (2022-12-29 07:45 UTC)
Platform Info:
  OS: Linux (x86_64-linux-gnu)
  CPU: 8 × 11th Gen Intel(R) Core(TM) i5-1135G7 @ 2.40GHz
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-14.0.6 (ORCJIT, tigerlake)
  Threads: 8 on 8 virtual cores

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions