[BACK]Return to symbolic_symmetry_group_io.adb CVS log [TXT][DIR] Up to [local] / OpenXM_contrib / PHC / Ada / Root_Counts / Symmetry

Annotation of OpenXM_contrib/PHC/Ada/Root_Counts/Symmetry/symbolic_symmetry_group_io.adb, Revision 1.1

1.1     ! maekawa     1: with integer_io;                         use integer_io;
        !             2: with Communications_with_User;           use Communications_with_User;
        !             3: with Symbol_Table,Symbol_Table_io;       use Symbol_Table;
        !             4:
        !             5: package body Symbolic_Symmetry_Group_io is
        !             6:
        !             7:   procedure iget ( p : in out Permutation ) is
        !             8:
        !             9:   -- DESCRIPTION ;
        !            10:   --   Auxiliary procedure to realize an interactive get.
        !            11:
        !            12:     ok : boolean := false;
        !            13:     pp : Permutation(p'range) := (p'range => 0);
        !            14:     ans : character;
        !            15:
        !            16:   begin
        !            17:     while not ok loop
        !            18:       get(Standard_Input,pp);
        !            19:       ok := Is_Permutation(pp);
        !            20:       if not ok
        !            21:        then put("is no permutation.  Do you want to retry ? (y/n) ");
        !            22:             Ask_Yes_or_No(ans);
        !            23:             ok := (ans /= 'y');
        !            24:       end if;
        !            25:     end loop;
        !            26:     p := pp;
        !            27:   end iget;
        !            28:
        !            29:   procedure get ( p : in out Permutation ) is
        !            30:   begin
        !            31:     iget(p);
        !            32:   end get;
        !            33:
        !            34:   procedure get ( file : in file_type; p : in out Permutation ) is
        !            35:
        !            36:     sb : Symbol;
        !            37:     ch : character;
        !            38:
        !            39:   begin
        !            40:     for i in p'range loop
        !            41:       sb := (sb'range => ' ');
        !            42:       get(ch);
        !            43:       while ch = ' ' loop get(ch); end loop;
        !            44:       if ch = '-'
        !            45:        then get(ch);
        !            46:             Symbol_Table_io.get(file,ch,sb);
        !            47:             p(i) := -Symbol_Table.get(sb);
        !            48:        else Symbol_Table_io.get(file,ch,sb);
        !            49:             p(i) := Symbol_Table.get(sb);
        !            50:       end if;
        !            51:     end loop;
        !            52:   end get;
        !            53:
        !            54:   procedure get ( l : in out List_of_Permutations; n,nb : in natural ) is
        !            55:
        !            56:     p : Permutation(1..n) := (1..n => 0);
        !            57:     l2 : List_of_Permutations;
        !            58:
        !            59:   begin
        !            60:     for i in 1..nb loop
        !            61:       iget(p);
        !            62:       Append(l,l2,p);
        !            63:     end loop;
        !            64:   end get;
        !            65:
        !            66:   procedure get ( file : in file_type;
        !            67:                  l : in out List_of_Permutations; n,nb : in natural ) is
        !            68:
        !            69:     p : Permutation(1..n) := (1..n => 0);
        !            70:     l2 : List_of_Permutations;
        !            71:
        !            72:   begin
        !            73:     for i in 1..nb loop
        !            74:       get(file,p);
        !            75:       if Is_Permutation(p)
        !            76:        then Append(l,l2,p);
        !            77:       end if;
        !            78:     end loop;
        !            79:   end get;
        !            80:
        !            81:   procedure put ( p : in Permutation ) is
        !            82:   begin
        !            83:     put(Standard_Output,p);
        !            84:   end put;
        !            85:
        !            86:   procedure put ( file : in file_type; p : in Permutation ) is
        !            87:
        !            88:     sb : Symbol;
        !            89:
        !            90:   begin
        !            91:     for i in p'range loop
        !            92:       put(file,' ');
        !            93:       if p(i) < 0
        !            94:        then put(file,'-');
        !            95:             sb := Symbol_Table.get(-p(i));
        !            96:        else sb := Symbol_Table.get(p(i));
        !            97:       end if;
        !            98:       Symbol_Table_io.put(file,sb);
        !            99:     end loop;
        !           100:   end put;
        !           101:
        !           102:   procedure put ( l : in List_of_Permutations ) is
        !           103:   begin
        !           104:     put(Standard_Output,l);
        !           105:   end put;
        !           106:
        !           107:   procedure put ( file : in file_type; l : in List_of_Permutations ) is
        !           108:
        !           109:     temp : List_of_Permutations := l;
        !           110:
        !           111:   begin
        !           112:     while not Is_Null(temp) loop
        !           113:       put(file,Permutation(Head_Of(temp).all));
        !           114:       new_line(file);
        !           115:       temp := Tail_Of(temp);
        !           116:     end loop;
        !           117:   end put;
        !           118:
        !           119: end Symbolic_Symmetry_Group_io;

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