Marco, If you don't mind using a foreign library, GSL provides these things through GSLL: GSL> gsl:+nan+ #<DOUBLE-FLOAT quiet NaN> GSL> gsl:+positive-infinity+ #.SB-EXT:DOUBLE-FLOAT-POSITIVE-INFINITY GSL> gsl:+negative-infinity+ #.SB-EXT:DOUBLE-FLOAT-NEGATIVE-INFINITY
This should work on any CL implementation that can load GSLL. I'm interested in your generic math library, as I have some of that in Antik (which GSLL uses). Liam On Fri, Nov 2, 2018 at 3:24 PM Antoniotti Marco <antoniotti.ma...@disco.unimib.it> wrote: > > Dear all > > I am fooling around (again!) with the spec of a math library that I want the > students to work on as a project. Language is Common Lisp. > > Essentially the library is an extended generic math library built on the > basis of the many ones floating around. > > Now. Here comes IEEE. And “infinity" > > Among many implementations there is more or less a consensus about how to > “represent” IEEE infinities in CL. > > E.g. > > LW > math:long-float-positive-infinity > +1D++0 #| +1D++0 is double-float plus-infinity |# > > CCL ? math:long-float-positive-infinity > 1D++0 > > > and so on. > > NaN is not as clearly defined. > > LW 45 > math:nan > 1D+-0 #| 1D+-0 is double-float not-a-number |# > > CCL ? math:nan > 1D+-0 #| not-a-number |# > > But to get a NaN in SBCL/CMUCL requires a trick. I use > > (sb-kernel:make-double-float -524288 0)) ; Courtesy of Raymond Toy. > > In any case… There are two issues that I would like to brainstorm a bit. > > The first one pertains rounding modes. Give the current state of affairs, it > does not seem possible to access them in all the CL implementations. > CMUCL/SBCL give you the necessary hooks, but LW doesn’t. Let’s skip this. > > The second is just a simple question. > > Given that we *do* have (with some acrobatics) access to IEEE infinities, > would you add symbolic constants to such library like > > (defconstant +posinf+ ‘+posinf+) > > or would you just rely on the IEEE infinities? > > Generic functions like > > (defgeneric plus (x y) …) > > Will obviously be affected. > > I just want to get a feeling about the overall wisdom of this crowd. > > All the best > > Marco > > > > -- > Marco Antoniotti > >