octave-maintainers
[Top][All Lists]
Advanced

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

Re: Qhull test changes


From: Ben Abbott
Subject: Re: Qhull test changes
Date: Tue, 31 Jan 2012 08:58:58 -0500

On Jan 30, 2012, at 9:25 PM, Brad Barber wrote:

> At 08:25 PM 1/30/2012, Ben Abbott wrote:
> 
>> On Jan 30, 2012, at 7:42 PM, Brad Barber wrote:
>> 
>>> At 07:32 PM 1/30/2012, Ben Abbott wrote:
>>> 
>>>> On Jan 30, 2012, at 7:15 PM, Alexander Hansen wrote:
>>>> 
>>>>> On 1/30/12 6:02 PM, Rik wrote:
>>>>> 
>>>>> <snip>
>>>>> 
>>>>>>> I'm not certain, but doesn't "Qt" imply that the convex hull
>>>>>>> should be made up of triangles ? (perhaps I should study the
>>>>>>> qhull docs a bit ?)
>>>>>>> 
>>>>>>> In any event, I favored the more recent qhull because it matches
>>>>>>> Matlab's result.
>>>>>>> 
>>>>>> Yes, the output should be triangulated when we pass the 'Qt' option
>>>>>> and the new post-2011 Qhull behavior is mathematically correct.
>>>>>> The problem is that Qhull is not returning triangulated output for
>>>>>> versions less than 2011 and users will blame Octave when they see a
>>>>>> failing test in the test report.  I am proposing that Octave work
>>>>>> around the different Qhull versions so we don't generate a lot of
>>>>>> spurious bug reports.
>>>>>> 
>>>>>> On the other hand, if we want we could leave the test in and also
>>>>>> put in some comments that specifically say, "If you see this test
>>>>>> failing, then you must upgrade your Qhull installation."  This
>>>>>> might do a bit towards pushing users and distributions to upgrade
>>>>>> to a new Qhull.
>>>>>> 
>>>>>> --Rik
>>>>> 
>>>>> Excuse me jumping in, but does this indicate that I should be using
>>>>> qhull>=2011 for my Octave-3.4.3 and Octave-3.6.0 Fink packages?  I've
>>>>> been using 2009.3.
>>>>> 
>>>>> -- 
>>>>> Alexander Hansen
>>>>> Fink User Liaison
>>>> 
>>>> To use qhull 2011 a patch is needed. 2009, 2010, or 2012 should each be 
>>>> ok. The problem appears to be in the tests Octave runs (i.e. make check)
>>>> 
>>>> Ben
>>> 
>>> I hope that all builds of Octave upgrade to 2012.1.  There's a serious bug 
>>> with 2009.1 and other bugs fixed in 2011.2 and 2012.1.  For details, see
>>>  http://gitorious.org/qhull/qhull/blobs/master/src/Changes.txt
>>> 
>>>                               --Brad
>> 
>> Is there a simple way to test for the serious 2009 bug ? Something that 
>> could be added to the configure process?
>> 
>> Ben
> 
> Hi Ben,
> 
> The easiest is to check the code for qh_gethash in poly.c.  It should read
>     result %= (unsigned)hashsize;
> Instead of
>     hash %= (ptr_intT) hashsize
> 
> See http://www.qhull.org/download/poly.c-qh_gethash.patch
> 
> The problem occurs if the set elements have the high-bit set.  This only 
> occurs on 32-bit machines with more than 2G memory.   The data needs to be 
> allocated in high-mem.  Typically, qhull will overwrite an arbitrary location 
> with undefined results, often a segfault.
> 
> For other notes about bugs see
>   http://www.qhull.org/news/qhull-news.html#bugs
> 
>                                --Brad

Do I understand that 2009 can be patched to work properly by making the change 
above ? If so, perhaps some linux distributions have done that?

Is it possible to write a simple program that can be used to test if the bug is 
present? That would allow us to test for this during the configure process and 
give a warning at the end.

Ben





reply via email to

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