Floating Point Math
-
Query for all the naysayers ... which would you rather have fast floating point operations or 15 places of accurate precision? Most of my work four places is good enough and I wrote a hurricane damage simulator.
Need custom software developed? I do custom programming based primarily on MS tools with an emphasis on C# development and consulting. "And they, since they Were not the one dead, turned to their affairs" -- Robert Frost "All users always want Excel" --Ennis Lynch
I work on stuff where 15 digits is marginally OK, using plenty of trickery.
CQ de W5ALT
Walt Fair, Jr., P. E. Comport Computing Specializing in Technical Engineering Software
-
Eddy Vluggen wrote:
Size!
It does matter apparently!
Eddy Vluggen wrote:
Ah, just a small bug
That's what she said.
Never underestimate the power of human stupidity RAH
-
Someone, somewhere, is thinking "I am a hurricane damage simulator".
cheers Chris Maunder
Sean been at the hamsters' sunflower hooch again?
-
Query for all the naysayers ... which would you rather have fast floating point operations or 15 places of accurate precision? Most of my work four places is good enough and I wrote a hurricane damage simulator.
Need custom software developed? I do custom programming based primarily on MS tools with an emphasis on C# development and consulting. "And they, since they Were not the one dead, turned to their affairs" -- Robert Frost "All users always want Excel" --Ennis Lynch
I'll have my math float away, thank you! :D
It's an OO world.
public class SanderRossel : Lazy<Person>
{
public void DoWork()
{
throw new NotSupportedException();
}
} -
Mine isn't nearly as accurate. Wind fields in real-life are surprisingly non-deterministic and literally change with the phase of the moon.
Need custom software developed? I do custom programming based primarily on MS tools with an emphasis on C# development and consulting. "And they, since they Were not the one dead, turned to their affairs" -- Robert Frost "All users always want Excel" --Ennis Lynch
Ennis Ray Lynch, Jr. wrote:
and literally change with the phase of the moon.
So do I! Oh no... It's a full moo OOOOOOOOOOH!!! *Howl*
It's an OO world.
public class SanderRossel : Lazy<Person>
{
public void DoWork()
{
throw new NotSupportedException();
}
} -
Query for all the naysayers ... which would you rather have fast floating point operations or 15 places of accurate precision? Most of my work four places is good enough and I wrote a hurricane damage simulator.
Need custom software developed? I do custom programming based primarily on MS tools with an emphasis on C# development and consulting. "And they, since they Were not the one dead, turned to their affairs" -- Robert Frost "All users always want Excel" --Ennis Lynch
-
Query for all the naysayers ... which would you rather have fast floating point operations or 15 places of accurate precision? Most of my work four places is good enough and I wrote a hurricane damage simulator.
Need custom software developed? I do custom programming based primarily on MS tools with an emphasis on C# development and consulting. "And they, since they Were not the one dead, turned to their affairs" -- Robert Frost "All users always want Excel" --Ennis Lynch
Most of my work, 4 byte floats are too inaccurate. Some of my work, doubles barely suffice. All of my work, speed matters. Conclusion: I need both, and I need it yesterday! ;P
GOTOs are a bit like wire coat hangers: they tend to breed in the darkness, such that where there once were few, eventually there are many, and the program's architecture collapses beneath them. (Fran Poretto)
-
Query for all the naysayers ... which would you rather have fast floating point operations or 15 places of accurate precision? Most of my work four places is good enough and I wrote a hurricane damage simulator.
Need custom software developed? I do custom programming based primarily on MS tools with an emphasis on C# development and consulting. "And they, since they Were not the one dead, turned to their affairs" -- Robert Frost "All users always want Excel" --Ennis Lynch
Sometimes you can solve/reduce floating point problems by scaling up - always recording your prices in pennies not dollars for example and your hurricane strength in metric butterflies.
-
Query for all the naysayers ... which would you rather have fast floating point operations or 15 places of accurate precision? Most of my work four places is good enough and I wrote a hurricane damage simulator.
Need custom software developed? I do custom programming based primarily on MS tools with an emphasis on C# development and consulting. "And they, since they Were not the one dead, turned to their affairs" -- Robert Frost "All users always want Excel" --Ennis Lynch
4 base 10 digits would generally be OK if the internal representation was base 10 also. Even with all the digits an IEEE754 64bit float provides, weirdness from the inability to represent 0.1 precisely in binary has an obnoxious habit of leaking into userspace.
Did you ever see history portrayed as an old man with a wise brow and pulseless heart, waging all things in the balance of reason? Is not rather the genius of history like an eternal, imploring maiden, full of fire, with a burning heart and flaming soul, humanly warm and humanly beautiful? --Zachris Topelius Training a telescope on one’s own belly button will only reveal lint. You like that? You go right on staring at it. I prefer looking at galaxies. -- Sarah Hoyt
-
Mine isn't nearly as accurate. Wind fields in real-life are surprisingly non-deterministic and literally change with the phase of the moon.
Need custom software developed? I do custom programming based primarily on MS tools with an emphasis on C# development and consulting. "And they, since they Were not the one dead, turned to their affairs" -- Robert Frost "All users always want Excel" --Ennis Lynch
-
Ennis Ray Lynch, Jr. wrote:
and literally change with the phase of the moon.
So do I! Oh no... It's a full moo OOOOOOOOOOH!!! *Howl*
It's an OO world.
public class SanderRossel : Lazy<Person>
{
public void DoWork()
{
throw new NotSupportedException();
}
} -
I'll have my math float away, thank you! :D
It's an OO world.
public class SanderRossel : Lazy<Person>
{
public void DoWork()
{
throw new NotSupportedException();
}
} -
Query for all the naysayers ... which would you rather have fast floating point operations or 15 places of accurate precision? Most of my work four places is good enough and I wrote a hurricane damage simulator.
Need custom software developed? I do custom programming based primarily on MS tools with an emphasis on C# development and consulting. "And they, since they Were not the one dead, turned to their affairs" -- Robert Frost "All users always want Excel" --Ennis Lynch
Both. In my experience, when I've needed more than just a few digits of precision, its because I'm doing a complex calculation, and that's usually when I've needed both precision and speed.
We can program with only 1's, but if all you've got are zeros, you've got nothing.
-
Query for all the naysayers ... which would you rather have fast floating point operations or 15 places of accurate precision? Most of my work four places is good enough and I wrote a hurricane damage simulator.
Need custom software developed? I do custom programming based primarily on MS tools with an emphasis on C# development and consulting. "And they, since they Were not the one dead, turned to their affairs" -- Robert Frost "All users always want Excel" --Ennis Lynch
I would rather use strings, and convert to accurate precision using Unidex.
-
Query for all the naysayers ... which would you rather have fast floating point operations or 15 places of accurate precision? Most of my work four places is good enough and I wrote a hurricane damage simulator.
Need custom software developed? I do custom programming based primarily on MS tools with an emphasis on C# development and consulting. "And they, since they Were not the one dead, turned to their affairs" -- Robert Frost "All users always want Excel" --Ennis Lynch
A modern 64-bit CPU should be able to do double precision in the exact same time it takes to do single. The only difference is how many bytes (8- 4) are needed to store the answer. Personally, I'd use double precision to the bitter end and then format to any desired width. BTW, my Garmin GPS uses single, but military GPS systems use double for coffee mug precision (a thimble if the antenna would fit) and quad to position (station) satellites.
If you find yourself in a fair fight, your tactics suck. - John Steinbeck
-
Chris Losinger wrote:
i'd love to be able to not have to use 24 bytes per pixel,
er, bits? But, as we all know - palletized images suck when it comes to performing any real manipulation on them, since you're stuck with looking-up the 24 bit values anyway. Alpha-blending images with a pallette? :shudder: Uhhhrgh! Please dont make me do that again. Recomputing a new pallete is more effort than the image processing itself.
For pallet(e)s, all you need is scrub wood and nails. Palettes on the other hand...
-
Query for all the naysayers ... which would you rather have fast floating point operations or 15 places of accurate precision? Most of my work four places is good enough and I wrote a hurricane damage simulator.
Need custom software developed? I do custom programming based primarily on MS tools with an emphasis on C# development and consulting. "And they, since they Were not the one dead, turned to their affairs" -- Robert Frost "All users always want Excel" --Ennis Lynch
True, in most cases such accuracy is unnecessary and thus just CPU cycles wasted. But there are situations where the accuracy could make for easier accomplishments later. Around 2000 the AutoCAD product changed the way it stored polylines (non regular polygons) - the old way was to save each line/arc segment in series as doubles for XYZ values. This had the detriment that the further you move away from 0,0,0 the worse accuracy became, to the point where such polygon was displayed as dis-joint vectors. The "new" method used a start point, then a length, angle and "bulge" for each vector - made computation a lot faster and the polygon itself didn't loose accuracy because of distance from origin. BUT it has a secondary inaccuracy in that its interaction with other objects became prone to errors - which in turn made things like hatching (fill the space between vectors) very problematic. Anyhow, there are quite a few ways people have tried to get both accuracy as well as speed from these figures. As an example: http://keithbriggs.info/mpfs.html[^] So it seems it's something which just always needs to be chosen on a per-problem basis. Similar to the speed-vs-memory trade-off of using BST / HashTable.