perldl> $a = sequence(5)
perldl> $b = pdl [1,4,9,16]
perldl> p $c = $a == $b->dummy
[
[0 1 0 0 0]
[0 0 0 0 1]
[0 0 0 0 0]
[0 0 0 0 0]
]
# This matrix's horizontal dim corresponds to $a
# and the vertical to $b.
# In other words, $c->($x,$y) is $a->($x) == $b->($y)
perldl> p which $c
[1 9]
# Confusing results? Think about the matrix above.
# Can you see a pattern?
# I mentioned 'flatten' in an earlier post. That was a clue.
perldl>p $c->flat
[0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0]
# This looks like all the rows of the matrix concatenated.
# And look, the values at 1 and 9 are the only true ones
####
$c_flat_pos = $c_dim_0_pos + $c_dim_1_pos * $sizeof_c_dim_0
####
$c_flat_pos = $index_in_a + ($index_in_b * $sizeof_a)