← Back to context

Comment by selridge

16 hours 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?

Oh, 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.

  • "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.

    • Ok. 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.