Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine
 
PerlMonks  

Re: 47. Construct the Cauchy matrix

by Ea (Chaplain)
on Feb 20, 2020 at 18:03 UTC ( [id://11113269]=note: print w/replies, xml ) Need Help??


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 (Deacon) 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.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://11113269]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others goofing around in the Monastery: (5)
As of 2024-03-28 13:10 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found