Annotation of OpenXM_contrib/PHC/Ada/Root_Counts/Stalift/integer_pruning_methods.ads, Revision 1.1
1.1 ! maekawa 1: with Standard_Integer_Vectors; use Standard_Integer_Vectors;
! 2: with Standard_Floating_Vectors;
! 3: with Lists_of_Integer_Vectors; use Lists_of_Integer_Vectors;
! 4: with Arrays_of_Integer_Vector_Lists; use Arrays_of_Integer_Vector_Lists;
! 5: with Integer_Faces_of_Polytope; use Integer_Faces_of_Polytope;
! 6: with Integer_Mixed_Subdivisions; use Integer_Mixed_Subdivisions;
! 7:
! 8: package Integer_Pruning_Methods is
! 9:
! 10: -- DESCRIPTION :
! 11: -- This package contains the creators of a regular mixed subdivision,
! 12: -- based on the static lifting algorithm, for computing only those cells
! 13: -- of a certain type, in particular the mixed cells.
! 14: -- There are facilities for computing only the generating cells and for
! 15: -- computing only the stable mixed cells.
! 16:
! 17: generic
! 18:
! 19: with procedure Process ( mic : in Mixed_Cell; continue : out boolean );
! 20:
! 21: -- DESCRIPTION :
! 22: -- This procedure will be invoked after each computation of a new cell.
! 23: -- If the parameter continue is set on false, then the computation will
! 24: -- be stopped, otherwise the creation continues.
! 25:
! 26: procedure Gen1_Create_CS
! 27: ( n : in natural; mix : in Vector; fa : in Array_of_Faces;
! 28: lifted : in Array_of_Lists;
! 29: nbsucc,nbfail : in out Standard_Floating_Vectors.Vector;
! 30: mixsub : out Mixed_Subdivision );
! 31:
! 32: procedure Create_CS
! 33: ( n : in natural; mix : in Vector; fa : in Array_of_Faces;
! 34: lifted : in Array_of_Lists;
! 35: nbsucc,nbfail : in out Standard_Floating_Vectors.Vector;
! 36: mixsub : out Mixed_Subdivision );
! 37:
! 38: -- DESCRIPTION :
! 39: -- Creates a mixed subdivision with a criterium to check which
! 40: -- face-face combinations can lead to a cell which contributes to
! 41: -- the mixed volume.
! 42:
! 43: -- ON ENTRY :
! 44: -- n dimension before lifting;
! 45: -- mix type of mixture: indicates how many times each polytope
! 46: -- occurs in the supports;
! 47: -- fa faces of the lower hull of the lifted point sets:
! 48: -- fa(i) contains the mix(i)-faces of conv(lifted(i));
! 49: -- lifted the lifted points;
! 50:
! 51: -- ON RETURN :
! 52: -- nbsucc number of times a face-face combination has passed the test,
! 53: -- at each level;
! 54: -- nbfail number of times a face-face combinations has failed to pass
! 55: -- the test, at each level;
! 56: -- mixsub collection of cells which contribute to the mixed volume.
! 57:
! 58: procedure New_Create_CS
! 59: ( n : in natural; mix : in Vector; fa : in Array_of_Faces;
! 60: lifted : in Array_of_Lists;
! 61: nbsucc,nbfail : in out Standard_Floating_Vectors.Vector;
! 62: mixsub : out Mixed_Subdivision );
! 63:
! 64: -- DESCRIPTION :
! 65: -- Does the same at the Create_CS, only with a new pruning method.
! 66:
! 67: procedure Create_CCS
! 68: ( n : in natural; mix : in Vector; fa : in Array_of_Faces;
! 69: lifted : in Array_of_Lists;
! 70: nbsucc,nbfail : in out Standard_Floating_Vectors.Vector;
! 71: normals,suppvals : in out List;
! 72: mixsub : out Mixed_Subdivision );
! 73:
! 74: -- DESCRIPTION :
! 75: -- Construction of the mixed subdivision by constraint complementary
! 76: -- slackness: faces supported by the list of normals pass freely.
! 77: -- This list of normals is updated each time new mixed cells are found.
! 78: -- Following are the descriptions of the new parameters.
! 79:
! 80: -- ON ENTRY :
! 81: -- normals list of inner normals on the lower hull of the lifted points;
! 82: -- suppvals corresponding vectors which contain the supporting values
! 83: -- for each component.
! 84:
! 85: -- ON RETURN :
! 86: -- normals contains the inner normals of the mixed cells;
! 87: -- suppvals corresponding vectors of support values.
! 88:
! 89: end Integer_Pruning_Methods;
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>