11 my ($dist) = /^(.+):\s*$/ or die;
15 %values = ('P' => [.01, .1, .2, .3, .4, .5, .6, .7, .8, .9, .99]);
19 my ($key, $value) = /^\s*(\w+)\s*=\s*(.*)$/;
21 foreach my $s (split (/\s+/, $value)) {
22 if (my ($from, $to, $by) = $s =~ /^(.*):(.*):(.*)$/) {
23 for (my ($x) = $from; $x <= $to; $x += $by) {
24 push (@values, sprintf ("%.2f", $x) + 0);
31 if ($key eq 'funcs') {
35 $values{$key} = \@values;
39 print "DATA LIST LIST/", join (' ', 'P', @vars), ".\n";
40 print "COMPUTE x = IDF.$dist (", join (', ', 'P', @vars), ").\n";
41 foreach my $func (@funcs) {
42 print "COMPUTE $func = $func.$dist (",
43 join (', ', 'x', @vars), ").\n";
45 print "PRINT OUTFILE='$dist.out'/",
46 join (' ', 'P', @vars, 'x', @funcs), ".\n";
47 print "BEGIN DATA.\n";
48 print_all_values (['P', @vars], []);
52 sub print_all_values {
53 my (@vars) = @{$_[0]};
54 my (@assign) = @{$_[1]};
55 if (@vars == @assign) {
56 print join (' ', @assign), "\n";
59 my ($var) = $vars[$#assign];
60 foreach my $value (@{$values{$var}}) {
61 $assign[$#assign] = $value;
62 print_all_values (\@vars, \@assign);