comp.lang.ada
 help / color / mirror / Atom feed
From: dewar@merv.cs.nyu.edu (Robert Dewar)
Subject: Re: fixed point vs floating point (When do you use it ?)
Date: 1997/11/28
Date: 1997-11-28T00:00:00+00:00	[thread overview]
Message-ID: <dewar.880756276@merv> (raw)
In-Reply-To: 65nafe$u8@lotho.delphi.com


<<  1) Soon stock prices will be in decimal, and thus not accurately                           
representable by binary floating point types.  That's already the case for                   
various commodity prices.  2) For a historical price database, space                         
matters, and fixed point types, depending on the compiler, are in this                       
case easier to store in a substantially smaller number of bytes.  (As I                      
recall, there's only one stock price that doesn't fit in 16 bits with a                      
delta, and small, of 1/8, not counting adjusting the historical record for                   
splits etc.) 3) This database was already in this form.  4) Most of the                      
processing of data of this sort is comparisons, multiplication or division                   
by integers, or addition/subtraction.  Division of one stock price by                        
another is relatively rare, and thus not timing critical, and                                
multiplication of two stock or commodity prices together is even rarer.                      
So any speed advantage of */ fpt on some new machines is not usually                         
important.                                                                                   
>>


First, there is nothing special about binary scaling with respect to
fixed-point. Ada 95 (at least in a full featured implementation such
as GNAT) fully supports decimal fixed-point, as well as ordinary
fixed-point with decimal small values. The former is attractive since
it has deterministic arithmetic semantics, while the latter does not.

Many manipulations of stock prices involve complex calculations, including
computing weighted averages, for which floating-point will be more suitable
(for example, computing the time weighted rate of return, as described in
my paper in Management Science, definitely prefers floating-point, which is
why when I was writing COMVEST, a pension fund portfolio analysis program,
using the TWRR extensively, for the Banking Administration Institute, we
decided to use Fortran instead of COBOL, since we really needed fpt.
Boy that was a long time ago now, the paper is 1971, "An axiomatic
characterization of the Time-Weighted Rate of Return, Vol18, #2).
Of course today, I would prefer to use Ada for COMVEST, but we would
still use floating-point for representing stock prices in that context.

That's not to say that scaled fixed-point might not be more suitable for
some purposes, and certainly for compact external storage, it is a reasonable
medium to choose, although please note that stock prices are sometimes in
1/16 or 1/32 these days, so a uniform scaling in 16-bits is not practical!





  reply	other threads:[~1997-11-28  0:00 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1997-11-28  0:00 fixed point vs floating point (When do you use it ?) tmoran
1997-11-28  0:00 ` Robert Dewar [this message]
  -- strict thread matches above, loose matches on Subject: below --
1997-11-27  0:00 tmoran
1997-11-27  0:00 ` Robert Dewar
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox