Annotation of OpenXM_contrib/PHC/Ada/Root_Counts/Product/random_product_system_io.adb, Revision 1.1
1.1 ! maekawa 1: with 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 Standard_Complex_Vectors; use Standard_Complex_Vectors;
! 6: with Standard_Natural_Vectors;
! 7: with Symbol_Table,Symbol_Table_io;
! 8: with Standard_Complex_Polynomials; use Standard_Complex_Polynomials;
! 9: with Standard_Complex_Polynomials_io; use Standard_Complex_Polynomials_io;
! 10: with Standard_Complex_Poly_Systems; use Standard_Complex_Poly_Systems;
! 11: with Standard_Complex_Poly_Systems_io; use Standard_Complex_Poly_Systems_io;
! 12: with Random_Product_System;
! 13:
! 14: package body Random_Product_System_io is
! 15:
! 16: procedure get ( n : out natural ) is
! 17: begin
! 18: Random_Product_System_io.get(Standard_Input,n);
! 19: end get;
! 20:
! 21: procedure get ( file : in file_type; n : out natural ) is
! 22:
! 23: nn : natural;
! 24:
! 25: begin
! 26: integer_io.get(file,nn); n := nn;
! 27: Random_Product_System.Init(nn);
! 28: declare
! 29: h : Vector(0..nn);
! 30: pp : Poly;
! 31: d : degrees := new Standard_Natural_Vectors.Vector'(1..nn => 0);
! 32: stop : boolean;
! 33: begin
! 34: get(file,nn,pp); Clear(pp);
! 35: for i in 1..nn loop
! 36: stop := false;
! 37: while not stop loop
! 38: get(file,nn,pp);
! 39: stop := (pp = Null_Poly);
! 40: exit when stop;
! 41: h(0) := Coeff(pp,d);
! 42: for j in 1..nn loop
! 43: d(j) := 1;
! 44: h(j) := Coeff(pp,d);
! 45: d(j) := 0;
! 46: end loop;
! 47: Random_Product_System.Add_Hyperplane(i,h);
! 48: end loop;
! 49: end loop;
! 50: end;
! 51: end get;
! 52:
! 53: procedure put ( n,fore,after,exp : in natural ) is
! 54: begin
! 55: Random_Product_System_io.put(Standard_Output,n,fore,after,exp);
! 56: end put;
! 57:
! 58: procedure put ( file : in file_type; n,fore,after,exp : in natural ) is
! 59:
! 60: h : Vector(0..n);
! 61:
! 62: procedure Write_Number ( file : in file_type; x : in Complex_Number ) is
! 63: begin
! 64: if IMAG_PART(x) + 1.0 = 1.0
! 65: then put(file,REAL_PART(x),fore,after,exp);
! 66: else put(file,'(');
! 67: put(file,REAL_PART(x),fore,after,exp);
! 68: put(file,'+');
! 69: put(file,IMAG_PART(x),fore,after,exp);
! 70: put(file,')');
! 71: end if;
! 72: end Write_Number;
! 73:
! 74: begin
! 75: for i in 1..n loop
! 76: put(file,"The hyperplanes for the "); integer_io.put(file,i,1);
! 77: put_line(file,"th equation :");
! 78: for j in 1..Random_Product_System.Number_Of_Hyperplanes(i) loop
! 79: h := Random_Product_System.Get_Hyperplane(i,j);
! 80: put(file,' ');
! 81: for k in 1..n loop
! 82: Write_Number(file,h(k));
! 83: put(file,'*');
! 84: Symbol_Table_io.put(file,Symbol_Table.Get(k));
! 85: put(file," + ");
! 86: end loop;
! 87: Write_Number(file,h(0));
! 88: new_line(file);
! 89: end loop;
! 90: end loop;
! 91: end put;
! 92:
! 93: end Random_Product_System_io;
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>