3 ms·
On whose arithmetic? You’re just showing me the blackboard approximation. How about just on x86? What are the bounds and how do you know?
by selridge 8mo ago
On whose arithmetic?
You’re just showing me the blackboard approximation. How about just on x86? What are the bounds and how do you know?
- tovej 8mo agoOh, IEEE 754 double precision floating point accuracy? Rule of thumb is 17 digits. You will probably get issues related to catastrophic cancellation around x=0. As I said earlier the easiest solution is just to measure in this case. You don't really need to fuzz a sine approximation, you can scan over one period and compare against exactly calculated tables. I would probably add a cutoff around zero and move to a linear model if there is cancellation issues. And if the measurement shows the approximation has too much floating point error, you can always move to Kahan sums or quad precision. This comes up fairly often. If I really had to _prove_ formally an exact error bound, that would take me some time. This is not something you would be likely to have to do unless you're building software for airplanes, or some other safety critical domain. And an LLM would absolutely not be helpful in that case. You would use formal verification methods.
- selridge 8mo ago"Oh, IEEE 754 double precision floating point accuracy?" Ok, so we do agree! You DON'T want to go back to a system where everyone had to do their own arithmetic just to make a program! That's fabulous. I'm glad that we're in agreement. It's it SO MUCH NICER to just have the vagaries of one arithmetic we've already agreed upon to deal with, instead of needing to become an expert in numerical analysis just to get along with things.
- tovej 8mo agoOk. Based on your answer, you don't understand very much about computers. Maybe it makes sense that you're leaning on LLMs this early in your career. But it will bite you eventually. Every x86 computer uses IEEE 754 floats, that's what you, the programmer, needs to be able to reason about. You still need to understand floating point errors and catastrophic cancellation. And simple techniques to deal with that, like summing from small to big, or using Kahan sums, or limiting the range where your approximation is used. You can use a library for some of these, but then you need to know what the library is doing, and how to access these functions. But the problem seems to be that you have a skill issue, and the LLM will only make your skill issues worse. Stop leaning on it or you'll never be able to stand on your own.
- selridge 8mo agoI said this situation is reminiscent of how we took computer arithmetic out of the hands of programmers in the 80s and you gave me a big lecture about how easy it was to make your own sine function which concluded in you explaining that every computer (mostly) uses IEEE floats. No shit. What do you think we did in the 1980s to take computer arithmetic away from working programmers? We standardized computer arithmetic so instead of needing a numerical analyst on hand you just need to read that Goldberg article you’ll run off to Google now. You live in the land of milk and honey and you dare lecture someone about effort. You have absolutely no clue what world we left behind, but you’re happy to talk about who is and isn’t learning.
- tovej 8mo agoStandardization is a good thing. I never said it wasn't. You're just arguing with a strawman. Your two last posts aren't even related to the discussion at hand.
- selridge 8mo agoHere is what I said: “ This shift is an analogous to how we took having to do computer arithmetic out of the hands of programmers in the 80s. There used to be a substantial part of programming that was just a computer arithmetic. Now, almost nobody does that. Nobody in this thread could build a full adder if their life depended on it or produce an accurate sin function.” It is truly not my fault that you proceeded to lecture me for multiple posts just to reach the conclusion that I SET OUT FOR YOU: standardization of computer arithmetic is good and makes it so that someone doing math on a computer doesn’t need to become an expert on how the computer does math. As I said when you first insinuated yourself: I don’t need your help to be an engineer or a developer, thank you. You persisted anyway and embarrassed yourself.
- tovej 8mo agoLol, you still don't get it. Standardization means you only need to become an expert in the standard. You still need to know the standard. And to your point in the quoted part: I absolutely could, as could any of the people who I studied with (in this century). When you add abstraction laters you do still need to understand how the underlying layers work in order to manage upper layers. Look, I accept that I've posted more than I should about this. But it's only because you keep saying "nuh-uh". And when you start arguing in bad faith about what I've said, that should be called out. Saying you disagree is fine, but becoming so flustered you respond dishonestly is not.