JuliaHomotopyContinuation / HomotopyContinuation.jl

A Julia package for solving systems of polynomials via homotopy continuation.
https://www.JuliaHomotopyContinuation.org
MIT License
175 stars 30 forks source link

Issues dealing with BigFloat coefficients #528

Open luanborelli opened 1 year ago

luanborelli commented 1 year ago

I have a system where the coefficients of the polynomials are huge integers. When declaring these polynomials, their coefficients are stored as BigFloat. When trying to solve the system, the package seems to be unable to handle such coefficients.

solution = solve(F)

F is a System whose polynomials coefficients have BigFloat type. Output:

ERROR: MethodError: no method matching HomotopyContinuation.ToricHomotopy(::MixedSystem{Int32, (0x436dfc9bd00f36be, 1)}, ::Vector{Vector{Complex{BigFloat}}})
Closest candidates are:
  HomotopyContinuation.ToricHomotopy(::AbstractSystem, ::Vector{Vector{ComplexF64}}) at D:\Users\b46525\.julia\packages\HomotopyContinuation\I1faM\src\homotopies\toric_homotopy.jl:37
  HomotopyContinuation.ToricHomotopy(::S, ::Vector{ComplexF64}, ::Vector{Float64}, ::Vector{Float64}, ::StructArrays.StructVector{ComplexF64, NamedTuple{(:re, :im), Tuple{Vector{Float64}, Vector{Float64}}}, Int64}, ::Vector{ComplexF64}, ::Vector{ComplexF64}, ::Vector{ComplexF64}, ::Base.RefValue{ComplexF64}, ::Base.RefValue{ComplexF64}, ::TaylorVector{5, ComplexF64}, ::TaylorVector{4, ComplexF64}, ::TaylorVector{3, ComplexF64}) where S<:AbstractSystem at D:\Users\b46525\.julia\packages\HomotopyContinuation\I1faM\src\homotopies\toric_homotopy.jl:16
Stacktrace:
 [1] polyhedral(support::Vector{Matrix{Int32}}, start_coeffs::Vector{Vector{Complex{BigFloat}}}, target_coeffs::Vector{Vector{BigFloat}}; endgame_options::EndgameOptions, tracker_options::TrackerOptions, only_torus::Bool, only_non_zero::Bool, compile::Symbol, kwargs::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
   @ HomotopyContinuation D:\Users\b46525\.julia\packages\HomotopyContinuation\I1faM\src\polyhedral.jl:320
 [2] #polyhedral#226
   @ D:\Users\b46525\.julia\packages\HomotopyContinuation\I1faM\src\polyhedral.jl:268 [inlined]
 [3] polyhedral(f::System; compile::Symbol, target_parameters::Nothing, kwargs::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
   @ HomotopyContinuation D:\Users\b46525\.julia\packages\HomotopyContinuation\I1faM\src\polyhedral.jl:201
 [4] solver_startsolutions(F::System, starts::Nothing; seed::UInt32, start_system::Symbol, generic_parameters::Nothing, p₁::Nothing, start_parameters::Nothing, p₀::Nothing, target_parameters::Nothing, compile::Symbol, start_subspace::Nothing, target_subspace::Nothing, intrinsic::Nothing, kwargs::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
   @ HomotopyContinuation D:\Users\b46525\.julia\packages\HomotopyContinuation\I1faM\src\solve.jl:160
 [5] solver_startsolutions (repeats 2 times)
   @ D:\Users\b46525\.julia\packages\HomotopyContinuation\I1faM\src\solve.jl:115 [inlined]
 [6] solve(args::System; show_progress::Bool, threading::Bool, catch_interrupt::Bool, target_parameters::Nothing, stop_early_cb::Function, transform_result::Nothing, transform_parameters::typeof(identity), flatten::Nothing, target_subspaces::Nothing, kwargs::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
   @ HomotopyContinuation D:\Users\b46525\.julia\packages\HomotopyContinuation\I1faM\src\solve.jl:472
 [7] solve(args::System)
   @ HomotopyContinuation D:\Users\b46525\.julia\packages\HomotopyContinuation\I1faM\src\solve.jl:432
 [8] top-level scope
   @ Untitled-1:83