Annotation of OpenXM_contrib/PHC/Ada/Schubert/bracket_polynomials_io.adb, Revision 1.1.1.1
1.1 maekawa 1: with integer_io; use integer_io;
2: with Standard_Floating_Numbers; use Standard_Floating_Numbers;
3: with Standard_Floating_Numbers_io; use Standard_Floating_Numbers_io;
4: with Standard_Complex_Numbers; use Standard_Complex_Numbers;
5: with Bracket_Monomials_io; use Bracket_Monomials_io;
6:
7: package body Bracket_Polynomials_io is
8:
9: procedure Write_Number ( file : in file_type; c : in Complex_Number;
10: ic : out integer ) is
11:
12: -- DESCRIPTION :
13: -- Writes the complex coefficient in a concise way.
14:
15: f : double_float;
16: i : integer := 0;
17:
18: begin
19: if IMAG_PART(c) /= 0.0
20: then put(file,"(");
21: put(file,REAL_PART(c)); put(file," + ");
22: put(file,IMAG_PART(c));
23: put(file,")");
24: else f := REAL_PART(c);
25: i := integer(f);
26: if (f - double_float(i)) /= 0.0
27: then put(file,f);
28: else if i > 0
29: then put(file,"+");
30: if i /= 1
31: then put(file,i,1);
32: end if;
33: elsif i = -1
34: then put(file,"-");
35: else put(file,i,1);
36: end if;
37: end if;
38: end if;
39: ic := i;
40: end Write_Number;
41:
42: procedure put ( t : in Bracket_Term ) is
43: begin
44: put(Standard_Output,t);
45: end put;
46:
47: procedure put ( file : in file_type; t : in Bracket_Term ) is
48:
49: ic : integer;
50:
51: begin
52: Write_Number(file,t.coeff,ic);
53: if ic /= 1 and ic /= -1
54: then put(file,"*");
55: end if;
56: put(file,t.monom);
57: end put;
58:
59: procedure put ( p : in Bracket_Polynomial ) is
60: begin
61: put(Standard_Output,p);
62: end put;
63:
64: procedure put ( file : in file_type; p : in Bracket_Polynomial ) is
65:
66: cnt : natural := 0;
67:
68: procedure Write_Term ( t : in Bracket_Term; continue : out boolean ) is
69: begin
70: cnt := cnt + 1;
71: if cnt > 4
72: then cnt := 1;
73: new_line(file);
74: end if;
75: put(file,t);
76: continue := true;
77: end Write_Term;
78:
79: procedure Write_Terms is new Enumerate_Terms(Write_Term);
80:
81: begin
82: Write_Terms(p);
83: put_line(file,";");
84: end put;
85:
86: end Bracket_Polynomials_io;
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>