public abstract class NvmmLikelihoodAscentEM(T) : MixtureOptimizer!T, LikelihoodAscent!T
if(isFloatingPoint!T)
Normal variance-mean mixture optimizer
public this(
    in T[] _grid, 
    size_t maxLength)
Constructor
Contracts
in
{
    assert (_grid.length);
    assert (maxLength);
}
Parameters
| _grid | Array of parameters u. [u_1, ..., u_k]  | 
| maxLength | maximal length of sample  | 
public final void optimize(
    scope bool delegate(
        T betaPrev, 
        T beta, 
        T likelihoodValuePrev, 
        T likelihoodValue, 
        in T[] weightsPrev, 
        in T[] weights
        ) tolerance, 
    scope bool delegate(
        T a, 
        T b
        ) @nogc nothrow findRootTolerance = null)
Performs optimization.
Parameters
| tolerance | Defines an early termination condition. Receives the current and previous versions of various parameters. The delegate must return true when parameters are acceptable.  | 
| findRootTolerance | Tolerance for inner optimization.  | 
Throws
FeaturesException if isFeaturesCorrect is false.
See Also:
public final void optimize(
    scope bool delegate(
        T betaPrev, 
        T beta, 
        T likelihoodValuePrev, 
        T likelihoodValue
        ) tolerance, 
    scope bool delegate(
        T a, 
        T b
        ) @nogc nothrow findRootTolerance = null)
Performs optimization.
Parameters
| tolerance | Defines an early termination condition. Receives the current and previous versions of various parameters. The delegate must return true when parameters are acceptable.  | 
| findRootTolerance | Tolerance for inner optimization.  | 
Throws
FeaturesException if isFeaturesCorrect is false.
See Also:
public final void optimize(
    scope bool delegate(
        T betaPrev, 
        T beta, 
        in T[] weightsPrev, 
        in T[] weights
        ) tolerance, 
    scope bool delegate(
        T a, 
        T b
        ) @nogc nothrow findRootTolerance = null)
Performs optimization.
Parameters
| tolerance | Defines an early termination condition. Receives the current and previous versions of various parameters. The delegate must return true when parameters are acceptable.  | 
| findRootTolerance | Tolerance for inner optimization.  | 
Throws
FeaturesException if isFeaturesCorrect is false.
See Also:
public final void sample(in T[] _sample) @property
Sets sample and recalculates beta and mixture.
Contracts
in
{
    assert (_sample.length <= this._sample.length);
    
    foreach (s; _sample)
    {
        assert (std.math.isFinite(s));
    }
    assert (_featuresT.matrix.shift >= _sample.length);
}
Parameters
| _sample | new sample with length less or equal   | 
Throws
FeaturesException if isFeaturesCorrect is false.
public final const(T)[] sample() @property const
Returns
Const slice of the internal sample representation.
public final T mean() @property const
Returns
sample mean
public final T beta() @property const
Returns
beta
public final const(T)[] grid() @property const
Returns
Const slice of the internal grid representation.
Functions
| this | Constructor  | |
| optimize | Performs optimization.  | |
| optimize | Performs optimization.  | |
| optimize | Performs optimization.  | |
| sample@property | Sets sample and recalculates beta and mixture.  | |
| sample@property, const | Returns:  Const slice of the internal sample representation.  | |
| mean@property, const | Returns:  sample mean  | |
| beta@property, const | Returns:  beta  | |
| grid@property, const | Returns:  Const slice of the internal grid representation.  | 
Structs
| CorePDF |