Názor k článku Brain Floating Point – nový formát uložení čísel pro strojové učení a chytrá čidla od [object Object] - Pravdivost pri vylouceni NaN a -NaN. x == (int)(float)...

  • Článek je starý, nové názory již nelze přidávat.
  • 11. 2. 2020 22:20

    [object Object]

    Pravdivost pri vylouceni NaN a -NaN.

    x == (int)(float) x

    Obecne ne. Int je typicky 32 bit, float je 32 bit a obsahuje znamenka a exponent, jak to stoji v clanku. Napr. INT_MAX neprojde, jsou to binarne jenom jednicky az na prvni bit a to se do floatu nevleze.

    Ano pro architektury se sizeof(int) <=2, jako treba stare 16 bity.


    x == (int)(double) x

    Ano, mantisa ma u doublu 52 bit, tam se int vleze.


    f == (float)(double) f

    Ano, jde jenom o rozsireni typu.


    d == (float) d

    Ne, 64 bitovy typ se do 32 bit nevleze. Volme treba INT_MAX z prvniho prikladu.


    f == -(-f);

    Ano, znamenka jsou ulozena samostatne.


    2/3 == 2/3.0

    Ne, celociselne deleni neni rovno deleni floatu: 0 != 0.66666.


    d < 0.0 ((d*2) < 0.0)

    Ano, double a floaty by meli pretict do nekonecna.


    d > f -f > -d

    Ano, kdyz to tedy neni chytak, tak floaty a doubly jsou symetricke kolem 0 diky znamenku.


    d * d >= 0.0

    Ano, znamenko se pocita jako xor znamenek. Vyjimkou by byl NaN, ale ty jsou vylouceny.


    (d+f)-d == f

    Ne, treba kdyz d+f je prilis velke a je z toho nekonecno , pak nekonecno minus cislo bude vzdy nekonecno. Neplati treba f=FLT_MAX, d=DBL_MAX.