sub tension { my ($hi, $lo) = @_; $lo or return 0; $lo/log($hi + 1); } my @samples = (1, 3, 8, 20, 50, 90); for (map {my $x=$_; map [$x, $_], grep $_ <= $x, @samples} @samples) { printf "%2d-%2d: %3.4f\n", @$_, tension(@$_); } __END__ 1- 1: 1.4427 3- 1: 0.7213 3- 3: 2.1640 8- 1: 0.4551 8- 3: 1.3654 8- 8: 3.6410 20- 1: 0.3285 20- 3: 0.9854 20- 8: 2.6277 20-20: 6.5692 50- 1: 0.2543 50- 3: 0.7630 50- 8: 2.0347 50-20: 5.0867 50-50: 12.7167 90- 1: 0.2217 90- 3: 0.6651 90- 8: 1.7735 90-20: 4.4337 90-50: 11.0844 90-90: 19.9519