
Re: 754 is great, but...
anon5532556
1/13/2014 3:11:34 PM
Not bit slice. T did use the AMD 2901 and 29116 for a while though.
The 9511 was a 32 bit floating point chip with 8 bit bus. Easy to hook to a Z80 etc. It directly handled a bunch of curve type functions and the like. Mostly used it for sin/cos/tan things doing earth curvature work. The 9512 was much simpler but wider inside. Both ran hot, and cost a lot.
Oddly enough it looks like MicroMega currently sells an FPU for microcontroller projects. That has to be going away though, as the ARM 32F4 part I'm using today does floating point so fast I regularly use it in interrupt routines.
Re: 754 is great, but...
TanjB
1/11/2014 2:39:00 AM
Those were AMD bitslice micros? I used the Intel 300x and the AMD 291x, which were 2 and 4 bit slices.
16 bit FP is making a comeback. You can find it supported in some current GPUs. I believe it is used mostly to represent high dynamic range graphical data but there are probably other uses.
Of course, 8 bit FP was actually hugely important. The Alaw and mulaw codecs used by all phone networks in the ISDN days, still used in some landlines and voice exchanges, were essentially FP with a sign, 3 bit exponent, and 4 bit fraction (with implied leftmost 1, just like IEEE formats).
Re: Decimal floating point...
TanjB
1/11/2014 2:32:48 AM
BetaJet, well yeah it would be nice to have a "proper analysis" but modern optimization software handles problems so huge (matrix dimensions millions of rows and columns) that noone really has a proper theory of what happens. As you say, FP is actually a set of fractional approximations and there are situations where severe loss of precision can occur. Observation suggests there are real world reasons why actual optimization problems routinely come close to singularity. In practice all commercial packages have black art tweaks to detect and recover.
One of my colleagues wrote an infinite (ulimited rationals) precision arithmetic package and we used that to get some insights and to check what the true optimal solutions were for some test cases. It was educational but too slow for real world use.
The field has changed enormously since JvN's time. Heck I think he died in that car crash before Simplex even became widespread. Numerical optimization theory blossomed in the 1980s with real insights into nonlinear, and then the implementations accelerated enormously in the 1990s and 2000s. Only the square root of the improvement due to hardware, the rest due to clever algorithms. I'm sure that John would love the kinds of optimization which we do today for monster problems like deep neural networks but it is a hugely different field than what he helped start.
@betajet: ...once you've done your numerical analysis you've already completed most of the work needed to represent your problem using fixedpoint arithmetic.
LOL I think the main thing is to understand what one is trying to do and take the expected data and application into account. As you note, if you perform Y + X where Y is a very big value and X is a very small one, you will end up with just Y .... but if X and Y are both in the same ballpark sizewise, then the problem is much reduced.
Re: 754 is great, but...
anon5532556
1/8/2014 3:22:44 PM
Speaking of home built libs, I made some rough 16 bit floating point stuff a long time ago during the dinosaur micros. Also a couple of crude 12 and 8 bit versions. Don't laugh, it was sometimes kinda useful for working with curves like audio gains etc. And less bits made certain lookup tables possible, giving mathless math and fast calcs to a slow bit banger if you had a bodacious eprom etc.
Nice write up btw :)
PS: Anybody else use the AMD 9511 or 9512?
Re: Decimal floating point...
betajet
1/8/2014 2:07:22 PM
If your calculations are becoming unstable even with double precision, it's time to step back and do a proper numerical analysis of your problem. Here's what too many people forget: floatingpoint numbers are not real numbers, so the normal laws of real numbers  like associativity of addition  do not apply. When you add a tiny floatingpoint number X to a big floatingpoint number Y, all the bits of X fall into the bit bucket and you end up with Y, not X+Y. Sometimes you need to use algebraic tricks to rewrite your formulas into expressions that are stable for your problem and hope the compiler doesn't "optimize" them.
I've read that John von Neumann greatly disliked floatingpoint because (1) he'd rather use those exponent bits for more precision, and (2) once you've done your numerical analysis you've already completed most of the work needed to represent your problem using fixedpoint arithmetic.
@TanjB: ...as for the need for precision in a world where resistors might be accurate only to a percent, it is amazing how easy it is to get yourself into trouble with the math once you start doing simulations and...
VERY good point!!!
Re: Decimal floating point...
TanjB
1/8/2014 11:51:31 AM
Yep. And in practice decimal FP is not ideal for financial calculations.
FP calculations (in any radix) are common in engineering, science, and anything approximate. Even in finance they are perfectly fine to use in situations like estimating future or present value, or allocating budgets.
When it comes to accounting for the cents, however, fixed point is more likely what you want. Most of those operations are multiplies, adds and subtracts, which are exact in fixed point, with the occasional fraction like taxes which have rounding rules built in.
And as for the need for precision in a world where resistors might be accurate only to a percent, it is amazing how easy it is to get yourself into trouble with the math once you start doing simulations and (much, much trickier) optimizations. Simple components like transformers are nearly singularities. Numerical optimization packages are black arts mostly because of the clever tweaks needed to efficiently detect and work around problems with the limited (!) precision of 64 bit doubles.
@Azassoko: Sic transit gloria mundi
"Obesa cantavit" (The fat lady has sung :)
@cpetras: The IEEE 754 standard (2008) has introduced decimal floating point.
Didn't it actually introduce multiradix floatingpoint, of which decimal is one incarnation, or was decimal singled out?




6/29/2017 7:37:47 AM
6/29/2017 7:37:47 AM
6/29/2017 7:18:09 AM
6/29/2017 5:41:27 AM
6/29/2017 3:08:45 AM
6/29/2017 2:23:19 AM
6/29/2017 1:47:03 AM
6/29/2017 1:36:21 AM
6/28/2017 10:20:54 PM
6/28/2017 9:46:01 PM

