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>