[Developers] phase
dave fournier
otter at otter-rsch.com
Mon Aug 9 02:48:52 PDT 2010
John Sibert wrote:
But that is just the same difficulty in a different form.
the right way I think is to put a global pointer in
newfmin.cpp
int * pointer_to_phase=0;
and then in the initial_params startup assign
pointer_to_phase=&initial_params::current_phase;
and then
if (ad_printf && pointer_to_phase) (*ad_printf)("Current Phase %d ",
*pointer_to_phase );
> Or you could add an additional argument to fmmdisp(...), eg,
>
> void fmmdisp(_CONST dvector& x,_CONST dvector& g,
> const int& nvar, int scroll_flag,int noprintx, const int
> phase=-1)
>
> Giving phase a default value would not break calls to fmmdisp in other
> context, The problem would be that the code which calls fmmdisp would
> need to have access to the initial_params structure or the
> get_current_phase() function.
>
>
> On 08/08/2010 08:37 PM, dave fournier wrote:
>> There are a few issues involved here.
>>
>> First here is how it migbht be done. the current phase is contained
>> as a static member of the class initial_params. Lets say we are working
>> with the quasi newton function minimizer in the file newfmin.cpp.
>>
>> first we need to add
>>
>> #include <admodel.h>
>>
>> near the top of the file.
>>
>> then at the right place(s) add something like
>>
>> if (ad_printf) (*ad_printf)("Current Phase %d ",
>> initial_params::current_phase );
>>
>> However this will break all code that just uses the autodif stuff
>> I think as the symbol initial_params::current_phase will be undefined.
>> Maybe someone has a better idea.
>>
>>
>>
>>
>>
>>
>> _______________________________________________
>> Developers mailing list
>> Developers at admb-project.org
>> http://lists.admb-project.org/mailman/listinfo/developers
>>
>
More information about the Developers
mailing list