libak  0.4.0
Functions
Multiplication of mixture components
Algorithms

Functions

void ak_mixtcompmult_free (akMixtCompMult *mcmu)
 Frees memory.
akMixtCompMult * ak_mixtcompmult_new (akCModel *cmodel, akMixCounts *mcounts, char **err)
 Gets an akMixtCompMult.
void ak_mu_mixture_components (akMixtCompMult *mcmu, unsigned int c, unsigned int q, unsigned int newI)
 Multiplies mixture components.
void ak_mu_tmixture_components (akMixtCompMult *mcmu, unsigned int newI)
 Multiplies the mixture components of a TiedState model.
void ak_mu_tmixture_components_state (akMixtCompMult *mcmu, const char *state, unsigned int newI)
 Multiplies the mixture components of a tied state.

Function Documentation

void ak_mixtcompmult_free ( akMixtCompMult *  mcmu)

Frees memory.

Frees the memory allocated for the mixture component multiplier.

Parameters:
mcmuThe mixture component multiplier.
akMixtCompMult* ak_mixtcompmult_new ( akCModel cmodel,
akMixCounts mcounts,
char **  err 
)

Gets an akMixtCompMult.

This function creates a mixture component multiplier for a given character models set. Currently supported types are: Bernoulli mixtures and DGaussian mixtures.

Parameters:
cmodelThe character models to modify.
mcountsThe mixture coefficient counts of the model or NULL. If the counts are provided then the 'min_occ' parameter is used as stop criterion, guarantying a minimum occupancy in each mixture component.
errPointer to string variable. If not NULL an error message is allocated in the variable in case of error.
Returns:
The mixture component multiplier, or NULL in case of error.
void ak_mu_mixture_components ( akMixtCompMult *  mcmu,
unsigned int  c,
unsigned int  q,
unsigned int  newI 
)

Multiplies mixture components.

This function multiplies the mixture components of the specified state. New components are created until reaching the desired number, or minimum occupancy value is reached (if mixture coefficients counts are provided). If the desired number is less than the current number of components then nothing happens. Each new component is created by removing the component with the highest mixture coefficient (or count) and adding two new components which are perturbations of the removed component with the half of the mixture coefficient probability. If mixture counts are provided, then they are also updated. Bernoulli mixture components are perturbed as $\vec{p}\pm\vec{0.05}$. DGaussian mixture components are perturbed as $\vec{\mu}\pm 0.2*\sqrt{\sigma^2}$. If newI is 0, then mixture coefficients are ignored and all mixture components of the specified state are split (if the minimum occupancy allows it).

Parameters:
mcmuThe mixture component multiplier.
cCharacter model to be modified.
qState to be modified.
newIThe desired number of mixture components.
void ak_mu_tmixture_components ( akMixtCompMult *  mcmu,
unsigned int  newI 
)

Multiplies the mixture components of a TiedState model.

This function multiplies all the mixture components of the related TiedStates-Mixture model. Components are multiplied as in ak_mu_mixture_components.

Parameters:
mcmuThe mixture component multiplier.
newIThe desired number of mixture components in each state.
void ak_mu_tmixture_components_state ( akMixtCompMult *  mcmu,
const char *  state,
unsigned int  newI 
)

Multiplies the mixture components of a tied state.

This function multiplies the mixture components of the specified tied state. Components are multiplied as in ak_mu_mixture_components.

Parameters:
mcmuThe mixture component multiplier.
stateThe tied state name.
newIThe desired number of mixture components.
 All Data Structures Variables