Class: Omnizip::Algorithms::PPMd8::Context

Inherits:
Omnizip::Algorithms::PPMd7::Context show all
Includes:
Constants
Defined in:
lib/omnizip/algorithms/ppmd8/context.rb

Overview

PPMd8 Context - Enhanced version with Union types

Represents a context node in the PPMd8 model tree. PPMd8 uses optimized memory layout with Union types.

Constant Summary

Constants included from Constants

Omnizip::Algorithms::PPMd8::Constants::BIN_SCALE, Omnizip::Algorithms::PPMd8::Constants::DEFAULT_RESTORE_METHOD, Omnizip::Algorithms::PPMd8::Constants::GLUE_COUNT_THRESHOLD, Omnizip::Algorithms::PPMd8::Constants::INIT_ESCAPE_FREQ, Omnizip::Algorithms::PPMd8::Constants::INTERVAL, Omnizip::Algorithms::PPMd8::Constants::INT_BITS, Omnizip::Algorithms::PPMd8::Constants::MAX_FREQ, Omnizip::Algorithms::PPMd8::Constants::MAX_STATES, Omnizip::Algorithms::PPMd8::Constants::PERIOD_BITS, Omnizip::Algorithms::PPMd8::Constants::PROB_TOTAL, Omnizip::Algorithms::PPMd8::Constants::RESTORE_METHOD_CUT_OFF, Omnizip::Algorithms::PPMd8::Constants::RESTORE_METHOD_RESTART, Omnizip::Algorithms::PPMd8::Constants::SEE_CONTEXTS, Omnizip::Algorithms::PPMd8::Constants::SUFFIX_CONTEXTS, Omnizip::Algorithms::PPMd8::Constants::UNIT_ALLOC_SIZE, Omnizip::Algorithms::PPMd8::Constants::UNIT_SIZE

Constants included from Omnizip::Algorithms::PPMd7::Constants

Omnizip::Algorithms::PPMd7::Constants::ALPHABET_SIZE, Omnizip::Algorithms::PPMd7::Constants::BIN_SCALE, Omnizip::Algorithms::PPMd7::Constants::BOT_VALUE, Omnizip::Algorithms::PPMd7::Constants::DEFAULT_MEM_SIZE, Omnizip::Algorithms::PPMd7::Constants::DEFAULT_ORDER, Omnizip::Algorithms::PPMd7::Constants::INIT_ESCAPE_FREQ, Omnizip::Algorithms::PPMd7::Constants::INTERVAL, Omnizip::Algorithms::PPMd7::Constants::INT_BITS, Omnizip::Algorithms::PPMd7::Constants::MAX_FREQ, Omnizip::Algorithms::PPMd7::Constants::MAX_MEM_SIZE, Omnizip::Algorithms::PPMd7::Constants::MAX_ORDER, Omnizip::Algorithms::PPMd7::Constants::MAX_STATES, Omnizip::Algorithms::PPMd7::Constants::MIN_MEM_SIZE, Omnizip::Algorithms::PPMd7::Constants::MIN_ORDER, Omnizip::Algorithms::PPMd7::Constants::PERIOD_BITS, Omnizip::Algorithms::PPMd7::Constants::PROB_TOTAL, Omnizip::Algorithms::PPMd7::Constants::SEE_CONTEXTS, Omnizip::Algorithms::PPMd7::Constants::SUFFIX_CONTEXTS, Omnizip::Algorithms::PPMd7::Constants::TOP_VALUE, Omnizip::Algorithms::PPMd7::Constants::UNIT_ALLOC_SIZE, Omnizip::Algorithms::PPMd7::Constants::UNIT_SIZE

Instance Attribute Summary collapse

Attributes inherited from Omnizip::Algorithms::PPMd7::Context

#escape_freq, #order, #states, #suffix

Instance Method Summary collapse

Methods inherited from Omnizip::Algorithms::PPMd7::Context

#add_symbol, #find_symbol, #needs_escape?, #num_symbols, #root?, #symbols_by_frequency, #total_freq, #update_symbol

Constructor Details

#initialize(order, suffix) ⇒ Context

Returns a new instance of Context.



17
18
19
20
21
22
23
# File 'lib/omnizip/algorithms/ppmd8/context.rb', line 17

def initialize(order, suffix)
  super
  @num_stats = 0
  @flags = 0
  @sum_freq = 0
  @glue_count = 0
end

Instance Attribute Details

#flagsObject

Returns the value of attribute flags.



15
16
17
# File 'lib/omnizip/algorithms/ppmd8/context.rb', line 15

def flags
  @flags
end

#glue_countObject

Returns the value of attribute glue_count.



15
16
17
# File 'lib/omnizip/algorithms/ppmd8/context.rb', line 15

def glue_count
  @glue_count
end

#num_statsObject

Returns the value of attribute num_stats.



15
16
17
# File 'lib/omnizip/algorithms/ppmd8/context.rb', line 15

def num_stats
  @num_stats
end

#sum_freqObject

Returns the value of attribute sum_freq.



15
16
17
# File 'lib/omnizip/algorithms/ppmd8/context.rb', line 15

def sum_freq
  @sum_freq
end

Instance Method Details

#needs_restoration?Boolean

PPMd8-specific: Check if context needs memory restoration

Returns:

  • (Boolean)


26
27
28
# File 'lib/omnizip/algorithms/ppmd8/context.rb', line 26

def needs_restoration?
  @glue_count >= GLUE_COUNT_THRESHOLD
end