unit TypesUnit;

interface

const
  cInfty = 1.7e+308; //Double >0; "nekonečno", někde použito při možnosti dělení nulou ve smyslu: if (delitel = 0) then (podil = nekonecno)
  cBimodalityLessThen = 4; //Double >=1; bimodalita se v histogramech hledá pouze do prvního indexu, v němž histogram dosáhne (maximum histogramu/cBimodalityLessThen)
  cThresholdUp = 255; //Byte; hodnota jasu již při prahování dostanou body s vyšší hodnotou než práh
  cThresholdDown = 0; //Byte; hodnota jasu již při prahování dostanou body s nižší hodnotou než práh
  cFactor = 5; //Word-{0} (dostatečně malý); zvětšení obrazu ve WeightImageForm
  cScale = 100; //Word-{0} (dostatečně malý); délka největší váhy ve WeightImageForm
  cSize = 35; //Word-{0} (dostatečně malý); velikost obrázku ve WeightImageForm je cFactor*(2*cSize+1)
  cWeightColor = $0000FF; //TColor; barva pera, kterým se kreslí váhy ve WeightImageForm
  cWeightWidth = 1; // Byte (dostatečně malý); šířka pera, kterým se kreslí váhy ve WeightImageForm
  cZeroVariance = 10e-6; //Double >0 <<1; hodnota přičtená k rozptylu bodů při adaptivním filtrování (kvůli vyhnutí se dělení 0)
  cGaussStep =0.005; //Double >0 (dostatečně malý); délka kroku v GaussUnit

type
  TByteArray = array of Byte;
  TByteMatrix = array of TByteArray;
  TIntField = array[0..1] of array of array of Integer;
  TFloatArray = array of Double;
  TFloatMatrix = array of TFloatArray;

function RoundUp(Num: Double): Integer;

implementation

function RoundUp(Num: Double): Integer;
{Zaokrouhlí reálné číslo na integer a to vždy nahoru, tj.:
  a) 2.1 na 3
  b) -2.7 na -2
  c) 2 na 2}
begin
  if Num <= 0 then
    Result:=Trunc(Num)
  else
    if Frac(Num) = 0 then
      Result:=Round(Num)
    else
      Result:=Trunc(Num)+1;
end;

end.
 