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;