uCBQN/test/utils.bqn

48 lines
2.1 KiB
BQN
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Variation •internal
r •args
# types: u1,i8,i16,i32,f64,c8,c16,c32
maxF64 +´21023-53
min 0(-271531)¯0.5000
max 2( 271531) 0.5(2816)1114112
szs max-min
chr 00000111
specF64 (- π2) (0÷0) -0÷0
specI32 "Ai32" •internal.Variation (<(231)(-231))/ - 0/ (¯4+8) + 232
vars "Ab""Ai8""Ai16""Ai32""Af64""Ac8""Ac16""Ac32"
casts 1816326481632¨"uiiifccc"
specInts 715({(<(2𝕨)(-2𝕨))/𝕩}¨<)specI32 # TODO 8-bit integer spec is kinda stupid
spec0 01specIntsspecF64@+(1114111-16)(2) (<11141110)/¨ specInts
spec0 (5/¯128¯127¯126¯2¯1012125126127)(1)
spec vars Variation¨ spec0
! spec0 ((48)/) spec
SubRange {
sz 𝕩-𝕨
l 1 + r.Range 4(0=r.Range 5) sz
0l+𝕨+r.Range 1+sz-l
}
# •Show¨ ⍷∧{𝕊:¯3 SubRange 3}¨↕1000
# •Show¨ ∾⟜(-˜´)¨ ∧{𝕊:¯1000 SubRange 1000}¨↕100
Variate { sp𝕊𝕩:
((0=r.Range 5){𝕩sp˜r.Range sp}{sp˜𝕩 r.Range sp})((0=(𝕩) r.Range 2010-˜r.Range 20)/) 𝕩
}
RandVals {
# TODO special code for 𝕩≡0
# TODO bit-based randomization
𝕩4? "Af64" Variation specF64 Variate (21024×r.Range 0) × (¯2+4×r.Range 0) + 𝕨 r.Range 0;
se (𝕩min) SubRange 𝕩max
(𝕩vars) Variation (𝕩spec) Variate @+(𝕩chr) s+𝕨 r.Range e-s
}
! "bitarr" •internal.Type 10 RandVals 0
! "i8arr" •internal.Type 10 RandVals 1
! "i16arr" •internal.Type 10 RandVals 2
! "i32arr" •internal.Type 10 RandVals 3
! "f64arr" •internal.Type 10 RandVals 4
! "c8arr" •internal.Type 10 RandVals 5
! "c16arr" •internal.Type 10 RandVals 6
! "c32arr" •internal.Type 10 RandVals 7