phcpack_2.4.88_e448e94a/src/Ada/Main/standard_blackbox_solvers.ads

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
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;