[BACK]Return to generic_laur_poly_systems.adb CVS log [TXT][DIR] Up to [local] / OpenXM_contrib / PHC / Ada / Math_Lib / Polynomials

Annotation of OpenXM_contrib/PHC/Ada/Math_Lib/Polynomials/generic_laur_poly_systems.adb, Revision 1.1

1.1     ! maekawa     1: with unchecked_deallocation;
        !             2:
        !             3: package body Generic_Laur_Poly_Systems is
        !             4:
        !             5: -- COPYING :
        !             6:
        !             7:   procedure Copy ( p : in Laur_Sys; q : in out Laur_Sys ) is
        !             8:   begin
        !             9:     for i in p'range loop
        !            10:       Copy(p(i),q(i));
        !            11:     end loop;
        !            12:   end Copy;
        !            13:
        !            14: -- ARITHMETIC OPERATIONS :
        !            15:
        !            16:   function "+" ( p,q : Laur_Sys ) return Laur_Sys is
        !            17:
        !            18:     res : Laur_Sys(p'range);
        !            19:
        !            20:   begin
        !            21:     for i in p'range loop
        !            22:       res(i) := p(i)+q(i);
        !            23:     end loop;
        !            24:     return res;
        !            25:   end "+";
        !            26:
        !            27:   function "-" ( p,q : Laur_Sys ) return Laur_Sys is
        !            28:
        !            29:     res : Laur_Sys(p'range);
        !            30:
        !            31:   begin
        !            32:     for i in p'range loop
        !            33:       res(i) := p(i)-q(i);
        !            34:     end loop;
        !            35:     return res;
        !            36:   end "-";
        !            37:
        !            38:   function "-" ( p : Laur_Sys ) return Laur_Sys is
        !            39:
        !            40:     res : Laur_Sys(p'range);
        !            41:
        !            42:   begin
        !            43:     for i in p'range loop
        !            44:       res(i) := -p(i);
        !            45:     end loop;
        !            46:     return res;
        !            47:   end "-";
        !            48:
        !            49:   function "*" ( a : number; p : Laur_Sys ) return Laur_Sys is
        !            50:
        !            51:     res : Laur_Sys(p'range);
        !            52:
        !            53:   begin
        !            54:     for k in p'range loop
        !            55:       res(k) := a*p(k);
        !            56:     end loop;
        !            57:     return res;
        !            58:   end "*";
        !            59:
        !            60:   function "*" ( p : Laur_Sys; a : number ) return Laur_Sys is
        !            61:   begin
        !            62:     return a*p;
        !            63:   end "*";
        !            64:
        !            65:   procedure Add ( p : in out Laur_Sys; q : in Laur_Sys ) is
        !            66:   begin
        !            67:     for i in p'range loop
        !            68:       Add(p(i),q(i));
        !            69:     end loop;
        !            70:   end Add;
        !            71:
        !            72:   procedure Sub ( p : in out Laur_Sys; q : in Laur_Sys ) is
        !            73:   begin
        !            74:     for i in p'range loop
        !            75:       Sub(p(i),q(i));
        !            76:     end loop;
        !            77:   end Sub;
        !            78:
        !            79:   procedure Min ( p : in out Laur_Sys ) is
        !            80:   begin
        !            81:     for i in p'range loop
        !            82:       Min(p(i));
        !            83:     end loop;
        !            84:   end Min;
        !            85:
        !            86:   procedure Mul ( p : in out Laur_Sys; a : in number ) is
        !            87:   begin
        !            88:     for k in p'range loop
        !            89:       Mul(p(k),a);
        !            90:     end loop;
        !            91:   end Mul;
        !            92:
        !            93:   function Diff ( p : Laur_Sys; i : natural ) return Laur_Sys is
        !            94:
        !            95:     res : Laur_Sys(p'range);
        !            96:
        !            97:   begin
        !            98:     for j in p'range loop
        !            99:       res(j) := Diff(p(j),i);
        !           100:     end loop;
        !           101:     return res;
        !           102:   end Diff;
        !           103:
        !           104:   procedure Diff ( p : in out Laur_Sys; i : in natural ) is
        !           105:   begin
        !           106:     for j in p'range loop
        !           107:       Diff(p(j),i);
        !           108:     end loop;
        !           109:   end Diff;
        !           110:
        !           111: -- DESTRUCTORS :
        !           112:
        !           113:   procedure Clear ( p : in out Laur_Sys ) is
        !           114:   begin
        !           115:     for i in p'range loop
        !           116:       Clear(p(i));
        !           117:     end loop;
        !           118:   end Clear;
        !           119:
        !           120:   procedure Clear ( p : in out Link_to_Laur_Sys ) is
        !           121:
        !           122:     procedure free is new unchecked_deallocation(Laur_Sys,Link_to_Laur_Sys);
        !           123:
        !           124:   begin
        !           125:     if p /= null
        !           126:      then Clear(p.all);
        !           127:     end if;
        !           128:     free(p);
        !           129:   end Clear;
        !           130:
        !           131: end Generic_Laur_Poly_Systems;

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