diff options
Diffstat (limited to 'hostTools/lzma/compress/AriBitCoder.cpp')
-rw-r--r-- | hostTools/lzma/compress/AriBitCoder.cpp | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/hostTools/lzma/compress/AriBitCoder.cpp b/hostTools/lzma/compress/AriBitCoder.cpp new file mode 100644 index 0000000..ade1888 --- /dev/null +++ b/hostTools/lzma/compress/AriBitCoder.cpp @@ -0,0 +1,21 @@ +#include "AriBitCoder.h" +#include "AriPrice.h" + +#include <cmath> + +namespace NCompression { +namespace NArithmetic { + +static const double kDummyMultMid = (1.0 / kBitPrice) / 2; + +CPriceTables::CPriceTables() +{ + double aLn2 = log(2); + double aLnAll = log(kBitModelTotal >> kNumMoveReducingBits); + for(UINT32 i = 1; i < (kBitModelTotal >> kNumMoveReducingBits) - 1; i++) + m_StatePrices[i] = UINT32((fabs(aLnAll - log(i)) / aLn2 + kDummyMultMid) * kBitPrice); +} + +CPriceTables g_PriceTables; + +}} |