fix •internal.ListVariations on a fillarr of floats
This commit is contained in:
parent
3ab5c87a76
commit
cbc1ef397b
@ -113,8 +113,22 @@ B listVariations_c2(B t, B w, B x) {
|
|||||||
if (xe==el_i8 ) { i8* xp = i8any_ptr (x); for (usz i = 0; i < xia; i++) { if (xp[i]>max) max=xp[i]; if (xp[i]<min) min=xp[i]; } }
|
if (xe==el_i8 ) { i8* xp = i8any_ptr (x); for (usz i = 0; i < xia; i++) { if (xp[i]>max) max=xp[i]; if (xp[i]<min) min=xp[i]; } }
|
||||||
else if (xe==el_i16) { i16* xp = i16any_ptr(x); for (usz i = 0; i < xia; i++) { if (xp[i]>max) max=xp[i]; if (xp[i]<min) min=xp[i]; } }
|
else if (xe==el_i16) { i16* xp = i16any_ptr(x); for (usz i = 0; i < xia; i++) { if (xp[i]>max) max=xp[i]; if (xp[i]<min) min=xp[i]; } }
|
||||||
else if (xe==el_i32) { i32* xp = i32any_ptr(x); for (usz i = 0; i < xia; i++) { if (xp[i]>max) max=xp[i]; if (xp[i]<min) min=xp[i]; } }
|
else if (xe==el_i32) { i32* xp = i32any_ptr(x); for (usz i = 0; i < xia; i++) { if (xp[i]>max) max=xp[i]; if (xp[i]<min) min=xp[i]; } }
|
||||||
else if (xe==el_f64) { f64* xp = f64any_ptr(x); for (usz i = 0; i < xia; i++) { if (xp[i]>max) max=xp[i]; if (xp[i]<min) min=xp[i]; if(xp[i]!=(i32)xp[i]) goto onlyF64; } }
|
else if (xe==el_f64) { f64* xp = f64any_ptr(x); for (usz i = 0; i < xia; i++) { if (xp[i]>max) max=xp[i]; if (xp[i]<min) min=xp[i]; if(!q_fi32(xp[i])) goto onlyF64; } }
|
||||||
else for (usz i = 0; i < xia; i++) { B c = GetU(x, i); if (!isF64(c)) goto noSpec; if (c.f>max) max=c.f; if (c.f<min) min=c.f; }
|
else {
|
||||||
|
bool notFloat = false;
|
||||||
|
for (usz i = 0; i < xia; i++) {
|
||||||
|
B c = GetU(x, i);
|
||||||
|
if (!isF64(c)) goto noSpec;
|
||||||
|
if (!q_fi32(o2fG(c))) {
|
||||||
|
notFloat=true;
|
||||||
|
} else {
|
||||||
|
i32 v = o2iG(c);
|
||||||
|
if (v>max) max=v;
|
||||||
|
if (v<min) min=v;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (notFloat) goto onlyF64;
|
||||||
|
}
|
||||||
ai8 = min==(i8 )min && max==(i8 )max;
|
ai8 = min==(i8 )min && max==(i8 )max;
|
||||||
ai16 = min==(i16)min && max==(i16)max;
|
ai16 = min==(i16)min && max==(i16)max;
|
||||||
ai32 = min==(i32)min && max==(i32)max;
|
ai32 = min==(i32)min && max==(i32)max;
|
||||||
|
|||||||
@ -387,6 +387,10 @@ Str ← {!=𝕩 ⋄ !×≠𝕩 ⋄ ! ∧´2=•Type¨𝕩} ⋄ Str •platform.o
|
|||||||
! 0‿1‿2‿3‿4‿5‿6‿7‿8‿8‿1‿2‿3‿4‿5‿6‿7‿8‿8 ≡ {•internal.ElType 𝕩 •internal.Variation ⟨⟩}¨ var
|
! 0‿1‿2‿3‿4‿5‿6‿7‿8‿8‿1‿2‿3‿4‿5‿6‿7‿8‿8 ≡ {•internal.ElType 𝕩 •internal.Variation ⟨⟩}¨ var
|
||||||
# TODO test •internal.ListVariations
|
# TODO test •internal.ListVariations
|
||||||
)
|
)
|
||||||
|
%USE eqvar ⋄ LV↩"i"⊸LV ⋄ •internal.ListVariations _eqvar π×↕10 %% ⟨"Af64","Sf64","Af64Inc","Sf64Inc","Ah","Sh","AhInc","ShInc","Af","Sf","AfInc","SfInc"⟩
|
||||||
|
%USE eqvar ⋄ LV↩"i"⊸LV ⋄ •internal.ListVariations _eqvar (π×↕10)∾{⇐} %% ⟨"Ah","Sh","AhInc","ShInc","Af","Sf","AfInc","SfInc"⟩
|
||||||
|
%USE eqvar ⋄ LV↩"i"⊸LV ⋄ •internal.ListVariations _eqvar ↕1000 %% ⟨"Ai16","Si16","Ai16Inc","Si16Inc","Ai32","Si32","Ai32Inc","Si32Inc","Af64","Sf64","Af64Inc","Sf64Inc","Ah","Sh","AhInc","ShInc","Af","Sf","AfInc","SfInc"⟩
|
||||||
|
%USE eqvar ⋄ LV↩"i"⊸LV ⋄ •internal.ListVariations _eqvar 100⥊1‿0 %% ⟨"Ab","AbInc","Ai8","Si8","Ai8Inc","Si8Inc","Ai16","Si16","Ai16Inc","Si16Inc","Ai32","Si32","Ai32Inc","Si32Inc","Af64","Sf64","Af64Inc","Sf64Inc","Ah","Sh","AhInc","ShInc","Af","Sf","AfInc","SfInc"⟩
|
||||||
|
|
||||||
# •internal.Keep
|
# •internal.Keep
|
||||||
•internal.Keep ↕10 %% ↕10
|
•internal.Keep ↕10 %% ↕10
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user