1#!/usr/bin/perl
2
3$nelt = int($ARGV[0]);
4$leng = int($ARGV[1]);
5
6print "/* This file auto-generated with ./vperm.pl $nelt $leng.  */\n\n";
7
8for ($i = 0; $i < $nelt; ++$i) { $perm[$i] = 0; }
9$ncheck = 0;
10
11for ($i = 0; $i < ($leng * $nelt) ** $nelt; ++$i)
12{
13  if ($i % 128 == 0)
14  {
15    print "}\n\n" if $ncheck > 0;
16    print "void check$ncheck(void)\n{\n";
17    ++$ncheck;
18  }
19
20  print "  TEST (";
21  for ($j = 0; $j < $nelt; ++$j)
22  {
23    print $perm[$j];
24    print ", " if $j < $nelt - 1;
25  }
26  print ")\n";
27
28  INCR: for ($j = 0; $j < $nelt; ++$j)
29  {
30    last INCR if ++$perm[$j] < $leng * $nelt;
31    $perm[$j] = 0;
32  }
33}
34print "}\n\n";
35
36print "void check(void)\n{\n";
37for ($i = 0; $i < $ncheck; ++$i)
38{
39  print "  check$i ();\n";
40}
41print "}\n\n";
42