help-gsl
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Help-gsl] How to do power and exponent of a vector?


From: John D Lamb
Subject: Re: [Help-gsl] How to do power and exponent of a vector?
Date: Sat, 08 Apr 2006 07:57:10 +0100
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.12) Gecko/20050921

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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]