login  home  contents  what's new  discussion  bug reports     help  links  subscribe  changes  refresh  edit

Edit detail for #379 acos(1.0::Complex Float) fails revision 3 of 3

1 2 3
Editor: japp
Time: 2008/10/30 08:51:21 GMT-7
Note:

added:

From japp Thu Oct 30 08:51:21 -0700 2008
From: japp
Date: Thu, 30 Oct 2008 08:51:21 -0700
Subject: 
Message-ID: <20081030085121-0700@axiom-wiki.newsynthesis.org>

Status: open => duplicate 


Submitted by : (unknown) at: 2007-11-17T22:34:58-08:00 (17 years ago)
Name :
Axiom Version :
Category : Severity : Status :
Optional subject :  
Optional comment :

The acos and asin functions both fail when given a Complex Float argument with the value 1.0. The error message is:

   >> Error detected within library code:
   catdef: division by zero

Presumably the problem is on line 162 of trigcat.spad, which reads:

       asin x == atan(x/sqrt(1-x**2))

Obviously, if x = 1.0, then sqrt(1-x**2) will evaluate to 0.0, resulting in division by zero. The code should probably include an explicit check for this case:

       asin x == if x = 1.0 then pi()/2 else atan(x/sqrt(1-x**2))

Consider also #138

Status: open => duplicate