I guess I do not know which issue you are struggling with. Can you be more specific?
Thanks, -- Raul On Wed, Feb 3, 2016 at 3:47 PM, 'Pascal Jasmin' via Programming <[email protected]> wrote: > in this case, the issue has to do with _ and __ not having equivalents in > extended numbers, and I'm unsure its possible to create one. MAXINT doesn't > help if we don't want to conver 1000 bit numbers to 64 bits. > > So, the override to make is to test for one argument being _ or __ . That is > probably already done in the implementation after converting to float, and > returning the other argument (with origninal type) could be done instead. > > Though my assumption about _ seems wrong. There is a x: representation for > it. > > > > 3!:0 (3!:2) (3!:3) x: _ > 128 > in which case the &x: adverb seems appropriate to me. > > > > ________________________________ > From: Raul Miller <[email protected]> > To: Programming forum <[email protected]> > Sent: Wednesday, February 3, 2016 3:09 PM > Subject: Re: [Jprogramming] When a <. _ is less than a > > > Actually, I don't care about coercing floating point to integer - just > boolean to integer. And, this is just a model. So: > > MAXINT=: +/1,(#~1-2&|)".":x:+:^:(4>:3!:0)^:a:1 > MININT=: _1-MAXINT > > setype=:dyad define > select. x > case. 1 do. 0~:y > case. 4 do. <.MININT>.y<.MAXINT > case. 8 do. y<._ > case. 64 do. <.x:y > case. 128 do. (1r2*2r1)*x:y > case. do. throw. > end. > ) > > BIDZXQ=: adverb define > u y > : > type=. x >.&(3!:0) y > x u&(type&setype) y > ) > > Known problems: > * setype fails for type 4 for some values (like: MAXINT-432.1) > * does not currently support literal, boxed nor sparse types > * not tested cross-platform > * maybe could use a different name > > Example use: > 1.1 + BIDZXQ 1r2 > 8r5 > > -- > Raul > > > On Wed, Feb 3, 2016 at 2:39 PM, Raul Miller <[email protected]> wrote: >> I think, in this case, that we are working against the language >> definition. That tends to introduce quirks and other problems into the >> language. >> >> Specifically, I think we would be working against >> http://www.jsoftware.com/help/dictionary/dictg.htm and the table >> introduced by the phrase "Dyadic verbs (e.g. + - * % , = <) that >> require argument type conversions". >> >> So, rather than introducing a special case which requires inspection >> of arguments, maybe the right thing to do is to define an adverb which >> implements a different type conversion table on behalf of whatever >> verb it's working with? >> >> That said, I set out to write such a thing, and got stalled when >> trying to figure out how reliably and efficiently coerce a floating >> point array to integer type. >> >> Specifically: >> >> MAXINT=: +/1,(#~1-2&|)".":x:+:^:(4>:3!:0)^:a:1 >> MININT=: _1-MAXINT >> >> 3!:0 MAXINT,MININT >> 4 >> 3!:0 <.MININT>.( MAXINT+0.01)<.MAXINT-1 >> 8 >> >> Basically, I'm not sure how to deal with this existing quirk: >> >> x:MAXINT >> 9223372036854775807 >> x:( MAXINT-0.01)<.MAXINT-511 >> 9223372036854775808 >> 9!:14'' >> j804/j64/darwin/release/commercial/www.jsoftware.com/2015-12-21 18:06:25 >> >> Any suggestions? >> >> Thanks, >> >> -- >> Raul >> >> >> On Wed, Feb 3, 2016 at 2:02 PM, Dan Bron <[email protected]> wrote: >>> I know we have yet to organize a formal process for building and >>> disseminating a community-driven implementation of J, but in anticipation >>> of that day’s arrival, perhaps we can start collecting community-driven >>> proposals for enhancements? >>> >>> One such enhancement could be special code that detects whether the >>> argument to an arithmetic dyad is the scalar _ (or __ or _.) and if so, >>> avoids demoting the other argument to double if it’s already extended or >>> rational. >>> >>> I have other ideas too. But maybe we should collect them on the Wiki? >>> >>> -Dan >>> >>> >>>> On Feb 2, 2016, at 9:12 PM, Henry Rich <[email protected]> wrote: >>>> >>>> No, extendeds promote to float on mixed operations. >>>> >>>> Henry Rich >>>> >>>> On 2/2/2016 9:09 PM, 'Pascal Jasmin' via Programming wrote: >>>>> 9223372036854736345 <. _ >>>>> 9.22337e18 >>>>> >>>>> result is a double. <. double is the closest integer it can find. >>>>> >>>>> this seems like a problem though: >>>>> >>>>> >>>>> 9223372036854736345x <. _ >>>>> 9.22337e18 >>>>> >>>>> >>>>> >>>>> ----- Original Message ----- >>>>> From: Henry Rich <[email protected]> >>>>> To: Programming forum <[email protected]> >>>>> Sent: Tuesday, February 2, 2016 9:05 PM >>>>> Subject: [Jprogramming] When a <. _ is less than a >>>>> >>>>> I'm stepping up to the world of 64-bit integers, and stepping into >>>>> cowflops. >>>>> >>>>> This took me quite a while: >>>>> >>>>> <. 9223372036854736345 <. _ >>>>> >>>>> 9223372036854735872 >>>>> >>>>> >>>>> See that? Take the minimum of (number) and (infinity), and the result >>>>> is less than (number)! >>>>> >>>>> Yes, I understand why it happens. Now I do. Be warned. >>>>> >>>>> Henry Rich >>>>> ---------------------------------------------------------------------- >>>>> 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 >>> >>> ---------------------------------------------------------------------- >>> 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 ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
