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

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

1.1     ! maekawa     1: with Standard_Complex_Numbers;           use Standard_Complex_Numbers;
        !             2: with Standard_Natural_Vectors;
        !             3:
        !             4: package body Standard_Laur_Poly_Convertors is
        !             5:
        !             6:   function Laurent_Polynomial_to_Polynomial
        !             7:              ( p : Standard_Complex_Laur_Polys.Poly )
        !             8:              return Standard_Complex_Polynomials.Poly is
        !             9:
        !            10:     res : Standard_Complex_Polynomials.Poly;
        !            11:     tt : Standard_Complex_Laur_Polys.Term;
        !            12:
        !            13:   begin
        !            14:     Laurent_Polynomial_to_Polynomial(p,tt,res);
        !            15:     Standard_Complex_Laur_Polys.Clear(tt);
        !            16:     return res;
        !            17:   end Laurent_Polynomial_to_Polynomial;
        !            18:
        !            19:   procedure Laurent_Polynomial_to_Polynomial
        !            20:              ( l : in Standard_Complex_Laur_Polys.Poly;
        !            21:                t : out Standard_Complex_Laur_Polys.Term;
        !            22:                p : out Standard_Complex_Polynomials.Poly ) is
        !            23:
        !            24:     min : Standard_Complex_Laur_Polys.Degrees
        !            25:         := Standard_Complex_Laur_Polys.Minimal_Degrees(l);
        !            26:     tt : Standard_Complex_Laur_Polys.Term;
        !            27:
        !            28:   begin
        !            29:     for i in min'range loop
        !            30:       min(i) := -min(i);
        !            31:     end loop;
        !            32:     tt.cf := Create(1.0);
        !            33:     tt.dg := min;
        !            34:     p := Laurent_Polynomial_to_Polynomial(l,tt); t := tt;
        !            35:   end Laurent_Polynomial_to_Polynomial;
        !            36:
        !            37:   function Laurent_Polynomial_to_Polynomial
        !            38:             ( l : Standard_Complex_Laur_Polys.Poly;
        !            39:               t : Standard_Complex_Laur_Polys.Term )
        !            40:             return Standard_Complex_Polynomials.Poly is
        !            41:
        !            42:     res : Standard_Complex_Polynomials.Poly;
        !            43:     use Standard_Complex_Laur_Polys;
        !            44:
        !            45:     procedure Laurent_Term_to_Term ( tt : in Term; cont : out boolean ) is
        !            46:
        !            47:       rt : Standard_Complex_Polynomials.Term;
        !            48:
        !            49:     begin
        !            50:       rt.cf := tt.cf;
        !            51:       rt.dg := new Standard_Natural_Vectors.Vector(tt.dg'range);
        !            52:       for i in tt.dg'range loop
        !            53:         rt.dg(i) := tt.dg(i) + t.dg(i);
        !            54:       end loop;
        !            55:       Standard_Complex_Polynomials.Add(res,rt);
        !            56:       Standard_Complex_Polynomials.Clear(rt);
        !            57:       cont := true;
        !            58:     end Laurent_Term_to_Term;
        !            59:     procedure LP2P is new Visiting_Iterator(Laurent_Term_to_Term);
        !            60:
        !            61:   begin
        !            62:     LP2P(l);
        !            63:     return res;
        !            64:   end Laurent_Polynomial_to_Polynomial;
        !            65:
        !            66:   function Laurent_to_Polynomial_System ( p : Laur_Sys ) return Poly_Sys is
        !            67:
        !            68:     res : Poly_Sys(p'range);
        !            69:
        !            70:   begin
        !            71:     for i in p'range loop
        !            72:       res(i) := Laurent_Polynomial_to_Polynomial(p(i));
        !            73:     end loop;
        !            74:     return res;
        !            75:   end Laurent_to_Polynomial_System;
        !            76:
        !            77: end Standard_Laur_Poly_Convertors;

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