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 2 of 3

1 2 3
Editor: kratt6
Time: 2007/12/20 02:16:00 GMT-8
Note:

added:

From kratt6 Thu Dec 20 02:15:59 -0800 2007
From: kratt6
Date: Thu, 20 Dec 2007 02:15:59 -0800
Subject: 
Message-ID: <20071220021559-0800@axiom-wiki.newsynthesis.org>

Consider also #138

Submitted by : (unknown) at: 2007-11-17T22:34:58-08:00 (16 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