package Distrib;
###########################################
# Distrib - Stats distribution helper
# 2014, Mike Schilli <m@perlmeister.com>
###########################################
use Moose;

has 'values' => (is => 'rw', isa => 'HashRef', 
                 default => sub { {} } );

sub set {
    my( $self, $hypo, $prob ) = @_;
    
    $self->values()->{ $hypo } = $prob;
}

sub mult {
    my( $self, $hypo, $prob ) = @_;

    $self->values()->{ $hypo } *= $prob;
}

sub normalize {
    my( $self ) = @_;

    my $values = $self->values();
    my $sum    = 0;

    for my $hypo ( keys %$values ) {
        $sum += $values->{ $hypo };
    }
    for my $hypo ( keys %$values ) {
        $values->{ $hypo } /= $sum;
    }
}

sub prob {
    my( $self, $hypo ) = @_;

    return $self->values()->{ $hypo };
}

1;
