relax documented RangeFn behavior to align with NEON impl
This commit is contained in:
parent
a6202c8ca6
commit
e33b3b95ee
@ -34,7 +34,7 @@ typedef struct { EqFn fn; u8 data; } EqFnObj;
|
||||
#define EQFN_GET(W_ELT, X_ELT) ({ u8 eqfn_i_ = EQFN_INDEX(W_ELT, X_ELT); (EqFnObj){.fn=eqFns[eqfn_i_], .data=eqFnData[eqfn_i_]}; })
|
||||
#define EQFN_CALL(FN, W, X, L) (FN).fn(W, X, L, (FN).data) // check if L elements starting at a and b match; assumes L≥1
|
||||
|
||||
typedef bool (*RangeFn)(void* xp, i64* res, u64 len); // writes min,max in res, assumes len≥1; returns 0 and leaves res undefined if either any (floor(x)≠x or abs>2⋆53), or (x≠(i64)x)
|
||||
typedef bool (*RangeFn)(void* xp, i64* res, u64 len); // assumes len≥1; if x has non-integers or values with absolute value >2⋆53, will return 0 or report min<-2⋆53 or max>2⋆53; else, writes min,max in res and returns 1
|
||||
extern INIT_GLOBAL RangeFn getRange_fns[el_f64+1]; // limited to ≤el_f64
|
||||
|
||||
typedef void (*BitSelFn)(void*,u64*,u64,u64,u64);
|
||||
|
||||
@ -1,6 +1,11 @@
|
||||
# needs: -DTEST_RANGE
|
||||
"basic test doesn't work; are you on a -DTEST_RANGE build?" ! 1‿9‿1 ≡ •internal.Temp 3‿1‿4‿1‿5‿9
|
||||
|
||||
%DEF invalid Invalid ← {·‿·‿0: 1; s‿e‿1: (s<-2⋆52) ∨ e>2⋆52}∘•internal.Temp
|
||||
|
||||
≢(⟨⟨0‿9‿1,↕10⟩ ⋄ ⟨¯5‿¯3‿1 ⋄ ¯5‿¯3‿¯4‿¯4‿¯4‿¯4‿¯4⟩⟩∾{⟨⟨¯2,𝕩-3,1⟩,¯2+↕𝕩⟩}¨1+↕100) {exp‿a𝕊𝕩: exp (⋈!≡) •internal.Temp 𝕩•internal.Variation a}⌜ "Ai8"‿"Ai16"‿"Ai32"‿"Af64"
|
||||
T←⋈ ! ⊣ ≡ ·•internal.Temp "Ab"•internal.Variation⊢ ⋄ ≠{𝕊n: 1‿1‿1 T 𝕩⥊1 ⋄ 0‿0‿1 T 𝕩⥊0 ⋄ 0‿1 {0‿1‿1 T (¬𝕨)⌾(𝕩⊸⊑) n⥊𝕨}¨⍟(n>1) 2•rand.Range n}¨1+↕500
|
||||
{! 0≡2⊑•internal.Temp (2⋆63)⌾(𝕩⊸⊑) 10⥊0}¨ ↕10
|
||||
⟨2⋆63, 1.5, 0÷0⟩ {! 0≡2⊑•internal.Temp 𝕨⌾(𝕩⊸⊑) 20⥊0}⌜ ↕20
|
||||
%USE invalid ⋄ Invalid¨ ⟨↕4, -⊸∾ 2⋆↕50, π×↕4, 10⥊2⋆60⟩ %% 0‿0‿1‿1
|
||||
%USE invalid ⋄ ⟨2⋆63, 1.5, 0÷0⟩ {𝕩!Invalid 𝕨⌾(𝕩⊸⊑) 20⥊0}⌜ ↕20
|
||||
%USE invalid ⋄ p←⟨1+2⋆-52, 1-2⋆-53⟩ ⋄ {𝕩!Invalid 𝕩⌾(10⊸⊑) 20⥊0}¨ ⟨∞, ¯∞, 0.1, ¯0.1⟩ ∾ ((1∾p) ×⌜ -⊸∾ 2⋆54+↕12) ∾○⥊ p ×⌜ 2⋆↕70
|
||||
≠{! 0‿0‿1 ≡ •internal.Temp 𝕩↑(𝕩⥊0)∾10⥊0÷0}¨ 1+↕10
|
||||
|
||||
Loading…
Reference in New Issue
Block a user