I've noticed an odd quirk here. 1.2r3.4 0.352941 _r3.4 |ill-formed number
This issue is present in j903. I have opted to retain this quirk for j904, because it doesn't seem to be important and it makes the implementation a bit simpler. (Also, other than this quirk, _r1 and friends will work in the next update to j904.) Thanks, -- Raul On Tue, Jan 24, 2023 at 10:38 PM Raul Miller <[email protected]> wrote: > > Right... Aside from adding libgmp support, a change from j903 is that > j903 had an extended precision infinity which was used in parsing > numeric constants, but j904 does not. > > And, when I was rewriting the bit that handles rational constants, I > overlooked some of the ways of representing rational infinity. > > I'm testing a fix for this problem right now. It should be ready soon. > > Thanks, > > -- > Raul > > On Tue, Jan 24, 2023 at 10:18 PM Henry Rich <[email protected]> wrote: > > > > Decision, decisions. How /should/ you specify an extended infinity? I say > > > > _x > > |ill-formed number > > > > There could be alternatives. _r(any finite) and (any non0)r0 are both > > reasonable. > > > > NOTE that the GMP library that we have moved to has no way to represent > > extended infinity. Raul has chosen 1r0 as our internal representation > > of extended infinity, so infinity will always have rational precision, > > not extended integer. > > > > For display, we get it right: > > > > 1r0 > > _ > > > > It seems that _r(any) should be converted to infinity - and _x and __x > > too I think. This is in Raul's area. > > > > If you have a dependency on the internal representation of infinity it > > will be on you to update it. > > > > Henry Rich > > > > > > > > > > > > > > > > On 1/24/2023 9:00 PM, Ian Clark wrote: > > > j903 accepts -- but j904 rejects -- this way of defining rational > > > infinity: > > > > > > _r1 > > > > > > |ill-formed number > > > > > > | _r1 > > > > > > | ^ > > > > > > JVERSION > > > > > > Engine: j904/j64arm/darwin > > > > > > Beta-k: commercial/2023-01-24T04:42:28 > > > > > > Library: 9.04.10 > > > > > > Qt IDE: 2.0.3/6.2.4(6.2.4) > > > > > > Platform: Darwin 64 > > > > > > Installer: J904 install > > > > > > InstallPath: /applications/j904 > > > > > > Contact: www.jsoftware.com > > > > > > A workaround is to use 1r0 instead: > > > > > > > > > 1r0 > > > > > > _ > > > > > > datatype 1r0 > > > > > > rational > > > > > > > > > Not a lot of j-ers willl have a use for rational [minus] infinity, but IMO > > > a beginner might find it more intuitive to define it as _r1 rather than > > > 1r0 > > > . Maybe it's no big deal in itself, but it breaks 3 addons, viz: math/cal, > > > math/uu -- and in consequence math/tabula: > > > > > > > > > load'math/uu' NB. Launch UU only > > > |ill-formed number in script, executing monad 0!: 0 > > > |any word beginning with a digit or _ must be a valid number > > > | BADRAT=: __r1 > > > | ^ > > > |[-33] /applications/j904/addons/math/uu/uu.ijs > > > > > > load'math/cal' > > > |ill-formed number in script, executing monad 0!: 0 > > > |any word beginning with a digit or _ must be a valid number > > > | BAD_EXE_VALUE=: __r1 > > > | ^ > > > |[-92] /applications/j904/addons/math/cal/cal.ijs > > > > > > > > > So I'd call it a bug. > > > > > > > > > There's been plenty of time to discover this. Sorry it's taken me so long. > > > > > > > > > Ian Clark > > > ---------------------------------------------------------------------- > > > For information about J forums see http://www.jsoftware.com/forums.htm > > > > ---------------------------------------------------------------------- > > For information about J forums see http://www.jsoftware.com/forums.htm ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
