Module: DSP::Prepared
- Included in:
- Dct::Two, Decimator, Lpc::Envelope, Window
- Defined in:
- lib/dsprb/prepared.rb,
sig/dsprb.rbs
Overview
Shares one instance per parameter set. What a stage precomputes depends on nothing but its own sizes, so framing a signal need not rebuild it per frame.
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.extended(base) ⇒ void
This method returns an undefined value.
7 8 9 10 |
# File 'lib/dsprb/prepared.rb', line 7 def self.extended(base) base.instance_variable_set(:@prepared, {}) base.instance_variable_set(:@prepared_mutex, Mutex.new) end |
Instance Method Details
#prepared(key) ⇒ void
This method returns an undefined value.
12 13 14 15 16 17 |
# File 'lib/dsprb/prepared.rb', line 12 def prepared(key) found = @prepared[key] return found unless found.nil? @prepared_mutex.synchronize { @prepared[key] ||= yield } end |
#prepared_count ⇒ ::Integer
19 |
# File 'lib/dsprb/prepared.rb', line 19 def prepared_count = @prepared.size |