Blitz logo

Blitz Support :

From: Patrik Jonsson (patrik_at_[hidden])
Date: 2004-12-18 00:40:50


Hi for the third time,
As part of this whole deal, I've also discovered something that looks like
an evaluation bug unless I'm missing something stupid. In the following
code, T_indep_vector means Array<TinyVector<double,4>,1> and vector means
Array<double,1>.

   vector operator()(const T_indep_vector& x, const vector& par) {
     T_indep_vector xx(static_cast<T_indep_vector>(x));
     const vector vv(par(0)*pow(xx[0]/1e11,par(1))*
                     pow(xx[1]/0.02,par(2))*pow(xx[2]/1e11,par(3))*
                     *pow(xx[3]/1,par(4)));
     const vector v1(pow(xx[0]/1e11,par(1)));
     const vector v2(pow(xx[1]/0.02,par(2)));
     const vector v3(pow(xx[2]/1e11,par(3)));
     const vector v4(pow(xx[3]/1,par(4)));
     const vector crap(par(0)*v1*v2*v3*v4);

I hope that I haven't screwed up and that in this example, vv and crap
should contain identical numbers at the end. They don't. crap is right, but
vv is incorrectly calculated (by a small amount, very deceptive...) Looks
pretty serious if it's indeed true and I haven't screwed up.

That's the last bug for now. Promise. :-)

cheers,

/Patrik

============================================================
Patrik Jonsson (831) 459-3828
Department of Astronomy & Astrophysics
University of California, Santa Cruz, CA 95064

This message has been written using a voice recognition system.
Words that don't make sense or not the fault of the author...