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]

Re: design of functions in miltimin


Hi.

My understanding of vector calculation optimization is that one should rely on BLAS as much as possible. I'm not sure that your code is really more efficient than the BLAS code if you use an optimized implementation of BLAS such as ATLAS, but of course, I might be wrong. Did you make some timing with GSL+ATLAS to compare both solutions?

Fabrice

Andrey V. Panov wrote:

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.





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