Interface WeightFunctions<TSequence, TElement, TElementDistribution, TSequenceManipulator, TAutomaton>.IWeightFunction
The part of WeightFunctions<TSequence, TElement, TElementDistribution, TSequenceManipulator, TAutomaton>.IWeightFunction<TThis> API, that is agnostic of the concrete weight function class. Implementations of closed constructed WeightFunctions<TSequence, TElement, TElementDistribution, TSequenceManipulator, TAutomaton>.IWeightFunction<TThis> can all be upcasted to this type.
Namespace: Microsoft.ML.Probabilistic.Distributions.Automata
Assembly: Microsoft.ML.Probabilistic.dll
Syntax
[Quality(QualityBand.Experimental)]
public interface IWeightFunction
Remarks
Types implementing this interface must be constant and thread-safe.
Properties
IsPointMass
Gets a value indicating whether the current weight function assigns a non-zero weight to exactly one point.
Declaration
bool IsPointMass { get; }
Property Value
Type | Description |
---|---|
Boolean |
Point
Gets the only point to which the current function assigns a non-zero weight.
Declaration
TSequence Point { get; }
Property Value
Type | Description |
---|---|
TSequence |
Exceptions
Type | Condition |
---|---|
InvalidOperationException | Thrown when an attempt is made to get the Point of a non-pointmass weight function. |
UsesAutomatonRepresentation
Gets a value indicating whether the current weight function is represented as an automaton internally.
Declaration
bool UsesAutomatonRepresentation { get; }
Property Value
Type | Description |
---|---|
Boolean |
UsesGroups
Checks if the weight function uses groups.
Declaration
bool UsesGroups { get; }
Property Value
Type | Description |
---|---|
Boolean | true if the weight function uses groups, false otherwise. |
Methods
AsAutomaton()
Returns an automaton representation of the current weight function. If the weight function is normalized, the resulting automaton is stochastic, i.e. the sum of weights of all the outgoing transitions and the ending weight is 1 for every node.
Declaration
TAutomaton AsAutomaton()
Returns
Type | Description |
---|---|
TAutomaton |
EnumeratePaths()
Enumerates paths through this weight function.
Declaration
IEnumerable<Tuple<List<TElementDistribution>, double>> EnumeratePaths()
Returns
Type | Description |
---|---|
IEnumerable<Tuple<List<TElementDistribution>, Double>> | The paths through this weight function, with their log weights |
EnumerateSupport(Int32)
Enumerates support of this weight function when possible.
Declaration
IEnumerable<TSequence> EnumerateSupport(int maxCount = 1000000)
Parameters
Type | Name | Description |
---|---|---|
Int32 | maxCount | The maximum support enumeration count. |
Returns
Type | Description |
---|---|
IEnumerable<TSequence> | The sequences in the support of this weight function |
Exceptions
Type | Condition |
---|---|
AutomatonEnumerationCountException | Thrown if enumeration is too large. |
GetLogNormalizer()
Computes the logarithm of the normalizer (sum of values of the weight function on all sequences).
Declaration
double GetLogNormalizer()
Returns
Type | Description |
---|---|
Double | The logarithm of the normalizer. |
Remarks
Returns PositiveInfinity if the sum diverges.
GetLogValue(TSequence)
Computes the logarithm of the value of the weight function on a given sequence.
Declaration
double GetLogValue(TSequence sequence)
Parameters
Type | Name | Description |
---|---|---|
TSequence | sequence | The sequence to compute the value on. |
Returns
Type | Description |
---|---|
Double | The logarithm of the value. |
HasGroup(Int32)
Determines whether this weight function has the specified group (if applicable).
Declaration
bool HasGroup(int group)
Parameters
Type | Name | Description |
---|---|---|
Int32 | group | The specified group. |
Returns
Type | Description |
---|---|
Boolean | True if it the weight function has this group, false otherwise. |
IsZero()
Checks whether the current weight function is zero on all sequences.
Declaration
bool IsZero()
Returns
Type | Description |
---|---|
Boolean | true if the current weight function is zero on all sequences, false otherwise. |
ToString(Action<TElementDistribution, StringBuilder>)
Returns a string that represents the weight function.
Declaration
string ToString(Action<TElementDistribution, StringBuilder> appendElement)
Parameters
Type | Name | Description |
---|---|---|
Action<TElementDistribution, StringBuilder> | appendElement | Optional method for appending at the element distribution level. |
Returns
Type | Description |
---|---|
String | A string that represents the weight function. |
TryEnumerateSupport(Int32, out IEnumerable<TSequence>)
Tries to enumerate support of this weight function.
Declaration
bool TryEnumerateSupport(int maxCount, out IEnumerable<TSequence> result)
Parameters
Type | Name | Description |
---|---|---|
Int32 | maxCount | The maximum support enumeration count. |
IEnumerable<TSequence> | result | The sequences in the support of this weight function |
Returns
Type | Description |
---|---|
Boolean | True if successful, false otherwise |