[Ipopt] improving IPOPT speed with Algorithmic Differentiation Theory

Andrey Romanenko andrey at ciengis.com
Thu Sep 18 08:25:41 EDT 2008


Hi!

On Thursday 18 September 2008 11:50:15 Sebastian Walter wrote:
> This is exactly what I thought, too.
> But unfortunately this doesn't help, or maybe I'm missing something?
>
> My implementation looked like this:
>
> /----------------------------------------------/
>
> x_count = 0;
> last_eval = 999999;
>

I would do something like this: 

> bool eval_grad_f(..., bool new_x){
      if(new_x == true) {
          calculate();
          cache();
      } else {
           get_from_cache();
      }
}

You do not need to tie the logic to the evaluation counter.

I suspect there is no point to introduce this check in eval_f (although the 
new_x is in the argument list) because IPOPT should not need to call eval_f() 
with new_x == false. Andreas, could you please confirm?

[...]

Regards,
Andrey Romanenko




More information about the Ipopt mailing list