This paper seems relevant, though possibly only for 32-bit:

http://hal.archives-ouvertes.fr/docs/00/67/23/27/PDF/Jeannerod-JourdanLu.pdf

Cheers,
   Kevin

On Monday, July 28, 2014, Stuart Brorson <[email protected]> wrote:

> On Sun, 27 Jul 2014, Viral Shah wrote:
>
>  Is sincos a standard libm function?
>>
>
> Out of curiosity I looked into sincos since I had never heard of it.
> A quick check shows there's no sincos in fdlibm
> (on netlib).  However, a little Googling reveals an old Sun math
> library libsunmath seems to implement it.
>
> I did find a couple of libm variants which implemented sincos.
> However, they simply called sin & cos separately.  As Stephan says
> upthread, no performance improvement.
>
> As far as I know, sin & cos are usually computed using mod to fold
> the input x down to the first quadrant, and then using a power series
> (needs only 6 or 8 terms IIRC) to compute the function.  Perhaps
> libsunmath computed e.g. cos first, and then did sin = sqrt(1 -
> cos^2)?  Taking the sqrt seems non-performant compared to evaluating a
> short power series, but maybe they had a reason?  Another thought: sin
> and cos are reflections of each other (over the line x = pi/4) in the
> first quadrant.  Perhaps there some other clever way to get sin from
> cos?  I couldn't think if any in the short time I spent considering
> it.
>
> Stuart
>
>
> On Sun, 27 Jul 2014, Viral Shah wrote:
>
>  Is sincos a standard libm function?
>>
>> Also, I wonder if creating the one entry array is too expensive, and if we
>> should just call sin and cos separately. The vectorized version may be
>> able
>> to benefit from calling sincos directly.
>>
>> -viral
>>
>> On Monday, July 28, 2014 1:02:06 AM UTC+5:30, Isaiah wrote:
>>
>>>
>>> It doesn't appear to be wrapped, but you can call it yourself like this:
>>>
>>> julia> sincos(x) = begin psin = Cdouble[0]; pcos = Cdouble[0];
>>> ccall(:sincos, Void, (Cdouble, Ptr{Cdouble}, Ptr{Cdouble}), x, psin,
>>> pcos);
>>> (psin[1], pcos[1]); end
>>> sincos (generic function with 1 method)
>>>
>>> julia> sincos(pi)
>>> (1.2246467991473532e-16,-1.0)
>>>
>>> Feel free to open an issue or pull request if you think it should be
>>> exported - might have just been an oversight.
>>>
>>>
>>> On Sun, Jul 27, 2014 at 3:25 PM, Ken B <[email protected]>
>>> wrote:
>>>
>>>  Hi,
>>>>
>>>> I want to calculated sine and cosine together of the same angle. I saw
>>>> this function is implemented in openlibm, but is it available in julia
>>>> and
>>>> how?
>>>>
>>>>
>>>> https://github.com/JuliaLang/openlibm/blob/
>>>> 18f475de56ec7b478b9220a5f28eb9a23cb51d96/src/s_sincos.c
>>>>
>>>> Thanks!
>>>> Ken
>>>>
>>>>
>>>
>>>

Reply via email to