octave-maintainers
[Top][All Lists]
Advanced

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

Re: R: Octave 3.1.55 available for ftp


From: Jaroslav Hajek
Subject: Re: R: Octave 3.1.55 available for ftp
Date: Fri, 27 Mar 2009 20:51:45 +0100

On Fri, Mar 27, 2009 at 4:43 PM, Marco Atzeri <address@hidden> wrote:
>
> --- Gio 26/3/09, John W. Eaton  ha scritto:
>
>> Da: John W. Eaton
>> Oggetto: Octave 3.1.55 available for ftp
>> A: "octave maintainers mailing list" <address@hidden>
>> Data: Giovedì 26 marzo 2009, 05:04
>> A new snapshot of Octave is now
>> available from ftp.octave.org in the
>> directory /pub/octave/bleeding-edge:
>
>>
>> This snapshot includes the new experimental OpenGL-based
>> graphics
>> code, but the gnuplot backend is used by default.
>> Assuming you have
>> all the required libraries and have built the OpenGL bits
>> properly,
>> you should be able to switch to the new backend with the
>> command
>>
>>   backend ("fltk");
>>
>
>>
>> jwe
>>
>
> Hi John,
> I made the test on HG snapshot one day before 3.1.55,
> so I assume it is almost the same:
>
> Built on Cygwin-1.7.0-44 latest (development) snapshot
>
> The fltk backend is built but the plot page
> is full of garbage. I will investigate.
>
> For the rest:
>
> src/data.cc ............. PASS  502/509  FAIL 7
> scripts/help/doc.m ...... PASS    0/1    FAIL 1
>      (this fault is due to Cygwin and should be solved in next
>       development snapshot)
>
>
> Summary:
>
>  PASS   5683
>  FAIL      8
>
> the data fails are related to Inf position in a sort
>
>
> **********************************************************
>>>>>> processing /pub/hg/octave_local/src/data.cc
>  ***** assert(log2(complex(0,Inf)), Inf + log2(i));
> !!!!! test failed
> assert (log2 (complex (0, Inf)),Inf + log2 (i)) expected
> Inf + 2.266i
> but got
> NaN + 2.266i
> NaNs don't match  ***** assert (sort ([NaN, 1i, -1, 2, Inf], "descend"), 
> [NaN, Inf, 2, -1, 1i])
> !!!!! test failed
> assert (sort ([NaN, 1i, -1, 2, Inf], "descend"),[NaN, Inf, 2, -1, 1i]) 
> expected
>   NaN +   0i   Inf +   0i     2 +   0i    -1 +   0i     0 +   1i
> but got
>   NaN +   0i     2 +   0i    -1 +   0i     0 +   1i   Inf +   0i
> Infs don't matchshared variables {
>  m2 =
>
>     1   2
>     3   4
>
>  flo = 0
>  fhi = Inf
> }
>  ***** assert (sort ([NaN, 1i, -1, 2, Inf], 2, "descend"), [NaN, Inf, 2, -1, 
> 1i])
> !!!!! test failed
> assert (sort ([NaN, 1i, -1, 2, Inf], 2, "descend"),[NaN, Inf, 2, -1, 1i]) 
> expected
>   NaN +   0i   Inf +   0i     2 +   0i    -1 +   0i     0 +   1i
> but got
>   NaN +   0i     2 +   0i    -1 +   0i     0 +   1i   Inf +   0i
> Infs don't matchshared variables {
>  m2 =
>
>     1   2
>     3   4
>
>  flo = 0
>  fhi = Inf
> }
>  ***** test
>  [v, i] = sort ([NaN, 1i, -1, Inf, 1, 1i]);
>  assert (v, [1, 1i, 1i, -1, Inf, NaN])
>  assert (i, [5, 2, 6, 3, 4, 1])
> !!!!! test failed
> assert (v,[1, 1i, 1i, -1, Inf, NaN]) expected
>     1 +   0i     0 +   1i     0 +   1i    -1 +   0i   Inf +   0i   NaN +   0i
> but got
>     0 +   1i    -1 +   0i   Inf +   0i     1 +   0i     0 +   1i   NaN +   0i
> Infs don't matchshared variables {
>  m2 =
>
>     1   2
>     3   4
>
>  flo = 0
>  fhi = Inf
> }
>  ***** assert (sort (single([NaN, 1i, -1, 2, Inf]), "descend"), single([NaN, 
> Inf, 2, -1, 1i]))
> !!!!! test failed
> assert (sort (single ([NaN, 1i, -1, 2, Inf]), "descend"),single ([NaN, Inf, 
> 2, -1, 1i])) expected
>   NaN +   0i   Inf +   0i     2 +   0i    -1 +   0i     0 +   1i
> but got
>   NaN +   0i     2 +   0i    -1 +   0i     0 +   1i   Inf +   0i
> Infs don't matchshared variables {
>  m2 =
>
>     1   2
>     3   4
>
>  flo = 0
>  fhi = Inf
> }
>  ***** assert (sort (single([NaN, 1i, -1, 2, Inf]), 2, "descend"), 
> single([NaN, Inf, 2, -1, 1i]))
> !!!!! test failed
> assert (sort (single ([NaN, 1i, -1, 2, Inf]), 2, "descend"),single ([NaN, 
> Inf, 2, -1, 1i])) expected
>   NaN +   0i   Inf +   0i     2 +   0i    -1 +   0i     0 +   1i
> but got
>   NaN +   0i     2 +   0i    -1 +   0i     0 +   1i   Inf +   0i
> Infs don't matchshared variables {
>  m2 =
>
>     1   2
>     3   4
>
>  flo = 0
>  fhi = Inf
> }
>  ***** test
>  [v, i] = sort (single([NaN, 1i, -1, Inf, 1, 1i]));
>  assert (v, single([1, 1i, 1i, -1, Inf, NaN]))
>  assert (i, [5, 2, 6, 3, 4, 1])
> !!!!! test failed
> assert (v,single ([1, 1i, 1i, -1, Inf, NaN])) expected
>     1 +   0i     0 +   1i     0 +   1i    -1 +   0i   Inf +   0i   NaN +   0i
> but got
>     0 +   1i    -1 +   0i   Inf +   0i     1 +   0i     0 +   1i   NaN +   0i
> Infs don't matchshared variables {
>  m2 =
>
>     1   2
>     3   4
>
>  flo = 0
>  fhi = Inf
> }
>
> **********************************************************
>
> Regards
> Marco
>

