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

Annotation of OpenXM_contrib/PHC/Ada/Schubert/ts_posets.adb, Revision 1.1

1.1     ! maekawa     1: with text_io,integer_io;              use text_io,integer_io;
        !             2: with Communications_with_User;        use Communications_with_User;
        !             3: with Brackets,Brackets_io;            use Brackets,Brackets_io;
        !             4: with Localization_Posets;             use Localization_Posets;
        !             5: with Localization_Posets_io;          use Localization_Posets_io;
        !             6: with Drivers_for_Input_Planes;        use Drivers_for_Input_Planes;
        !             7:
        !             8: procedure ts_posets is
        !             9:
        !            10: -- DESCRIPTION :
        !            11: --   Test on the construction of localization posets.
        !            12:
        !            13:   function Determine_Root ( m,p : natural ) return Node is
        !            14:
        !            15:   -- DESCRIPTION :
        !            16:   --   Proposes the trivial root to the user, allowing the user to
        !            17:   --   modify this choice.
        !            18:
        !            19:     root : Node(p) := Trivial_Root(m,p);
        !            20:     ans : character;
        !            21:
        !            22:   begin
        !            23:     loop
        !            24:       put("Top and bottom pivots of root are ");
        !            25:       put(root.top); put(" and ");
        !            26:       put(root.bottom); put_line(".");
        !            27:       put("Level of the root : "); put(root.level,1); new_line;
        !            28:       put("Do you want to use another root ? (y/n) "); get(ans);
        !            29:       exit when (ans /= 'y');
        !            30:       put("Give top pivots : "); get(root.top);
        !            31:       put("Give bottom pivots : "); get(root.bottom);
        !            32:       put("Give level of root : "); get(root.level);
        !            33:     end loop;
        !            34:     return root;
        !            35:   end Determine_Root;
        !            36:
        !            37:   procedure Write_Poset
        !            38:                 ( file : in file_type;
        !            39:                   lnkroot : in Link_to_Node; m,p,q : in natural ) is
        !            40:
        !            41:   -- DESCRIPTION :
        !            42:   --   Creates the posets and writes them onto the file.
        !            43:
        !            44:     nq : constant natural := m*p + q*(m+p);
        !            45:     level_poset : Array_of_Nodes(0..nq);
        !            46:     index_poset : Array_of_Array_of_Nodes(0..nq);
        !            47:     nbp : natural;
        !            48:
        !            49:   begin
        !            50:     level_poset := Create_Leveled_Poset(lnkroot);
        !            51:     Count_Roots(level_poset);
        !            52:     index_poset := Create_Indexed_Poset(level_poset);
        !            53:     put(file,index_poset);
        !            54:     nbp := Root_Count_Sum(level_poset);
        !            55:     put(file,"The number of paths : "); put(file,nbp,1); new_line(file);
        !            56:   end Write_Poset;
        !            57:
        !            58:   procedure Create_Top_Hypersurface_Poset ( m,p : in natural ) is
        !            59:
        !            60:   -- DESCRIPTION :
        !            61:   --   Create the poset by incrementing only top pivots.
        !            62:
        !            63:     root : Node(p) := Trivial_Root(m,p);
        !            64:     lnkroot : Link_to_Node := new Node'(root);
        !            65:
        !            66:   begin
        !            67:     Top_Create(lnkroot,m+p);
        !            68:     put_line("The poset created from the top : ");
        !            69:     Write_Poset(Standard_Output,lnkroot,m,p,0);
        !            70:   end Create_Top_Hypersurface_Poset;
        !            71:
        !            72:   procedure Create_Top_Hypersurface_Poset ( m,p,q : in natural ) is
        !            73:
        !            74:   -- DESCRIPTION :
        !            75:   --   Create the poset by incrementing only top pivots.
        !            76:
        !            77:     root : Node(p) := Trivial_Root(m,p,q);
        !            78:     lnkroot : Link_to_Node := new Node'(root);
        !            79:
        !            80:   begin
        !            81:     Q_Top_Create(lnkroot,root.bottom(p),m+p);
        !            82:     put_line("The poset created from the top : ");
        !            83:     Write_Poset(Standard_Output,lnkroot,m,p,q);
        !            84:   end Create_Top_Hypersurface_Poset;
        !            85:
        !            86:   procedure Create_Bottom_Hypersurface_Poset ( m,p : in natural ) is
        !            87:
        !            88:   -- DESCRIPTION :
        !            89:   --   Create the poset by decrementing only bottom pivots.
        !            90:
        !            91:     root : Node(p) := Trivial_Root(m,p);
        !            92:     lnkroot : Link_to_Node := new Node'(root);
        !            93:
        !            94:   begin
        !            95:     Bottom_Create(lnkroot);
        !            96:     put_line("The poset created from the bottom : ");
        !            97:     Write_Poset(Standard_Output,lnkroot,m,p,0);
        !            98:   end Create_Bottom_Hypersurface_Poset;
        !            99:
        !           100:   procedure Create_Bottom_Hypersurface_Poset ( m,p,q : in natural ) is
        !           101:
        !           102:   -- DESCRIPTION :
        !           103:   --   Create the poset by decrementing only bottom pivots.
        !           104:
        !           105:     root : Node(p) := Trivial_Root(m,p,q);
        !           106:     lnkroot : Link_to_Node := new Node'(root);
        !           107:
        !           108:   begin
        !           109:     Q_Bottom_Create(lnkroot,m+p);
        !           110:     put_line("The poset created from the bottom : ");
        !           111:     Write_Poset(Standard_Output,lnkroot,m,p,q);
        !           112:   end Create_Bottom_Hypersurface_Poset;
        !           113:
        !           114:   procedure Create_Mixed_Hypersurface_Poset ( m,p : in natural ) is
        !           115:
        !           116:   -- DESCRIPTION :
        !           117:   --   Create the poset by incrementing top and decrementing bottom pivots.
        !           118:
        !           119:     root : Node(p) := Trivial_Root(m,p);
        !           120:     lnkroot : Link_to_Node := new Node'(root);
        !           121:
        !           122:   begin
        !           123:     Top_Bottom_Create(lnkroot,m+p);
        !           124:     put_line("The poset created in a mixed fashion : ");
        !           125:     Write_Poset(Standard_Output,lnkroot,m,p,0);
        !           126:   end Create_Mixed_Hypersurface_Poset;
        !           127:
        !           128:   procedure Create_Mixed_Hypersurface_Poset ( m,p,q : in natural ) is
        !           129:
        !           130:   -- DESCRIPTION :
        !           131:   --   Create the poset by incrementing top and decrementing bottom pivots.
        !           132:
        !           133:     root : Node(p) := Trivial_Root(m,p,q);
        !           134:     lnkroot : Link_to_Node := new Node'(root);
        !           135:
        !           136:   begin
        !           137:     Q_Top_Bottom_Create(lnkroot,root.bottom(p),m+p);
        !           138:     put_line("The poset created in a mixed fashion : ");
        !           139:     Write_Poset(Standard_Output,lnkroot,m,p,q);
        !           140:   end Create_Mixed_Hypersurface_Poset;
        !           141:
        !           142:   procedure Create_Top_General_Poset ( m,p : in natural ) is
        !           143:
        !           144:   -- DESCRIPTION :
        !           145:   --   Creates a poset for counting general subspace intersections,
        !           146:   --   by consistently incrementing the top pivots.
        !           147:
        !           148:     root : Node(p) := Trivial_Root(m,p);
        !           149:     lnkroot : Link_to_Node := new Node'(root);
        !           150:     codim : constant Bracket := Read_Codimensions(m,p,0);
        !           151:
        !           152:   begin
        !           153:     Top_Create(lnkroot,codim,m+p);
        !           154:     put_line("The poset created from the top : ");
        !           155:     Write_Poset(Standard_Output,lnkroot,m,p,0);
        !           156:   end Create_Top_General_Poset;
        !           157:
        !           158:   procedure Create_Bottom_General_Poset ( m,p : in natural ) is
        !           159:
        !           160:   -- DESCRIPTION :
        !           161:   --   Creates a poset for counting general subspace intersections,
        !           162:   --   by consistently incrementing the top pivots.
        !           163:
        !           164:     root : Node(p) := Trivial_Root(m,p);
        !           165:     lnkroot : Link_to_Node := new Node'(root);
        !           166:     codim : constant Bracket := Read_Codimensions(m,p,0);
        !           167:
        !           168:   begin
        !           169:     Bottom_Create(lnkroot,codim);
        !           170:     put_line("The poset created from the bottom : ");
        !           171:     Write_Poset(Standard_Output,lnkroot,m,p,0);
        !           172:   end Create_Bottom_General_Poset;
        !           173:
        !           174:   procedure Create_Mixed_General_Poset ( m,p : in natural ) is
        !           175:
        !           176:   -- DESCRIPTION :
        !           177:   --   Creates a poset for counting general subspace intersections,
        !           178:   --   by incrementing the top and decrementing the bottom pivots.
        !           179:
        !           180:     root : Node(p) := Trivial_Root(m,p);
        !           181:     lnkroot : Link_to_Node := new Node'(root);
        !           182:     codim : constant Bracket := Read_Codimensions(m,p,0);
        !           183:
        !           184:   begin
        !           185:     Top_Bottom_Create(lnkroot,codim,m+p);
        !           186:     put_line("The poset created in a mixed fashion : ");
        !           187:     Write_Poset(Standard_Output,lnkroot,m,p,0);
        !           188:   end Create_Mixed_General_Poset;
        !           189:
        !           190:   procedure Create_Top_General_Poset ( m,p,q : in natural ) is
        !           191:
        !           192:   -- DESCRIPTION :
        !           193:   --   Creates a poset for counting general subspace intersections,
        !           194:   --   by consistently incrementing the top pivots.
        !           195:
        !           196:     root : Node(p) := Trivial_Root(m,p,q);
        !           197:     lnkroot : Link_to_Node := new Node'(root);
        !           198:     codim : constant Bracket := Read_Codimensions(m,p,q);
        !           199:
        !           200:   begin
        !           201:     Q_Top_Create(lnkroot,codim,root.bottom(p),m+p);
        !           202:     put_line("The poset created from the top : ");
        !           203:     Write_Poset(Standard_Output,lnkroot,m,p,q);
        !           204:   end Create_Top_General_Poset;
        !           205:
        !           206:   procedure Create_Bottom_General_Poset ( m,p,q : in natural ) is
        !           207:
        !           208:   -- DESCRIPTION :
        !           209:   --   Creates a poset for counting general subspace intersections,
        !           210:   --   by consistently incrementing the top pivots.
        !           211:
        !           212:     root : Node(p) := Trivial_Root(m,p,q);
        !           213:     lnkroot : Link_to_Node := new Node'(root);
        !           214:     codim : constant Bracket := Read_Codimensions(m,p,q);
        !           215:
        !           216:   begin
        !           217:     Q_Bottom_Create(lnkroot,codim,m+p);
        !           218:     put_line("The poset created from the bottom : ");
        !           219:     Write_Poset(Standard_Output,lnkroot,m,p,q);
        !           220:   end Create_Bottom_General_Poset;
        !           221:
        !           222:   procedure Create_Mixed_General_Poset ( m,p,q : in natural ) is
        !           223:
        !           224:   -- DESCRIPTION :
        !           225:   --   Creates a poset for counting general subspace intersections,
        !           226:   --   by incrementing the top and decrementing the bottom pivots.
        !           227:
        !           228:     root : Node(p) := Trivial_Root(m,p,q);
        !           229:     lnkroot : Link_to_Node := new Node'(root);
        !           230:     codim : constant Bracket := Read_Codimensions(m,p,q);
        !           231:
        !           232:   begin
        !           233:     Q_Top_Bottom_Create(lnkroot,codim,root.bottom(p),m+p);
        !           234:     put_line("The poset created in a mixed fashion : ");
        !           235:     Write_Poset(Standard_Output,lnkroot,m,p,q);
        !           236:   end Create_Mixed_General_Poset;
        !           237:
        !           238:   procedure Test_Root_Counts
        !           239:               ( file : in file_type;
        !           240:                 m,p,q : in natural; codim : in Bracket; bug : out boolean ) is
        !           241:
        !           242:   -- DESCRIPTION :
        !           243:   --   Computes the root count in various ways for the given vector
        !           244:   --   of co-dimensions.  Compares the results and reports bugs.
        !           245:
        !           246:     mpq : constant natural := m*p + q*(m+p);
        !           247:     top_root0,bot_root0,mix_root0 : Node(p);
        !           248:     lnk_top_root0 : Link_to_Node := new Node'(top_root0);
        !           249:     lnk_bot_root0 : Link_to_Node := new Node'(bot_root0);
        !           250:     lnk_mix_root0 : Link_to_Node := new Node'(mix_root0);
        !           251:     top_poset0,bot_poset0,mix_poset0 : Array_of_Nodes(0..mpq);
        !           252:     top_rootq,bot_rootq,mix_rootq : Node(p);
        !           253:     lnk_top_rootq : Link_to_Node := new Node'(top_rootq);
        !           254:     lnk_bot_rootq : Link_to_Node := new Node'(bot_rootq);
        !           255:     lnk_mix_rootq : Link_to_Node := new Node'(mix_rootq);
        !           256:     top_posetq,bot_posetq,mix_posetq : Array_of_Nodes(0..mpq);
        !           257:
        !           258:   begin
        !           259:     bug := false;
        !           260:     if q = 0
        !           261:      then top_root0 := Trivial_Root(m,p);
        !           262:           bot_root0 := Trivial_Root(m,p);
        !           263:           mix_root0 := Trivial_Root(m,p);
        !           264:           lnk_top_root0 := new Node'(top_root0);
        !           265:           lnk_bot_root0 := new Node'(bot_root0);
        !           266:           lnk_mix_root0 := new Node'(mix_root0);
        !           267:           Top_Create(lnk_top_root0,codim,m+p);
        !           268:           Bottom_Create(lnk_bot_root0,codim);
        !           269:           Top_Bottom_Create(lnk_mix_root0,codim,m+p);
        !           270:           top_poset0 := Create_Leveled_Poset(lnk_top_root0);
        !           271:           bot_poset0 := Create_Leveled_Poset(lnk_bot_root0);
        !           272:           mix_poset0 := Create_Leveled_Poset(lnk_mix_root0);
        !           273:           Count_Roots(top_poset0);
        !           274:           Count_Roots(bot_poset0);
        !           275:           Count_Roots(mix_poset0);
        !           276:     end if;
        !           277:     top_rootq := Trivial_Root(m,p,q);
        !           278:     bot_rootq := Trivial_Root(m,p,q);
        !           279:     mix_rootq := Trivial_Root(m,p,q);
        !           280:     lnk_top_rootq := new Node'(top_rootq);
        !           281:     lnk_bot_rootq := new Node'(bot_rootq);
        !           282:     lnk_mix_rootq := new Node'(mix_rootq);
        !           283:     Q_Top_Create(lnk_top_rootq,codim,top_rootq.bottom(p),m+p);
        !           284:     Q_Bottom_Create(lnk_bot_rootq,codim,m+p);
        !           285:     Q_Top_Bottom_Create(lnk_mix_rootq,codim,mix_rootq.bottom(p),m+p);
        !           286:     top_posetq := Create_Leveled_Poset(lnk_top_rootq);
        !           287:     bot_posetq := Create_Leveled_Poset(lnk_bot_rootq);
        !           288:     mix_posetq := Create_Leveled_Poset(lnk_mix_rootq);
        !           289:     Count_Roots(top_posetq);
        !           290:     Count_Roots(bot_posetq);
        !           291:     Count_Roots(mix_posetq);
        !           292:     if q = 0
        !           293:      then
        !           294:        put(file,top_poset0(mpq).roco,1);
        !           295:        if top_poset0(mpq).roco = bot_poset0(mpq).roco
        !           296:         then
        !           297:           put(file," = ");
        !           298:           put(file,bot_poset0(mpq).roco,1); bug := false;
        !           299:           if bot_poset0(mpq).roco = mix_poset0(mpq).roco
        !           300:            then
        !           301:              bug := false;
        !           302:              put(file," = "); put(file,mix_poset0(mpq).roco,1);
        !           303:            else
        !           304:              bug := true;
        !           305:              put(file," <> "); put(file,mix_poset0(mpq).roco,1);
        !           306:              put_line(file,"  BUG !!!");
        !           307:              put_line(file,"The poset created incrementing top pivots : ");
        !           308:              Write_Poset(file,lnk_top_root0,m,p,q);
        !           309:              put_line(file,"The poset created decrementing bottom pivots : ");
        !           310:              Write_Poset(file,lnk_bot_root0,m,p,q);
        !           311:              put_line(file,"The poset created in a mixed fashion : ");
        !           312:              Write_Poset(file,lnk_mix_root0,m,p,q);
        !           313:           end if;
        !           314:         else
        !           315:           bug := true;
        !           316:           put(file," <> "); put(file,bot_poset0(mpq).roco,1);
        !           317:           put_line(file,"  BUG !!!");
        !           318:           put_line(file,"The poset created incrementing top pivots : ");
        !           319:           Write_Poset(file,lnk_top_root0,m,p,q);
        !           320:           put_line(file,"The poset created decrementing bottom pivots : ");
        !           321:           Write_Poset(file,lnk_bot_root0,m,p,q);
        !           322:        end if;
        !           323:     end if;
        !           324:     if q = 0
        !           325:      then
        !           326:        if top_posetq(mpq).roco /= top_poset0(mpq).roco
        !           327:         then
        !           328:           bug := true;
        !           329:           put(file," <> "); put(file,top_posetq(mpq).roco,1);
        !           330:           put_line(file,"  BUG !!!");
        !           331:           put_line(file,"The poset created without q = 0 : ");
        !           332:           Write_Poset(file,lnk_top_root0,m,p,q);
        !           333:           put_line(file,"The poset created with q = 0 : ");
        !           334:           Write_Poset(file,lnk_bot_rootq,m,p,q);
        !           335:         else
        !           336:           put(file," = ");
        !           337:        end if;
        !           338:     end if;
        !           339:     if not bug
        !           340:      then
        !           341:        put(file,top_posetq(mpq).roco,1);
        !           342:        if top_posetq(mpq).roco = bot_posetq(mpq).roco
        !           343:         then
        !           344:           put(file," = ");
        !           345:           put(file,bot_posetq(mpq).roco,1); bug := false;
        !           346:           if bot_posetq(mpq).roco = mix_posetq(mpq).roco
        !           347:            then
        !           348:              bug := false;
        !           349:              put(file," = "); put(file,mix_posetq(mpq).roco,1); new_line(file);
        !           350:            else
        !           351:              bug := true;
        !           352:              put(file," <> "); put(file,mix_posetq(mpq).roco,1);
        !           353:              put_line(file,"  BUG !!!");
        !           354:              put_line(file,"The poset created incrementing top pivots : ");
        !           355:              Write_Poset(file,lnk_top_rootq,m,p,q);
        !           356:              put_line(file,"The poset created decrementing bottom pivots : ");
        !           357:              Write_Poset(file,lnk_bot_rootq,m,p,q);
        !           358:              put_line(file,"The poset created in a mixed fashion : ");
        !           359:              Write_Poset(file,lnk_mix_rootq,m,p,q);
        !           360:           end if;
        !           361:         else
        !           362:           bug := true;
        !           363:           put(file," <> "); put(file,bot_posetq(mpq).roco,1);
        !           364:           put_line(file,"  BUG !!!");
        !           365:           put_line(file,"The poset created incrementing top pivots : ");
        !           366:           Write_Poset(file,lnk_top_rootq,m,p,q);
        !           367:           put_line(file,"The poset created decrementing bottom pivots : ");
        !           368:           Write_Poset(file,lnk_bot_rootq,m,p,q);
        !           369:        end if;
        !           370:     end if;
        !           371:     Clear(top_poset0); Clear(bot_poset0); Clear(mix_poset0);
        !           372:     Clear(top_posetq); Clear(bot_posetq); Clear(mix_posetq);
        !           373:   end Test_Root_Counts;
        !           374:
        !           375:   procedure Enumerate_Partitions
        !           376:                ( file : in file_type; m,p,q : in natural ) is
        !           377:
        !           378:   -- DESCRIPTION :
        !           379:   --   Test the root counts for all partitions of m*p + q*(m+p).
        !           380:   --   The results are written on file.
        !           381:
        !           382:     n : constant natural := m*p + q*(m+p);
        !           383:     accu : Bracket(1..n);
        !           384:     bug : boolean := false;
        !           385:
        !           386:     procedure Enumerate ( k,nk : in natural ) is
        !           387:     begin
        !           388:       if nk = 0
        !           389:        then put(file,n,1); put(file," = ");
        !           390:             for i in 1..k-2 loop
        !           391:               put(file,accu(i),1); put(file," + ");
        !           392:             end loop;
        !           393:             put(file,accu(k-1),1); put(file," : ");
        !           394:             Test_Root_Counts(file,m,p,q,accu(1..k-1),bug);
        !           395:        else for i in 1..nk loop
        !           396:               exit when (i > m);
        !           397:               accu(k) := i;
        !           398:               Enumerate(k+1,nk-i);
        !           399:               exit when bug;
        !           400:             end loop;
        !           401:       end if;
        !           402:     end Enumerate;
        !           403:
        !           404:   begin
        !           405:     Enumerate(1,n);
        !           406:   end Enumerate_Partitions;
        !           407:
        !           408:   procedure Main is
        !           409:
        !           410:     m,p,q : natural;
        !           411:     ans : character;
        !           412:     file : file_type;
        !           413:
        !           414:   begin
        !           415:     loop
        !           416:       new_line;
        !           417:       put_line("MENU for posets for counting p-planes in (m+p)-space : ");
        !           418:       put_line("  0. exit this program.");
        !           419:       put_line("-------- the case q = 0 ------------------------------------");
        !           420:       put_line("  1. k_i == 1 consistently incrementing the top pivots.");
        !           421:       put_line("  2.          consistently decrementing the bottom pivots.");
        !           422:       put_line("  3.          mixed top-bottom sequence for poset creation.");
        !           423:       put_line("  4. k_i >= 1 consistently incrementing the top pivots.");
        !           424:       put_line("  5.          consistently decrementing the bottom pivots.");
        !           425:       put_line("  6.          mixed top-bottom sequence for poset creation.");
        !           426:       put_line("  7. Enumerate all partitions of m*p and test root counts.");
        !           427:       put_line("-------- the case q >= 0 -----------------------------------");
        !           428:       put_line("  8. k_i == 1 consistently incrementing top pivots.");
        !           429:       put_line("  9.          consistently decrementing bottom pivots.");
        !           430:       put_line("  A.          mixed top-bottom sequence for pivots.");
        !           431:       put_line("  B. k_i >= 1 consistently incrementing top pivots.");
        !           432:       put_line("  C.          consistently decrementing bottom pivots.");
        !           433:       put_line("  D.          mixed top-bottom sequence for pivots.");
        !           434:       put_line("  E. Test root counts for all partitions of m*p + q*(m+p).");
        !           435:       put_line("------------------------------------------------------------");
        !           436:       put("Type 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, or E to choose : ");
        !           437:       Ask_Alternative(ans,"0123456789ABCDE");
        !           438:       exit when ans = '0';
        !           439:       if ans = '7' or ans = 'E'
        !           440:        then new_line;
        !           441:             put_line("Reading the name of the output file.");
        !           442:             Read_Name_and_Create_File(file);
        !           443:       end if;
        !           444:       new_line;
        !           445:       put("Give p, the number of entries in bracket : "); get(p);
        !           446:       put("Give m, the complementary dimension : "); get(m);
        !           447:       new_line;
        !           448:       case ans is
        !           449:         when '1' => Create_Top_Hypersurface_Poset(m,p);
        !           450:         when '2' => Create_Bottom_Hypersurface_Poset(m,p);
        !           451:         when '3' => Create_Mixed_Hypersurface_Poset(m,p);
        !           452:         when '4' => Create_Top_General_Poset(m,p);
        !           453:         when '5' => Create_Bottom_General_Poset(m,p);
        !           454:         when '6' => Create_Mixed_General_Poset(m,p);
        !           455:         when '7' => Enumerate_Partitions(file,m,p,0);
        !           456:         when '8' => put("Give q, the degree of the maps : "); get(q);
        !           457:                     Create_Top_Hypersurface_Poset(m,p,q);
        !           458:         when '9' => put("Give q, the degree of the maps : "); get(q);
        !           459:                     Create_Bottom_Hypersurface_Poset(m,p,q);
        !           460:         when 'A' => put("Give q, the degree of the maps : "); get(q);
        !           461:                     Create_Mixed_Hypersurface_Poset(m,p,q);
        !           462:         when 'B' => put("Give q, the degree of the maps : "); get(q);
        !           463:                     Create_Top_General_Poset(m,p,q);
        !           464:         when 'C' => put("Give q, the degree of the maps : "); get(q);
        !           465:                     Create_Bottom_General_Poset(m,p,q);
        !           466:         when 'D' => put("Give q, the degree of the maps : "); get(q);
        !           467:                     Create_Mixed_General_Poset(m,p,q);
        !           468:         when 'E' => put("Give q, the degree of the maps : "); get(q);
        !           469:                     Enumerate_Partitions(file,m,p,q);
        !           470:         when others => put_line("Option not recognized.  Please try again.");
        !           471:       end case;
        !           472:     end loop;
        !           473:   end Main;
        !           474:
        !           475: begin
        !           476:   new_line;
        !           477:   put_line("Test on localization posets for linear subspace intersections.");
        !           478:   Main;
        !           479: end ts_posets;

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