with Abstract_Ring; with Generic_Vectors,Generic_VecVecs; with Generic_Polynomials; with Generic_Polynomial_Functions; with Generic_Polynomial_Systems; generic with package Ring is new Abstract_Ring(<>); with package Vectors is new Generic_Vectors(Ring); with package VecVecs is new Generic_VecVecs(Ring,Vectors); with package Polynomials is new Generic_Polynomials(Ring); with package Poly_Functions is new Generic_Polynomial_Functions(Ring,Vectors,Polynomials); with package Poly_Systems is new Generic_Polynomial_Systems(Ring,Polynomials); package Generic_Poly_System_Functions is -- DESCRIPTION : -- This package provides data structures and evaluation functions for -- systems of polynomials. use Ring,Vectors,VecVecs,Poly_Functions,Poly_Systems; -- FUNCTION TYPE : type Evaluator is access function ( x : Vector ) return Vector; -- DATA STRUCTURES : type Eval_Poly_Sys is array ( integer range <> ) of Eval_Poly; type Eval_Coeff_Poly_Sys is array ( integer range <> ) of Eval_Coeff_Poly; -- CREATORS : function Create ( p : Poly_Sys ) return Eval_Poly_Sys; function Create ( p : Poly_Sys ) return Eval_Coeff_Poly_Sys; -- EVALUATORS : function Eval ( p : Poly_Sys; x : number; i : natural ) return Poly_Sys; function Eval ( p : Poly_Sys; x : Vector ) return Vector; function Eval ( p : Eval_Poly_Sys; x : Vector ) return Vector; function Eval ( p : Eval_Coeff_Poly_Sys; c : VecVec; x : Vector ) return Vector; -- DESTRUCTORS : procedure Clear ( p : in out Eval_Poly_Sys ); procedure Clear ( p : in out Eval_Coeff_Poly_Sys ); end Generic_Poly_System_Functions;