[BACK]Return to convert_formats.adb CVS log [TXT][DIR] Up to [local] / OpenXM_contrib / PHC / Ada / Main

File: [local] / OpenXM_contrib / PHC / Ada / Main / convert_formats.adb (download)

Revision 1.1.1.1 (vendor branch), Sun Oct 29 17:45:23 2000 UTC (23 years, 6 months ago) by maekawa
Branch: PHC, MAIN
CVS Tags: v2, maekawa-ipv6, RELEASE_1_2_3, RELEASE_1_2_2_KNOPPIX_b, RELEASE_1_2_2_KNOPPIX, RELEASE_1_2_2, RELEASE_1_2_1, HEAD
Changes since 1.1: +0 -0 lines

Import the second public release of PHCpack.

OKed by Jan Verschelde.

with text_io;                            use text_io;
with Communications_with_User;           use Communications_with_User;
with Standard_Complex_Poly_Systems;      use Standard_Complex_Poly_Systems;
with Standard_Complex_Poly_Systems_io;   use Standard_Complex_Poly_Systems_io;
with Tableau_Formats;

procedure convert_formats is

-- DESCRIPTION :
--   This program allows to convert between formats of polynomial systems.
--
-- SYMBOLIC FORMAT :
--
--   2
--    x*y**2 - x**2 + 3;
--    x + 2;
--
-- TABLEAU FORMAT :
--
--   2
--    x y
--   3
--    1 2
--    2 0
--    0 0
--  2 
--    1 0
--    0 0
--    1.0 0.0
--   -1.0 0.0
--    3.0 0.0
--    1.0 0.0
--    2.0 0.0

  procedure Tableau_to_Symbolic ( infile,outfile : in file_type;
                                  flt : in boolean ) is

    lp : Link_to_Poly_Sys;

  begin
    Tableau_Formats.get(infile,flt,lp);
    put(outfile,lp'last,lp.all);
  end Tableau_to_Symbolic;

  procedure Symbolic_to_Tableau ( infile,outfile : in file_type;
                                  flt : in boolean ) is

    lp : Link_to_Poly_Sys;

  begin
    get(infile,lp);
    Tableau_Formats.put(outfile,flt,lp.all);
  end Symbolic_to_Tableau;

  procedure Main is

    infile,outfile : file_type;
    ans : character;
    flt,sym2tab : boolean;
    lp : Link_to_Poly_Sys;

  begin
    new_line;
    put_line("Conversion between symbolic and tableau formats.");
    new_line;
    put_line("Choose one of the following : ");
    put_line("  1. Convert from symbolic to tableau format");
    put_line("  2. Convert from tableau to symbolic format");
    put("Type 1 or 2 to select : "); Ask_Alternative(ans,"12");
    sym2tab := (ans = '1');
    new_line;
    put_line("Reading the name of the input file.");
    Read_Name_and_Open_File(infile);
    new_line;
    put_line("Reading the name of the output file.");
    Read_Name_and_Create_File(outfile);
    new_line;
    put("Are the coefficients real or complex ? (r/c) ");
    Ask_Alternative(ans,"rc");
    flt := (ans = 'r');
    if sym2tab
     then Symbolic_to_Tableau(infile,outfile,flt);
     else Tableau_to_Symbolic(infile,outfile,flt);
    end if;
  end Main;

begin
  Main;
end convert_formats;