Annotation of OpenXM_contrib/PHC/Ada/Root_Counts/Symmetry/drivers_for_orbits_of_solutions.adb, Revision 1.1.1.1
1.1 maekawa 1: with integer_io; use integer_io;
2: with Standard_Complex_Solutions_io; use Standard_Complex_Solutions_io;
3: with Symmetry_Group_io;
4: with Orbits_of_Solutions; use Orbits_of_Solutions;
5:
6: package body Drivers_for_Orbits_of_Solutions is
7:
8: procedure Driver_for_Orbits_of_Solutions
9: ( file : in file_type; sols : in out Solution_List;
10: v : in List_of_Permutations; allperms,signsym : in boolean;
11: tol : in double_float ) is
12:
13: begin
14: if not Is_Null(sols)
15: then
16: declare
17: n : constant natural := Head_Of(sols).n;
18: orb : Permutation(1..n);
19: begin
20: Driver_for_Orbits_of_Solutions(file,sols,v,allperms,signsym,tol,orb);
21: end;
22: end if;
23: end Driver_for_Orbits_of_Solutions;
24:
25: procedure Driver_for_Orbits_of_Solutions
26: ( file : in file_type; sols : in out Solution_List;
27: v : in List_of_Permutations; allperms,signsym : in boolean;
28: tol : in double_float; orbi : out Permutation ) is
29:
30: begin
31: if not Is_Null(sols)
32: then declare
33: n : constant natural := Head_Of(sols).n;
34: orb : Permutation(1..n);
35: len : natural;
36: begin
37: if allperms
38: then sols := Generating(sols,signsym,tol);
39: else Analyze(v,signsym,tol,sols);
40: end if;
41: len := Length_Of(sols);
42: new_line(file);
43: put(file,"The number of generating solutions : ");
44: put(file,len,1); new_line(file);
45: orb := Orbits(sols,tol);
46: put(file,"The orbits : "); Symmetry_Group_io.put(file,orb);
47: new_line(file);
48: new_line(file);
49: put_line(file,"THE GENERATING SOLUTIONS : ");
50: put(file,len,Head_Of(sols).n,sols); new_line(file);
51: orbi := orb;
52: end;
53: end if;
54: end Driver_for_Orbits_of_Solutions;
55:
56: end Drivers_for_Orbits_of_Solutions;
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>