[BACK]Return to generic_jacobian_matrices.ads CVS log [TXT][DIR] Up to [local] / OpenXM_contrib / PHC / Ada / Math_Lib / Polynomials

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>