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

Annotation of OpenXM_contrib/PHC/Ada/Root_Counts/Implift/power_lists.adb, Revision 1.1

1.1     ! maekawa     1: with Standard_Integer_Vectors;           use Standard_Integer_Vectors;
        !             2:
        !             3: package body Power_Lists is
        !             4:
        !             5:   function Create ( p : Standard_Complex_Polynomials.Poly ) return List is
        !             6:
        !             7:     res,res_last : List;
        !             8:
        !             9:     procedure Visit_Term ( t : in Standard_Complex_Polynomials.Term;
        !            10:                            cont : out boolean ) is
        !            11:
        !            12:       h : Link_to_Vector;
        !            13:
        !            14:     begin
        !            15:       h := new Standard_Integer_Vectors.Vector(t.dg'range);
        !            16:       for j in h'range loop
        !            17:         h(j) := t.dg(j);
        !            18:       end loop;
        !            19:       Append(res,res_last,h);
        !            20:       cont := true;
        !            21:     end Visit_Term;
        !            22:     procedure Visit_Terms is
        !            23:       new Standard_Complex_Polynomials.Visiting_Iterator(Visit_Term);
        !            24:
        !            25:   begin
        !            26:     Visit_Terms(p);
        !            27:     return res;
        !            28:   end Create;
        !            29:
        !            30:   function Create ( p : Standard_Complex_Laur_Polys.Poly ) return List is
        !            31:
        !            32:     res,res_last : List;
        !            33:
        !            34:     procedure Visit_Term ( t : in Standard_Complex_Laur_Polys.Term;
        !            35:                            cont : out boolean ) is
        !            36:
        !            37:       h : Link_to_Vector;
        !            38:
        !            39:     begin
        !            40:       h := new Standard_Integer_Vectors.Vector(t.dg'range);
        !            41:       for j in h'range loop
        !            42:         h(j) := t.dg(j);
        !            43:       end loop;
        !            44:       Append(res,res_last,h);
        !            45:       cont := true;
        !            46:     end Visit_Term;
        !            47:     procedure Visit_Terms is
        !            48:       new Standard_Complex_Laur_Polys.Visiting_Iterator(Visit_Term);
        !            49:
        !            50:   begin
        !            51:     Visit_Terms(p);
        !            52:     return res;
        !            53:   end Create;
        !            54:
        !            55:   function Select_Terms ( p : Standard_Complex_Polynomials.Poly; l : List )
        !            56:                         return Standard_Complex_Polynomials.Poly is
        !            57:
        !            58:     res : Standard_Complex_Polynomials.Poly
        !            59:         := Standard_Complex_Polynomials.Null_Poly;
        !            60:
        !            61:     procedure Select_Term ( t : in Standard_Complex_Polynomials.Term;
        !            62:                             cont : out boolean ) is
        !            63:
        !            64:       v : Standard_Integer_Vectors.Vector(t.dg'range);
        !            65:
        !            66:     begin
        !            67:       for i in v'range loop
        !            68:         v(i) := t.dg(i);
        !            69:       end loop;
        !            70:       if Is_In(l,v)
        !            71:        then Add(res,t);
        !            72:       end if;
        !            73:       cont := true;
        !            74:     end Select_Term;
        !            75:     procedure Select_Poly is
        !            76:       new Standard_Complex_Polynomials.Visiting_Iterator ( Select_Term );
        !            77:
        !            78:   begin
        !            79:     Select_Poly(p);
        !            80:     return res;
        !            81:   end Select_Terms;
        !            82:
        !            83:   function Select_Terms ( p : Standard_Complex_Laur_Polys.Poly; l : List )
        !            84:                         return Standard_Complex_Laur_Polys.Poly is
        !            85:
        !            86:     res : Standard_Complex_Laur_Polys.Poly
        !            87:         := Standard_Complex_Laur_Polys.Null_Poly;
        !            88:
        !            89:     procedure Select_Term ( t : in Standard_Complex_Laur_Polys.Term;
        !            90:                             cont : out boolean ) is
        !            91:
        !            92:       v : Standard_Integer_Vectors.Vector(t.dg'range);
        !            93:
        !            94:     begin
        !            95:       for i in v'range loop
        !            96:         v(i) := t.dg(i);
        !            97:       end loop;
        !            98:       if Is_In(l,v)
        !            99:        then Add(res,t);
        !           100:       end if;
        !           101:       cont := true;
        !           102:     end Select_Term;
        !           103:     procedure Select_Poly is
        !           104:       new Standard_Complex_Laur_Polys.Visiting_Iterator ( Select_Term );
        !           105:
        !           106:   begin
        !           107:     Select_Poly(p);
        !           108:     return res;
        !           109:   end Select_Terms;
        !           110:
        !           111:   function Create ( p : Poly_Sys ) return Array_of_Lists is
        !           112:
        !           113:     res : Array_of_Lists(p'range);
        !           114:
        !           115:   begin
        !           116:     for i in p'range loop
        !           117:       res(i) := Create(p(i));
        !           118:     end loop;
        !           119:     return res;
        !           120:   end Create;
        !           121:
        !           122:   function Create ( p : Laur_Sys ) return Array_of_Lists is
        !           123:
        !           124:     res : Array_of_Lists(p'range);
        !           125:
        !           126:   begin
        !           127:     for i in p'range loop
        !           128:       res(i) := Create(p(i));
        !           129:     end loop;
        !           130:     return res;
        !           131:   end Create;
        !           132:
        !           133:   function Select_Terms ( p : Poly_Sys; al : Array_of_Lists )
        !           134:                         return Poly_Sys is
        !           135:
        !           136:     res : Poly_Sys(p'range);
        !           137:
        !           138:   begin
        !           139:     for i in p'range loop
        !           140:       res(i) := Select_Terms(p(i),al(i));
        !           141:     end loop;
        !           142:     return res;
        !           143:   end Select_Terms;
        !           144:
        !           145:   function Select_Terms ( p : Laur_Sys; al : Array_of_Lists )
        !           146:                         return Laur_Sys is
        !           147:
        !           148:     res : Laur_Sys(p'range);
        !           149:
        !           150:   begin
        !           151:     for i in p'range loop
        !           152:       res(i) := Select_Terms(p(i),al(i));
        !           153:     end loop;
        !           154:     return res;
        !           155:   end Select_Terms;
        !           156:
        !           157: end Power_Lists;

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