with Standard_Complex_Vectors; use Standard_Complex_Vectors;
with Standard_Integer_VecVecs; use Standard_Integer_VecVecs;
with Standard_Complex_Solutions; use Standard_Complex_Solutions;
with Transformations; use Transformations;
package Binomial_System_Solvers is
-- DESCRIPTION :
-- This package contains a routine for the solution of a binomial system,
-- where the i-th equation is defined as follows:
--
-- X^u_i - c_i = 0, for i = 1,2,..,n,
-- with
-- [ u ]_i a vector of degrees and [ c ]_i a vector of complex numbers,
--
-- using a multi_index notation: X^u_i = x1^u_i1 x2^u_i2 . . . xn^u_in.
procedure Factorize ( v : in out VecVec; n : in natural; t : in out Transfo );
-- DESCRIPTION :
-- This routines factorizes the binomial system defined by the
-- degrees in the vector v.
-- ON ENTRY :
-- v defines the degrees of binomial system;
-- n the number of unknowns to be eliminated.
-- ON RETURN :
-- v the factorized binomial system;
-- t the transformations used to factorize.
procedure Solve ( v : in VecVec; cv : in Vector;
n : in natural; sols : in out Solution_List );
-- DESCRIPTION :
-- This routine solves the binomial system defined by the degrees
-- in the vector v and by the constants in the vector cv.
-- REQUIRED :
-- The vector cv contains no zero components!
-- ON ENTRY :
-- v defines the degrees of binomial system;
-- cv is the vector of constants;
-- n the dimension of the system.
-- ON RETURN :
-- sols is the solution list of the binomial system.
procedure Residuals ( v : in VecVec; cv : in Vector;
n : in natural; sols : in Solution_List;
res : out Vector );
-- DESCRIPTION :
-- This routine computes the residuals of the solutions of
-- the binomial system defined by v and cv.
-- REQUIRED :
-- The dimension of res equals the number of solutions in sols.
-- ON ENTRY :
-- v defines the degrees of the binomial system;
-- cv the vector of constants;
-- n the dimension of the system;
-- sols is the solution list of the binomial system.
-- ON RETURN :
-- res a vector of residuals.
end Binomial_System_Solvers;