Class: Saulabs::TrueSkill::Factors::Prior

Inherits:
Base
  • Object
show all
Defined in:
lib/saulabs/trueskill/factors/prior.rb

Instance Method Summary collapse

Methods inherited from Base

#bind, #message_count, #reset_marginals, #send_message_at

Constructor Details

#initialize(mean, variance, variable) ⇒ Prior

Returns a new instance of Prior.



9
10
11
12
13
# File 'lib/saulabs/trueskill/factors/prior.rb', line 9

def initialize(mean, variance, variable)
  super()
  @message = Gauss::Distribution.with_variance(mean, variance)
  bind(variable)
end

Instance Method Details

#log_normalizationObject



29
30
31
# File 'lib/saulabs/trueskill/factors/prior.rb', line 29

def log_normalization
  0.0
end

#update_message_at(index) ⇒ Object



15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/saulabs/trueskill/factors/prior.rb', line 15

def update_message_at(index)
  raise "illegal message index: #{index}" if index < 0 || index > 0
  message = @messages[index]
  variable = @variables[index]
  new_marginal = Gauss::Distribution.with_precision(
                   variable.precision_mean + @message.precision_mean - message.precision_mean,
                   variable.precision + @message.precision - message.precision
                 )
  diff = variable - new_marginal
  variable.replace(new_marginal)
  message.replace(@message)
  return diff
end