• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: IOS floating point performance
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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


  • Follow-Ups:
    • Re: IOS floating point performance
      • From: David Rowland <email@hidden>
References: 
 >Re: IOS floating point performance (From: Trygve Inda <email@hidden>)
 >Re: IOS floating point performance (From: email@hidden)
 >Re: IOS floating point performance (From: Thomas Wetmore <email@hidden>)
 >Re: IOS floating point performance (From: Thomas Wetmore <email@hidden>)
 >Re: IOS floating point performance (From: Fritz Anderson <email@hidden>)

  • Prev by Date: Re: IOS floating point performance
  • Next by Date: Re: IOS floating point performance
  • Previous by thread: Re: IOS floating point performance
  • Next by thread: Re: IOS floating point performance
  • Index(es):
    • Date
    • Thread