Just curious, if the underlying algorithm for random assume 32 or 64 bits, how does it extend to xnum?
On Fri, Jun 16, 2023, 12:14 AM Raul Miller <rauldmil...@gmail.com> wrote: > I've pushed a fix for j32. > > I should also note that collisions between random numbers seem rare > when the count of the numbers is significantly less than the square > root of the magnitude of the range of the numbers. > > cols=: {{ x-#~.?x#y }} > {{y cols 0 0 10 p. y}}"0(10^i.6) > 0 0 0 0 0 0 > > Both the j64 and the j32 estimators (the value of h in jtdeal) could > be better. For j64, the estimator is too high for XNUMs in particular. > For j32, the estimator is probably too low when using deal to generate > extremely long sequences of XNUMS. > > -- > Raul > > On Thu, Jun 15, 2023 at 11:11 AM Raul Miller <rauldmil...@gmail.com> > wrote: > > > > Oh, right... thanks! > > > > (./clean.sh instead of make clean -- there's no Makefile in make2. I'm > > rusty on this build system.) > > > > Thanks again, > > > > -- > > Raul > > > > On Thu, Jun 15, 2023 at 11:08 AM bill lam <bbill....@gmail.com> wrote: > > > > > > There are artifacts of 64 bit objects. I suspect you use your own shell > > > script instead of the make2/clean.sh to clean up. > > > > > > > > > On Thu, 15 Jun 2023 at 10:58 PM Raul Miller <rauldmil...@gmail.com> > wrote: > > > > > > > Or... I would like to think I'm working on it. > > > > > > > > Unfortunately, building and testing a j32 instance on linux 64 bit os > > > > is currently failing for me. > > > > > > > > I *think* that using the (make2) make clean, followed by setting > > > > j64x=j32 and CFLAGS=-m32 (as exported environmental variables in my > > > > shell) should be sufficient to build a 32 bit instance of J. However, > > > > currently when I try this, my build fails to link because of 64 bit > > > > artifacts in the build: > > > > > > > > https://gist.github.com/rdm/b48b4be3a6e57aeb1f071d079aec6745 > > > > > > > > Any ideas on how I should fix this? > > > > > > > > Thanks, > > > > > > > > -- > > > > Raul > > > > > > > > > > > > On Thu, Jun 15, 2023 at 10:44 AM Raul Miller <rauldmil...@gmail.com> > > > > wrote: > > > > > > > > > > The test works on j32, the patch fails. > > > > > > > > > > Working on it now, > > > > > > > > > > Thanks, > > > > > > > > > > -- > > > > > Raul > > > > > > > > > > On Thu, Jun 15, 2023 at 10:30 AM bill lam <bbill....@gmail.com> > wrote: > > > > > > > > > > > > github windows32 failed g600 > > > > > > 2023-06-15T14:17:26.0886637Z 63 < >./ 2 ^. 5 ? > > > > > > 2980293480239480239480239480239480239482039x > > > > > > 2023-06-15T14:17:26.0886679Z 0 > > > > > > > > > > > > Does the patch or test work on J32? > > > > > > > > > > > > > > > > > > On Thu, Jun 15, 2023 at 10:14 PM Raul Miller < > rauldmil...@gmail.com> > > > > wrote: > > > > > > > > > > > > > I've pushed a fix. The essence is > > > > > > > > https://github.com/jsoftware/jsource/blob/master/jsrc/vrand.c#L625 > > > > > > > > > > > > > > It's been a while since I've concerned myself with the details > of > > > > > > > array allocation, so I'd like to verify that AT(z)= XNUM is > valid > > > > when > > > > > > > z is a freshly allocated (and unpopulated) INT array. (The > > > > alternative > > > > > > > would be to free z and allocate a fresh array for z.) > > > > > > > > > > > > > > Note also that J's estimate of the number of values which need > to be > > > > > > > rolled here is a bit high. The value of h as calculated at > > > > > > > > https://github.com/jsoftware/jsource/blob/master/jsrc/vrand.c#L803 > > > > is > > > > > > > 20 for the example where I need to deal 5 XNUMs. This is not > > > > > > > incorrect, but it is an opportunity for an efficiency gain. > > > > > > > > > > > > > > Thanks, > > > > > > > > > > > > > > -- > > > > > > > Raul > > > > > > > > > > > > > > > > > > > > > On Thu, Jun 15, 2023 at 9:21 AM Raul Miller < > rauldmil...@gmail.com> > > > > wrote: > > > > > > > > > > > > > > > > Good eye, I had overlooked that problem. > > > > > > > > > > > > > > > > That said, it's worth noting that 5 ? 1e99 runs into the same > > > > issue. > > > > > > > > I'm not going to attempt a fix for that today. (But it's > tempting > > > > to > > > > > > > > think about implementing that in a fashion which would > provide a > > > > > > > > distribution which is equivalent to that which would be > provided by > > > > > > > > (5 ?&.x: 1e99), once I have fixed this problem.) > > > > > > > > > > > > > > > > Anyways, I should have a fix up within a few hours. > > > > > > > > > > > > > > > > Thanks, > > > > > > > > > > > > > > > > > > > > > > > > -- > > > > > > > > Raul > > > > > > > > > > > > > > > > On Thu, Jun 15, 2023 at 3:19 AM Henry Rich < > henryhr...@gmail.com> > > > > wrote: > > > > > > > > > > > > > > > > > > That isn't sufficient, is it? The random numbers will be > drawn > > > > from i. > > > > > > > > > IMAX, won't they? If not, it's OK. > > > > > > > > > > > > > > > > > > hhr > > > > > > > > > > > > > > > > > > On Wed, Jun 14, 2023, 11:28 PM Raul Miller < > > > > rauldmil...@gmail.com> > > > > > > > wrote: > > > > > > > > > > > > > > > > > > > But that's not what i0() does: > > > > > > > > > > > > > > > > > > > > i0(1e99) returns IMAX > > > > > > > > > > > > > > > > > > > > Why should i0(x: 1e99) produce a domain error? > > > > > > > > > > > > > > > > > > > > Anyways, I've pushed a fix to jti0 for this issue. > > > > > > > > > > > > > > > > > > > > Please help me understand, if it's not acceptable. > > > > > > > > > > > > > > > > > > > > Thanks, > > > > > > > > > > > > > > > > > > > > -- > > > > > > > > > > Raul > > > > > > > > > > > > > > > > > > > > On Wed, Jun 14, 2023 at 4:46 PM Henry Rich < > > > > henryhr...@gmail.com> > > > > > > > wrote: > > > > > > > > > > > > > > > > > > > > > > The i0 gives domain error if the argument exceeds IMAX, > > > > which is > > > > > > > what you > > > > > > > > > > > are seeing. This looks like a bug to me. I think the > > > > algorithm > > > > > > > for > > > > > > > > > > deal > > > > > > > > > > > would work if you just called roll with the extended > > > > arguments. > > > > > > > Raul, > > > > > > > > > > would > > > > > > > > > > > you like to take that on? > > > > > > > > > > > > > > > > > > > > > > Henry Rich > > > > > > > > > > > > > > > > > > > > > > On Wed, Jun 14, 2023, 6:53 PM Raul Miller < > > > > rauldmil...@gmail.com> > > > > > > > wrote: > > > > > > > > > > > > > > > > > > > > > > > This error is coming from > > > > > > > > > > > > > > > > > > > > > > > > #0 jtjsignal (jt=0x7ffff7fc0200, e=3) at > > > > > > > ../../../../jsrc/d.c:361 > > > > > > > > > > > > #1 0x00007ffff34b131a in jtcvt () from > > > > > > > > > > > > > > > > > > > > > > > > /mnt/c/cygwin64/home/15712/jsoftware/jsource/bin/linux/j64avx2/libj.so > > > > > > > > > > > > #2 0x00007ffff350173e in jtvi (jt=0x7ffff7fc0200, > > > > w=0x4b4000) at > > > > > > > > > > > > ../../../../jsrc/u.c:570 > > > > > > > > > > > > #3 0x00007ffff3501562 in jti0 (jt=0x7ffff7fc0200, > > > > w=0x4b4000) at > > > > > > > > > > > > ../../../../jsrc/u.c:238 > > > > > > > > > > > > #4 0x00007ffff36fa6a1 in jtdeal (jt=0x7ffff7fc0200, > > > > > > > a=0x7ffff3a3a680 > > > > > > > > > > > > <Bnum+1088>, w=0x4b4000, > > > > > > > > > > > > self=0x7ffff3a3b8c0 <primtab+2176>) at > > > > > > > ../../../../jsrc/vrand.c:794 > > > > > > > > > > > > > > > > > > > > > > > > The issue seems to be the second i0 here > > > > > > > > > > > > > > > > > > > > > > > > RE(m=i0(a)); RE(c=n=i0(w)); // c starts as max#+1 > > > > > > > > > > > > > > > > > > > > > > > > In u.c, the comment on i0 is: > > > > > > > > > > > > > > > > > > > > > > > > // Extract the integer value from w, return it. Set > error > > > > if > > > > > > > > > > > > non-integral or non-atomic. Values whose abs > IMAX > are > > > > > > > converted to > > > > > > > > > > > > IMAX/-IMAX > > > > > > > > > > > > > > > > > > > > > > > > I haven't yet figured out what's wrong with jti0 in > this > > > > > > > instance. > > > > > > > > > > > > > > > > > > > > > > > > FYI, > > > > > > > > > > > > > > > > > > > > > > > > -- > > > > > > > > > > > > Raul > > > > > > > > > > > > > > > > > > > > > > > > On Wed, Jun 14, 2023 at 11:54 AM 'Veter Kamenev' via > Beta > > > > > > > > > > > > <b...@jsoftware.com> wrote: > > > > > > > > > > > > > > > > > > > > > > > > > > Hi! > > > > > > > > > > > > > > > > > > > > > > > > > > 5 ? 2980293480239480239480239480239480239482039x > > > > > > > > > > > > > > > > > > > > > > > > > > |domain error, executing dyad ? > > > > > > > > > > > > > |y must be a positive integer > > > > > > > > > > > > > > > > > > > > > > > > > > I read in NuVoc: > > > > > > > > > > > > > > > > > > > > > > > > > > y range of random number > > > > > > > > > > > > > 0 floating-point value in interval (0,1) > > > > > > > > > > > > > 1 0 (always) > > > > > > > > > > > > > 2 Boolean > > > > > > > > > > > > > >1 integer or extended integer from list i.y > > > > > > > > > > > > > > > > > > > > > > > > > > > https://code.jsoftware.com/wiki/Vocabulary/query#dyadic > > > > > > > > > > > > > > > > > > > > > > > > > > Best wishes, > > > > > > > > > > > > > Veter > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > ---------------------------------------------------------------------- > > > > > > > > > > > > > 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 > > > > > ---------------------------------------------------------------------- > > > > 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