"Marco Maggi" <[EMAIL PROTECTED]> writes:
> Ciao,
>
> on the GNU Scientific Library mailing list I asked the
> following:
>
>>for some values of the operand I get different
>>results from 'acosh' when using GSL (1.8), Guile (1.8)
>>and GNU Octave (2.1.63). Other functions give me
>>different results, too. [...]
>>
>>Browsing Wikipedia for acosh formulas it seems to me
>>that GSL is using an equivalent of:
>>
>> (log (- x (sqrt (- (* x x) 1))))
>>
>>while the others are using an equivalent of:
>>
>> (log (+ x (sqrt (- (* x x) 1))))
>>
>>I'm interested in having equal results from GSL
>>and Guile, [...]
>
> and got the following reply:
>
>>There are different branch cut conventions used
>>by different programs. acosh or other inverse
>>functions are mutiple-valued functions so the
>>result is not uniquely defined.
>>
>>GSL uses one of the two common conventions
>>(W.Kahan's) because it has better consistency with
>>IEEE arithmetic. It is also used by Common
>>Lisp -- see the GSL Reference manual for details and
>>references. The others are using a different
>>convention (Abramowitz & Stegun). As such, all the
>>answers are correct.
>
> So, do you suggest me to override the GSL function to
> make it equal to the Guile one, or vice versa?
It depends on the context of the problem you are trying to solve.
It's some time since I was doing this kind of maths, but if I remember
correctly, the fact that there are multiple possible values usually
maps on to something meaningful in your problem domain.
Regards,
Neil
_______________________________________________
Guile-user mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/guile-user