Annotation of OpenXM_contrib/PHC/Ada/Math_Lib/Polynomials/standard_poly_laur_convertors.adb, Revision 1.1.1.1
1.1 maekawa 1: with Standard_Complex_Numbers; use Standard_Complex_Numbers;
2: with Standard_Integer_Vectors;
3:
4: package body Standard_Poly_Laur_Convertors is
5:
6: function Polynomial_to_Laurent_Polynomial
7: ( p : Standard_Complex_Polynomials.Poly )
8: return Standard_Complex_Laur_Polys.Poly is
9:
10: res : Standard_Complex_Laur_Polys.Poly
11: := Standard_Complex_Laur_Polys.Null_Poly;
12:
13: use Standard_Complex_Polynomials;
14:
15: procedure Term_to_Laurent_Term ( t : in Term; cont : out boolean ) is
16:
17: rt : Standard_Complex_Laur_Polys.Term;
18:
19: begin
20: rt.cf := t.cf;
21: rt.dg := new Standard_Integer_Vectors.Vector(t.dg'range);
22: for i in t.dg'range loop
23: rt.dg(i) := t.dg(i);
24: end loop;
25: Standard_Complex_Laur_Polys.Add(res,rt);
26: Standard_Complex_Laur_Polys.Clear(rt);
27: cont := true;
28: end Term_to_Laurent_Term;
29: procedure P2LP is new Visiting_Iterator(Term_to_Laurent_Term);
30:
31: begin
32: P2LP(p);
33: return res;
34: end Polynomial_to_Laurent_Polynomial;
35:
36: function Polynomial_to_Laurent_System ( p : Poly_Sys ) return Laur_Sys is
37:
38: res : Laur_Sys(p'range);
39:
40: begin
41: for i in p'range loop
42: res(i) := Polynomial_to_Laurent_Polynomial(p(i));
43: end loop;
44: return res;
45: end Polynomial_to_Laurent_System;
46:
47: end Standard_Poly_Laur_Convertors;
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>