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

Annotation of OpenXM_contrib/PHC/Ada/Schubert/ts_brackpols.adb, Revision 1.1.1.1

1.1       maekawa     1: with text_io,integer_io;               use text_io,integer_io;
                      2: with Complex_Numbers;                  use Complex_Numbers;
                      3: with Brackets,Brackets_io;             use Brackets,Brackets_io;
                      4: with Bracket_Monomials;                use Bracket_Monomials;
                      5: with Bracket_Monomials_io;             use Bracket_Monomials_io;
                      6: with Bracket_Polynomials;              use Bracket_Polynomials;
                      7: with Bracket_Polynomials_io;           use Bracket_Polynomials_io;
                      8:
                      9: procedure ts_brackpols is
                     10:
                     11:   procedure Compare ( p : in Bracket_Polynomial; t : in Bracket_Term ) is
                     12:
                     13:   -- DESCRIPTION :
                     14:   --   Compares every monomial in p with the term t.
                     15:
                     16:     procedure Compare ( tt : in Bracket_Term; continue : out boolean ) is
                     17:     begin
                     18:       if tt < t
                     19:        then put(tt); put(" < "); put(t);
                     20:        elsif tt > t
                     21:            then put(tt); put(" > "); put(t);
                     22:            else put(tt); put(" = "); put(t);
                     23:       end if;
                     24:       new_line;
                     25:       if tt > t
                     26:        then put(tt); put(" > "); put(t);
                     27:        elsif tt < t
                     28:            then put(tt); put(" < "); put(t);
                     29:            else put(tt); put(" = "); put(t);
                     30:       end if;
                     31:       new_line;
                     32:       continue := true;
                     33:     end Compare;
                     34:     procedure Compare_Terms is new Enumerate_Terms(Compare);
                     35:
                     36:   begin
                     37:     Compare_Terms(p);
                     38:   end Compare;
                     39:
                     40:   procedure Interactive_Read ( d : in natural; t : out Bracket_Term ) is
                     41:
                     42:     m : natural;
                     43:     b : Bracket(1..d);
                     44:     s,c : integer;
                     45:     bm : Bracket_Monomial;
                     46:
                     47:   begin
                     48:     c := 1;
                     49:     put("Give the number of brackets in the monomial : "); get(m);
                     50:     for i in 1..m loop
                     51:       put("Give "); put(d,1); put(" numbers for the ");
                     52:       put(i,1); put("th bracket : "); get(b,s);
                     53:       c := s*c;
                     54:       Multiply(bm,b);
                     55:     end loop;
                     56:     put_line("The bracket monomial : "); put(bm); new_line;
                     57:     if c > 0
                     58:      then t.coeff := CMPLX(1.0);
                     59:      else t.coeff := -CMPLX(1.0);
                     60:     end if;
                     61:     t.monom := bm;
                     62:   end Interactive_Read;
                     63:
                     64:   procedure Interactive_Read ( d : in natural; p : out Bracket_Polynomial ) is
                     65:
                     66:     m : natural;
                     67:     bp : Bracket_Polynomial;
                     68:
                     69:   begin
                     70:     put_line("Reading a bracket polynomial.");
                     71:     put("Give the number of monomials : "); get(m);
                     72:     for i in 1..m loop
                     73:       declare
                     74:         bt : Bracket_Term;
                     75:       begin
                     76:         put("Reading bracket monomial "); put(i,1); new_line;
                     77:         Interactive_Read(d,bt);
                     78:         put_line("The bracket term : "); put(bt);
                     79:         Compare(bp,bt);
                     80:         Add(bp,bt);
                     81:         put_line("The bracket polynomial : "); put(bp);
                     82:       end;
                     83:     end loop;
                     84:     p := bp;
                     85:   end Interactive_Read;
                     86:
                     87:   procedure Main is
                     88:
                     89:     d : natural;
                     90:     bp : Bracket_Polynomial;
                     91:
                     92:   begin
                     93:     put("Give the number of entries in the brackets : "); get(d);
                     94:     Interactive_Read(d,bp);
                     95:     put_line("The bracket polynomial : "); put(bp);
                     96:   end Main;
                     97:
                     98: begin
                     99:   Main;
                    100: end ts_brackpols;

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