with text_io; use text_io; with Ada.Calendar; with Standard_Natural_Numbers; use Standard_Natural_Numbers; with Standard_Integer_Numbers; use Standard_Integer_Numbers; with String_Splitters; use String_Splitters; with Standard_Integer_Matrices; with Standard_Complex_Polynomials; with Standard_Complex_Poly_Systems; use Standard_Complex_Poly_Systems; with Standard_Complex_Laurentials; use Standard_Complex_Laurentials; with Standard_Complex_Laur_Systems; use Standard_Complex_Laur_Systems; with Standard_Complex_Solutions; use Standard_Complex_Solutions; with Standard_Monomial_Maps; use Standard_Monomial_Maps; package Standard_Blackbox_Solvers is -- DESCRIPTION : -- This package provides procedure to solve polynomial systems -- in blackbox mode, in double precision. procedure Write_Toric_Binomial_Solutions ( file : in file_type; d : in natural32; M : in Standard_Integer_Matrices.Matrix; c : in Solution_List ); -- DESCRIPTION : -- Writes the solutions of the binomial system to file. procedure Append_Toric_Binomial_Solutions_to_Input_File ( name : in string; d : in natural32; M : in Standard_Integer_Matrices.Matrix; c : in Solution_List ); -- DESCRIPTION : -- Appends solutions to the file with the given name. procedure Append_Affine_Binomial_Solutions_to_Input_File ( name : in string; c : in Link_to_Array_of_Monomial_Map_Lists ); -- DESCRIPTION : -- Appends solution maps to the file with the given name. procedure Toric_Binomial_Solver ( nt : in natural32; start_moment : in Ada.Calendar.Time; p : in Laur_Sys; append_sols : in boolean; infilename,outfilename : in string; outfile : out file_type; to_file,fail : out boolean; v : in integer32 := 0 ); -- DESCRIPTION : -- If p is a binomial system, then it is solved. procedure Affine_Binomial_Solver ( nt : in natural32; start_moment : in Ada.Calendar.Time; p : in Laur_Sys; append_sols : in boolean; infilename,outfilename : in string; outfile : out file_type; outnewname : out Link_to_String; to_file,fail : out boolean; v : in integer32 := 0 ); -- DESCRIPTION : -- If p is a binomial system, then it is solved. procedure Toric_Binomial_Solver ( nt : in natural32; start_moment : in Ada.Calendar.Time; p : in Poly_Sys; append_sols : in boolean; infilename,outfilename : in string; outfile : out file_type; outnewname : out Link_to_String; to_file,fail : out boolean; v : in integer32 := 0 ); -- DESCRIPTION : -- If p is a binomial system, then it is solved. procedure Solve ( nt : in natural32; infilename,outfilename : in string; start_moment : in Ada.Calendar.Time; p : in Link_to_Poly_Sys; append_sols : in boolean; v : in integer32 := 0 ); -- DESCRIPTION : -- Runs the blackbox solver for a polynomial system. procedure Solve ( nt : in natural32; infilename,outfilename : in string; start_moment : in Ada.Calendar.Time; p : in Link_to_Laur_Sys; append_sols : in boolean; v : in integer32 := 0 ); -- DESCRIPTION : -- Runs the blackbox solver for a Laurent polynomial system. procedure Main ( nt : in natural32; infilename,outfilename : in string; verbose : in integer32 := 0 ); -- DESCRIPTION : -- Note about the difference between Laurent and ordinary polynomials: -- For Laurent binomial systems (the genuine ones with negative powers), -- a stable mixed volume or an affine solution set does not make sense. -- For ordinary binomial systems of positive dimension, we compute all -- affine maps, or a stable mixed volume is computed. end Standard_Blackbox_Solvers;