Since I don't see those problems (and neither probably do most
others), I can only make wild guesses that this may be a Cygwin gcc
problem, especially if you compiled with gcc 3.

I assume isnan works correctly when applied to the arrays used in the
test? In that case, my wild guess is that gcc 3 is not correctly
recognizing the sort_isnan specializations in Array-C.cc and
Array-fC.cc.

Does maybe the attached workaround fix the issue?

cheers

-- 
RNDr. Jaroslav Hajek
computing expert & GNU Octave developer
Aeronautical Research and Test Institute (VZLU)
Prague, Czech Republic
url: www.highegg.matfyz.cz

diff --git a/liboctave/Array-C.cc b/liboctave/Array-C.cc
--- a/liboctave/Array-C.cc
+++ b/liboctave/Array-C.cc
@@ -31,15 +31,15 @@
 #include "lo-mappers.h"

 #include "Array.h"
-#include "Array.cc"
-#include "oct-sort.cc"

-template <>
 inline bool
-sort_isnan<Complex> (const Complex& x)
+sort_isnan (const Complex& x)
 {
   return xisnan (x);
 }
+
+#include "Array.cc"
+#include "oct-sort.cc"

 static bool
 nan_ascending_compare (const Complex& x, const Complex& y)
diff --git a/liboctave/Array-fC.cc b/liboctave/Array-fC.cc
--- a/liboctave/Array-fC.cc
+++ b/liboctave/Array-fC.cc
@@ -31,15 +31,15 @@
 #include "lo-mappers.h"

 #include "Array.h"
-#include "Array.cc"
-#include "oct-sort.cc"

-template <>
 inline bool
-sort_isnan<FloatComplex> (const FloatComplex& x)
+sort_isnan (const FloatComplex& x)
 {
   return xisnan (x);
 }
+
+#include "Array.cc"
+#include "oct-sort.cc"

 static bool
 nan_ascending_compare (const FloatComplex& x, const FloatComplex& y)



reply via email to

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