[metapost] arclength() tolerances
Franck Pastor
franck.pastor at mac.com
Thu Apr 10 09:11:17 CEST 2014
Le 10 avr. 2014 à 09:06, Franck Pastor <franck.pastor at mac.com> a écrit :
>
> Le 3 avr. 2014 à 10:32, Taco Hoekwater <taco at elvenkind.com> a écrit :
>
>> Hi Hartmut,
>>
>> On 02 Apr 2014, at 21:10, Hartmut Henkel <hartmut_henkel at gmx.de> wrote:
>>
>>> Hi,
>>>
>>> in metapost there seem to be absolute tolerance values for iterative
>>> algorithms like arclength() even in the double numbersystem:
>>
>> Yes, the arc_test() routine (the core or arclength/arctime) uses a predefined
>> tolerance of unity/4096. While it is clear to me why it needs a tolerance
>> setting, it is not clear why that precise value, nor does lowering it actually
>> help, it just makes mp run slower:
>>
>> With tolerance=1E-8:
>>
>> 0.031477030364784685, 31415.995269569834
>> real 0m1.606s
>> user 0m1.601s
>> sys 0m0.003s
>>
>> With tolerance=1E-9:
>>
>> 0.031477030364784685, 31415.995269569834
>>
>> real 1m40.888s
>> user 1m40.820s
>> sys 0m0.034s
>>
>> Maybe there is some intrinsic error in the approximation code? One of the
>> more important reasons why I will quit developing metapost is that I do not
>> really understand any of this computational stuff, nor can I easily grasp the
>> theory behind it when attempting to educate myself.
>>
>> Best wishes,
>> Taco
>
> About arclength, I remembered having read something about it somewhere, but couldn't find it until just now. It was in a TUG article written by the Asymptote authors: http://www.math.ualberta.ca/~bowman/publications/asyTUG.pdf
>
> p. 289: "Robust arc length and arc time computations were implemented with adaptive Simpson integration, which was determined to be more efficient than Bézier subdivision."
>
> Maybe the Simpson integration should be the way to go? (Don't know enough about this subject to judge about it.)
>
> Best regards,
>
> Franck Pastor
>
BTW, here is Wikipedia's article about adaptive Simpson method (for what this article is worth, which I seldom know for sure as far as Wikipedia is concerned): http://en.wikipedia.org/wiki/Adaptive_Simpson's_method
F.P.
More information about the metapost
mailing list