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