Article: Interfacing D with C and Fortran

data pulverizer via Digitalmars-d-announce digitalmars-d-announce at puremagic.com
Mon Apr 17 02:32:37 PDT 2017


On Friday, 14 April 2017 at 17:55:54 UTC, jmh530 wrote:
> On Thursday, 13 April 2017 at 11:23:32 UTC, jmh530 wrote:
>
> Just an FYI, I was looking at another post
>
> http://www.active-analytics.com/blog/fitting-glm-with-large-datasets/
>
> and the top part is a little confusing because the code below 
> switches it up to do CC=BB*AA instead of CC=AA*BB.
>
> If I'm understanding it correctly, you originally have an mXn 
> matrix times an nXp matrix, then you partition the left hand 
> side to be mXk and the right hand to kXp and loop through and 
> add them up. However, at the top you say that A (which at the 
> top is the left hand variable) is split up by rows. However, 
> the code clearly splits the left hand side (B here) by columns 
> (BB is 5X100 and B is a 10-dimensional list of 5X10 matrices).

Sorry, I didn't see your question until now. That article was 
something I worked on years earlier. The main principle is that 
you split and aggregate over repeated indices. The code is 
intended to be illustrative of the principle. Don't get too hung 
up with equating the the code symbols with equation - the 
principle is the main thing. I wrote an R package where the 
important bits is written in C++: 
https://cran.r-project.org/web/packages/bigReg/index.html using 
the principle in GLM

MORE IMPORTANTLY, however is that that algorithm is not 
efficient! At least not as efficient as gradient descent or even 
better stochastic gradient descent or their respective 
modifications.




More information about the Digitalmars-d-announce mailing list