our $N = 6; #### our $C; for my $k (0 .. $N - 1) { for my $l (0 .. $N - 1) { my $e; if (0 == $k) { if (0 == $l) { $e = 1; } else { $e = 0; } } else { $e = 0; if (0 < $l) { $e += $$C[$k-1][$l-1]; } if ($l < $N - 1) { $e += $$C[$k-1][$l+1]; } } $$C[$k][$l] = $e; } } our $U; for my $k (0 .. $N - 1) { for my $l (0 .. $N - 1) { my $e; if (0 == $k) { if (0 == $l) { $e = 1; } else { $e = 0; } } elsif (1 == $k) { if (1 == $l) { $e = 2; } else { $e = 0; } } else { $e = -$$U[$k-2][$l]; if (0 < $l) { $e += 2 * $$U[$k-1][$l-1]; } } $$U[$k][$l] = $e; } } #### =begin output C = ( 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 2 0 1 0 0 2 0 3 0 1 0 0 5 0 4 0 1 ) U = ( 1 0 0 0 0 0 0 2 0 0 0 0 -1 0 4 0 0 0 0 -4 0 8 0 0 1 0 -12 0 16 0 0 6 0 -32 0 32 ) =end output #### C*C^T = ( 1 0 1 0 2 0 0 1 0 2 0 5 1 0 2 0 5 0 0 2 0 5 0 14 2 0 5 0 14 0 0 5 0 14 0 42 )