besselheim | 8 years ago | on: How it works: Compiler Explorer
besselheim's comments
besselheim | 8 years ago | on: An Italian Song That Sounds Like English But Is Nonsense
besselheim | 8 years ago | on: NSA deleted surveillance data it pledged to preserve
besselheim | 8 years ago | on: NSA deleted surveillance data it pledged to preserve
besselheim | 8 years ago | on: NSA deleted surveillance data it pledged to preserve
besselheim | 8 years ago | on: NSA deleted surveillance data it pledged to preserve
If your communications are intercepted, stored, but then never looked at, and eventually deleted - this is functionally equivalent to having never been collected at all.
besselheim | 8 years ago | on: Why is this C++ code faster than my hand-written assembly (2016)
besselheim | 8 years ago | on: A ghostly radio station that no one claims to run
besselheim | 8 years ago | on: Intel fires warning shots at Microsoft, says x86 emulation is a patent minefield
besselheim | 8 years ago | on: Babies from Skin Cells? Prospect Is Unsettling to Some Experts
besselheim | 9 years ago | on: ‘Reined-In’ N.S.A. Still Collected 151M Phone Records in 2016
But these still need to be intercepted in the first place, because you don't know in advance which of the 0.01% of records are of interest.
besselheim | 9 years ago | on: “Paranoid Mode” Compromise Recovery on Qubes OS
For example, a backdoor implanted in the disk firmware would be virtually undetectable for the vast majority of users.
besselheim | 9 years ago | on: On emotional authenticity and masking as an autistic person
On the other hand, it seems that autistics have the unpleasant pressure of doing this in almost every social interaction.
besselheim | 9 years ago | on: On emotional authenticity and masking as an autistic person
The singular "they" is already commonly used when the gender of a person is not known, so its extension into non-binary genders is quite sensible, in my opinion. Some others who regard themselves as a non-binary gender prefer invented pronouns such as "xe" or "ze", but I think expecting others to remember and use these is rather unrealistic, whereas "they" has the advantage of already having mainstream use in similar contexts.
besselheim | 9 years ago | on: Show HN: Audioshop – Audio image editing
besselheim | 9 years ago | on: Show HN: Audioshop – Audio image editing
besselheim | 9 years ago | on: 0.30000000000000004
> An implementation of this standard shall provide round to nearest as the default rounding mode. In this mode the representable value nearest to the infinitely precise result shall be delivered; if the two nearest representable values are equally near, the one with its least significant bit zero shall be delivered.
If we convert from decimal to double precision (64-bit) floating point, here is how they are represented in hexadecimal and binary:
0.1 -> 0x3FB999999999999A = 0011 1111 1011 1001 1001 1001 1001 1001 1001 1001 1001 1001 1001 1001 1001 1010
0.2 -> 0x3FC999999999999A = 0011 1111 1100 1001 1001 1001 1001 1001 1001 1001 1001 1001 1001 1001 1001 1010
0.3 -> 0x3FD3333333333333 = 0011 1111 1101 0011 0011 0011 0011 0011 0011 0011 0011 0011 0011 0011 0011 0011
^^^^^^^^^^^^^ ^^^^ ^^^^ ^^^^ ^^^^ ^^^^ ^^^^ ^^^^ ^^^^ ^^^^ ^^^^ ^^^^ ^^^^ ^^^^
Taking 0.1 as an example, here is what its binary representation actually means: sign exponent mantissa (marked using ^ in the table above)
0 01111111011 1001100110011001100110011001100110011001100110011010
The exponent is encoded as its offset from -1023, so in this case we have 01111111011 which is decimal 1019, making the exponent 1019-1023 = -4.The mantissa (BBBB…) is an encoding of the binary number 1.BBBB…, so with an exponent of -4 that makes the actual number 0.0001BBBB….
Applying this for each of these numbers:
decimal binary
0.1 0.00011001100110011001100110011001100110011001100110011010
0.2 0.0011001100110011001100110011001100110011001100110011010
0.3 0.010011001100110011001100110011001100110011001100110011
Then if we add 0.1 + 0.2, this is the result: 0.00011001100110011001100110011001100110011001100110011010
+ 0.0011001100110011001100110011001100110011001100110011010
-------------------------------------------------------------
0.01001100110011001100110011001100110011001100110011001110
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
However we only have 52 bits to represent the mantissa (again marked with ^), so the result above has to be rounded. Both possibilities for rounding are equidistant from the result: 0.010011001100110011001100110011001100110011001100110011
0.010011001100110011001100110011001100110011001100110100 <==
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
So according to the specification, the option with the least significant bit of zero is chosen.Converting this back to floating point format we get 0x3FD3333333333334. Note that the least significant four bits of the mantissa are 0100, which corresponds to the trailing 4 in the hexadecimal representation.
This is not equal to 0x3FD3333333333333 (the result of conversion from decimal 0.3, and also what would have been the result here if the rounding was specified the other way.)
Therefore, floating point 0.1 + 0.2 != 0.3.
besselheim | 9 years ago | on: Your yearly dose of is-the-universe-a-simulation
besselheim | 9 years ago | on: About the security content of iOS 10.3
besselheim | 9 years ago | on: Your yearly dose of is-the-universe-a-simulation
Really interesting to see how the tool works behind the scenes.