Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

can't use primal_feasibility_report with complex variables

Aberta Para iniciantes
#3,113 0 comentários 0 reações 0 responsáveis Ver no GitHub

Mantenedores costumam responder em até 1 dia

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
2/5
Tempo estimado
1-3 horas
Facilidade para iniciantes
78/100
Tipo de issue
Bug
Clareza
Claramente especificada
Status de atividade
Ativa
Stack de tecnologia
julia
Domínio
testing-qa

Direção de pesquisa

O stack trace aponta para src/Utilities/distance_to_set.jl e src/feasibility_checker.jl; comece lendo o tratamento de distância para conjuntos EqualTo e o ponto de chamada do verificador de viabilidade. Reproduza o exemplo com variáveis complexas e verifique se primal_feasibility_report trata sem erros a restrição EqualTo{ComplexF64} resultante.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

Should be easy enough to implement.

using JuMP, LinearAlgebra
import Hypatia

function complex_test()
    model = Model(Hypatia.Optimizer)
    @variable(model, ρ[1:2,1:2] in HermitianPSDCone())
    @constraint(model, tr(ρ) == 1)
    @objective(model, Max, imag(ρ[1, 2]))
    set_silent(model)
    optimize!(model)
    display(primal_feasibility_report(model))
    return objective_value(model)
end

Stacktrace:

julia> complex_test()
ERROR: distance_to_set using the distance metric MathOptInterface.Utilities.ProjectionUpperBoundDistance() for set type MathOptInterface.EqualTo{ComplexF64} has not been implemented yet.
Stacktrace:
  [1] error(s::String)
    @ Base ./error.jl:44
  [2] distance_to_set(d::MathOptInterface.Utilities.ProjectionUpperBoundDistance, ::Float64, set::MathOptInterface.EqualTo{…})
    @ MathOptInterface.Utilities ~/.julia/packages/MathOptInterface/lY2WB/src/Utilities/distance_to_set.jl:75
  [3] distance_to_set(point::Float64, set::MathOptInterface.EqualTo{ComplexF64})
    @ MathOptInterface.Utilities ~/.julia/packages/MathOptInterface/lY2WB/src/Utilities/distance_to_set.jl:71
  [4] _distance_to_set(point_f::JuMP.var"#115#116"{…}, func::GenericAffExpr{…}, set::MathOptInterface.EqualTo{…}, ::Type{…})
    @ JuMP ~/.julia/packages/JuMP/insRt/src/feasibility_checker.jl:196
  [5] _add_infeasible_constraints(model::Model, ::Type{…}, ::Type{…}, violated_constraints::Dict{…}, point_f::Function, atol::Float64)
    @ JuMP ~/.julia/packages/JuMP/insRt/src/feasibility_checker.jl:160
  [6] primal_feasibility_report(point::Function, model::Model; atol::Float64, skip_missing::Bool)
    @ JuMP ~/.julia/packages/JuMP/insRt/src/feasibility_checker.jl:130
  [7] primal_feasibility_report
    @ ~/.julia/packages/JuMP/insRt/src/feasibility_checker.jl:109 [inlined]
  [8] #primal_feasibility_report#113
    @ ~/.julia/packages/JuMP/insRt/src/feasibility_checker.jl:48 [inlined]
  [9] primal_feasibility_report
    @ ~/.julia/packages/JuMP/insRt/src/feasibility_checker.jl:42 [inlined]
 [10] primal_feasibility_report(model::Model; kwargs::@Kwargs{})
    @ JuMP ~/.julia/packages/JuMP/insRt/src/feasibility_checker.jl:81
 [11] primal_feasibility_report
    @ ~/.julia/packages/JuMP/insRt/src/feasibility_checker.jl:68 [inlined]
 [12] complex_test()
    @ Main ./REPL[5]:8
 [13] top-level scope
    @ REPL[6]:1
Some type information was truncated. Use `show(err)` to see complete types.
Linguagem predominante
Julia
Estrelas
506
Forks
103
Merge médio
1d 1h
PRs com merge (30d)
9

Preparar o ambiente

Este projeto não oferece contêiner de desenvolvimento, Dockerfile nem guia de contribuição, então a configuração fica por sua conta: comece pelo README e veja nosso guia da primeira contribuição para os passos gerais.

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de jump-dev/MathOptInterface.jl

Todas as issues de jump-dev/MathOptInterface.jl

Issues semelhantes

Mais issues de Julia

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.