This is the mail archive of the gsl-discuss@sources.redhat.com mailing list for the GSL project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

design of functions in miltimin


I think that the body of take_step() function in 
multimin/directional_minimize.c :

{
  gsl_vector_set_zero (dx);
  gsl_blas_daxpy (-step * lambda, p, dx);
    
  gsl_vector_memcpy (x1, x);
  gsl_blas_daxpy (1.0, dx, x1);
}

can be replaced by more efficient code:

{
int i;
double dx_temp;
for(i = 0; i < dx->size; i++)
{
  dx_temp = -step * lambda * gsl_vector_get(p, i);
  gsl_vector_set(dx, i, dx_temp);
  gsl_vector_set(x1, i, gsl_vector_get(x, i) + dx_temp);
}
}

There are also similar parts of code inside miltimin routines which may be 
replaced.

-- 
Andrey V. Panov
http://canopus.iacp.dvo.ru/~panov/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]