Re: IOS floating point performance
Re: IOS floating point performance
- Subject: Re: IOS floating point performance
- From: Thomas Wetmore <email@hidden>
- Date: Thu, 08 Aug 2013 11:30:29 -0400
Fritz,
I know you know that the accuracy of this approach goes far
beyond being accurate only on the half degrees. The interpolation,
which can be done by very simple linear interpolation, will
convey almost the same level of accuracy on all intervening
angle values. There are some places where the trig function reach
zeros and infinities, and these have to be handled with care, but
it isn't rocket science.
Note you never have to call tan() since tan = sin/cos, though
you do have to worry about when cos(α) is zero. (Don't have
to call any other trig function either).
Tom Wetmore
On Aug 8, 2013, at 11:19 AM, Fritz Anderson <email@hidden> wrote:
> And if half-degrees are too coarse for you, you can take advantage of the cyclic nature of the derivatives of sine and cosine, and run the Taylor series out as far as you like (though you'd probably lose out to a professionally-crafted trig library pretty quickly). I guess that could be vectorized, but it's one more thing to debug. Profile the Accelerate.framework functions first.
>
> — F
>
> On 8 Aug 2013, at 10:01 AM, Thomas Wetmore <email@hidden> wrote:
>
>> p.s. Of course you don't have to call sin() and cos() for
>> every half degree when building these tables. You can take advantage
>> of how trig functions repeat in the four quadrants, and you can
>> take advantage of other inverse and pythagorean reationships
>> that exist between them. Even the initial table building
>> can be optimized.
>>
>> Tom Wetmore
>>
>> On Aug 8, 2013, at 10:53 AM, Thomas Wetmore <email@hidden> wrote:
>>
>>> Returning strictly to the issue of trig performance. A solution I
>>> have used in the past is to initialize tables of trig functions,
>>> say by calling sin() and cos() for every half a degree, and then
>>> interpolating those tables, never calling sin() or cos() again.
>>> I did this 29 years ago on an Atari 520ST to simulate the solar
>>> system, and it worked well. You only need enough trig accuracy
>>> for graphics to plot to the correct pixels. It takes very few
>>> decimal places to get that accuracy.
>>>
>>> Tom Wetmore
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden