Yes, it's possible to design a new API from scratch to avoid this, if you're very careful and you do it just so, and all of your users also use it just so. Or you can use double and no one ever needs to worry about it.
-
-
I’m using 32-bit floats everywhere in my vector graphics/font API and being careful about it…this may end up coming back to bite me but we’ll see :)
1 reply 0 retweets 5 likes -
Replying to @pcwalton @stephentyrone and
32 bites you in games, once you are far from the origin. Also, 32 is faster than 64 for fpu, last time I measure with Mono and LLVM. Some numbers and a cute addendum with a real life problem: https://tirania.org/blog/archive/2018/Apr-11.html …
2 replies 0 retweets 5 likes -
Replying to @migueldeicaza @pcwalton and
I think the main thing isn't that doubles are exactly as fast as single-precision floats, but that most of the things that made them orders of magnitude slower (32 bit CPU buses, no hardware support, etc.) have mostly been addressed, so they're a safe default
3 replies 0 retweets 2 likes -
Replying to @jckarter @migueldeicaza and
I'm not sure what makes them a 'safe' default - they are still slower and take up 2x the memory. On the plus side they have more precision, but if you care about precision why would the default matter.
1 reply 0 retweets 1 like -
Replying to @MikeNicolella @migueldeicaza and
Joe Groff Retweeted Steve Canon
Better to start from the position you care about precision and optimize later than the other way aroundhttps://twitter.com/stephentyrone/status/1153388043266646016 …
Joe Groff added,
Steve Canon @stephentyroneReplying to @jckarter @mindbrixIt's not rocket science to get at, to the point that this mostly feels like a bad faith request. You lose a few bits to a poorly-implemented primitive, 12 bits of coordinates to the screen size, then you have a view whose coordinates were poorly chosen or that the API doesn't \1 reply 0 retweets 3 likes -
Replying to @jckarter @migueldeicaza and
Seems weird that the default choice is not the fastest to execute and requires less storage. This is the sort of thing that won't show up in a profiler, but will waste energy in a million small ways.
3 replies 0 retweets 1 like -
Replying to @MikeNicolella @jckarter and
That wasted energy is far easier to detect than numerical errors due to insufficient precision. If that's the way you feel, the default should just be "return 0".
1 reply 0 retweets 2 likes -
Replying to @stephentyrone @jckarter and
Lol. I have no idea what magical profiler you have ever seen that can look at a profile of applications like Chrome or MS Word and say "it looks like if we switch all of our doubles to float we will get measurable gains"
1 reply 0 retweets 0 likes -
Replying to @MikeNicolella @jckarter and
Numerous profilers do it, but for one specific example, Shark back in the PowerPC and Cortex-A8 days was more than happy to make this suggestion.
1 reply 0 retweets 0 likes
I miss Shark!
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.