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
)