[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Public WebGL] typed arrays + edge cases
On Feb 3, 2010, at 7:04 PM, Chris Marrin wrote:
>> - If the array type is non-float and a non-numeric value is stored, what happens?
>> Suggestion: 0 or exception
>> - If the array type is float and a non-numeric value is stored, what happens?
>> Suggestion: NaN or 0 or exception
> What happens if you do this on an Array? We should match that behavior.
The value is stored -- normal arrays in JS aren't typed
>> - If the array type is float and someone bit-fiddles an unusual NaN in there, does that unusual NaN get passed to the engine to deal with (even if it might not normally use them, e.g. signalling NaN etc.)?
>> Suggestion: I don't have a good one. The engine should maybe convert all NaNs into whatever NaN it understands on element access?
> I think all invalid NaN variants should be converted to a quiet NaN, which is what JS supports, right? I think the values we should support are all valid, normalized floats, +/-Inf and a quiet NaN. Everything should be converted to a quiet NaN.
I think the specific question is what happens in a case like:
buffer = new ArrayBuffer(n);
bytes = new UnsignedByteArray(buffer);
doubles = new DoubleArray(buffer);
b = bytes
d = doubles
doubles = d
if (b === bytes)
log("b is unchanged");
log("b has changed");
>From the PoV of JSC at least it is far safer to to allow the exact bits to change, and i don't believe it's possible to guarantee no bit changing for floats as conversion to or from double will necessarily result in different bits for non-normalised values at least.
You are currently subscribe to firstname.lastname@example.org.
To unsubscribe, send an email to email@example.com with
the following command in the body of your email: