Search Results for

    Show / Hide Table of Contents

    Class DistributionRefArray2D<T, DomainType>

    A distribution over a 2D array of type DomainType, where each element is independent and has distribution of type T

    Inheritance
    Object
    ArrayBase<T>
    Array2D<T>
    DistributionArray2D<T>
    DistributionArray2D<T, DomainType>
    DistributionRefArray2D<T, DomainType>
    Implements
    CanSetAllElementsTo<T>
    IReadOnlyList<T>
    IReadOnlyCollection<T>
    IArray2D<T>
    IArray<T>
    IList<T>
    ICollection<T>
    IEnumerable<T>
    IEnumerable
    SettableTo<T[,]>
    SettableTo<Array2D<T>>
    ConvertibleToArray
    IDistribution<DomainType[,]>
    IDistribution
    ICloneable
    Diffable
    SettableToUniform
    HasPoint<DomainType[,]>
    CanGetLogProb<DomainType[,]>
    Sampleable<DomainType[,]>
    SettableTo<DistributionRefArray2D<T, DomainType>>
    SettableToProduct<DistributionRefArray2D<T, DomainType>>
    SettableToProduct<DistributionRefArray2D<T, DomainType>, DistributionRefArray2D<T, DomainType>>
    SettableToRatio<DistributionRefArray2D<T, DomainType>>
    SettableToRatio<DistributionRefArray2D<T, DomainType>, DistributionRefArray2D<T, DomainType>>
    SettableToPower<DistributionRefArray2D<T, DomainType>>
    SettableToWeightedSum<DistributionRefArray2D<T, DomainType>>
    CanGetLogAverageOf<DistributionRefArray2D<T, DomainType>>
    CanGetLogAverageOfPower<DistributionRefArray2D<T, DomainType>>
    CanGetAverageLog<DistributionRefArray2D<T, DomainType>>
    Inherited Members
    DistributionArray2D<T, DomainType>.Point
    DistributionArray2D<T, DomainType>.IsPointMass
    DistributionArray2D<T, DomainType>.GetLogProb(DomainType[,])
    DistributionArray2D<T, DomainType>.Sample()
    DistributionArray2D<T, DomainType>.Sample(DomainType[,])
    DistributionArray2D<T>.SetToUniform()
    DistributionArray2D<T>.IsUniform()
    DistributionArray2D<T>.MaxDiff(Object)
    Array2D<T>.Length0
    Array2D<T>.Length1
    Array2D<T>.SetTo(Array2D<T>)
    Array2D<T>.ToArray()
    Array2D<T>.ConvertibleToArray.ToArray()
    Array2D<T>.ToArray<TOutput>(Converter<T, TOutput>, Array2D<T>)
    Array2D<T>.ToString()
    Array2D<T>.Item[Int32, Int32]
    Array2D<T>.Rank
    Array2D<T>.GetLength(Int32)
    Array2D<T>.Equals(Object)
    Array2D<T>.GetHashCode()
    Array2D<T>.ForEach<U>(U[,], Action<T, U>)
    Array2D<T>.ForEach<U, V>(U[,], V[,], Action<T, U, V>)
    Array2D<T>.ModifyAll<U>(U[,], Func<T, U, T>)
    Array2D<T>.ModifyAll<U, V>(U[,], V[,], Func<T, U, V, T>)
    ArrayBase<T>.array
    ArrayBase<T>.Item[Int32]
    ArrayBase<T>.IndexOf(T)
    ArrayBase<T>.Insert(Int32, T)
    ArrayBase<T>.RemoveAt(Int32)
    ArrayBase<T>.Add(T)
    ArrayBase<T>.Clear()
    ArrayBase<T>.Contains(T)
    ArrayBase<T>.Count
    ArrayBase<T>.IsReadOnly
    ArrayBase<T>.Remove(T)
    ArrayBase<T>.GetEnumerator()
    ArrayBase<T>.IEnumerable.GetEnumerator()
    ArrayBase<T>.CheckCompatible(IArray<T>)
    ArrayBase<T>.FindIndex(Predicate<T>)
    ArrayBase<T>.ForEach(Action<T>)
    ArrayBase<T>.ForEach<U>(U[], Action<T, U>)
    ArrayBase<T>.ForEach<U, V>(U[], V[], Action<T, U, V>)
    ArrayBase<T>.SetToFunction<U>(U[], Func<U, T>)
    ArrayBase<T>.SetToFunction<U>(ArrayBase<U>, Func<U, T>)
    ArrayBase<T>.SetToFunction<U, V>(ArrayBase<U>, V[], Func<U, V, T>)
    ArrayBase<T>.SetToFunction<U, V, W>(ArrayBase<U>, V[], W[], Func<U, V, W, T>)
    Object.Equals(Object, Object)
    Object.GetType()
    Object.MemberwiseClone()
    Object.ReferenceEquals(Object, Object)
    Namespace: Microsoft.ML.Probabilistic.Distributions
    Assembly: Microsoft.ML.Probabilistic.dll
    Syntax
    [Serializable]
    [Quality(QualityBand.Mature)]
    [DataContract]
    public class DistributionRefArray2D<T, DomainType> : DistributionArray2D<T, DomainType>, CanSetAllElementsTo<T>, IReadOnlyList<T>, IReadOnlyCollection<T>, IArray2D<T>, IArray<T>, IList<T>, ICollection<T>, IEnumerable<T>, IEnumerable, SettableTo<T[, ]>, SettableTo<Array2D<T>>, ConvertibleToArray, IDistribution<DomainType[, ]>, IDistribution, ICloneable, Diffable, SettableToUniform, HasPoint<DomainType[, ]>, CanGetLogProb<DomainType[, ]>, Sampleable<DomainType[, ]>, SettableTo<DistributionRefArray2D<T, DomainType>>, SettableToProduct<DistributionRefArray2D<T, DomainType>>, SettableToProduct<DistributionRefArray2D<T, DomainType>, DistributionRefArray2D<T, DomainType>>, SettableToRatio<DistributionRefArray2D<T, DomainType>>, SettableToRatio<DistributionRefArray2D<T, DomainType>, DistributionRefArray2D<T, DomainType>>, SettableToPower<DistributionRefArray2D<T, DomainType>>, SettableToWeightedSum<DistributionRefArray2D<T, DomainType>>, CanGetLogAverageOf<DistributionRefArray2D<T, DomainType>>, CanGetLogAverageOfPower<DistributionRefArray2D<T, DomainType>>, CanGetAverageLog<DistributionRefArray2D<T, DomainType>> where T : class, ICloneable, SettableTo<T>, SettableToUniform, Diffable, SettableToProduct<T>, SettableToRatio<T>, SettableToPower<T>, SettableToWeightedSum<T>, CanGetLogAverageOf<T>, CanGetLogAverageOfPower<T>, CanGetAverageLog<T>, IDistribution<DomainType>, Sampleable<DomainType>
    Type Parameters
    Name Description
    T

    Distribution type of an element

    DomainType

    Domain type of an element

    Remarks

    This is an extension of DistributionArray that requires T to be a reference type. The SetTo and CopyTo methods are overriden to use cloning instead of assignment.

    Constructors

    DistributionRefArray2D()

    Parameterless constructor needed for serialization

    Declaration
    protected DistributionRefArray2D()

    DistributionRefArray2D(T, Int32, Int32)

    Constructs a new 2-D distribution array given the lengths of each dimension, and a value

    Declaration
    public DistributionRefArray2D(T value, int length0, int length1)
    Parameters
    Type Name Description
    T value
    Int32 length0
    Int32 length1

    DistributionRefArray2D(T[,])

    Constructs a new 2-D distribution array given a 2-D array of distributions

    Declaration
    public DistributionRefArray2D(T[, ] array)
    Parameters
    Type Name Description
    T[,] array

    DistributionRefArray2D(Array2D<T>)

    Copy constructor.

    Declaration
    public DistributionRefArray2D(Array2D<T> that)
    Parameters
    Type Name Description
    Array2D<T> that

    DistributionRefArray2D(Int32, Int32)

    Constructs a new 2-D distribution array given the lengths of each dimension

    Declaration
    public DistributionRefArray2D(int length0, int length1)
    Parameters
    Type Name Description
    Int32 length0
    Int32 length1

    DistributionRefArray2D(Int32, Int32, T[])

    Constructs a new 2-D distribution array given the lengths of each dimension, and an array of values to reference

    Declaration
    public DistributionRefArray2D(int length0, int length1, T[] valuesRef)
    Parameters
    Type Name Description
    Int32 length0
    Int32 length1
    T[] valuesRef

    Array of values to reference

    DistributionRefArray2D(Int32, Int32, Func<Int32, Int32, T>)

    Constructs a new 2-D distribution array given the lengths of each dimension and initial values.

    Declaration
    public DistributionRefArray2D(int length0, int length1, Func<int, int, T> init)
    Parameters
    Type Name Description
    Int32 length0
    Int32 length1
    Func<Int32, Int32, T> init

    Function that maps an index to a value.

    Remarks

    The references returned by init are not copied. They are placed directly into the array.

    Methods

    Clone()

    Clone the distribution

    Declaration
    public override object Clone()
    Returns
    Type Description
    Object
    Overrides
    Microsoft.ML.Probabilistic.Collections.Array2D<T>.Clone()

    CopyTo(T[], Int32)

    Set the parameters of array[i] to match the marginal distribution of element i, creating a new distribution if array[i] was null, starting at a given index

    Declaration
    public override void CopyTo(T[] array, int arrayIndex)
    Parameters
    Type Name Description
    T[] array
    Int32 arrayIndex

    The index to start at

    Overrides
    Microsoft.ML.Probabilistic.Collections.ArrayBase<T>.CopyTo(T[], System.Int32)

    CopyTo(T[,])

    Set the parameters of array[i,j] to match the marginal distribution of element (i,j), creating a new distribution if array[i,j] was null

    Declaration
    public override void CopyTo(T[, ] array)
    Parameters
    Type Name Description
    T[,] array
    Overrides
    Microsoft.ML.Probabilistic.Collections.Array2D<T>.CopyTo(T[,])

    GetAverageLog(DistributionRefArray2D<T, DomainType>)

    The expected logarithm of that distribution under this distribution.

    Declaration
    public double GetAverageLog(DistributionRefArray2D<T, DomainType> that)
    Parameters
    Type Name Description
    DistributionRefArray2D<T, DomainType> that

    The distribution to take the logarithm of.

    Returns
    Type Description
    Double

    sum_x this.Evaluate(x)*Math.Log(that.Evaluate(x))

    Remarks

    This is also known as the cross entropy.

    GetLogAverageOf(DistributionRefArray2D<T, DomainType>)

    The log-probability that two distributions would draw the same sample.

    Declaration
    public double GetLogAverageOf(DistributionRefArray2D<T, DomainType> that)
    Parameters
    Type Name Description
    DistributionRefArray2D<T, DomainType> that
    Returns
    Type Description
    Double

    Math.Log(sum_x this.Evaluate(x)*that.Evaluate(x))

    Remarks

    This can be considered a type of inner product between distributions. Another name might be "LogAverage" to go with "GetAverageLog".

    GetLogAverageOfPower(DistributionRefArray2D<T, DomainType>, Double)

    Get the integral of this distribution times another distribution raised to a power.

    Declaration
    public double GetLogAverageOfPower(DistributionRefArray2D<T, DomainType> that, double power)
    Parameters
    Type Name Description
    DistributionRefArray2D<T, DomainType> that
    Double power
    Returns
    Type Description
    Double

    InitializeTo(T)

    Initialises all the values in this 2-D distribution array to clones of the given value

    Declaration
    protected void InitializeTo(T value)
    Parameters
    Type Name Description
    T value

    InitializeTo(T[,])

    Initialise the values in this 2-D distribution array to clones of the values in a given 2-D array of distributions

    Declaration
    protected void InitializeTo(T[, ] array)
    Parameters
    Type Name Description
    T[,] array
    Remarks

    Given array and this array must be the same length in each dimension

    Sample(DomainType[,])

    Get a sample from the distribution

    Declaration
    public override DomainType[, ] Sample(DomainType[, ] result)
    Parameters
    Type Name Description
    DomainType[,] result

    Where to put the result

    Returns
    Type Description
    DomainType[,]

    A sample

    Overrides
    Microsoft.ML.Probabilistic.Distributions.DistributionArray2D<T, DomainType>.Sample(DomainType[,])

    SetAllElementsTo(T)

    Set the parameters of this distribution so that all marginals equal the given distribution (by value)

    Declaration
    public override void SetAllElementsTo(T value)
    Parameters
    Type Name Description
    T value
    Overrides
    Microsoft.ML.Probabilistic.Collections.ArrayBase<T>.SetAllElementsTo(T)

    SetItemsOf(T[], Int32)

    Set the parameters of array[i] to match the marginal distribution of element i, starting at a given index

    Declaration
    protected void SetItemsOf(T[] array, int arrayIndex)
    Parameters
    Type Name Description
    T[] array
    Int32 arrayIndex

    The index to start at

    SetItemsOf(T[,])

    Set the parameters of array[i,j] to match the marginal distribution of element (i,j)

    Declaration
    protected void SetItemsOf(T[, ] array)
    Parameters
    Type Name Description
    T[,] array

    SetTo(T[,])

    Set the parameters of this distribution so that the marginals match the given distributions (by value)

    Declaration
    public override void SetTo(T[, ] array)
    Parameters
    Type Name Description
    T[,] array
    Overrides
    Microsoft.ML.Probabilistic.Collections.Array2D<T>.SetTo(T[,])
    Remarks

    Given array and this array must be the same length in each dimension

    SetTo(DistributionRefArray2D<T, DomainType>)

    Set the parameters of this distribution to match those of the given distribution (by value)

    Declaration
    public void SetTo(DistributionRefArray2D<T, DomainType> that)
    Parameters
    Type Name Description
    DistributionRefArray2D<T, DomainType> that

    SetToPower(DistributionRefArray2D<T, DomainType>, Double)

    Set the parameters to represent the power of a source distribution to some exponent

    Declaration
    public void SetToPower(DistributionRefArray2D<T, DomainType> a, double exponent)
    Parameters
    Type Name Description
    DistributionRefArray2D<T, DomainType> a

    The source distribution array

    Double exponent

    The exponent

    SetToProduct(DistributionRefArray2D<T, DomainType>, DistributionRefArray2D<T, DomainType>)

    Set the parameters to represent the product of two distributions

    Declaration
    public void SetToProduct(DistributionRefArray2D<T, DomainType> a, DistributionRefArray2D<T, DomainType> b)
    Parameters
    Type Name Description
    DistributionRefArray2D<T, DomainType> a

    The first distribution array

    DistributionRefArray2D<T, DomainType> b

    The second distribution array

    SetToRatio(DistributionRefArray2D<T, DomainType>, DistributionRefArray2D<T, DomainType>, Boolean)

    Set the parameters to represent the ratio of two distributions

    Declaration
    public void SetToRatio(DistributionRefArray2D<T, DomainType> numerator, DistributionRefArray2D<T, DomainType> denominator, bool forceProper)
    Parameters
    Type Name Description
    DistributionRefArray2D<T, DomainType> numerator

    The numerator distribution array

    DistributionRefArray2D<T, DomainType> denominator

    The denominator distribution array

    Boolean forceProper

    Argument passed to T.SetToRatio

    SetToSum(Double, DistributionRefArray2D<T, DomainType>, Double, DistributionRefArray2D<T, DomainType>)

    Set the parameters to match the moments of a mixture of two distributions

    Declaration
    public void SetToSum(double weight1, DistributionRefArray2D<T, DomainType> a, double weight2, DistributionRefArray2D<T, DomainType> b)
    Parameters
    Type Name Description
    Double weight1

    The first weight

    DistributionRefArray2D<T, DomainType> a

    The first distribution array

    Double weight2

    The second weight

    DistributionRefArray2D<T, DomainType> b

    The second distribution array

    Implements

    CanSetAllElementsTo<T>
    System.Collections.Generic.IReadOnlyList<T>
    System.Collections.Generic.IReadOnlyCollection<T>
    IArray2D<T>
    IArray<T>
    System.Collections.Generic.IList<T>
    System.Collections.Generic.ICollection<T>
    System.Collections.Generic.IEnumerable<T>
    System.Collections.IEnumerable
    SettableTo<T>
    SettableTo<T>
    ConvertibleToArray
    IDistribution<T>
    IDistribution
    System.ICloneable
    Diffable
    SettableToUniform
    HasPoint<T>
    CanGetLogProb<T>
    Sampleable<T>
    SettableTo<T>
    SettableToProduct<T>
    SettableToProduct<T, U>
    SettableToRatio<T>
    SettableToRatio<T, U>
    SettableToPower<T>
    SettableToWeightedSum<T>
    CanGetLogAverageOf<T>
    CanGetLogAverageOfPower<T>
    CanGetAverageLog<T>

    Extension Methods

    CollectionExtensions.AddRange<T>(ICollection<T>, IEnumerable<T>)
    CollectionExtensions.ContainsAll<T>(ICollection<T>, IEnumerable<T>)
    CollectionExtensions.ContainsAny<T>(ICollection<T>, IEnumerable<T>)
    EnumerableExtensions.ForEach<T>(IEnumerable<T>, Action<T>)
    EnumerableExtensions.ForEach<T>(IEnumerable, Action<T>)
    EnumerableExtensions.ForEach<T>(IEnumerable<T>, Action<Int32, T>)
    EnumerableExtensions.ForEach<T>(IEnumerable, Action<Int32, T>)
    EnumerableExtensions.Sum<TSource>(IEnumerable<TSource>, Func<TSource, UInt32>)
    EnumerableExtensions.Sum<TSource>(IEnumerable<TSource>, Func<TSource, UInt64>)
    EnumerableExtensions.ValueEquals<T>(IEnumerable<T>, IEnumerable<T>)
    EnumerableExtensions.IndexOf<T>(IEnumerable<T>, T)
    EnumerableExtensions.IndexOf<T>(IEnumerable, T)
    EnumerableExtensions.FindIndex<T>(IEnumerable<T>, Predicate<T>)
    EnumerableExtensions.FindIndex<T>(IEnumerable, Predicate<T>)
    EnumerableExtensions.FindAllIndex<T>(IEnumerable<T>, Predicate<T>)
    EnumerableExtensions.IndexOfAll<T>(IEnumerable<T>, T)
    EnumerableExtensions.Skip<T>(IEnumerable<T>, Int32, out List<T>)
    EnumerableExtensions.CopyTo<T>(IEnumerable<T>, T[], Int32)
    EnumerableExtensions.ToReadOnlyList<T>(IEnumerable<T>)
    IEnumerableExensions.EnumerableReduce<T, TRes>(IEnumerable<T>, TRes, Func<TRes, T, TRes>, Func<TRes, T, Int32, TRes>)
    IEnumerableExensions.EnumerableSum<T>(IEnumerable<T>, Func<T, Double>)
    IEnumerableExensions.ListZip<TFirst, TSecond, TResult>(IList<TFirst>, IEnumerable<TSecond>, Func<TFirst, TSecond, TResult>)
    IEnumerableExensions.ListZip<TFirst, TSecond, TThird, TResult>(IList<TFirst>, IEnumerable<TSecond>, IEnumerable<TThird>, Func<TFirst, TSecond, TThird, TResult>)
    IEnumerableExensions.ListZip<TFirst, TSecond, TThird, TFourth, TResult>(IList<TFirst>, IList<TSecond>, IList<TThird>, IList<TFourth>, Func<TFirst, TSecond, TThird, TFourth, TResult>)
    IListExtensions.IsSparse<T>(IList<T>)
    IListExtensions.ListSelect<T, T2>(IList<T>, Func<T, T2>)
    IListExtensions.ListReduce<T, TRes>(IList<T>, TRes, Func<TRes, T, TRes>)
    IListExtensions.ListReduce<T, T2, TRes>(IList<T>, IEnumerable<T2>, TRes, Func<TRes, T, T2, TRes>)
    IListExtensions.SetTo<T>(IList<T>, IEnumerable<T>)
    IListExtensions.AsReadOnly<T>(IList<T>)
    ReadOnlyArray.ToReadOnlyArray<T>(IEnumerable<T>)
    In This Article
    Back to top Copyright © .NET Foundation. All rights reserved.