[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Help-gsl] Test suite?
From: |
Liam Healy |
Subject: |
Re: [Help-gsl] Test suite? |
Date: |
Wed, 17 Sep 2008 19:11:22 -0400 |
On Wed, Sep 17, 2008 at 1:43 PM, Brian Gough <address@hidden> wrote:
> At Mon, 15 Sep 2008 15:44:57 +0200,
> Frank Reininghaus wrote:
[actually Liam wrote this part]
>> > make[2]: Entering directory `/home/liam/mathematics/gsl-1.11/poly'
>> > FAIL: y.real, gsl_complex_poly_complex_eval ({-2.31 + 0.44i, 4.21 -
>> > 3.19i, 0.93 + 1.04i, -0.42 + 0.68i}, 0.49 + 0.95i)
>> > (-1.6845078800000004 observed vs 1.82462012000000007 expected) [9]
>
> Was there any resolution to this problem? I have not seen it on any
> other system.
>
None yet. Frank asked me to continue the discussion on bug-gsl but
when I tried to join the mailling list it said my request was being
held for moderation. So I will answer his questions here.
- Which Linux distribution do you use? Debian lenny (testing)
- Which compiler do you use (probably gcc?) and which version (output of
'gcc --version' if you're on gcc)?
gcc (Debian 4.3.1-9) 4.3.1
- What kind of CPU do you have? Is it running in 32- or 64-bit mode?
Linux thinkpad 2.6.26-1-amd64 #1 SMP Thu Aug 28 11:13:42 UTC 2008
x86_64 GNU/Linux
dual core amd64
- Did you change the optimisation options, or do you use the default?
Default
- If you repeat the test, does it always report the same wrong results
(-1.6845078800000004 observed vs ... and -0.30943988
observed vs ...)?
Same results.
Plus the following:
My first idea would be to replace the code in the loop in
gsl_complex_poly_complex_eval () by 'ans = gsl_complex_add (c[i-1],
gsl_complex_mul (x, ans))' and see if the problem persists (although I still
think that the separate calculation of real and imaginary part which I found
to be faster is equivalent).
I modified the function in poly/eval.c almost like this, but using z
instead of x as that looks more correct and it is what is in the
commented-out portion
gsl_complex
gsl_complex_poly_complex_eval(const gsl_complex c[], const int len,
const gsl_complex z)
{
int i;
gsl_complex ans = c[len-1];
for(i=len-1; i>0; i--) {
/* The following three lines are equivalent to
ans = gsl_complex_add (c[i-1], gsl_complex_mul (z, ans));
but faster */
ans = gsl_complex_add (c[i-1], gsl_complex_mul (z, ans));
/*
double tmp = GSL_REAL (c[i-1]) + GSL_REAL (z) * GSL_REAL (ans) -
GSL_IMAG (z) * GSL_IMAG (ans);
GSL_SET_IMAG (&ans, GSL_IMAG (c[i-1]) + GSL_IMAG (z) * GSL_REAL
(ans) + GSL_REAL (z) * GSL_IMAG (ans));
GSL_SET_REAL (&ans, tmp);
*/
}
return ans;
}
However, when I make, it ends with
make[2]: Entering directory `/home/liam/mathematics/gsl-1.11/poly'
/bin/sh ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I.
-I.. -I.. -g -O2 -c -o eval.lo eval.c
libtool: compile: gcc -DHAVE_CONFIG_H -I. -I.. -I.. -g -O2 -c eval.c
-fPIC -DPIC -o .libs/eval.o
eval.c: In function 'gsl_complex_poly_complex_eval':
eval.c:65: error: incompatible types in assignment
make[2]: *** [eval.lo] Error 1
make[2]: Leaving directory `/home/liam/mathematics/gsl-1.11/poly'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/liam/mathematics/gsl-1.11'
make: *** [all] Error 2
Liam
- [Help-gsl] Test suite?, Liam Healy, 2008/09/14
- Re: [Help-gsl] Test suite?, Frank Reininghaus, 2008/09/14
- Re: [Help-gsl] Test suite?, Liam Healy, 2008/09/14
- Re: [Help-gsl] Test suite?, Frank Reininghaus, 2008/09/15
- Re: [Help-gsl] Test suite?, Brian Gough, 2008/09/17
- Re: [Help-gsl] Test suite?,
Liam Healy <=
- Re: [Help-gsl] Test suite?, Steven Vancoillie, 2008/09/18
- Re: [Help-gsl] Test suite?, Frank Reininghaus, 2008/09/18
- Re: [Help-gsl] Test suite?, Liam Healy, 2008/09/18
- Re: [Help-gsl] Test suite?, Brian Gough, 2008/09/18
- Re: [Help-gsl] Test suite?, Brian Gough, 2008/09/18