design of functions in miltimin

Fabrice Rossi rossi@ufrmd.dauphine.fr
Tue Jul 1 06:47:00 GMT 2003


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.
>




More information about the Gsl-discuss mailing list