4 ms·
Maybe I'm just arguing semantics here but I would say that while calculations are carried out using floating points the numbers themselves are represented symbo
by mike00632 8y ago
Maybe I'm just arguing semantics here but I would say that while calculations are carried out using floating points the numbers themselves are represented symbolically. For example, if you came up with an algorithm to calculate euclidean distance then you would eventually employ a square root algorithm instead of an approximation of a square root stored as a floating point number. The algorithm "sqrt(2)" is a symbolic representation of the square root of 2.
- h0mEDw 8y agoYeah I meant that there's another layer to the symbolic representation of "sqrt(2)" than just the tree of operation, so that you can ask sensible questions about the value of the number. For instance a generator of decimal representation or a function like "given N return a fraction q/p that's within 1/2^N of the value". And floats are really a whole other beast than fractions or naturals or real numbers. As I wrote earlier - the "+" operator isn't associative. Python snippet: def before(): x = 0.0 x += 1.0 for i in xrange(1000): x += 1e-17 return x def after(): x = 0.0 for i in xrange(1000): x += 1e-17 x += 1.0 return x print before() == 1.0 print after() == 1.0 Will print: True False
- mike00632 8y agoRewrite your functions to be generator functions. They don't even need to be based on the desired level of precision to always be decidable.
- h0mEDw 8y agoNot sure what your point is. I can just suggest to see the PDF: https://news.ycombinator.com/item?id=18411935 https://news.ycombinator.com/item?id=18411935