Currently, in my work-in-progress branch, integrating libgmp support
into the j engine, in vrand.c the implementation for generating random
XNUM values needs a bit of work.

(Today I addressed an unhandled issue I had left for myself earlier,
where ?.2x (or any other positive extended integer) would segfault.
That was a necessary effort, but it didn't go far enough.)

There's at least two issues I'd like to call out:

(1) Code duplication between ?. and ?
(2) jtrollxnum vs jtxrand

Taking these in order:

(1) Currently, for every routine supporting ? there's a nearly
identical clone of it supporting ?.

Conceptually, if our integrated rank support was structured suitably
(an issue I am not currently in a position to judge), we could discard
the ?. specific routines, replacing them with one or more routines
which seed the random number generator appropriately before invoking
the random number generating process, then restoring the state of the
random number generator afterwards.

(2) Currently, the implementation of jtxranddot is probably what I
should be using for jtxrand. Currently, the implementation of jtxroll
ignores the implementation of jtxrand and instead calls a libgmp
specific routine. This is an issue with several faces, but one of them
is that ?. currently does support the various J RNG algorithms, while
? only supports one algorithm.

I need to also review the information available to me -- it might be
that the state space for the libgmp random number generator is larger
than that used in the J implementation, or it might be that the size
of the state space is constrained by the algorithm.

If any of these issues fall comfortably inside where anyone wants to
spend time, I'd welcome any assistance offered. (Otherwise, I'll
continue to slowly plow through cataloging and working through these
issues.)

Thanks,

-- 
Raul
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to