octave-maintainers
[Top][All Lists]
Advanced

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

Re: Qhull test changes


From: Brad Barber
Subject: Re: Qhull test changes
Date: Tue, 31 Jan 2012 21:13:16 -0500

At 08:58 AM 1/31/2012, Ben Abbott wrote:

>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?

Yes, some have.  For an example, see 2009.1.3 on the Qhull download page.  This 
build will go away after 2012.1 is released.   The source files have become 
out-of-date.
    http://www.qhull.org/download/


>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.

No.  You could grep the source poly.c for the bad line, but that seems wrong.  

                                        --Brad


>Ben
>
>
>
>
>
>
>-----
>No virus found in this message.
>Checked by AVG - www.avg.com
>Version: 10.0.1416 / Virus Database: 2109/4777 - Release Date: 01/30/12



reply via email to

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