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

Reply via email to