In order to avoid exiting the program, I am checking for Inf and setting the result to Nan manually for each trigonometric function. I agree with John's comments and hope that something like this would become default behavior.
@Milan: Thanks for the link, it is a good one. On Tuesday, November 4, 2014 12:58:40 PM UTC-6, Milan Bouchet-Valat wrote: > > Le mardi 04 novembre 2014 à 09:22 -0800, [email protected] <javascript:> a > écrit : > > I have recently become aware of Julia and have been impressed with its > > ease of use and speed. While I was converting my previous code to > > Julia, I noticed that trigonometric functions at infinity yield > > DomainError and abort the program. Try sin(Inf), sin(-Inf), cos(Inf), > > tan(Inf), etc. I checked the behavior of Numpy and it returns a NaN > > and a warning of invalid value to the function. I remember Matlab was > > yielding a NaN too. But they both wouldn't abort the program. > > > > Returning a NaN instead of aborting the program might be useful when > > the following computations don't depend on only this result of NaN. > > For example, consider finding the smallest element of x =cos( [1.0, > > 2.0, Inf]) which would have given the number I am interested in if > > cos(Inf) gives a NaN. Here I cos(2.0) < NaN would be false > > nevertheless findmin cleverly finds the correct answer 2.0 ( so does > > Numpy). Note that Inf is usually a result of an intermediate step of > > an algorithm. > You'll probably be interested in this discussion: > https://github.com/JuliaLang/julia/issues/7866 > > > If the following computations involve NaN and yield compilation error > > than checking elements of x being not NaN is necessary. But since it > > does occur rarely, avoiding this check might be useful for speed. > > > > What would be your thoughts? Thanks. > > > > > >
