исторические стоимости ценных бумаг. Данные для каждой минуты в истории OHLC (Open, High, Low, Close). Соответственно, Open это цена в начале минутного интервала, High это максимальное значение в эту минуту, Low - минимальное, и Close - цена закрытия. Стандартные данные для бирж. Мне нужна точность примерно в 1/1000 процента для этих данных. float32 в 50 раз точнее, чем мне нужно. Но вот такое дело - цена меняется очень медленно, может быть можно какую-то компрессию специально для этого случая применить? Дело в том, что у меня очень много этих данных, и на них нужно тренировать алгоритм, держать их в памяти.
Зачем тебе флоат? Интов же хватает. У каждой акции есть минимальный шаг цены.
Стандартно инт тоже 32-битный (но на это не стоит закладываться)
Но в интах, если хранить только разности
Ну базовое решение - дельта-кодирование + Хаффман сверху, да
Он в памяти это хранить хочет. Сжатым хранить?
В идеале да, дельта раскодируется очень быстро Upd. Я не автор запроса, но по формулировке делаю такой вывод
И, кстати, вариации дельты вообще могут в аппаратуру процессора встраивать для сжатия передачи данных между блоками внутри.
Так я же буду в итоге работать с float. Но это не значит, что хранить буду float. Вот думаю, какое лучше представление выбрать, чтобы сжать хорошо и быстро. Причем можно сжать с потерями до определенной точности.
Так я и пишу. Что храни в интах. А работай со флоат
Обсуждают сегодня