[BACK]Return to drivers_for_orbits_of_solutions.adb CVS log [TXT][DIR] Up to [local] / OpenXM_contrib / PHC / Ada / Root_Counts / Symmetry

File: [local] / OpenXM_contrib / PHC / Ada / Root_Counts / Symmetry / drivers_for_orbits_of_solutions.adb (download)

Revision 1.1.1.1 (vendor branch), Sun Oct 29 17:45:31 2000 UTC (23 years, 7 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 integer_io;                         use integer_io;
with Standard_Complex_Solutions_io;      use Standard_Complex_Solutions_io;
with Symmetry_Group_io;
with Orbits_of_Solutions;                use Orbits_of_Solutions;

package body Drivers_for_Orbits_of_Solutions is

  procedure Driver_for_Orbits_of_Solutions
                  ( file : in file_type; sols : in out Solution_List;
                    v : in List_of_Permutations; allperms,signsym : in boolean;
                    tol : in double_float ) is

  begin
    if not Is_Null(sols)
     then
       declare
         n : constant natural := Head_Of(sols).n;
         orb : Permutation(1..n);
       begin
         Driver_for_Orbits_of_Solutions(file,sols,v,allperms,signsym,tol,orb);
       end;
    end if;
  end Driver_for_Orbits_of_Solutions;

  procedure Driver_for_Orbits_of_Solutions
                  ( file : in file_type; sols : in out Solution_List;
                    v : in List_of_Permutations; allperms,signsym : in boolean;
                    tol : in double_float; orbi : out Permutation ) is

  begin
    if not Is_Null(sols)
     then declare
            n : constant natural := Head_Of(sols).n;
            orb : Permutation(1..n);
            len : natural;
          begin
            if allperms
             then sols := Generating(sols,signsym,tol);
             else Analyze(v,signsym,tol,sols);
            end if;
            len := Length_Of(sols);
            new_line(file);
            put(file,"The number of generating solutions : ");
            put(file,len,1); new_line(file);
            orb := Orbits(sols,tol);
            put(file,"The orbits : "); Symmetry_Group_io.put(file,orb);
            new_line(file);
            new_line(file);
            put_line(file,"THE GENERATING SOLUTIONS : ");
            put(file,len,Head_Of(sols).n,sols); new_line(file);
            orbi := orb;
          end;
    end if;
  end Driver_for_Orbits_of_Solutions;

end Drivers_for_Orbits_of_Solutions;