[Cuis-dev] Documentation for the different kinds of divisions
Andres Valloud
ten at smallinteger.com
Mon May 25 16:38:03 PDT 2020
Theoretically it should be possible to reduce the argument of cos to an
argument to sin between +/- pi / 4 (but it gets more complicated than
that), then adjusting things via symmetries. But really it should be a
primitive.
On 5/25/20 16:35, Andres Valloud via Cuis-dev wrote:
> Hi,
>
>> It is also the implementation in Cuis :( . I guess we need a new
>> primitive right? Maybe some simple math trick could give us the
>> correct result?
>
> OMG :facepalm:. Yeah, that's bad. The only correct way is to write a
> primitive (other than implementing the C library in Smalltalk).
>
> Not only you lose ulps that way, also some results will become zero when
> they shouldn't. Plus, there is the issue of argument reduction.
>
>> Still, it is not obvious to me. How far is this from the correct result?
>
> Without properly massaging the arguments given to trigonometric
> transcendentals, and without knowing what is really going on, you can
> get a mantissa consisting of 15 leading non-zero bits, followed by 38
> zero bits.
>
> This is why *nobody* should be using the x87 anymore, and for the sake
> of compatibility the best way is to delegate to some base math library
> that everybody else uses (because then you get the optimized numerical
> algorithm that will cause your answers to match their answers, and then
> you have sanity). Unless of course you want to reimplement all of that
> from scratch, and then Gilad's arguments start rising over the horizon
> unless you have very good reasons.
>
> Andres.
More information about the Cuis-dev
mailing list