> a. There is definitely nothing there which _has_ to use floating point. > b. There is nothing there for which the speed would necessarily be > made faster by using hardware floating point instead of well written > integer math. > c. The point is somewhat academic anyway, as the amount of processing > power needed to accomplish this feat is way beyond what could be placed in > a portable platform today. By the time it is possible to accomplish this > processors will have advanced a long way from what we have today, and we > will probably be arguing instead about whether it is better to write code > which is able to be spread across many low end processors, or to take the > easy way out and us one large, high power consumption processor. The kinds > of applications more suited to today's computing power are not so reliant > on floating point (except perhaps for voice recognition, and we do not > have any decent Open Source voice recognition software anyway yet). But we *do* have open source for imaging. The VideoOrbits head tracker (useful for a variety of imaging applications) is COSHER (Completely Open Source Headers, Engineering and Research), and available now from wearcam.org/orbits It uses floating point (the first version I wrote in FORTRAN before our lab had any C compilers on any of our computers --- this was on an old VAX computer). Later we ported it to C. At that time, it was a little harder to write in C, because FORTRAN allowed things like complex numbers to be done directly in the abstract sense. Yes you can handle real and imaginary parts separately but it takes more work to program it. To take it a step further, yes you can do it in integer (and I even hacked together an integer version of it) but it takes more work still. Now with C++ people are defining complex arithmetic, vectors, matrices, etc.. These often make use of F.P. number crunching power. You don't need those abstractions, but they do make life easier. You can do everything in integer if you want to, but it will just be more work and take you longer to implement your ideas. The next step after that is doing it in binary arithmetic, programming directly this way. Sure you can do it, but it will just take you longer. Thus each level is an abstraction built on top of the others: binary; whole numbers; integers; reals; extended reals; complex numbers;... The whole point here is ease of programming. If there's anyone out there who wants to port VideoOrbits to StrongARM, that would be great. So far I haven't seen anyone with the ambition to do this, so as far as I am concerned (and this is just my opinion, take it or leave it), integer computers are harder to use, and are thus not as user-friendly, and therefore not as useful as computers that support higher level mathematical abstractions. Maybe someone would want to implement VideoOrbits in binary??? (e.g. maybe write it in hand-assembled machine instructions) as per (a), (b), and (c) above, this will run faster and makes higher level math unnecessary, but it takes more time to code. Steve Prof. S. Mann U. Toronto Dept. E.C.E. http://wearcam.org/mann.html -- Subcription/unsubscription/info requests: send e-mail with subject of "subscribe", "unsubscribe", or "info" toWear-Hard Mailing List Archive (searchable): http://wearables.ml.org
From Wear-Hard Mailing list Archive (WH)
Maintained by R. Paul McCarty
Archive created with babymail