[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     ! 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>