Annotation of OpenXM_contrib/PHC/Ada/Math_Lib/Polynomials/generic_jacobian_matrices.ads, Revision 1.1.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>