I wrote a bit of code to understand the QR decomposition better and I have some questions. My program first generates some fake data, then I recover the parameters without the QR decomposition, with the QR decomposition, and with the QR decomposition using the horseshoe prior. As expected, the QR decomposition speeds things up a lot. What I don’t understand is why things slow down so much if I use horseshoe priors. These are the times:
 Without the QR decomposition: 184 seconds
 With the QR decomposition: 77 seconds
 With the QR decomposition and horseshoe priors: 224 seconds
These are the questions that I have:

Am I doing something wrong or is this slowdown expected? If the slowdown is expected, could you point me to an explanation?

What is the advantage of using the horseshoe prior over just using N(0,1)?
In case it is helpful, I saved a markdown with my code here
Thanks a lot!