frysk.value
Class FloatingPoint854Format

java.lang.Object
  extended by frysk.value.FloatingPointFormat
      extended by frysk.value.FloatingPoint854Format

public class FloatingPoint854Format
extends FloatingPointFormat


Field Summary
static FloatingPointFormat IEEE128
           
static FloatingPointFormat IEEE32
           
static FloatingPointFormat IEEE64
           
static FloatingPointFormat IEEE80
           
static FloatingPointFormat IEEE96
           
private  int integralOfMantissa
           
private  Packing packExponent
           
private  Packing packFraction
           
private  int size
           
private  int sizeE
           
private  int sizeF
           
private static BigDecimal two
           
 
Constructor Summary
FloatingPoint854Format(int size, int idxE, int sizeE, int idxF, int sizeF)
           
 
Method Summary
private  BigDecimal divide(BigDecimal a, BigDecimal b)
           
(package private)  BigInteger getBiasedExponent(byte[] bytes)
           
(package private)  BigInteger getFraction(byte[] bytes)
           
(package private)  int getIntegralOfMantissa(byte[] bytes)
           
private  BigDecimal getMantissa(BigInteger f, BigInteger e, int sizeOfF)
          Gets mantissa value according to IEEE 754/854 floating point rules
private  BigDecimal getMantissaExtended(BigInteger f, int sizeOfF)
           
(package private)  BigInteger getMaxEValue()
           
(package private)  int getSign(byte[] bytes)
           
(package private)  byte[] pack(BigFloatingPoint value, int size)
          FIXME: Convert to byte[] using Packing methods.
private  BigFloatingPoint toBigFP(int s, BigInteger e, BigInteger f, BigInteger maxE)
          Calculate floating point value according to IEEE 754/854 rules.
(package private)  BigFloatingPoint unpack(byte[] bytes)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

IEEE32

public static final FloatingPointFormat IEEE32

IEEE64

public static final FloatingPointFormat IEEE64

IEEE128

public static final FloatingPointFormat IEEE128

IEEE80

public static final FloatingPointFormat IEEE80

IEEE96

public static final FloatingPointFormat IEEE96

packExponent

private Packing packExponent

packFraction

private Packing packFraction

sizeF

private int sizeF

sizeE

private int sizeE

size

private int size

integralOfMantissa

private int integralOfMantissa

two

private static final BigDecimal two
Constructor Detail

FloatingPoint854Format

FloatingPoint854Format(int size,
                       int idxE,
                       int sizeE,
                       int idxF,
                       int sizeF)
Parameters:
size - - size of floating point in bytes
idxE - - begin bit index of exponent field
sizeE - - bit size of exponent field
idxF - - begin bit index of fraction field
sizeF - - size of fraction field Note: include j bit in fraction field, where applicable.
Method Detail

unpack

BigFloatingPoint unpack(byte[] bytes)
Specified by:
unpack in class FloatingPointFormat

getSign

int getSign(byte[] bytes)
Returns:
0 for negative and 1 for positive values FPs.

getBiasedExponent

BigInteger getBiasedExponent(byte[] bytes)

getFraction

BigInteger getFraction(byte[] bytes)

getIntegralOfMantissa

int getIntegralOfMantissa(byte[] bytes)

getMaxEValue

BigInteger getMaxEValue()

getMantissa

private BigDecimal getMantissa(BigInteger f,
                               BigInteger e,
                               int sizeOfF)
Gets mantissa value according to IEEE 754/854 floating point rules

Parameters:
f - - value of fraction field (including j bit where applicable)
e - - value of exponent field
sizeOfF - - bit size of fraction field (including j bit where applicable)
Returns:
mantissa

getMantissaExtended

private BigDecimal getMantissaExtended(BigInteger f,
                                       int sizeOfF)

toBigFP

private BigFloatingPoint toBigFP(int s,
                                 BigInteger e,
                                 BigInteger f,
                                 BigInteger maxE)
Calculate floating point value according to IEEE 754/854 rules.

Parameters:
s - - sign bit
e - - value of exponent field
m - - mantissa
maxE - - max possible value of exponent field

divide

private BigDecimal divide(BigDecimal a,
                          BigDecimal b)

pack

byte[] pack(BigFloatingPoint value,
            int size)
FIXME: Convert to byte[] using Packing methods. Need to store mantissa and exponent value?

Specified by:
pack in class FloatingPointFormat