[ADMB Users] f1b2gradlist

Derek Seiple dseiple84 at gmail.com
Thu Apr 21 13:54:26 PDT 2011

Dear Users,

I am a little confused by something. I am hoping someone can help me out.

The f1b2gradlist (used in the laplace approximation calculator) is
declared as a global pointer in d1b2glo.cpp like this:

df1b2_gradlist * f1b2gradlist = NULL;

and than the laplace_approximation_calculator creates an instance with

f1b2gradlist = new df1b2_gradlist(4000000U,200000U,8000000U,400000U,

What is confusing is that f1b2gradlist gets passed as an argument in
several functions including get_second_ders (found in df1b2lap.cpp).

void get_second_ders(int xs,int us,const init_df1b2vector _y,dmatrix& Hess,
 dmatrix& Dux, df1b2_gradlist * f1b2gradlist,function_minimizer * pfmin,
 laplace_approximation_calculator * lpc)

I am confused as to why it gets passed if it is global? Wouldn't it
being global eliminate that need?

I'm looking at this from the angle of parallelization, so knowing when
it gets accessed and what accesses it is important.

Thanks in advance,

More information about the Users mailing list