[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

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>