Yes, I knew about the enhancement (though did not pay attention to integer argument and power of 2). It is very impressive indeed.
I just wanted to put it in context: indeed division is multiplication, thus multiplication may in the same way benefit from rounding. In particular, should definitely do so in space. But then any <[EMAIL PROTECTED] should benefit in space. One of the applications is operations in color space. Related to it also is the problem that color is represented as bytes in an integer (word), so what is the best way to do optimal component-wise calculation? - 256 256 256 #. 0>.255<.<. ...calc... 256 256 256 #: cInt - (0>.255<.[:<. ...calc...)&.(a.i.) cChar --- Roger Hui <[EMAIL PROTECTED]> wrote: > Integer division and remainder are supported by > special code in J6.02. See help/release/intdivrem.htm > The special code only applies if both arguments are integers. > Don't blame 255<[EMAIL PROTECTED] float for being slow but instead > credit 255<[EMAIL PROTECTED] integer for being fast. > > > > ----- Original Message ----- > From: Oleg Kobchenko <[EMAIL PROTECTED]> > Date: Friday, November 9, 2007 5:00 > Subject: [Jbeta] integer-valued multiply vs divide > To: Beta forum <[email protected]> > > > Yes, but not in integer-valued multiply vs divide in j602: > > > > ts=: 0j8 0 ": 6!:2 , 7!:[EMAIL PROTECTED] > > > > ts '255 % a' [ a=. 1+i.1000 > > 0.00002207 8896 > > ts '255 * b' [ b=. %1+i.1000 > > 0.00001145 8896 > > > > ts '255 <[EMAIL PROTECTED] a' [ a=. > > 1+i.1000 NB. Very nice! > > 0.00002123 4928 > > ts '255 <[EMAIL PROTECTED] b' [ b=. > > %1+i.1000 NB. Why?! > > 0.00006062 13120 > > > > ts '<. 255 % a' [ a=. 1+i.1000 > > 0.00007124 12992 > > ts '<. 255 * b' [ b=. %1+i.1000 > > 0.00006006 12992 > > > > (255 <[EMAIL PROTECTED] a) -: (255 <[EMAIL PROTECTED] b) > > 1 > > > > There is no cure > > > > ts '255 (<[EMAIL PROTECTED]) > > b' [ b=. %1+i.1000 > > 0.00008996 21632 > > ts '255 (<[EMAIL PROTECTED] <[EMAIL PROTECTED]) b' [ b=. %1+i.1000 > > 0.00060343 9472 > > ts '255 (<[EMAIL PROTECTED] <.@:%) b' [ b=. %1+i.1000 > > 0.00008185 13568 > > > > > > --- Roger Hui <[EMAIL PROTECTED]> wrote: > > > > > The numerical difference comes from %&(%:2) vs. (%:0.5)&* > > > > > > nx=: i:5j2000 > > > >./ | (%&(%:2) - (%:0.5)&*) nx > > > 8.88178e_16 > > > > > > This is a fetish that I have had since my summer student days. > > > I remember Lib chastising me for caring about the difference > > > in time between y%2 and 0.5*y. (I knew the multiply machine > > > instruction was faster than the divide machine instruction > > from > > > the S/360 Principles of Operations.) > > > > > > > > > > > > ----- Original Message ----- > > > From: Joey K Tuttle <[EMAIL PROTECTED]> > > > Date: Thursday, November 8, 2007 12:35 > > > Subject: Re: [Jprogramming] speed of matrix*vector operation. > > > To: Programming forum <[EMAIL PROTECTED]> > > > > > > > At 11:56 -0800 2007/11/08, Roger Hui wrote: > > > > > > There isn't a built in function that > > > > >> j uses to generate normal distributions, and > > writing an > > > > equivalent>> to MatLab randn() would be an interesting > > exercise.> > > > > > > > >From http://www.jsoftware.com/jwiki/Essays/Normal_CDF > > > > >erf =: (1 H. 1.5)@*: * 2p_0.5&* % ^@:*: > > > > >n01cdf=: -: @ >: @ erf @ %&(%:2) > > > > > > > > > >Whence an approximation to randn: > > > > >ny=: n01cdf nx=: i:5j2000 > > > > >randn=: nx {~ ny I. [EMAIL PROTECTED]&0 > > > > > > > > > > > > > Lovely! In praise for DOJ, erf and n01cdf are given on the > > > > H. page (although I didn't immediately think to look there :) > > > > > > > > There are a couple of subtle differences from the ones above, > > > > DOJ doesn't include the, apparently redundant, parens of your > > > > erf and n01cdf differs a bit, but their results are very close > > > > with no greater than 4.996e_16 difference in your example. > > > > > > > > In any case, thanks for the exposition -- certainly in the > > > > case of timing the original inner product, the generation of > > > > the random normal distributions should be excluded from the > > > > timing (as they were in MatLab). > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm > __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
