#!/usr/bin/perl $nelt = int($ARGV[0]); $leng = int($ARGV[1]); print "/* This file auto-generated with ./vperm.pl $nelt $leng. */\n\n"; for ($i = 0; $i < $nelt; ++$i) { $perm[$i] = 0; } $ncheck = 0; for ($i = 0; $i < ($leng * $nelt) ** $nelt; ++$i) { if ($i % 128 == 0) { print "}\n\n" if $ncheck > 0; print "void check$ncheck(void)\n{\n"; ++$ncheck; } print " TEST ("; for ($j = 0; $j < $nelt; ++$j) { print $perm[$j]; print ", " if $j < $nelt - 1; } print ")\n"; INCR: for ($j = 0; $j < $nelt; ++$j) { last INCR if ++$perm[$j] < $leng * $nelt; $perm[$j] = 0; } } print "}\n\n"; print "void check(void)\n{\n"; for ($i = 0; $i < $ncheck; ++$i) { print " check$i ();\n"; } print "}\n\n";