applicationlayer
Class CFloat

java.lang.Object
  extended by applicationlayer.CFloat

public class CFloat
extends java.lang.Object

Desetinné číslo s nastavitelnou přesností.

 Čísla jsou zobrazena ve tvaru:
 x  =  znaménko * mantisa * 10 ^ exponent
 
 Přesnost čísla v této reprezentaci určuje maximální počet nenulových číslic v mantise, tedy kromě vedoucích a koncových nul.

 znaménko: true pro záporné číslo, false pro kladné číslo
 maximální přesnost: 2147483647
 maximální exponent: 2147483646
 minimální exponent: -2147483646
 


Field Summary
static CFloat CMINUS_INFINITY
          Konstanta určující záporné nekonečno
static CFloat CNaN
          Konstanta určující NaN
static CFloat CPLUS_INFINITY
          Konstanta určující kladné nekonečno
static CFloat CZero
          Konstanta určující kladnou nulu
static int DEFAULT_PRECISION
          Defaultní přesnost, udává skutečný počet nenulových číslic daného čísla
static int MAX_EXPONENT
          Největší exponent, číslo s tímto exponentem je ± nekonečno
static int MIN_EXPONENT
          Nejmenší exponent, číslo s tímto exponentem je ± nula
 
Constructor Summary
protected CFloat()
           
protected CFloat(boolean sign, int exponent, int precision, byte[] mantisa)
          Vytvoří novou CFloat instanci s danými hodnoty
  CFloat(CFloat value)
          Vytvoří kopie dané instance.
  CFloat(double value, int precision)
          Vytvoří novou CFloat instanci z double hodnoty.
  CFloat(long value, int precision)
          Převede long na CFloat.
  CFloat(java.lang.String value)
          Vytvoří novou CFloat instanci z textové reprezentace s defaultní presností.
  CFloat(java.lang.String value, int precision)
          Vytvoří novou instanci z textové reprezentace s dané přesností.
 
Method Summary
 CFloat abs()
          Vrací CFloat, jehož hodnota je absolutní hodnota tohoto CFloat.
 CFloat add(CFloat operand)
          Vrací CFloat číslo, jehož hodnota je (this+operand)
 int compareTo(CFloat val)
          Porovnává tento CFloat číslo s daným CFloat číslem.
 CFloat divide(CFloat operand)
          Vrací CFloat číslo, jehož hodnota je (this/operand)
 int getExponent()
          Vrací exponent tohoto CFloat
 boolean getSign()
          Vrací znaménko tohoto CFloat
 void increment()
          Inkrementuje hodnotu tohoto CFloat čísla o 1 (this = this + 1)
 boolean isInfinity()
          Vrací true jestli tento CFloat je nekonečno a v ostatíim připadě false
 boolean isNan()
          Vrací true jestli tento CFloat je NaN a v ostatíim připadě false
 int isOne()
          Vrací znaménko jestli tento CFloat čislo je 1, v ostatním připadě vrací 0
 boolean isZero()
          Vrací true jestli tento CFloat je 0 a v ostatním připadě false
 CFloat multiply(CFloat operand)
          Vrací CFloat číslo, jehož hodnota je (this*operand)
 CFloat negate()
          Vrací CFloat číslo, jehož hodnota je (-this)
static CFloat one(boolean sign)
          Vrací novou instanci s hodnotou 1, s daným znaménkem
 int round(int count)
          Vrací tento CFloat číslo, jehož hodnota je zaokrouhlován v p místách
 CFloat roundD(int countDec)
          Vrací tento CFloat číslo, jehož hodnota je zaokrouhlován v p desetinných místách
 CFloat subtract(CFloat operand)
          Vrací CFloat číslo, jehož hodnota je (this-operand)
 java.lang.String toString()
          Vrací textovou reprezentaci tohoto CFloat čísla.
static CFloat zero()
          Vrací novou instanci s hodnotou 0
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

DEFAULT_PRECISION

public static final int DEFAULT_PRECISION
Defaultní přesnost, udává skutečný počet nenulových číslic daného čísla

See Also:
Constant Field Values

MAX_EXPONENT

public static final int MAX_EXPONENT
Největší exponent, číslo s tímto exponentem je ± nekonečno

See Also:
Constant Field Values

MIN_EXPONENT

public static final int MIN_EXPONENT
Nejmenší exponent, číslo s tímto exponentem je ± nula

See Also:
Constant Field Values

CMINUS_INFINITY

public static final CFloat CMINUS_INFINITY
Konstanta určující záporné nekonečno


CPLUS_INFINITY

public static final CFloat CPLUS_INFINITY
Konstanta určující kladné nekonečno


CNaN

public static final CFloat CNaN
Konstanta určující NaN


CZero

public static final CFloat CZero
Konstanta určující kladnou nulu

Constructor Detail

CFloat

protected CFloat()

CFloat

public CFloat(java.lang.String value)
Vytvoří novou CFloat instanci z textové reprezentace s defaultní presností.

Parameters:
value - textová reprezentace, ze které má být vytvořena nová instance

CFloat

public CFloat(CFloat value)
Vytvoří kopie dané instance.

Parameters:
value - instance, ze které má být vytvořena kopie

CFloat

public CFloat(java.lang.String value,
              int precision)
Vytvoří novou instanci z textové reprezentace s dané přesností.

Parameters:
value - textová reprezentace, ze které má být vytvořena nová instance
precision - maximální přesnost nově vytvořené instance

CFloat

