James Bergstra wrote:
>>            I want to use gsl to do power of a vector (eg vectorA^0.8) and
>>also exponent of a vector (eg. exp(vectorA)). How can I do this without
>>using loops?
> 
> I've written an extension that has exp, and other math.h-ish functions for 
> vectors and
> matrices.
> 
> http://www-etud.iro.umontreal.ca/~bergstrj/msl/html/index.html

That would explain your interest in streaming SIMD extensions. :-)

It's diffilcult to avoid loops altogether, but you could hide them in a
generic funtion like:

int map( double (*function)( double ), gsl_vector* a, const gsl_vector* b ){
  int i;
  for( i = 0; i < b->size; ++i )
    gsl_vector_set( a, i, function( gsl_vector_get( b, i ) ) );
  return 0;
}

I haven't added the usual checks that a and b are nonzero and have the
same size.

Then use (for example) map( exp, a, b ) to do the work.

If you really want to avoid loops you could rewrite this as a recursive
function - in this case it won't look good.

-- 
JDL


_______________________________________________
Help-gsl mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/help-gsl

Reply via email to