This is all very well, but the point of a representation is that it not only lets you represent values, it expedites calculating with them. Storing the asinh makes addition difficult, and multiplication very difficult. Franklin T. Adams-Watters -----Original Message----- From: Henry Baker <hbaker1@pipeline.com> After thinking about it some more, the "binary" version of asinh doesn't seem to help very much in calculating/manipulating the representation. So it seems easier to stick with the traditional definition, which still has the advantage that for small x, asinh(x)~x. To extract the binary exponent from asinh(|x|), multiply by 1/ln(2)~1.442695041, convert to an integer, and subtract 1. So to compete with IEEE single precision floating point, I suggest the representation: asinhIEEE(x)=round(asinh(x*2^126)*2^23) as a 32-bit fixed point number. The "sign bit" is the high-order bit, the "exponent" is the next 8 bits, and the "mantissa" is 23 bits. The largest IEEE single precision float is ~2^128 ~ 3.4x10^38, so asinhIEEE(3.4*10^38) ~ 1,482,700,732 (easily representable in 31 bits) The smallest IEEE single precision normalized float is ~2^-126 ~ 1.18*10^-38, so asinhIEEE(1.18*10^-38) ~ 7,416,212 (a 23-bit number) The smallest IEEE single precision denormalized float is ~2^-149 ~ 1.4*10^-45, so asinhIEEE(1.4*10^-45) ~ 1 The "binary exponent" of |x| can be extracted as asinhIEEE(|x|)/2^23/ln(2)-127, i.e., shift to the right 23 bits, multiply by 1/ln(2) and subtract 127. So it appears that asinh can smoothly represent the IEEE "gradual underflow"/denorms. _______________________________________________ math-fun mailing list math-fun@mailman.xmission.com http://mailman.xmission.com/cgi-bin/mailman/listinfo/math-fun