From: Goffioul Michael <goffioul@im...>  20050720 15:00:15

> On Wed, 20 Jul 2005 16:15:20 +0200 > "Goffioul Michael" <goffioul@...> wrote: >=20 > > > On Wed, 20050720 at 13:32 +0200, Goffioul Michael wrote: > > > > Do you think that extending ECL to support inifinity and=20 > > > NaN as special > > > > numbers is possible (without too much effort)? I know this=20 > > > is not part > > > > of ANSI, but it can be very convenient. > > >=20 > > > The effort is precisely on ensuring that it does not=20 > > > contradict the ANSI > > > semantics. Do you know how this is handled, say for instance,=20 > > > in CMUCL? > >=20 > > It uses special constants defined in the EXT package. See=20 > for example > >=20 > http://commonlisp.net/project/cmucl/doc/cmuuser/extensions.h > tml#toc7. > > But as you say, the problem is to not contradict ANSI.=20 > Thinking about > > it, does ANSI state that (/1 0) MUST signal an error? Looking at > > HyperSpec, it uses MIGHT. From CMUCL doc, it seems that this depends > > on some trapping flag. >=20 > Having (/ 1 0) signal no error violates the POLA for quite some users, > and is mathematically incorrect (infinity is no number). When does it > come handy? When you do engeering computation. For example, to convert a cubic representation (a1, a3) of an amplifier into the more common parameters (Gain, IIP3): for a linear amplifier, a3=3D0, hence IIP3 is infinite. It's then handy to have 1/0=3DInf to avoid special cases in your = computation. In the same way, 1/Inf=3D0 is also handy. Michael. 