[BACK]Return to homotopy.ads CVS log [TXT][DIR] Up to [local] / OpenXM_contrib / PHC / Ada / Homotopy

Annotation of OpenXM_contrib/PHC/Ada/Homotopy/homotopy.ads, Revision 1.1

1.1     ! maekawa     1: with Standard_Complex_Numbers;           use Standard_Complex_Numbers;
        !             2: with Standard_Complex_Vectors;           use Standard_Complex_Vectors;
        !             3: with Standard_Complex_Matrices;          use Standard_Complex_Matrices;
        !             4: with Standard_Complex_Poly_Systems;      use Standard_Complex_Poly_Systems;
        !             5:
        !             6: package Homotopy is
        !             7:
        !             8: -- DESCRIPTION :
        !             9: --   This package provides implementation of cheater's homotopy.
        !            10:
        !            11: -- CONSTRUCTORS :
        !            12:
        !            13:   procedure Create ( p,q : in Poly_Sys; k : in positive;
        !            14:                      a : in Complex_Number );
        !            15:
        !            16:   -- DESCRIPTION :
        !            17:   --   The following artificial-parameter homotopy is build :
        !            18:   --     H(x,t) = a * ((1 - t)^k) * q + (t^k) * p.
        !            19:
        !            20:   procedure Create ( p,q : in Poly_Sys; k : in positive; a : in Vector );
        !            21:
        !            22:   -- DESCRIPTION :
        !            23:   --   This operation is similar to the Create above, except for the fact
        !            24:   --   that every equation can have a different random constant.
        !            25:
        !            26:   procedure Create ( p,q : in Poly_Sys; k : in positive; a,b : in Vector;
        !            27:                      linear : in boolean );
        !            28:
        !            29:   -- DESCRIPTION :
        !            30:   --   If linear, then the following artificial-parameter homotopy is build :
        !            31:   --     H(i)(x,t) = a(i) * ((1 - t)^k) * q(i) + b(i)(t^k) * p(i),
        !            32:   --   for i in p'range.
        !            33:   --   Otherwise, if not linear, then
        !            34:   --     H(i)(x,t)
        !            35:   --       = (1-[t-t*(1-t)*a(i)])^k * q(i) + (t - t*(1-t)*b(i))^k * p(i),
        !            36:   --   for i in p'range.
        !            37:
        !            38:   procedure Create ( p : in Poly_Sys; k : in integer );
        !            39:
        !            40:   -- DESCRIPTION :
        !            41:   --   Given a polynomial system p with dimension n*(n+1) and
        !            42:   --   k an index, then t = x_k as continuation parameter.
        !            43:
        !            44: -- SELECTOR :
        !            45:
        !            46:   function Homotopy_System return Poly_Sys;
        !            47:
        !            48:   -- DESCRIPTION :
        !            49:   --   Returns the homotopy system in the unknowns (x,t).
        !            50:
        !            51: -- SYMBOLIC ROUTINES :
        !            52:
        !            53:   function Eval ( t : Complex_Number ) return Poly_Sys;
        !            54:
        !            55:   -- DESCRIPTION :
        !            56:   --   The homotopy is evaluated in t and a polynomial system is returned
        !            57:
        !            58:   function Diff ( t : Complex_Number ) return Poly_Sys;
        !            59:
        !            60:   -- DESCRIPTION :
        !            61:   --   The homotopy is symbolically differentiated w.r.t. t.
        !            62:
        !            63: -- NUMERIC ROUTINES :
        !            64:
        !            65:   function Eval ( x : Vector; t : Complex_Number ) return Vector;
        !            66:
        !            67:   -- DESCRIPTION :
        !            68:   --   The homotopy is evaluated in x and t and a vector is returned.
        !            69:
        !            70:   function Diff ( x : Vector; t : Complex_Number ) return Vector;
        !            71:
        !            72:   -- DESCRIPTION :
        !            73:   --   The homotopy is differentiated wr.t. t and is evaluated in (x,t).
        !            74:
        !            75:   function Diff ( x : Vector; t : Complex_Number ) return matrix;
        !            76:
        !            77:   -- DESCRIPTION :
        !            78:   --   The homotopy is differentiated to x and the Jacobi matrix
        !            79:   --   of H(x,t) is returned.
        !            80:
        !            81:   function Diff ( x : Vector; t : Complex_Number; k : natural ) return Vector;
        !            82:
        !            83:   -- DESCRIPTION :
        !            84:   --   The returning vector contains all derivatives from the homotopy
        !            85:   --   to the unknown x_k; note that t = x_n+1.
        !            86:
        !            87:   function Diff ( x : Vector; t : Complex_Number; k : natural ) return matrix;
        !            88:
        !            89:   -- DESCRIPTION :
        !            90:   --   The Jacobi matrix of the homotopy is returned where the kth
        !            91:   --   column has been deleted; note that Diff(x,t,n+1) = Diff(x,t).
        !            92:
        !            93: -- DESTRUCTOR :
        !            94:
        !            95:   procedure Clear;
        !            96:
        !            97:   -- DESCRIPTION :
        !            98:   --   The homotopy is cleared.
        !            99:
        !           100: end Homotopy;

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>