[BACK]Return to generic_laur_jaco_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_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>