Class PairDistribution

    • Constructor Detail

      • PairDistribution

        public PairDistribution​(Distribution first,
                                Distribution second)
        Create a new PairDistribution that represents the product of two other distributions. The alphabet will be the product of the first and seccond distribution's alphabets, and the weights will be the products of the weights for the first and seccond distributions given the first and second component of the symbol respectively.
        Parameters:
        first - the first distribution
        second - the second distribution
    • Method Detail

      • getNullModel

        protected static Distribution getNullModel​(Distribution first,
                                                   Distribution second)
        Get a uniform null model over a PairDistribution over [first,second].
        Parameters:
        first - the first Alphabet
        second - the second Alphabet
        Returns:
        a Distribution that is a uniform distribution over the product of first and second
      • registerWithTrainer

        public void registerWithTrainer​(ModelTrainer trainer)
        Register this paired distribution with a model trainer.
        Parameters:
        trainer - the trainer to register this distribution with.
      • getWeight

        public double getWeight​(Symbol sym)
                         throws IllegalSymbolException
        Description copied from interface: Distribution

        Return the probability that Symbol s is emitted by this spectrum.

        If the symbol is ambiguou, then it is the sum of the probability that each one of the matching symbols was emitted.

        Specified by:
        getWeight in interface Distribution
        Parameters:
        sym - the Symbol emitted
        Returns:
        the probability of emitting that symbol
        Throws:
        IllegalSymbolException - if s is not from this state's alphabet
      • setWeight

        public void setWeight​(Symbol sym,
                              double weight)
                       throws ChangeVetoException
        Description copied from interface: Distribution
        Set the probability or odds that Symbol s is emitted by this state.
        Specified by:
        setWeight in interface Distribution
        Parameters:
        sym - the Symbol emitted
        weight - the probability of emitting that symbol
        Throws:
        ChangeVetoException - if this state does not allow weights to be tampered with, or if one of the listeners vetoed this change
      • registerWithTrainer

        public void registerWithTrainer​(DistributionTrainerContext dtc)
        Description copied from interface: Distribution

        Register this distribution with a training context.

        This should be invoked from within dtc.addDistribution(). This method is responsible for constructing a suitable DistributionTrainer instance and registering it by calling dtc.registerDistributionTrainer(this, trainer). If the distribution is a view onto another distribution, it can force the other to be registered by calling dtc.addDistribution(other), and can then get on with registering it's own trainer.

        Specified by:
        registerWithTrainer in interface Distribution
        Parameters:
        dtc - the DistributionTrainerContext with witch to register a trainer