in reply to 47. Construct the Cauchy matrix
in thread RFC: 100 PDL Exercises (ported from numpy)

This is Much Better

When I was young, I coded in for loops, but when I read the documentation, I put away these childish things and learned to Thread Broadcast
$x = sequence(8); $y = sequence(7) + 0.5; $c = 1/($x->dummy(0,$y->nelem)->transpose - $y->dummy(0,$x->nelem));
TaDAAA!!

You create 2 vectors (of different sizes), inflate it along the other dimension using dummy to fit the other vector's size (using nelem), flip one of them using transpose and do the calculation in one line. PDL takes care of the loops and does it faster than you can in Perl.

I had to transpose $x to get the same result as the for loops above, in order to prove they are the same by pdl> p $C - $c

Ea

Sometimes I can think of 6 impossible LDAP attributes before breakfast.

Mojoconf was great!

Replies are listed 'Best First'.
Re^2: 47. Construct the Cauchy matrix
by etj (Priest) on Mar 16, 2022 at 21:05 UTC
    Excellent use of broadcasting (the feature formerly and confusingly known as "threading")! To make that broadcast even better, you'd dummy not by the nelem, but explicitly with dim(1) (or 0) as someone else on here did.