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

Annotation of OpenXM_contrib/PHC/Ada/Continuation/continuation_data.ads, Revision 1.1.1.1

1.1       maekawa     1: with Standard_Floating_Numbers;          use Standard_Floating_Numbers;
                      2: with Standard_Complex_Solutions;         use Standard_Complex_Solutions;
                      3:
                      4: package Continuation_Data is
                      5:
                      6: -- DESCRIPTION :
                      7: --   In order to keep the parameters and variables manageble,
                      8: --   they have been grouped into records.
                      9:
                     10: -- DATA STRUCTURES FOR PARAMETERS :
                     11:
                     12:   type Pred_Pars is record    -- contains the parameters for the predictor
                     13:
                     14:     minstep,maxstep : double_float;  -- minimum and maximum step size
                     15:     expfac,redfac : double_float;    -- expansion and reduction factor
                     16:                                      --  for step length control
                     17:     success_steps : natural;     -- number of successful steps before expansion
                     18:     predictor_type : natural;    -- type of predictor used
                     19:     dist_target : double_float;  -- distance to target
                     20:     power : positive;            -- power of t in (polyhedral) homotopy
                     21:
                     22:   end record;
                     23:
                     24:   type Corr_Pars is record    -- contains the parameters for the corrector
                     25:
                     26:     epsrx,epsax,epsrf,epsaf : double_float;
                     27:                               -- desired precisions for x and its residual f(x)
                     28:                               -- once relative (r) and once absolute (a)
                     29:
                     30:     maxit,maxtot : natural;   -- maximum number of corrector iterations
                     31:                               -- for one step and for the whole path
                     32:   end record;
                     33:
                     34: -- DATASTRUCTURES FOR VARIABLES :
                     35:
                     36:   type Solu_Info is record    -- contains information about the solution
                     37:
                     38:     sol : Link_to_Solution;   -- the solution: vector, t and multiplicity
                     39:
                     40:     corr,cora,resr,resa,rcond : double_float;
                     41:                               -- last correction (cor) and residual (res),
                     42:                               -- once relative (r) and once absolute (a)
                     43:                               -- and estimate for inverse condition of jacobian
                     44:
                     45:     length_path : double_float;  -- length of the path
                     46:
                     47:     nstep,nfail,niter,nsyst : natural;  -- various counters :
                     48:                               -- number of steps, failures, corrector
                     49:                               -- iterations and number of linear systems solved
                     50:   end record;
                     51:
                     52:   type Solu_Info_Array is array ( integer range <> ) of Solu_Info;
                     53:
                     54: -- CREATERS :
                     55:
                     56:   function Shallow_Create ( s : Link_to_Solution ) return Solu_Info;
                     57:   function Deep_Create    ( s : Solution ) return Solu_Info;
                     58:   function Shallow_Create ( s : Solution_Array ) return Solu_Info_Array;
                     59:   function Deep_Create    ( s : Solution_Array ) return Solu_Info_Array;
                     60:   function Shallow_Create ( s : Solution_List )  return Solu_Info_Array;
                     61:   function Deep_Create    ( s : Solution_List )  return Solu_Info_Array;
                     62:
                     63:   function Shallow_Create ( s : Solu_Info ) return Link_to_Solution;
                     64:   function Deep_Create    ( s : Solu_Info ) return Solution;
                     65:   function Shallow_Create ( s : Solu_Info_Array ) return Solution_Array;
                     66:   function Deep_Create    ( s : Solu_Info_Array ) return Solution_Array;
                     67:   function Shallow_Create ( s : Solu_Info_Array ) return Solution_List;
                     68:   function Deep_Create    ( s : Solu_Info_Array ) return Solution_List;
                     69:
                     70:   -- DESCRIPTION :
                     71:   --   A shallow create copies the pointer to the solution, while
                     72:   --   a deep create allocates memory for a copy of the solution.
                     73:
                     74: -- OPERATIONS ON Solu_Info :
                     75:
                     76:   procedure Copy_Info ( s1 : in Solu_Info; s2 : in out Solu_Info );
                     77:   procedure Copy_Solu ( s1 : in Solu_Info; s2 : in out Solu_Info );
                     78:   procedure Copy      ( s1 : in Solu_Info; s2 : in out Solu_Info );
                     79:
                     80:   -- DESCRIPTION :
                     81:   --   Copies the information, the solution or everything from s1 to s2.
                     82:
                     83:   procedure Init_Info ( s : in out Solu_Info );
                     84:
                     85:   -- DESCRIPTION :
                     86:   --   Initializes the information of the solution.
                     87:
                     88:   procedure Add_Info ( s1 : in out Solu_Info; s2 : in Solu_Info );
                     89:
                     90:   -- DESCRIPTION :
                     91:   --   Adds the information in the counters of s2 to s1.
                     92:
                     93:   procedure Update_Info ( s1 : in out Solu_Info; s2 : in Solu_Info );
                     94:
                     95:   -- DESCRIPTION :
                     96:   --   Adds the information in the counters of s2 to s1 and copies the
                     97:   --   other information from s2 to s1.
                     98:
                     99: -- OPERATIONS ON Solu_Info_Array :
                    100:
                    101:   procedure Copy ( s : in Solu_Info_Array; sa : in out Solution_Array );
                    102:   procedure Copy ( sa : in Solution_Array; s : in out Solu_Info_Array );
                    103:
                    104:   -- DESCRIPTION : Copies s into sa or vice versa.
                    105:
                    106: -- DESTRUCTORS :
                    107:
                    108:   procedure Clear ( s : in out Solu_Info );
                    109:   procedure Clear ( s : in out Solu_Info_Array );
                    110:
                    111:   -- DESCRIPTION :
                    112:   --   This is clear is only needed after a deep create.
                    113:
                    114: end Continuation_Data;

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