public CFloat(long value,
              int precision)
Převede long na CFloat.

Parameters:
value - long hodnota, která má byt převedena na CFloat
precision - maximální přesnost nově vytvořené instance

CFloat

public CFloat(double value,
              int precision)
Vytvoří novou CFloat instanci z double hodnoty. K vytvoření se používá textovou reprezentaci dané double hodnoty - Double.toString(value).

Parameters:
value - double hodnota, ze které je vytvořena nová instance
precision - maximální přesnost nově vytvořené instance

CFloat

protected CFloat(boolean sign,
                 int exponent,
                 int precision,
                 byte[] mantisa)
Vytvoří novou CFloat instanci s danými hodnoty

Parameters:
sign - znaménko nově vytvořené instance
exponent - exponent nově vytvořené instance
precision - přesnost nově vytvořené instance
mantisa - mantisa nově vytvořené instance
Method Detail

zero

public static CFloat zero()
Vrací novou instanci s hodnotou 0

Returns:
zápornou nulu

one

public static CFloat one(boolean sign)
Vrací novou instanci s hodnotou 1, s daným znaménkem

Parameters:
sign - znaménko, false pro kladnou jednočku a true zápornou jedničku
Returns:
1 pro sign=false, jinak -1

abs

public CFloat abs()
Vrací CFloat, jehož hodnota je absolutní hodnota tohoto CFloat.

Returns:
abs(this)

negate

public CFloat negate()
Vrací CFloat číslo, jehož hodnota je (-this)

Returns:
-this

increment

public void increment()
Inkrementuje hodnotu tohoto CFloat čísla o 1 (this = this + 1)


round

public int round(int count)
Vrací tento CFloat číslo, jehož hodnota je zaokrouhlován v p místách

Parameters:
count - počet číslic, na který se má zaokrouhlit
Returns:
počet oříznutých číslic

roundD

public CFloat roundD(int countDec)
Vrací tento CFloat číslo, jehož hodnota je zaokrouhlován v p desetinných místách

Parameters:
countDec - počet desetinných míst, na který se má zaokrouhlit
Returns:
roundD(this)

add

public CFloat add(CFloat operand)
Vrací CFloat číslo, jehož hodnota je (this+operand)

Parameters:
operand - , které má být přičteno k tomuto číslu
Returns:
this + operand
Speciální připady
  • +nekonečno + (+nekonečno) = +nekonečno
  • -nekonečno + (-nekonečno) = -nekonečno
  • +nekonečno + (-nekonečno) = NaN
  • NaN + libovolné = NaN

subtract

public CFloat subtract(CFloat operand)
Vrací CFloat číslo, jehož hodnota je (this-operand)

Parameters:
operand - číslo, které má být odečteno od tohoto čísla
Returns:
this - operand

multiply

public CFloat multiply(CFloat operand)
Vrací CFloat číslo, jehož hodnota je (this*operand)

Parameters:
operand - číslo, které má být násobena s tímto číslem
Returns:
this * operand
Speciální případy
  • nenulové kladné * (+nekonečno) = +nekonečno
  • nenulové záporné * (+nekonečno) = -nekonečno
  • nenulové kladné * (-nekonečno) = -nekonečno
  • nenulové záporné * (-nekonečno) = -nekonečno
  • ±nekonečno * (±nula) = NaN
  • +nekonečno * (+nekonečno) = +nekonečno
  • -nekonečno * (-nekonečno) = +nekonečno
  • +nekonečno * (-nekonečno) = -nekonečno
  • libovolné * (NaN) = NaN

divide

public CFloat divide(CFloat operand)
Vrací CFloat číslo, jehož hodnota je (this/operand)

Parameters:
operand - číslo, kterým má být děleno toto číslo
Returns:
this/operand Speciální pripady
  • x÷(+0)=+∞
  • x÷(-0)=-∞
  • 0÷0=NaN
  • (±∞) ÷ (±∞)=NaN
  • x÷(±∞)=0

isOne

public int isOne()
Vrací znaménko jestli tento CFloat čislo je 1, v ostatním připadě vrací 0

Returns:
1 pro kladnou jedničku, -1 pro zápornou jedničku a v ostatním případě 0

isZero

public boolean isZero()
Vrací true jestli tento CFloat je 0 a v ostatním připadě false

Returns:
true jestli je tento číslo 0, v ostatním případě false

isNan

public boolean isNan()
Vrací true jestli tento CFloat je NaN a v ostatíim připadě false

Returns:
true jestli je tento číslo NaN, v ostatním případě false

isInfinity

public boolean isInfinity()
Vrací true jestli tento CFloat je nekonečno a v ostatíim připadě false

Returns:
true jestli je tento číslo 0, v ostatním případě false

getExponent

public int getExponent()
Vrací exponent tohoto CFloat

Returns:
exponent tohoto CFloat

getSign

public boolean getSign()
Vrací znaménko tohoto CFloat

Returns:
sign true jestli je tento CFloat číslo záporné, false pro kladné číslo

compareTo

public int compareTo(CFloat val)
Porovnává tento CFloat číslo s daným CFloat číslem.

Parameters:
val - CFloat, který má být porovnán s tímto CFloat
Returns:
-1, 0 resp. 1 pro this<val, this>val resp. 0 prothis==tval

toString

public java.lang.String toString()
Vrací textovou reprezentaci tohoto CFloat čísla.

Overrides:
toString in class java.lang.Object
Returns:
textová reprezentace tohoto CFloat