% 
%  Experimentujeme  s  cislami, resp. s  ich  obrazmi v  F(2, 53)
%  na ulohe:
%
%  Preco pre MATLAB plati:  1/3 = 0.3333333333333333      ??
%  ---------------------------------------------------------------------------------------
%

format  long e

a = 1/3

a =
       3.333333333333333e-001

%   definujme  b  takto:

b = 3.333333333333333e-001
b =
       3.333333333333333e-001


%  Podla obrazovky ide v oboch pripadoch o tu istu hodnotu.
%  Ocakavali sme, ze  relacny operator nam potvrdi, ze
%  " a  sa  nerovna  b " !

%
%   POZOR :  v  ML je symbol  "="  priradovaci prikaz !
%
%   Relacny operator  ma  oznacenie  "==" .  Preto:

a == b
ans =
         1

%  Preco???  Predsa vieme, ze v skutocnosti:  a ~= b   !

%  Odpoved:

%  Pre  a, b  (ako realne cisla)  plati:   b < a  ( a = 1/3 ),  avsak  
% 
%  odozva  prikazu  "a == b"  je  1   preto, lebo  aj 
%
%  cislo  "b", aj  cislo  "a"  sa zobrazili na ten isty  prvok 
%
%  mnoziny  F(2, 53, -1022, 1023) !   Symbolicky:   fl(a) = fl(b)


%  Situacia  ilustruje:
%  jednak to, ze na format  "long e"  sa  vzdy nie je mozne
%  spolahnut  ( pretoze rozne cisla mozu mat na obrazovke
%  ten isty tvar )
%  a jednak to, ze ani relacny operator  vzdy  " neoddeli "  
%  dve rozne realne cisla  jednoducho preto,  lebo 
%  mnozina  F(2, 53, -1022, 1023)  je len konecna!


%  Berme na vedomie, ze relacne operatory davaju informaciu
%  o tom, akym sposobom su cisla reprezentovane v systeme ML.

%  Experimentujme dalej ...
%  Dozvedeli sme sa, ze lavy  sused  kladneho cisla  "a"  v mnozine
%  F(2, 53)  je cislo:  " b = a - eps*a " 
%
%  Overme, ze aj ked  format  "long e"  nam zobrazi obe cisla  a, b
%  rovnako, relacny operator  dava info, ze ide o dva rozne
%  prvky mnoziny  F(2, 53).

%  Polozme  " b = a - eps*a "

b = a - eps*a
b =
       3.333333333333333e-001
% 
%  Vidime, ze (podla obrazovky)  "a"  sa rovna  "b". 
%  Pouzime  relacny  operator!

a == b

ans =
          0

%  Ako vidime, vnutorna reprezentacia  "a", "b"  je ina.
%  Pre system ML  ide o dva rozne prvky.

%  Presvedcte sa, ze ked  definujete cislo  "c"
%  prikazom  " c = a - (eps/3)*a ",
%  tak  pre ML  uz plati 
%  fl(a) = fl(c),  a preto odozva prikazu  " a == c "  je   1.
%  
%  --------------------------------------------------------------------------------------------
%
%  Zhrnme:

%  Berme na vedomie, ze ani  vo formate  "long e"  nemusime vidiet,
%  ze  ide  o dva rozne  prvky  mnoziny  F(2, 53). 

%  Informaciu o vnutornej reprezentacii cisla v  MATLABe  davaju
%  relacne operatory.

diary off
