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