Annotation of OpenXM_contrib/PHC/Ada/Schubert/deformation_posets.ads, Revision 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>