Annotation of OpenXM_contrib/PHC/Ada/Math_Lib/Polynomials/generic_laur_jaco_matrices.ads, Revision 1.1
1.1 ! maekawa 1: with Abstract_Ring,Abstract_Ring.Field;
! 2: with Generic_Vectors,Generic_VecVecs;
! 3: with Generic_Matrices;
! 4: with Generic_Laurent_Polynomials;
! 5: with Generic_Laur_Poly_Functions;
! 6: with Generic_Laur_Poly_Systems;
! 7: with Generic_Laur_System_Functions;
! 8:
! 9: generic
! 10:
! 11: with package Ring is new Abstract_Ring(<>);
! 12: with package FField is new Ring.Field(<>);
! 13: with package Vectors is new Generic_Vectors(Ring);
! 14: with package VecVecs is new Generic_VecVecs(Ring,Vectors);
! 15: with package Matrices is new Generic_Matrices(Ring,Vectors);
! 16: with package Polynomials is new Generic_Laurent_Polynomials(Ring);
! 17: with package Poly_Functions is
! 18: new Generic_Laur_Poly_Functions(Ring,FField,Vectors,Polynomials);
! 19: with package Poly_Systems is
! 20: new Generic_Laur_Poly_Systems(Ring,Polynomials);
! 21: with package Poly_SysFun is
! 22: new Generic_Laur_System_Functions
! 23: (Ring,FField,Vectors,VecVecs,
! 24: Polynomials,Poly_Functions,Poly_Systems);
! 25:
! 26: package Generic_Laur_Jaco_Matrices is
! 27:
! 28: -- DESCRIPTION :
! 29: -- This package provides data structures and evaluation functions for
! 30: -- Jacobian matrices of systems of Laurent polynomials.
! 31:
! 32: use Ring,FField,Vectors,VecVecs,Matrices;
! 33: use Polynomials,Poly_Functions,Poly_Systems,Poly_SysFun;
! 34:
! 35: -- FUNCTION TYPE :
! 36:
! 37: type Evaluator is access function ( x : Vector ) return Matrix;
! 38:
! 39: -- DATA STRUCTURES :
! 40:
! 41: type Jaco_Mat is array ( integer range <>, integer range <> ) of Poly;
! 42: type Eval_Jaco_Mat is
! 43: array ( integer range <>, integer range <> ) of Eval_Poly;
! 44:
! 45: type Eval_Coeff_Jaco_Mat
! 46: is array ( integer range <>, integer range <> ) of Eval_Coeff_Poly;
! 47: type Mult_Factors
! 48: is array ( integer range <>, integer range <> ) of Link_to_Vector;
! 49:
! 50: -- USAGE :
! 51: -- p : Laur_Sys;
! 52: -- j : Jaco_Mat := Create(p);
! 53: -- => j(i,j) = Diff(p(i),j)
! 54:
! 55: -- CREATORS :
! 56:
! 57: function Create ( p : Laur_Sys ) return Jaco_Mat;
! 58:
! 59: -- REQUIRED :
! 60: -- The number of the unknowns of each polynomial must be the same
! 61:
! 62: function Create ( j : Jaco_Mat ) return Eval_Jaco_Mat;
! 63:
! 64: procedure Create ( p : Laur_Sys;
! 65: j : out Eval_Coeff_Jaco_Mat; m : out Mult_Factors );
! 66:
! 67: -- EVALUATORS :
! 68:
! 69: function Eval ( j : Jaco_Mat; x : Vector ) return Matrix; -- return j(x);
! 70: function Eval ( j : Eval_Jaco_Mat; x : Vector ) return Matrix; -- return j(x);
! 71:
! 72: function Eval ( j : Eval_Coeff_Poly; m,c,x : Vector ) return number;
! 73:
! 74: function Eval ( j : Eval_Coeff_Jaco_Mat; m : Mult_Factors;
! 75: c : VecVec; x : Vector ) return Matrix;
! 76:
! 77: -- returns j(c,x) with c the coefficients of the original polynomials
! 78:
! 79: -- DESTRUCTORS :
! 80:
! 81: procedure Clear ( j : in out Jaco_Mat );
! 82: procedure Clear ( j : in out Eval_Jaco_Mat );
! 83: procedure Clear ( j : in out Eval_Coeff_Jaco_Mat );
! 84:
! 85: procedure Clear ( m : in out Mult_Factors );
! 86:
! 87: -- DESCRIPTION :
! 88: -- Deallocation of the occupied memory.
! 89:
! 90: end Generic_Laur_Jaco_Matrices;
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>