Annotation of OpenXM_contrib/PHC/Ada/Root_Counts/Product/generate_unions.adb, Revision 1.1.1.1
1.1 maekawa 1: procedure Generate_Unions ( k,first,last : in integer ) is
2:
3: acc : boolean_array(first..last) := (first..last => false);
4: cont : boolean := true;
5:
6: procedure Generate ( k,start,last : in integer;
7: acc : in out boolean_array ) is
8: begin
9: if k = 0
10: then process(acc,cont);
11: elsif k > last - start + 1
12: then return;
13: else for i in start..last loop
14: acc(i) := true;
15: generate(k-1,i+1,last,acc);
16: exit when not cont;
17: acc(i) := false;
18: end loop;
19: end if;
20: end Generate;
21:
22: begin
23: Generate(k,first,last,acc);
24: end Generate_Unions;
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>