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

Annotation of OpenXM_contrib/PHC/Ada/Schubert/deformation_posets.ads, Revision 1.1.1.1

1.1       maekawa     1: with text_io;                            use text_io;
                      2: with Standard_Natural_Vectors;
                      3: with Standard_Complex_Vectors;
                      4: with Standard_Complex_VecMats;           use Standard_Complex_VecMats;
                      5: with Standard_Complex_Poly_Matrices;
                      6: with Brackets;                           use Brackets;
                      7: with Localization_Posets;                use Localization_Posets;
                      8:
                      9: package Deformation_Posets is
                     10:
                     11: -- DESCRIPTION :
                     12: --   This package is the continuous analogue of "Localization_Posets".
                     13:
                     14: -- DATA STRUCTURES :
                     15:
                     16:   type Array_of_VecMats is array ( integer range <> ) of Link_to_VecMat;
                     17:   type Link_to_Array_of_VecMats is access Array_of_VecMats;
                     18:   type Array_of_Array_of_VecMats is
                     19:     array ( integer range <> ) of Link_to_Array_of_VecMats;
                     20:
                     21:   type Duration_Array is array ( integer range <> ) of duration;
                     22:
                     23: -- CREATORS :
                     24:
                     25:   function Create ( index_poset : Array_of_Array_of_Nodes )
                     26:                   return Array_of_Array_of_VecMats;
                     27:
                     28:   -- DESCRIPTION :
                     29:   --   The array on return mirrors the index poset in the following sense:
                     30:   --     res(i)(j)'length = poset(i)(j).roco, if roco > 0,
                     31:   --     res(i)(j) = null, if roco = 0.
                     32:
                     33: -- SELECTOR :
                     34:
                     35:   function Empty ( poset : Array_of_Array_of_VecMats; level,label : natural )
                     36:                  return boolean;
                     37:
                     38:   -- DESCRIPTION :
                     39:   --   Returns true if poset(level)(label) is a vector of null pointers.
                     40:
                     41: -- ANALOGUES TO ROOT COUNTERS :
                     42:
                     43:   procedure Solve ( file : in file_type; n : in natural;
                     44:                     poset : in out Array_of_Array_of_VecMats; nd : in Node;
                     45:                     planes : in VecMat; report,outlog : in boolean;
                     46:                     npaths : in out Standard_Natural_Vectors.Vector;
                     47:                     timings : in out Duration_Array );
                     48:
                     49:   -- DESCRIPTION :
                     50:   --   Computes the p-planes that intersect with the given m-planes.
                     51:   --   This is the solver for hypersurface intersection conditions.
                     52:
                     53:   -- ON ENTRY :
                     54:   --   file         output file for intermediate results and logs;
                     55:   --   n            dimension of the working space, equals m+p;
                     56:   --   poset        deformation poset, properly created from index poset;
                     57:   --   nd           target root node from the localization poset;
                     58:   --   planes       input planes in general position;
                     59:   --   report       indicates if reporting path tracker is needed;
                     60:   --   outlog       flag to write homotopies on file if set to true.
                     61:
                     62:   -- ON RETURN :
                     63:   --   poset        poset(nd.level)(nd.label) contains all p-planes that
                     64:   --                intersect nontrivially with planes(1..nd.level);
                     65:   --   npaths       number of paths traced at each level;
                     66:   --   timings      CPU user time at each level.
                     67:
                     68:   procedure One_Solve
                     69:                   ( file : in file_type; n : in natural; cod : in Bracket;
                     70:                     poset : in out Array_of_Array_of_VecMats; nd : in Node;
                     71:                     planes : in VecMat; report,outlog : in boolean;
                     72:                     npaths : in out Standard_Natural_Vectors.Vector;
                     73:                     timings : in out Duration_Array );
                     74:
                     75:   -- DESCRIPTION :
                     76:   --   Computes the p-planes that intersect with the given planes of
                     77:   --   dimension (m+1-cod(i)), for i in cod'range.
                     78:   --   There is only one moving equation in the homotopies.
                     79:
                     80:   -- REQUIRED :
                     81:   --   The localization poset has been built either by consistently
                     82:   --   incrementing the top or by decrementing the bottom pivots.
                     83:   --   The co-dimension conditions are not interlaced.
                     84:
                     85:   -- ON ENTRY :
                     86:   --   file         output file for intermediate results and logs;
                     87:   --   n            dimension of the working space, equals m+p;
                     88:   --   cod          co-dimensions of input planes, dim(L_i) = m+1-cod(i)
                     89:   --   poset        deformation poset, properly created from index poset;
                     90:   --   nd           target root node from the localization poset;
                     91:   --   planes       input planes L_i in general position;
                     92:   --   report       indicates if reporting path tracker is needed;
                     93:   --   outlog       flag to write homotopies on file if set to true.
                     94:
                     95:   -- ON RETURN :
                     96:   --   poset        poset(nd.level)(nd.label) contains all p-planes that
                     97:   --                intersect nontrivially with planes(1..nd.level);
                     98:   --   npaths       number of paths traced at each level;
                     99:   --   timings      CPU user time at each level.
                    100:
                    101:   procedure Solve ( file : in file_type; n : in natural; cod : in Bracket;
                    102:                     poset : in out Array_of_Array_of_VecMats; nd : in Node;
                    103:                     planes : in VecMat; report,outlog : in boolean;
                    104:                     npaths : in out Standard_Natural_Vectors.Vector;
                    105:                     timings : in out Duration_Array );
                    106:
                    107:   -- DESCRIPTION :
                    108:   --   Computes the p-planes that intersect with the given planes of
                    109:   --   dimension (m+1-cod(i)), for i in cod'range.
                    110:   --   The co-dimension conditions are interlaced here.
                    111:
                    112:   -- ON ENTRY :
                    113:   --   file         output file for intermediate results and logs;
                    114:   --   n            dimension of the working space, equals m+p;
                    115:   --   cod          co-dimensions of input planes, dim(L_i) = m+1-cod(i)
                    116:   --   poset        deformation poset, properly created from index poset;
                    117:   --   nd           target root node from the localization poset;
                    118:   --   planes       input planes L_i in general position;
                    119:   --   report       indicates if reporting path tracker is needed;
                    120:   --   outlog       flag to write homotopies on file if set to true.
                    121:
                    122:   -- ON RETURN :
                    123:   --   poset        poset(nd.level)(nd.label) contains all p-planes that
                    124:   --                intersect nontrivially with planes(1..nd.level);
                    125:   --   npaths       number of paths traced at each level;
                    126:   --   timings      CPU user time at each level.
                    127:
                    128:   procedure Solve ( file : in file_type; n,q : in natural;
                    129:                     poset : in out Array_of_Array_of_VecMats; nd : in Node;
                    130:                     planes : in VecMat; s : in Standard_Complex_Vectors.Vector;
                    131:                     report,outlog : in boolean;
                    132:                     npaths : in out Standard_Natural_Vectors.Vector;
                    133:                     timings : in out Duration_Array );
                    134:
                    135:   -- DESCRIPTION :
                    136:   --   Computes the q-curve that produces p-planes in n-dimensional space
                    137:   --   that intersect with the given m-planes at specific s-values.
                    138:   --   This is the quantum analogue to the hypersurface solver.
                    139:
                    140:   -- ON ENTRY :
                    141:   --   file         output file for intermediate results and logs;
                    142:   --   n            dimension of the working space, equals m+p;
                    143:   --   q            degree of the map;
                    144:   --   poset        deformation poset, properly created from index poset;
                    145:   --   nd           target root node from the localization poset;
                    146:   --   planes       input m-planes in general position;
                    147:   --   s            interpolation points to meet the input m-planes;
                    148:   --   report       indicates if reporting path tracker is needed.
                    149:   --   outlog       flag to write homotopies on file if set to true.
                    150:
                    151:   -- ON RETURN :
                    152:   --   poset        poset(nd.level)(nd.label) contains coefficients
                    153:   --                of all curves that intersect nontrivially with
                    154:   --                planes(1..nd.level) at the specified s-values.
                    155:   --   npaths       number of paths traced at each level;
                    156:   --   timings      CPU user times at each level.
                    157:
                    158:   procedure One_Solve
                    159:                   ( file : in file_type; n,q : in natural; cod : in Bracket;
                    160:                     poset : in out Array_of_Array_of_VecMats; nd : in Node;
                    161:                     planes : in VecMat; s : in Standard_Complex_Vectors.Vector;
                    162:                     report,outlog : in boolean;
                    163:                     npaths : in out Standard_Natural_Vectors.Vector;
                    164:                     timings : in out Duration_Array );
                    165:
                    166:   -- DESCRIPTION :
                    167:   --   This is the quantum analogue to the other "One_Solve".
                    168:   --   Computes the p-planes that intersect with the given planes of
                    169:   --   dimension (m+1-cod(i)), for i in cod'range.
                    170:   --   There is only one moving equation in the homotopies.
                    171:
                    172:   -- REQUIRED :
                    173:   --   The localization poset has been built either by consistently
                    174:   --   incrementing the top or by decrementing the bottom pivots.
                    175:   --   The co-dimension conditions are not interlaced.
                    176:
                    177:   -- ON ENTRY :
                    178:   --   file         output file for intermediate results and logs;
                    179:   --   n            dimension of the working space, equals m+p;
                    180:   --   q            degree of the map;
                    181:   --   cod          co-dimensions of input planes, dim(L_i) = m+1-cod(i)
                    182:   --   poset        deformation poset, properly created from index poset;
                    183:   --   nd           target root node from the localization poset;
                    184:   --   planes       input planes L_i in general position;
                    185:   --   s            interpolation points to meet the input planes;
                    186:   --   report       indicates if reporting path tracker is needed;
                    187:   --   outlog       flag to write homotopies on file if set to true.
                    188:
                    189:   -- ON RETURN :
                    190:   --   poset        poset(nd.level)(nd.label) contains all p-planes that
                    191:   --                intersect nontrivially with planes(1..nd.level);
                    192:   --   npaths       number of paths traced at each level;
                    193:   --   timings      CPU user time at each level.
                    194:
                    195:   procedure Solve ( file : in file_type; n,q : in natural; cod : in Bracket;
                    196:                     poset : in out Array_of_Array_of_VecMats; nd : in Node;
                    197:                     planes : in VecMat; s : in Standard_Complex_Vectors.Vector;
                    198:                     report,outlog : in boolean;
                    199:                     npaths : in out Standard_Natural_Vectors.Vector;
                    200:                     timings : in out Duration_Array );
                    201:
                    202:   -- DESCRIPTION :
                    203:   --   Computes the q-curve that produces p-planes in n-dimensional space
                    204:   --   that intersect with the given m-planes at specific s-values.
                    205:   --   This is the quantum analogue to the general solver.
                    206:
                    207:   -- ON ENTRY :
                    208:   --   file         output file for intermediate results and logs;
                    209:   --   n            dimension of the working space, equals m+p;
                    210:   --   q            degree of the map;
                    211:   --   cod          co-dimensions of input planes, dim(L_i) = m+1-cod(i);
                    212:   --   poset        deformation poset, properly created from index poset;
                    213:   --   nd           target root node from the localization poset;
                    214:   --   planes       input m-planes in general position;
                    215:   --   s            interpolation points to meet the input planes;
                    216:   --   report       indicates if reporting path tracker is needed.
                    217:   --   outlog       flag to write homotopies on file if set to true.
                    218:
                    219:   -- ON RETURN :
                    220:   --   poset        poset(nd.level)(nd.label) contains coefficients
                    221:   --                of all curves that intersect nontrivially with
                    222:   --                planes(1..nd.level) at the specified s-values.
                    223:   --   npaths       number of paths traced at each level;
                    224:   --   timings      CPU user times at each level.
                    225:
                    226: -- DESTRUCTORS :
                    227:
                    228:   procedure Clear ( avm : in out Array_of_VecMats );
                    229:   procedure Clear ( avm : in out Link_to_Array_of_VecMats );
                    230:   procedure Clear ( avm : in out Array_of_Array_of_VecMats );
                    231:
                    232:   -- DESCRIPTION :
                    233:   --   Deallocation of the occupied memory.
                    234:
                    235: end Deformation_Posets;

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