in reply to Sloooooow algo in Perl

I'll second what everyone else has said (in particular sprinkling "my" generously would be good) but on a more practical note would suggest factoring common operations out of loops. The Pascal compiler will do that for Pascal, but Perl's does not. It adds up.

For instance in the first set of loops rather than looking up $a[$v][$w] repeatedly, store $a[$v] into $a_v and then lookup $a_v->[$w]. Removing the repeated lookup will eliminate half the work of that tight inner loop on the elements that require no further calculation. And on the second set of loops once you know $w you can calculate (1 + $delta[$w])/$sigma[$w] once and avoid all of those lookups and that math in the tight loop.

Doing that should give a considerable speedup. But this kind of stack manipulation is always going to be slower in Perl than Pascal. Where Perl does well is when its complex built-in operations (eg regular expressions, hash lookups) avoid a lot of explicit low-level code. That is obviously not the case here.