module Prolly::RandVar::Prob
Public Instance Methods
prob()
click to toggle source
# File lib/prolly/rand_var/prob.rb, line 6 def prob #puts "P(#{@rv} | #{@gv})" raise StandardError.new("Cannot use prob on this RV") if @spec_rv.empty? if @uspec_gv.empty? and @spec_gv.empty? prob_rv_eq else prob_rv_eq_gv_eq end end
Private Instance Methods
prob_rv_eq()
click to toggle source
P(color=green) P(color=green, size=small) P(color=[green, blue])
# File lib/prolly/rand_var/prob.rb, line 22 def prob_rv_eq numer = self.count() denom = @pspace.count(@spec_rv.keys) if denom == 0.0 return 0.0 else return numer.to_f / denom end end
prob_rv_eq_gv()
click to toggle source
P(color=green | size)
For now, this is like P(color=green)
# File lib/prolly/rand_var/prob.rb, line 50 def prob_rv_eq_gv numer = @pspace.count(@spec_rv) denom = @pspace.count(@uspec_gv) return numer.to_f / denom end
prob_rv_eq_gv_eq()
click to toggle source
P(color=green | size=small) P(color=green, size=small | texture=smooth) P(color=green | size=small, texture=smooth)
# File lib/prolly/rand_var/prob.rb, line 36 def prob_rv_eq_gv_eq numer = @pspace.count(@spec_rv.merge(@spec_gv)) denom = @pspace.count(@spec_gv) if denom == 0.0 return 0.0 else return numer.to_f / denom end end