Files
news.gitea.happylizard.me/bin/gems/facets-3.1.0/lib/standard/facets/math/kldivergence.rb
T
pizza2d1 4cee170d66
Gitea Actions Demo / Explore-Gitea-Actions (push) Failing after 9s
Add bin and edit workflow
2026-09-16 13:11:16 -06:00

20 lines
510 B
Ruby

module Math
# The Kullback-Leibler divergence from this array to that of +q+.
#
# NB: You will possibly want to sort both P and Q before calling this
# depending on what you're actually trying to measure.
#
# http://en.wikipedia.org/wiki/Kullback-Leibler_divergence
#
def self.kldivergence(array, q)
fail "Buggy."
fail "Cannot compare differently sized arrays." unless size = q.size
kld = 0
each_with_index { |pi,i| kld += pi*Math::log(pi.to_f/q[i].to_f) }
kld
end
end