fix /⁼1e4⥊1‿2 on NEON
This commit is contained in:
parent
cbac419b4a
commit
b72fe465a2
@ -3,7 +3,7 @@ include './vecfold'
|
||||
|
||||
if_inline (hasarch{'SSE2'}) {
|
||||
fn sum_vec{T}(v:T) = vfold{+, fold{+, mzip128{v, T**0}}}
|
||||
def fold_addw{v:T=[_](i8)} = sum_vec{T}(v)
|
||||
def fold_addw{v:T=[_](u8)} = sum_vec{T}(v)
|
||||
}
|
||||
|
||||
def inc{ptr, ind, v} = store{ptr, ind, v + load{ptr, ind}}
|
||||
@ -49,7 +49,7 @@ fn count{T}(tab:*usz, x:*T, n:u64, min_allowed:T) : T = {
|
||||
e := each{{j}=>V**j, j}
|
||||
@for (xv over b) each{{c,e} => c -= xv == e, c, e}
|
||||
def add_sum{c, j} = {
|
||||
s := promote{usz, fold_addw{V~~c}}
|
||||
s := promote{usz, fold_addw{c}}
|
||||
total -= s; inc{tab, j, s}
|
||||
}
|
||||
each{add_sum, c, j}
|
||||
|
||||
@ -129,6 +129,7 @@ w←1‿1⥊1 ⋄ x←2⥊1 ⋄ w‿x <¨↩ ⋄ {! (∾⟨•Repr𝕩,": Expe
|
||||
!"Sum too big" % %USE evar ⋄ /_evar 1e2⥊2⋆62
|
||||
!"Integer out of range: 1e20" % %USE evar ⋄ /_evar 1e20⌾(100⊸⊑) 200⥊10
|
||||
! (//⁼)⊸≡8‿15‿25‿32‿90‿101‿155‿165‿584‿594‿894‿912‿1312‿1328‿1350‿1367‿1391‿1407‿1469‿1486‿1559‿1566‿1576‿1582‿1592‿1599‿1609‿1616‿1626‿1635‿4086‿4093‿4114‿4122‿4141‿4149‿4169‿4177
|
||||
/⁼1e4⥊1‿2 %% 0‿5000‿5000
|
||||
|
||||
# 𝕨⊏𝕩
|
||||
•internal.ElType¨ {(100⥊↕2)⊏𝕨‿𝕩}⌜˜ ⟨0, 1, 2, 127, 128, 32767, 32768, ¯32767, ¯32768, ¯32769, ¯1+2⋆31, 2⋆31, @, @+1, @+255, @+256, @+1114111, {⇐}, 1‿2⟩ %% (8-(=⌜˜<⟜5)×8-⌈⌜˜) 0‿0‿1‿1‿2‿2‿3‿2‿2‿3‿3‿4‿5‿5‿5‿6‿7‿8‿8
|
||||
|
||||
Loading…
Reference in New Issue
Block a user