Annotation of OpenXM_contrib/PHC/Ada/Root_Counts/Dynlift/dynamic_polyhedral_continuation.ads, Revision 1.1
1.1 ! maekawa 1: with text_io; use text_io;
! 2: with Standard_Integer_Vectors; use Standard_Integer_Vectors;
! 3: with Standard_Floating_Vectors;
! 4: with Standard_Complex_Poly_Systems; use Standard_Complex_Poly_Systems;
! 5: with Lists_of_Integer_Vectors; use Lists_of_Integer_Vectors;
! 6: with Arrays_of_Integer_Vector_Lists; use Arrays_of_Integer_Vector_Lists;
! 7: with Standard_Complex_Solutions; use Standard_Complex_Solutions;
! 8: with Triangulations; use Triangulations;
! 9: with Integer_Mixed_Subdivisions; use Integer_Mixed_Subdivisions;
! 10: with Dynamic_Mixed_Subdivisions; use Dynamic_Mixed_Subdivisions;
! 11:
! 12: package Dynamic_Polyhedral_Continuation is
! 13:
! 14: -- DESCRIPTION :
! 15: -- This package contains the utilities for polyhedral continuation,
! 16: -- to apply in combination with the dynamic lifting algorithm.
! 17:
! 18: procedure Dynamic_Unmixed_Solve
! 19: ( file : in file_type; n : in natural;
! 20: l : in List; order,inter : in boolean; maxli : in natural;
! 21: lifted,lifted_last : in out List; t : in out Triangulation;
! 22: q : in Poly_Sys; qsols : in out Solution_List );
! 23:
! 24: -- DESCRIPTION :
! 25: -- Application of the dynamic lifting algorithm to the unmixed
! 26: -- polynomial system q.
! 27:
! 28: -- ON ENTRY :
! 29: -- file a file to write intermediate results on;
! 30: -- n dimension before lifting;
! 31: -- l list of integer vectors of length n;
! 32: -- order if true, then the points are already ordered and will
! 33: -- be processed like they occur in the list,
! 34: -- if false, then a random order will be chosen;
! 35: -- inter if true, then the list may contain interior points,
! 36: -- i.e. points x in conv(l\{x}),
! 37: -- if false, no interior points occur in the list;
! 38: -- maxli maximum value of the lifting function,
! 39: -- if = 0, then no flattening will be applied,
! 40: -- if > 0, then no points will be given a lifting value
! 41: -- larger than maxli, eventually flattening will be applied;
! 42: -- lifted points that already have been lifted;
! 43: -- lifted_last is pointer to the last element of the list lifted;
! 44: -- t contains a triangulation of the lifted points;
! 45: -- q a polynomial system with randomly chosen coefficients,
! 46: -- the lists of exponent vectors of q equals the list l.
! 47:
! 48: -- ON RETURN :
! 49: -- lifted the lifted points;
! 50: -- t a regular triangulation of the points in l;
! 51: -- qsols the solutions of q.
! 52:
! 53: procedure Dynamic_Cayley_Solve
! 54: ( file : in file_type; n : in natural; mix : in Vector;
! 55: supports : in Array_of_Lists; order,inter : in boolean;
! 56: maxli : in natural; lifted : in out Array_of_Lists;
! 57: mixsub : in out Mixed_Subdivision; numtri : out natural;
! 58: q : in Poly_Sys; qsols : in out Solution_List );
! 59:
! 60: -- DESCRIPTION :
! 61: -- Application of the dynamic lifting algorithm to the Cayley trick.
! 62:
! 63: -- ON ENTRY :
! 64: -- file a file to write intermediate results on;
! 65: -- n length of the vectors in the supports;
! 66: -- mix type of mixture;
! 67: -- supports lists of integer vector of length n;
! 68: -- order if true, then the points are already ordered and will
! 69: -- be processed like they occur in the list,
! 70: -- if false, then a random order will be chosen;
! 71: -- inter if true, then the list may contain interior points,
! 72: -- i.e. points x in conv(l\{x}),
! 73: -- if false, no interior points occur in the list;
! 74: -- maxli maximum value of the lifting function,
! 75: -- if = 0, then no flattening will be applied,
! 76: -- i.e. there is no maximum lifting value,
! 77: -- if > 0, then no points will be given a lifting value
! 78: -- greater than maxli;
! 79: -- q a polynomial system with randomly chosen coefficients,
! 80: -- the lists of exponent vectors of q equals the given supports.
! 81:
! 82: -- ON RETURN :
! 83: -- lifted the lifted supports;
! 84: -- mixsub the mixed subdivision;
! 85: -- numtri number of simplices in the triangulation of the
! 86: -- auxiliary polytope,
! 87: -- qsols the solutions of q.
! 88:
! 89: procedure Dynamic_Mixed_Solve
! 90: ( file : in file_type; n : in natural; mix : in Vector;
! 91: supports : in Array_of_Lists; order,inter,conmv : in boolean;
! 92: maxli : in natural; mixsub : in out Mixed_Subdivision;
! 93: fs : in out Face_Structures;
! 94: nbsucc,nbfail : in out Standard_Floating_Vectors.Vector;
! 95: q : in Poly_Sys; qsols : in out Solution_List );
! 96:
! 97: -- DESCRIPTION :
! 98: -- Application of the dynamic lifting algorithm to a tuple of supports,
! 99: -- by the lift-and-prune algorithm.
! 100:
! 101: -- ON ENTRY :
! 102: -- file a file to write intermediate results on;
! 103: -- n length of the vectors in the supports;
! 104: -- mix type of mixture;
! 105: -- supports lists of integer vector of length n;
! 106: -- order if true, then the points are already ordered and will
! 107: -- be processed like they occur in the list,
! 108: -- if false, then a random order will be chosen;
! 109: -- inter if true, then the list may contain interior points,
! 110: -- i.e. points x in conv(l\{x}),
! 111: -- if false, no interior points occur in the list;
! 112: -- conmv if true, then online checks on zero contributions will
! 113: -- be made, otherwise this will not happen;
! 114: -- maxli maximum value of the lifting function,
! 115: -- if = 0, then no flattening will be applied,
! 116: -- if > 0, then no points will be given a lifting value
! 117: -- larger than maxli, eventually flattening will be applied;
! 118: -- mixsub regular mixed subdivision of the lifted points;
! 119: -- fs the face structures of the lower hulls of the lifted
! 120: -- points, necessary to re-start the algorithm efficiently;
! 121: -- nbsucc number of successful face-face combinations;
! 122: -- nbfail number of unsuccessful face-face combinations.
! 123: -- q a polynomial system with randomly chosen coefficients,
! 124: -- the lists of exponent vectors of q equals the given supports.
! 125:
! 126: -- ON RETURN :
! 127: -- mixsub regular mixed subdivision of the lifted points;
! 128: -- fs face structures of the updated lower hulls;
! 129: -- nbsucc updated number of successful face-face combinations;
! 130: -- nbfail updated number of unsuccessful face-face combinations;
! 131: -- qsols the solutions of q.
! 132:
! 133: end Dynamic_Polyhedral_Continuation;
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>