gelpia icon indicating copy to clipboard operation
gelpia copied to clipboard

Inverse trigonometric functions

Open monadius opened this issue 8 years ago • 11 comments

I would like to be able to use inverse trigonometric functions in .dop files. The following functions are requested: arcsin arccos arctan Alternative names for these functions should also be available: asin, acos, atan

monadius avatar Jul 11 '16 21:07 monadius

These functions are now present in gelpia (FPTaylorCompat) both the a* and arc* versions. What are your preferred ranges for arcsin and arccos? Gaol prefers [-pi/2,pi/2] for the former and [0,pi] for the latter.

keram88 avatar Jul 11 '16 22:07 keram88

I updated my previous comment.

keram88 avatar Jul 11 '16 22:07 keram88

Ranges [-pi/2,pi/2] for arcsin and [0,pi] for arccos are most common so I agree with Gaol choices.

monadius avatar Jul 11 '16 22:07 monadius

I'll leave this open in case you find any problems.

keram88 avatar Jul 11 '16 22:07 keram88

Wei-Fan once ran into the need for inverse trig functions in one of the benchmarks we were contemplating (forgot which). Since FPTaylor does not have support for these (afaik), we did not pursue them.

Ganesh

On Mon, Jul 11, 2016 at 3:11 PM, monadius [email protected] wrote:

I would like to be able to use inverse trigonometric functions in .dop files. The following functions are requested: arcsin arccos arctan Alternative names for these functions should also be available: asin, acos, atan

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/soarlab/gelpia/issues/12, or mute the thread https://github.com/notifications/unsubscribe/AEyiCu_wTd30uLb_epLCVS3iS2gB9UDyks5qUrGXgaJpZM4JJyUw .

ganeshutah avatar Jul 12 '16 12:07 ganeshutah

I implemented asin, acos, sinh, cosh, and tanh in FPTaylor (atan was already there). You can open an issue directly in the FPTaylor project when you need a new feature.

monadius avatar Jul 13 '16 08:07 monadius

Should we include hyperbolic functions? We use CRlibm which GAOL suggests cosh, sinh and tanh are not rounded correctly; oddly their inverses are rounded correctly. I've never been able to obtain a working version of libultim required by APLibMath, so we can't use the correctly rounding APLibMath.

Should I expose these functions and warn users that they may not be correct?

keram88 avatar Jul 22 '16 23:07 keram88

It is better to be safe. You may include sinh, cosh, tanh in the frontend and then convert them to the corresponding math expressions: sinh(x) = (exp(x) - exp(-x)) / 2, cosh(x) = (exp(x) + exp(-x)) / 2, tanh(x) = (exp(2_x) - 1)/(exp(2_x) + 1).

monadius avatar Jul 22 '16 23:07 monadius

I'll have to carefully examine the proofs of the hyperbolic functions in crlibm; in short they don't seem to guarantee 1ULP for all cases. For now I'll implement these functions in terms of exp.

keram88 avatar Jul 23 '16 17:07 keram88

Hyperbolic functions are now implemented. Inverses can be used with the prefix "arc" or simply "a". A test directory has been added to ensure that the implementations return correct answers.

keram88 avatar Jul 23 '16 19:07 keram88

Please also add the prefix "ar" for inverse hyperbolic functions: arsinh, arcosh, and artanh. (Wikipedia)

There should be 3 names for one function: asinh, arsinh, arcsinh, etc.

monadius avatar Jul 24 '16 01:07 monadius