Пушыстый (_winnie) wrote,
Пушыстый
_winnie

packed float

Если допустимо округление float на ±0.1 процент, то можно хранить число как логарифм по основанию 2^(1/512). 2 байт хватит, что бы записать числа порядка 1.0e±18 (миллиард миллиардов). Деление и умножение - практически бесплатно, конверсию в double-float можно делать через таблицу с 512 элементами и битовые операции.

Сложение - дорогое и неточное. Это скорее для записи готового результата, а не для промежуточных вычислений.

Идея хранить логарифмы вместо чисел не нова. Но хочется обратить внимание на то, что логарифм можно хранить как небольшое целое число. В контексте записи звука или освещённости в пикселах - общее место, но в big data - не распространено.
Tags: math, release, soft-dev
Subscribe
  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 12 comments