[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     ! 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>