Skip to content

Printing fails with complex numbers #1693

@blegat

Description

@blegat
julia> model = MOI.Utilities.UniversalFallback(MOI.Utilities.Model{Float64}())
MOIU.UniversalFallback{MOIU.Model{Float64}}
fallback for MOIU.Model{Float64}

julia> x = MOI.add_variable(model)
MathOptInterface.VariableIndex(1)

julia> c = MOI.add_constraint(model, (1.0 + 1.0im)x, MOI.EqualTo(1.0 + 1.0im))
MathOptInterface.ConstraintIndex{MathOptInterface.ScalarAffineFunction{ComplexF64}, MathOptInterface.EqualTo{ComplexF64}}(1)

julia> println(model)
Feasibility

Subject to:

ScalarAffineFunction{ComplexF64}-in-EqualTo{ComplexF64}
ERROR: MethodError: no method matching _shorten(::MathOptInterface.Utilities._PrintOptions{MIME{Symbol("text/plain")}}, ::ComplexF64)
Closest candidates are:
  _shorten(::MathOptInterface.Utilities._PrintOptions, ::Float64) at /home/blegat/.julia/dev/MathOptInterface/src/Utilities/print.jl:107
Stacktrace:
 [1] _to_string(options::MathOptInterface.Utilities._PrintOptions{MIME{Symbol("text/plain")}}, model::MathOptInterface.Utilities.UniversalFallback{MathOptInterface.Utilities.Model{Float64}}, f::MathOptInterface.ScalarAffineFunction{ComplexF64})
   @ MathOptInterface.Utilities ~/.julia/dev/MathOptInterface/src/Utilities/print.jl:163
 [2] _to_string(options::MathOptInterface.Utilities._PrintOptions{MIME{Symbol("text/plain")}}, model::MathOptInterface.Utilities.UniversalFallback{MathOptInterface.Utilities.Model{Float64}}, cref::MathOptInterface.ConstraintIndex{MathOptInterface.ScalarAffineFunction{ComplexF64}, MathOptInterface.EqualTo{ComplexF64}})
   @ MathOptInterface.Utilities ~/.julia/dev/MathOptInterface/src/Utilities/print.jl:336
 [3] _print_model(io::Base.TTY, options::MathOptInterface.Utilities._PrintOptions{MIME{Symbol("text/plain")}}, model::MathOptInterface.Utilities.UniversalFallback{MathOptInterface.Utilities.Model{Float64}})
   @ MathOptInterface.Utilities ~/.julia/dev/MathOptInterface/src/Utilities/print.jl:531
 [4] #print#268
   @ ~/.julia/dev/MathOptInterface/src/Utilities/print.jl:625 [inlined]
 [5] print
   @ ~/.julia/dev/MathOptInterface/src/Utilities/print.jl:625 [inlined]
 [6] print(::Base.TTY, ::MathOptInterface.Utilities.UniversalFallback{MathOptInterface.Utilities.Model{Float64}}, ::String)
   @ Base ./strings/io.jl:46
 [7] println(io::Base.TTY, xs::MathOptInterface.Utilities.UniversalFallback{MathOptInterface.Utilities.Model{Float64}})
   @ Base ./strings/io.jl:73
 [8] println(xs::MathOptInterface.Utilities.UniversalFallback{MathOptInterface.Utilities.Model{Float64}})
   @ Base ./coreio.jl:4
 [9] top-level scope
   @ REPL[10]:1

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions