The purpose of it is to preserve the structure of the argument,
while setting all values to MAXINT.
Is there a better way to achieve this?
Regards,
Elias
On 30 June 2017 at 12:21, Christian Robert <address@hidden
l.ca <mailto:address@hidden>> wrote:
On 2017-06-30 00:19, Elias Mårtenson wrote:
Thanks. I'll stick with this for now then.
How would (res+V×0) wrap around, by the way?
Bad first reading, (res+V×0) does nothing, it add 0 to "res".
How is it usefull ?
Xtian.
On 30 June 2017 at 12:17, Christian Robert <christian.rober
address@hidden <mailto:address@hidden> <mailto:christian
address@hidden <mailto:address@hidden>>> wrote:
I think this is the best you can get, about 62 bits of
randomness.
(64⍴2) ⊤⎕syl[20;2] ⍝ the largest 64 bits
integer supported by gnu-apl
0 1 1 1 1 1 1 1 1 0 1 0 1 1 0 0 1 1 1 1 0 1 1 1 0 1 0
0 0 0 0 1 1 0 0 1 1 1 0 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0
so, it's a bit less than 63 bits, say 62 bits for
safety is Ok.
Note that (res+V×0) may wrap around.
Xtian.
On 2017-06-29 23:23, Elias Mårtenson wrote:
I had a need to have a function that does the same
as monadic ?, but with the difference that the resulting numbers
not be integers, but floating point.
Now, here's my attempt at creating such a
function, I'd like to know if this is the best way to achieve what
I need:
∇ r←*hrRand* V ;res
⍝⍝ Like monadic ?, but returns floating point
numbers
res ← ⎕SYL[19+⎕IO;1+⎕IO]
r ← V × res÷⍨ ?res+V×0
∇
Example:
* hrRand 3 2 ⍴ 10 100 5 (3 4 (2 2⍴5)) 1000*
┏→━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
↓ 4.138685128 <tel:4.138685128> <tel:4.138685128
<tel:4.138685128>>
54.55782413 ┃
┃ 0.4543486424 ┏→━━━━━━━━━━━━━━━━━━━━━━
━━━━━━━━━━━━━━━━━━━━━━━━━━┓┃
┃ ┃2.024528001
<tel:2.024528001> <tel:2.024528001 <tel:2.024528001>> 2.772781338
┏→━━━━━━━━━━━━━━━━━━━━━━┓┃┃
┃ ┃
↓3.185551114 <tel:3.185551114> <tel:3.185551114 <tel:3.185551114>>
3.13571477 ┃┃┃
┃ ┃
┃1.204617876 4 <tel:1.204617876%204>
<tel:204617876%204>.396324338┃┃┃
┃ ┃
┗━━━━━━━━━━━━━━━━━━━━━━━┛┃┃
┃ ┗∊━━━━━━━━━━━━━━━━━━━━━━
━━━━━━━━━━━━━━━━━━━━━━━━━━┛┃
┃634.0902523
9.353801479┃
┗∊∊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
Regards,
Elias