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

Annotation of OpenXM_contrib/PHC/Ada/Root_Counts/Stalift/integer_mixed_subdivisions_io.adb, Revision 1.1

1.1     ! maekawa     1: with integer_io;                         use integer_io;
        !             2: with Standard_Integer_Vectors_io;        use Standard_Integer_Vectors_io;
        !             3: with Lists_of_Integer_Vectors;           use Lists_of_Integer_Vectors;
        !             4: with Lists_of_Integer_Vectors_io;        use Lists_of_Integer_Vectors_io;
        !             5: with Arrays_of_Integer_Vector_Lists;     use Arrays_of_Integer_Vector_Lists;
        !             6: with Mixed_Volume_Computation;           use Mixed_Volume_Computation;
        !             7:
        !             8: package body Integer_Mixed_Subdivisions_io is
        !             9:
        !            10: -- INPUT ROUTINES :
        !            11:
        !            12:   procedure get ( n,m : in natural; mic : out Mixed_Cell ) is
        !            13:   begin
        !            14:     get(Standard_Input,n,m,mic);
        !            15:   end get;
        !            16:
        !            17:   procedure get ( file : in file_type;
        !            18:                  n,m : in natural; mic : out Mixed_Cell ) is
        !            19:
        !            20:     adl : Array_of_Lists(1..m);
        !            21:     l : natural;
        !            22:
        !            23:   begin
        !            24:     get(file,n+1,mic.nor);
        !            25:     for k in 1..m loop
        !            26:       get(file,l);
        !            27:       get(file,n+1,l,adl(k));
        !            28:     end loop;
        !            29:     mic.pts := new Array_of_Lists'(adl);
        !            30:     get(file,l);
        !            31:     if l /= 0
        !            32:      then declare
        !            33:             nn,mm : natural;
        !            34:             mix : Link_to_Vector;
        !            35:             sub : Mixed_Subdivision;
        !            36:           begin
        !            37:             get(file,nn,mm,mix,sub);
        !            38:             if not Is_Null(sub)
        !            39:              then mic.sub := new Mixed_Subdivision'(sub);
        !            40:             end if;
        !            41:           end;
        !            42:     end if;
        !            43:   end get;
        !            44:
        !            45:   procedure get ( n,m : out natural; mixed_type : out Link_to_Vector;
        !            46:                   mixsub : out Mixed_Subdivision ) is
        !            47:   begin
        !            48:     get(Standard_Input,n,m,mixed_type,mixsub);
        !            49:   end get;
        !            50:
        !            51:   procedure get ( file : in file_type; n,m : out natural;
        !            52:                  mixed_type : out Link_to_Vector;
        !            53:                   mixsub : out Mixed_Subdivision ) is
        !            54:
        !            55:     res,res_last : Mixed_Subdivision;
        !            56:     l,nn,mm : natural;
        !            57:
        !            58:   begin
        !            59:     get(file,nn); n := nn;
        !            60:     get(file,mm); m := mm;
        !            61:     get(file,mm,mixed_type);
        !            62:     get(file,l);
        !            63:     for k in 1..l loop
        !            64:       declare
        !            65:        mic : Mixed_Cell;
        !            66:       begin
        !            67:        get(file,nn,mm,mic);
        !            68:        Append(res,res_last,mic);
        !            69:       end;
        !            70:     end loop;
        !            71:     mixsub := res;
        !            72:   end get;
        !            73:
        !            74: -- OUTPUT ROUTINES :
        !            75:
        !            76:   procedure put ( n : in natural; mix : in Vector; mic : in Mixed_Cell ) is
        !            77:   begin
        !            78:     put(Standard_Output,n,mix,mic);
        !            79:   end put;
        !            80:
        !            81:   procedure put ( n : in natural; mix : in Vector;
        !            82:                   mic : in out Mixed_Cell; mv : out natural ) is
        !            83:   begin
        !            84:     put(Standard_Output,n,mix,mic,mv);
        !            85:   end put;
        !            86:
        !            87:   procedure put ( file : in file_type;
        !            88:                   n : in natural; mix : in Vector; mic : in Mixed_Cell ) is
        !            89:   begin
        !            90:     put(file,mic.nor); new_line(file);
        !            91:     for k in mic.pts'range loop
        !            92:       put(file,Length_Of(mic.pts(k)),1);
        !            93:       new_line(file);
        !            94:       put(file,mic.pts(k));
        !            95:     end loop;
        !            96:     if mic.sub = null
        !            97:      then put(file,0,1); new_line(file);
        !            98:      else put(file,1,1); new_line(file);
        !            99:           put(file,n,mix,mic.sub.all);
        !           100:     end if;
        !           101:   end put;
        !           102:
        !           103:   procedure put ( file : in file_type;
        !           104:                   n : in natural; mix : in Vector;
        !           105:                   mic : in out Mixed_Cell; mv : out natural ) is
        !           106:   begin
        !           107:     put(file," normal to cell : "); put(file,mic.nor); new_line(file);
        !           108:     put_line(file," the points in the cell : ");
        !           109:     for k in mic.pts'range loop
        !           110:       put(file,"  component "); put(file,k,1); put(file," with ");
        !           111:       put(file,Length_Of(mic.pts(k)),1); put_line(file," points :");
        !           112:       put(file,mic.pts(k));
        !           113:     end loop;
        !           114:     Mixed_Volume(n,mix,mic,mv);
        !           115:     if mic.sub /= null
        !           116:      then put_line(file," with refinement : ");
        !           117:           put(file,n,mix,mic.sub.all,mv);
        !           118:     end if;
        !           119:   end put;
        !           120:
        !           121:   procedure put ( n : in natural; mix : in Vector;
        !           122:                  mixsub : in Mixed_Subdivision ) is
        !           123:   begin
        !           124:     put(Standard_Output,n,mix,mixsub);
        !           125:   end put;
        !           126:
        !           127:   procedure put ( n : in natural; mix : in Vector;
        !           128:                   mixsub : in out Mixed_Subdivision; mv : out natural ) is
        !           129:   begin
        !           130:     put(Standard_Output,n,mix,mixsub,mv);
        !           131:   end put;
        !           132:
        !           133:   procedure put ( file : in file_type; n : in natural;
        !           134:                  mix : in Vector; mixsub : in Mixed_Subdivision ) is
        !           135:
        !           136:     tmp : Mixed_Subdivision := mixsub;
        !           137:
        !           138:   begin
        !           139:     put(file,n,1); new_line(file);
        !           140:     put(file,mix'last,1); new_line(file);
        !           141:     put(file,mix); new_line(file);
        !           142:     put(file,Length_Of(mixsub),1); new_line(file);
        !           143:     while not Is_Null(tmp) loop
        !           144:       put(file,n,mix,Head_Of(tmp));
        !           145:       tmp := Tail_Of(tmp);
        !           146:     end loop;
        !           147:   end put;
        !           148:
        !           149:   procedure put ( file : in file_type; n : in natural; mix : in Vector;
        !           150:                   mixsub : in out Mixed_Subdivision; mv : out natural ) is
        !           151:
        !           152:     tmp : Mixed_Subdivision := mixsub;
        !           153:     cnt,res : natural := 0;
        !           154:     vol : natural;
        !           155:
        !           156:   begin
        !           157:     put(file,"Dimension without lifting : "); put(file,n,1); new_line(file);
        !           158:     put(file,"Number of different supports : ");
        !           159:     put(file,mix'last,1); new_line(file);
        !           160:     put(file,"Type of mixture : "); put(file,mix); new_line(file);
        !           161:     put_line(file,"The cells in the subdivision :");
        !           162:     while not Is_Null(tmp) loop
        !           163:       cnt := cnt + 1;
        !           164:       put(file,"Cell "); put(file,cnt,1); put_line(file," :");
        !           165:       declare
        !           166:         mic : Mixed_Cell := Head_Of(tmp);
        !           167:       begin
        !           168:         put(file,n,mix,mic,vol);
        !           169:         Set_Head(tmp,mic);
        !           170:       end;
        !           171:       put(file,"==> Volume : "); put(file,vol,1); put_line(file,".");
        !           172:       res := res + vol;
        !           173:       tmp := Tail_Of(tmp);
        !           174:     end loop;
        !           175:     mv := res;
        !           176:   end put;
        !           177:
        !           178: end Integer_Mixed_Subdivisions_io;

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