Search Results for

    Show / Hide Table of Contents

    Class SparseVector

    A one-dimensional vector of double values, optimised for the case where many of the elements share a common value (which need not be zero).

    Inheritance
    Object
    Vector
    SparseVector
    ApproximateSparseVector
    Implements
    IReadOnlyList<Double>
    IReadOnlyCollection<Double>
    SettableToPower<Vector>
    SettableToProduct<Vector>
    SettableToProduct<Vector, Vector>
    SettableToWeightedSum<Vector>
    ISparseList<Double>
    IList<Double>
    ICollection<Double>
    ISparseEnumerable<Double>
    IEnumerable<Double>
    IEnumerable
    ICloneable
    CanSetAllElementsTo<Double>
    SettableTo<Vector>
    Inherited Members
    Vector.Sparsity
    Vector.IsDense
    Vector.IsSparse
    Vector.IsApproximate
    Vector.IsExact
    Vector.Zero(Int32, Sparsity)
    Vector.Constant(Int32, Double, Sparsity)
    Vector.Copy(Vector, Sparsity)
    Vector.FromArray(Double[], Sparsity)
    Vector.FromList(IList<Double>)
    Vector.FromArray(Int32, Double[], Int32, Sparsity)
    Vector.IList<Double>.Insert(Int32, Double)
    Vector.IList<Double>.RemoveAt(Int32)
    Vector.IsReadOnly
    Vector.ICollection<Double>.Add(Double)
    Vector.ICollection<Double>.Clear()
    Vector.ICollection<Double>.Remove(Double)
    Vector.CheckCompatible(Vector, String)
    Vector.IndexOfAll(Converter<Double, Boolean>)
    Vector.Reduce(Double, Vector, Vector, Func<Double, Double, Double, Double, Double>)
    Vector.SetToPower(Vector, Double)
    Vector.SetToProduct(Vector, Vector)
    Vector.SetToSum(Double, Vector, Double, Vector)
    Vector.SetToSum(Vector, Vector)
    Vector.SetToSum(Vector, Double)
    Vector.SetToDifference(Vector, Vector)
    Vector.SetToDifference(Vector, Double)
    Vector.SetToDifference(Double, Vector)
    Vector.SetToProduct(Vector, Double)
    Vector.SetToProduct(Vector, Matrix)
    Vector.SetToProduct(Matrix, Vector)
    Vector.SetToRatio(Vector, Vector)
    Vector.InnerProduct(Vector, Vector)
    Vector.EqualsAll(Double)
    Vector.GreaterThan(Double)
    Vector.LessThan(Double)
    Vector.GreaterThanOrEqual(Double)
    Vector.LessThanOrEqual(Double)
    Vector.ToString(String, String, Func<Int32, String>)
    Vector.PredivideBy(UpperTriangularMatrix)
    Vector.PredivideByTranspose(LowerTriangularMatrix)
    Vector.PredivideBy(LowerTriangularMatrix)
    Vector.EnsureDense(Vector)
    Vector.PredivideBy(PositiveDefiniteMatrix)
    Vector.Concat(Vector, Vector)
    Vector.Subvector(Vector, Int32, Int32)
    Vector.ToString(String)
    Vector.ToString()
    Object.Equals(Object, Object)
    Object.GetType()
    Object.MemberwiseClone()
    Object.ReferenceEquals(Object, Object)
    Namespace: Microsoft.ML.Probabilistic.Math
    Assembly: Microsoft.ML.Probabilistic.dll
    Syntax
    [Serializable]
    [DataContract]
    public class SparseVector : Vector, IReadOnlyList<double>, IReadOnlyCollection<double>, SettableToPower<Vector>, SettableToProduct<Vector>, SettableToProduct<Vector, Vector>, SettableToWeightedSum<Vector>, ISparseList<double>, IList<double>, ICollection<double>, ISparseEnumerable<double>, IEnumerable<double>, IEnumerable, ICloneable, CanSetAllElementsTo<double>, SettableTo<Vector>

    Constructors

    SparseVector()

    Constructs a zero vector with the given number of elements.

    Declaration
    protected SparseVector()

    SparseVector(SparseVector)

    Copy constructor.

    Declaration
    protected SparseVector(SparseVector that)
    Parameters
    Type Name Description
    SparseVector that

    the vector to copy into this new vector

    SparseVector(IList<Double>)

    Creates a sparse vector from a list of doubles.

    Declaration
    protected SparseVector(IList<double> dlist)
    Parameters
    Type Name Description
    IList<Double> dlist

    the list of doubles

    SparseVector(Int32)

    Constructs a zero vector with the given number of elements.

    Declaration
    protected SparseVector(int count)
    Parameters
    Type Name Description
    Int32 count

    Number of elements to allocate (>= 0).

    SparseVector(Int32, Double)

    Constructs a vector of a given length and assigns all elements the given value.

    Declaration
    protected SparseVector(int count, double commonValue)
    Parameters
    Type Name Description
    Int32 count

    Number of elements to allocate (>= 0).

    Double commonValue

    The value to assign to all elements.

    SparseVector(Int32, Double, List<ValueAtIndex<Double>>)

    Constructs a vector of a given length and assigns all elements the given value, except for the specified list of sparse values. This list is stored internally as is so MUST be sorted by index and must not be modified externally.

    Declaration
    protected SparseVector(int count, double commonValue, List<ValueAtIndex<double>> sortedSparseValues)
    Parameters
    Type Name Description
    Int32 count

    Number of elements to allocate (>= 0).

    Double commonValue

    The value to assign to all elements.

    List<ValueAtIndex<Double>> sortedSparseValues

    The list of sparse values, which must be sorted by index.

    Properties

    CommonValue

    The value of all elements not mentioned explicitly as sparse values.

    Declaration
    [DataMember]
    public double CommonValue { get; protected set; }
    Property Value
    Type Description
    Double

    Count

    The number of elements in this vector

    Declaration
    public override int Count { get; protected set; }
    Property Value
    Type Description
    Int32
    Overrides
    Vector.Count

    HasCommonElements

    Returns true if there is at least one element which has the common value.

    Declaration
    public bool HasCommonElements { get; }
    Property Value
    Type Description
    Boolean

    Item[Int32]

    Gets or sets an element at a given index.

    Declaration
    public override double this[int index] { get; set; }
    Parameters
    Type Name Description
    Int32 index

    The index of an element.

    Property Value
    Type Description
    Double

    The element at a given index.

    Overrides
    Vector.Item[Int32]

    SparseCount

    The number of elements not equal to the common value

    Declaration
    public int SparseCount { get; }
    Property Value
    Type Description
    Int32

    SparseValues

    A list of the value and indices of elements which may not have the common value (although they are not precluded from doing so). This list is kept sorted by index to allow efficient operations on the sparse vector.

    Declaration
    [DataMember]
    public List<ValueAtIndex<double>> SparseValues { get; protected set; }
    Property Value
    Type Description
    List<ValueAtIndex<Double>>

    Methods

    Add(Double)

    Declaration
    public void Add(double item)
    Parameters
    Type Name Description
    Double item

    All(Converter<Double, Boolean>)

    Tests if all elements in the vector satisfy the specified condition.

    Declaration
    public override bool All(Converter<double, bool> fun)
    Parameters
    Type Name Description
    Converter<Double, Boolean> fun
    Returns
    Type Description
    Boolean
    Overrides
    Vector.All(Converter<Double, Boolean>)

    Any(SparseVector, Func<Double, Double, Boolean>)

    Test if any corresponding elements in this and that vector satisfy a condition

    Declaration
    public bool Any(SparseVector that, Func<double, double, bool> fun)
    Parameters
    Type Name Description
    SparseVector that
    Func<Double, Double, Boolean> fun
    Returns
    Type Description
    Boolean

    Any(Vector, Func<Double, Double, Boolean>)

    Test if any corresponding elements in this and that vector satisfy a condition

    Declaration
    public override bool Any(Vector that, Func<double, double, bool> fun)
    Parameters
    Type Name Description
    Vector that
    Func<Double, Double, Boolean> fun
    Returns
    Type Description
    Boolean
    Overrides
    Vector.Any(Vector, Func<Double, Double, Boolean>)

    Any(Converter<Double, Boolean>)

    Tests if any elements in the vector satisfy the specified condition.

    Declaration
    public override bool Any(Converter<double, bool> fun)
    Parameters
    Type Name Description
    Converter<Double, Boolean> fun
    Returns
    Type Description
    Boolean
    Overrides
    Vector.Any(Converter<Double, Boolean>)

    Append(Vector)

    Returns a new vector which appends a second vector to this vector

    Declaration
    public override Vector Append(Vector second)
    Parameters
    Type Name Description
    Vector second

    Second vector

    Returns
    Type Description
    Vector
    Overrides
    Vector.Append(Vector)
    Remarks

    If the second vector is dense, or if the common values for the two vectors are different, then the result becomes dense

    Append(Double)

    Appends an item to a vector - returns a new sparse vector

    Declaration
    public override Vector Append(double item)
    Parameters
    Type Name Description
    Double item
    Returns
    Type Description
    Vector
    Overrides
    Vector.Append(Double)

    AsSparseVector(IList<Double>)

    Converts the supplied list of doubles to a sparse vector, or does nothing if it is already a sparse vector.

    Declaration
    public static SparseVector AsSparseVector(IList<double> iList)
    Parameters
    Type Name Description
    IList<Double> iList
    Returns
    Type Description
    SparseVector

    A sparse vector containing the list of doubles

    Clear()

    Declaration
    public void Clear()

    Clone()

    Clones this vector - return as a vector

    Declaration
    public override Vector Clone()
    Returns
    Type Description
    Vector
    Overrides
    Vector.Clone()

    Constant(Int32, Double)

    Create a sparse vector of given length with elements all equal to a specified value

    Declaration
    public static SparseVector Constant(int count, double value)
    Parameters
    Type Name Description
    Int32 count

    Number of elements in vector

    Double value

    value for each element

    Returns
    Type Description
    SparseVector

    Contains(Double)

    Returns true if the Vector contains the specified value

    Declaration
    public override bool Contains(double value)
    Parameters
    Type Name Description
    Double value

    The value to test for

    Returns
    Type Description
    Boolean
    Overrides
    Vector.Contains(Double)

    Copy(Vector)

    Creator a sparse vector as a copy of another vector (which may not be sparse)

    Declaration
    public static SparseVector Copy(Vector that)
    Parameters
    Type Name Description
    Vector that

    The source vector - can be dense or sparse

    Returns
    Type Description
    SparseVector

    CopyTo(Double[], Int32)

    Copies this vector to the given array starting at the specified index in the target array

    Declaration
    public override void CopyTo(double[] array, int index)
    Parameters
    Type Name Description
    Double[] array

    The target array

    Int32 index

    The start index in the target array

    Overrides
    Vector.CopyTo(Double[], Int32)

    CountAll(Converter<Double, Boolean>)

    Returns the number of elements in the vector which satisfy a given condition.

    Declaration
    public override int CountAll(Converter<double, bool> fun)
    Parameters
    Type Name Description
    Converter<Double, Boolean> fun

    The condition for the elements to satisfy.

    Returns
    Type Description
    Int32

    The number of elements in the vector which satisfy the condition.

    Overrides
    Vector.CountAll(Converter<Double, Boolean>)

    Equals(Object)

    Determines object equality.

    Declaration
    public override bool Equals(object obj)
    Parameters
    Type Name Description
    Object obj

    Another (vector) object.

    Returns
    Type Description
    Boolean

    True if equal.

    Overrides
    Vector.Equals(Object)

    FindAll(Converter<Double, Boolean>)

    Returns an enumeration over the indices of all elements which satisfy the specified condition. Indices are returned in sorted order.

    Declaration
    public override IEnumerable<ValueAtIndex<double>> FindAll(Converter<double, bool> fun)
    Parameters
    Type Name Description
    Converter<Double, Boolean> fun

    A function to check if the condition is satisfied.

    Returns
    Type Description
    IEnumerable<ValueAtIndex<Double>>

    An enumeration over the indices and values of all the elements which satisfy the specified condition.

    Overrides
    Vector.FindAll(Converter<Double, Boolean>)

    FindFirstIndex(Converter<Double, Boolean>)

    Returns the index of the first element that satisfies a given condition.

    Declaration
    public override int FindFirstIndex(Converter<double, bool> fun)
    Parameters
    Type Name Description
    Converter<Double, Boolean> fun

    The condition for the element to satisfy.

    Returns
    Type Description
    Int32

    The zero-based index of the first occurrence of an element that matches the conditions defined by match, if found; otherwise, –1.

    Overrides
    Vector.FindFirstIndex(Converter<Double, Boolean>)

    FindLastIndex(Converter<Double, Boolean>)

    Returns the index of the last element that satisfies a given condition.

    Declaration
    public override int FindLastIndex(Converter<double, bool> fun)
    Parameters
    Type Name Description
    Converter<Double, Boolean> fun

    The condition for the element to satisfy.

    Returns
    Type Description
    Int32

    The last index.

    Overrides
    Vector.FindLastIndex(Converter<Double, Boolean>)

    FromArray(Double[])

    Constructs a sparse vector from a dense array.

    Declaration
    public static SparseVector FromArray(params double[] data)
    Parameters
    Type Name Description
    Double[] data

    1D array of elements.

    Returns
    Type Description
    SparseVector
    Remarks

    The array data is copied into new storage. The size of the vector is taken from the array.

    FromArray(Int32, Double[], Int32)

    Constructs a vector from part of an array.

    Declaration
    public static SparseVector FromArray(int count, double[] data, int start)
    Parameters
    Type Name Description
    Int32 count

    The number of elements in the vector.

    Double[] data

    Storage for the vector elements.

    Int32 start

    The starting index in the array for the vector elements.

    Returns
    Type Description
    SparseVector
    Remarks

    Throws an exception if Data is null, start < 0, or count < 0.

    FromSparseValues(Int32, Double, List<ValueAtIndex<Double>>)

    Constructs a sparse vector from a sorted list of sparse elements.

    Declaration
    [Construction(new string[]{"Count", "CommonValue", "SparseValues"})]
    public static SparseVector FromSparseValues(int count, double commonValue, List<ValueAtIndex<double>> sortedSparseValues)
    Parameters
    Type Name Description
    Int32 count

    Count for result

    Double commonValue

    Common value

    List<ValueAtIndex<Double>> sortedSparseValues

    Sorted list of sparse elements

    Returns
    Type Description
    SparseVector

    GetEnumerator()

    Gets a typed enumerator which yields the vector elements

    Declaration
    public override IEnumerator<double> GetEnumerator()
    Returns
    Type Description
    IEnumerator<Double>
    Overrides
    Vector.GetEnumerator()

    GetFirstCommonIndex()

    Gets the dense index of the first common element.

    Declaration
    public int GetFirstCommonIndex()
    Returns
    Type Description
    Int32

    Returns the dense index of the first common element or -1 if there are no common elements

    GetHashCode()

    Gets a hash code for the instance.

    Declaration
    public override int GetHashCode()
    Returns
    Type Description
    Int32

    The code.

    Overrides
    Vector.GetHashCode()

    GetSparseEnumerator()

    Returns a sparse enumerator

    Declaration
    public ISparseEnumerator<double> GetSparseEnumerator()
    Returns
    Type Description
    ISparseEnumerator<Double>

    GetSparseIndex(Int32)

    Gets the index into the sparse values array corresponding to an element index. If there is no sparse value at that index, returns the binary complement of the index in the sparse array where such an element should be inserted to retain the sort order of the sparse array.

    Declaration
    protected int GetSparseIndex(int index)
    Parameters
    Type Name Description
    Int32 index
    Returns
    Type Description
    Int32

    GreaterThan(Vector)

    Tests if this vector is strictly greater than a second vector.

    Declaration
    public override bool GreaterThan(Vector that)
    Parameters
    Type Name Description
    Vector that

    The value to test against.

    Returns
    Type Description
    Boolean

    True if each element is strictly greater than the corresponding element of that.

    Overrides
    Vector.GreaterThan(Vector)

    GreaterThanOrEqual(Vector)

    Tests if this vector is than or equal to a second vector.

    Declaration
    public override bool GreaterThanOrEqual(Vector that)
    Parameters
    Type Name Description
    Vector that

    The value to test against.

    Returns
    Type Description
    Boolean

    True if each element is greater than or equal to the corresponding element of that.

    Overrides
    Vector.GreaterThanOrEqual(Vector)

    IndexAtCumulativeSum(Double)

    Returns the index of the first element at which the sum of all elements so far is greater than a particular value. Useful for finding the median of a Discrete distribution.

    Declaration
    public override int IndexAtCumulativeSum(double targetSum)
    Parameters
    Type Name Description
    Double targetSum

    The sum of interest

    Returns
    Type Description
    Int32

    The index of the element where targetSum is exceeded or -1 if targetSum cannot be exceeded.

    Overrides
    Vector.IndexAtCumulativeSum(Double)

    IndexOf(Double)

    Returns the index of the first occurence of the given value in the array. Returns -1 if the value is not in the array

    Declaration
    public override int IndexOf(double item)
    Parameters
    Type Name Description
    Double item

    The item to check for

    Returns
    Type Description
    Int32

    Its index in the array

    Overrides
    Vector.IndexOf(Double)

    IndexOfMaximum()

    Returns the index of the maximum element.

    Declaration
    public override int IndexOfMaximum()
    Returns
    Type Description
    Int32

    The index of the maximum element.

    Overrides
    Vector.IndexOfMaximum()

    IndexOfMinimum()

    Returns the index of the minimum element.

    Declaration
    public override int IndexOfMinimum()
    Returns
    Type Description
    Int32

    The index of the minimum element.

    Overrides
    Vector.IndexOfMinimum()

    Inner(SparseVector)

    Returns the inner product of this sparse vector with another sparse vector.

    Declaration
    public double Inner(SparseVector that)
    Parameters
    Type Name Description
    SparseVector that

    Second vector, which must have the same size as this.

    Returns
    Type Description
    Double

    Their inner product.

    Inner(SparseVector, Converter<Double, Double>)

    Returns the inner product of this sparse vector with a function of a second sparse vector.

    Declaration
    public double Inner(SparseVector that, Converter<double, double> fun)
    Parameters
    Type Name Description
    SparseVector that

    Second vector, which must have the same size as this.

    Converter<Double, Double> fun

    Function to convert the elements of the second vector

    Returns
    Type Description
    Double

    Their inner product.

    Inner(Vector)

    Returns the inner product of this vector with another vector.

    Declaration
    public override double Inner(Vector that)
    Parameters
    Type Name Description
    Vector that

    Second vector, which must have the same size as this.

    Returns
    Type Description
    Double

    Their inner product.

    Overrides
    Vector.Inner(Vector)

    Inner(Vector, Converter<Double, Double>)

    Returns the inner product of this vector with a function of a second vector.

    Declaration
    public override double Inner(Vector that, Converter<double, double> fun)
    Parameters
    Type Name Description
    Vector that

    Second vector, which must have the same size as this.

    Converter<Double, Double> fun

    Function to convert the elements of the second vector

    Returns
    Type Description
    Double

    Their inner product.

    Overrides
    Vector.Inner(Vector, Converter<Double, Double>)

    Inner(Converter<Double, Double>, SparseVector, Converter<Double, Double>)

    Returns the inner product of a function of this sparse vector with a function of a second sparse vector.

    Declaration
    public double Inner(Converter<double, double> thisFun, SparseVector that, Converter<double, double> thatFun)
    Parameters
    Type Name Description
    Converter<Double, Double> thisFun

    Function to convert the elements of this vector

    SparseVector that

    Second vector, which must have the same size as this.

    Converter<Double, Double> thatFun

    Function to convert the elements of that vector

    Returns
    Type Description
    Double

    Their inner product.

    Inner(Converter<Double, Double>, Vector, Converter<Double, Double>)

    Returns the inner product of a function of this vector with a function of a second vector.

    Declaration
    public override double Inner(Converter<double, double> thisFun, Vector that, Converter<double, double> thatFun)
    Parameters
    Type Name Description
    Converter<Double, Double> thisFun

    Function to convert the elements of this vector

    Vector that

    Second vector, which must have the same size as this.

    Converter<Double, Double> thatFun

    Function to convert the elements of that vector

    Returns
    Type Description
    Double

    Their inner product.

    Overrides
    Vector.Inner(Converter<Double, Double>, Vector, Converter<Double, Double>)

    LessThan(Vector)

    Tests if this vector is strictly less than a second vector.

    Declaration
    public override bool LessThan(Vector that)
    Parameters
    Type Name Description
    Vector that

    The value to test against.

    Returns
    Type Description
    Boolean

    True if each element is strictly less than the corresponding element of that.

    Overrides
    Vector.LessThan(Vector)

    LessThanOrEqual(Vector)

    Tests if this vector is less than or equal to a second vector.

    Declaration
    public override bool LessThanOrEqual(Vector that)
    Parameters
    Type Name Description
    Vector that

    The value to test against.

    Returns
    Type Description
    Boolean

    True if each element is strictly less than or equal to the corresponding element of that.

    Overrides
    Vector.LessThanOrEqual(Vector)

    LogSumExp()

    Returns the log of the sum of exponentials of the elements of the vector computed to high accuracy

    Declaration
    public override double LogSumExp()
    Returns
    Type Description
    Double
    Overrides
    Vector.LogSumExp()

    Max()

    Returns the maximum of the elements in the vector

    Declaration
    public override double Max()
    Returns
    Type Description
    Double
    Overrides
    Vector.Max()

    Max(Converter<Double, Double>)

    Returns the maximum of a function of the elements in the vector

    Declaration
    public override double Max(Converter<double, double> fun)
    Parameters
    Type Name Description
    Converter<Double, Double> fun

    Conversion function

    Returns
    Type Description
    Double
    Overrides
    Vector.Max(Converter<Double, Double>)

    MaxDiff(Vector)

    Returns the maximum absolute difference between this vector and another vector.

    Declaration
    public override double MaxDiff(Vector that)
    Parameters
    Type Name Description
    Vector that

    The second vector.

    Returns
    Type Description
    Double

    max(abs(this[i] - that[i])). Matching infinities or NaNs do not count.
    If this and that are not the same size, returns infinity.

    Overrides
    Vector.MaxDiff(Vector)
    Remarks

    This routine is typically used instead of Equals, since Equals is susceptible to roundoff errors.

    MaxDiff(Vector, Double)

    Returns the maximum relative difference between this vector and another.

    Declaration
    public override double MaxDiff(Vector that, double rel)
    Parameters
    Type Name Description
    Vector that

    The second vector.

    Double rel

    An offset to avoid division by zero.

    Returns
    Type Description
    Double

    max(abs(this[i] - that[i])/(abs(this[i]) + rel)). Matching infinities or NaNs do not count.
    If this and that are not the same size, returns infinity.

    Overrides
    Vector.MaxDiff(Vector, Double)
    Remarks

    This routine is typically used instead of Equals, since Equals is susceptible to roundoff errors.

    Median()

    Returns the median of all elements.

    Declaration
    public override double Median()
    Returns
    Type Description
    Double
    Overrides
    Vector.Median()

    Min()

    Returns the minimum of the elements in the vector

    Declaration
    public override double Min()
    Returns
    Type Description
    Double
    Overrides
    Vector.Min()

    Min(Converter<Double, Double>)

    Returns the minimum of the elements in the vector

    Declaration
    public override double Min(Converter<double, double> fun)
    Parameters
    Type Name Description
    Converter<Double, Double> fun

    Conversion function

    Returns
    Type Description
    Double
    Overrides
    Vector.Min(Converter<Double, Double>)

    Outer(SparseVector)

    Returns the outer product of this sparse vector with another sparse vector.

    Declaration
    public Matrix Outer(SparseVector that)
    Parameters
    Type Name Description
    SparseVector that

    Second vector.

    Returns
    Type Description
    Matrix

    Their outer product.

    Outer(Vector)

    Returns the outer product of this vector with another vector.

    Declaration
    public override Matrix Outer(Vector that)
    Parameters
    Type Name Description
    Vector that

    Second vector.

    Returns
    Type Description
    Matrix

    Their outer product.

    Overrides
    Vector.Outer(Vector)

    Reduce(Double, SparseVector, SparseVector, Func<Double, Double, Double, Double, Double>)

    Reduce method. Operates on this vector and two other vectors

    Declaration
    public double Reduce(double initial, SparseVector a, SparseVector b, Func<double, double, double, double, double> fun)
    Parameters
    Type Name Description
    Double initial

    Initial value

    SparseVector a

    A second vector

    SparseVector b

    A third vector

    Func<Double, Double, Double, Double, Double> fun

    Reduction function

    Returns
    Type Description
    Double

    Reduce(Double, SparseVector, Func<Double, Double, Double, Double>)

    Reduce method. Operates on this vector and that vector

    Declaration
    public double Reduce(double initial, SparseVector that, Func<double, double, double, double> fun)
    Parameters
    Type Name Description
    Double initial

    Initial value

    SparseVector that

    A second vector

    Func<Double, Double, Double, Double> fun

    Reduction function taking partial result, current element, and current element of that

    Returns
    Type Description
    Double

    Reduce(Double, Vector, Func<Double, Double, Double, Double>)

    Reduce method. Operates on this vector and that vector

    Declaration
    public override double Reduce(double initial, Vector that, Func<double, double, double, double> fun)
    Parameters
    Type Name Description
    Double initial

    Initial value

    Vector that

    A second vector

    Func<Double, Double, Double, Double> fun

    Reduction function taking partial result, current element, and current element of that

    Returns
    Type Description
    Double
    Overrides
    Vector.Reduce(Double, Vector, Func<Double, Double, Double, Double>)

    Reduce(Double, Func<Double, Double, Double>)

    Reduce method. Operates on this vector

    Declaration
    public override double Reduce(double initial, Func<double, double, double> fun)
    Parameters
    Type Name Description
    Double initial

    Initial value

    Func<Double, Double, Double> fun

    Reduction function taking partial result and current element

    Returns
    Type Description
    Double
    Overrides
    Vector.Reduce(Double, Func<Double, Double, Double>)

    Reduce<TRes>(TRes, Func<TRes, Double, TRes>, Func<TRes, Double, Int32, TRes>)

    Reduce method which can take advantage of sparse structure. Operates on this list

    Declaration
    public TRes Reduce<TRes>(TRes initial, Func<TRes, double, TRes> fun, Func<TRes, double, int, TRes> repeatedFun)
    Parameters
    Type Name Description
    TRes initial

    Initial value

    Func<TRes, Double, TRes> fun

    Reduction function taking partial result and current element

    Func<TRes, Double, Int32, TRes> repeatedFun

    Function which computes the reduction function applied multiple times

    Returns
    Type Description
    TRes
    Type Parameters
    Name Description
    TRes
    Remarks

    This method does not take advantage of this list's sparseness.

    Reduce<TRes, T1>(TRes, ISparseEnumerable<T1>, Func<TRes, Double, T1, TRes>, Func<TRes, Double, T1, Int32, TRes>)

    Reduce method which can take advantage of sparse structure. Operates on this list and another sparse collection

    Declaration
    public TRes Reduce<TRes, T1>(TRes initial, ISparseEnumerable<T1> that, Func<TRes, double, T1, TRes> fun, Func<TRes, double, T1, int, TRes> repeatedFun)
    Parameters
    Type Name Description
    TRes initial

    Initial value

    ISparseEnumerable<T1> that

    The other sparse collection

    Func<TRes, Double, T1, TRes> fun

    Reduction function taking partial result and current element

    Func<TRes, Double, T1, Int32, TRes> repeatedFun

    Function which computes the reduction function applied multiple times

    Returns
    Type Description
    TRes
    Type Parameters
    Name Description
    TRes
    T1

    Reduce<TRes, T1, T2>(TRes, ISparseEnumerable<T1>, ISparseEnumerable<T2>, Func<TRes, Double, T1, T2, TRes>, Func<TRes, Double, T1, T2, Int32, TRes>)

    Reduce method which can take advantage of sparse structure. Operates on this list and two other sparse collections

    Declaration
    public TRes Reduce<TRes, T1, T2>(TRes initial, ISparseEnumerable<T1> b, ISparseEnumerable<T2> c, Func<TRes, double, T1, T2, TRes> fun, Func<TRes, double, T1, T2, int, TRes> repeatedFun)
    Parameters
    Type Name Description
    TRes initial

    Initial value

    ISparseEnumerable<T1> b

    A second sparse collection

    ISparseEnumerable<T2> c

    A third sparse collection

    Func<TRes, Double, T1, T2, TRes> fun

    Reduction function taking partial result and current element

    Func<TRes, Double, T1, T2, Int32, TRes> repeatedFun

    Function which computes the reduction function applied multiple times

    Returns
    Type Description
    TRes
    Type Parameters
    Name Description
    TRes
    T1
    T2

    Remove(Double)

    Declaration
    public bool Remove(double item)
    Parameters
    Type Name Description
    Double item
    Returns
    Type Description
    Boolean

    Scale(Double)

    Multiplies this vector by a scalar.

    Declaration
    public override void Scale(double scale)
    Parameters
    Type Name Description
    Double scale

    The scalar.

    Overrides
    Vector.Scale(Double)
    Remarks

    this receives the product. This method is a synonym for SetToProduct(this, scale)

    SetAllElementsTo(Double)

    Sets all elements to a given value.

    Declaration
    public override void SetAllElementsTo(double value)
    Parameters
    Type Name Description
    Double value

    The new value.

    Overrides
    Vector.SetAllElementsTo(Double)

    SetSubvector(Int32, Vector)

    Set a subvector of this sparse vector to another vector. The common value is not changed

    Declaration
    public override void SetSubvector(int startIndex, Vector that)
    Parameters
    Type Name Description
    Int32 startIndex

    The index of the first element of this to copy to.

    Vector that

    A vector whose length is at most this.Count - startIndex.

    Overrides
    Vector.SetSubvector(Int32, Vector)

    SetTo(SparseVector)

    Copies values from a sparse vector to this sparse vector.

    Declaration
    public virtual void SetTo(SparseVector that)
    Parameters
    Type Name Description
    SparseVector that

    SetTo(Vector)

    Copies values from a Vector to this vector.

    Declaration
    public override void SetTo(Vector that)
    Parameters
    Type Name Description
    Vector that
    Overrides
    Vector.SetTo(Vector)
    Remarks

    The source vector can be dense, in which case the minimum value is used as the common value.

    SetTo(IEnumerable<Double>)

    Copies values from an Enumerable to this vector

    Declaration
    public override void SetTo(IEnumerable<double> that)
    Parameters
    Type Name Description
    IEnumerable<Double> that
    Overrides
    Vector.SetTo(IEnumerable<Double>)

    SetTo(IList<Double>)

    Copies values from a list of doubles which must have the same size as this vector. The 'common value' is set to the minimum value of the list.

    Declaration
    public virtual void SetTo(IList<double> dlist)
    Parameters
    Type Name Description
    IList<Double> dlist

    SetTo(IList<Double>, Double)

    Copies values from a list of doubles which must have the same size as this vector, using the specified common value.

    Declaration
    public virtual void SetTo(IList<double> dlist, double commonValue)
    Parameters
    Type Name Description
    IList<Double> dlist

    List of doubles

    Double commonValue

    Common value

    SetTo(Double[])

    Copies values from an array. The minimum value is used as the common value

    Declaration
    public override void SetTo(double[] values)
    Parameters
    Type Name Description
    Double[] values

    An array whose length matches this.Count.

    Overrides
    Vector.SetTo(Double[])

    SetToDiagonal(Matrix)

    Sets this vector to the diagonal of a matrix.

    Declaration
    public override void SetToDiagonal(Matrix m)
    Parameters
    Type Name Description
    Matrix m

    A matrix with Rows==Cols==this.Count.

    Overrides
    Vector.SetToDiagonal(Matrix)

    SetToFunction(SparseVector, SparseVector, Func<Double, Double, Double>)

    Sets the elements of this sparse vector to a function of the elements of two other sparse vectors

    Declaration
    public virtual SparseVector SetToFunction(SparseVector a, SparseVector b, Func<double, double, double> fun)
    Parameters
    Type Name Description
    SparseVector a

    The first vector

    SparseVector b

    The second vector

    Func<Double, Double, Double> fun

    The function which maps two doubles to a double

    Returns
    Type Description
    SparseVector
    Remarks

    Assumes the vectors are compatible

    SetToFunction(SparseVector, Converter<Double, Double>)

    Sets the elements of this sparse vector to a function of the elements of another sparse vector

    Declaration
    public virtual SparseVector SetToFunction(SparseVector that, Converter<double, double> fun)
    Parameters
    Type Name Description
    SparseVector that

    The other vector

    Converter<Double, Double> fun

    The function which maps doubles to doubles

    Returns
    Type Description
    SparseVector
    Remarks

    Assumes the vectors are compatible

    SetToFunction(Vector, Vector, Func<Double, Double, Double>)

    Sets the elements of this vector to a function of the elements of two vectors

    Declaration
    public override Vector SetToFunction(Vector a, Vector b, Func<double, double, double> fun)
    Parameters
    Type Name Description
    Vector a

    The first vector

    Vector b

    The second vector

    Func<Double, Double, Double> fun

    The function which maps two doubles to a double

    Returns
    Type Description
    Vector
    Overrides
    Vector.SetToFunction(Vector, Vector, Func<Double, Double, Double>)
    Remarks

    Assumes the vectors are compatible

    SetToFunction(Vector, Converter<Double, Double>)

    Sets the elements of this vector to a function of the elements of a given vector

    Declaration
    public override Vector SetToFunction(Vector that, Converter<double, double> fun)
    Parameters
    Type Name Description
    Vector that

    The given vector

    Converter<Double, Double> fun

    The function which maps doubles to doubles

    Returns
    Type Description
    Vector
    Overrides
    Vector.SetToFunction(Vector, Converter<Double, Double>)
    Remarks

    Assumes the vectors are compatible

    SetToFunctionInPlace(SparseVector, Func<Double, Double, Double>)

    Sets the elements of this sparse vector to a function of the elements of this sparse vector and another sparse vectors x = fun(x,b)

    Declaration
    public virtual SparseVector SetToFunctionInPlace(SparseVector b, Func<double, double, double> fun)
    Parameters
    Type Name Description
    SparseVector b

    The second vector

    Func<Double, Double, Double> fun

    The function which maps two doubles to a double

    Returns
    Type Description
    SparseVector
    Remarks

    Assumes the vectors are compatible

    SetToSubarray(Double[], Int32)

    Copies values from an array. The minimum is used as the common value

    Declaration
    public override void SetToSubarray(double[] values, int startIndex)
    Parameters
    Type Name Description
    Double[] values

    An array whose length is at least this.Count + startIndex.

    Int32 startIndex

    The index of the first value in values to copy.

    Overrides
    Vector.SetToSubarray(Double[], Int32)

    SetToSubvector(SparseVector, Int32)

    Copies values from a sparse vector. The common value is set to the common value from the source vector.

    Declaration
    public virtual void SetToSubvector(SparseVector that, int startIndex)
    Parameters
    Type Name Description
    SparseVector that

    A vector whose length is at least this.Count + startIndex.

    Int32 startIndex

    The index of the first value in that to copy.

    SetToSubvector(Vector, Int32)

    Copies values from a vector. If the source vector is sparse, then the common value is set to the common value from the source vector. If the source vector is dense, then the common value is set to the minimum of the data in the source vector

    Declaration
    public override void SetToSubvector(Vector that, int startIndex)
    Parameters
    Type Name Description
    Vector that

    A vector whose length is at least this.Count + startIndex.

    Int32 startIndex

    The index of the first value in that to copy.

    Overrides
    Vector.SetToSubvector(Vector, Int32)

    Subvector(Int32, Int32)

    Create a subvector of this sparse vector.

    Declaration
    public override Vector Subvector(int startIndex, int count)
    Parameters
    Type Name Description
    Int32 startIndex
    Int32 count
    Returns
    Type Description
    Vector
    Overrides
    Vector.Subvector(Int32, Int32)

    Sum()

    Returns the sum of all elements.

    Declaration
    public override double Sum()
    Returns
    Type Description
    Double
    Overrides
    Vector.Sum()

    Sum(Converter<Double, Double>)

    Returns the sum of a function of all elements.

    Declaration
    public override double Sum(Converter<double, double> fun)
    Parameters
    Type Name Description
    Converter<Double, Double> fun

    Conversion function

    Returns
    Type Description
    Double
    Overrides
    Vector.Sum(Converter<Double, Double>)

    Sum(Converter<Double, Double>, SparseVector, Converter<Double, Boolean>)

    Returns the sum of a function of this sparse vector filtered by a function of a second sparse vector.

    Declaration
    public double Sum(Converter<double, double> fun, SparseVector that, Converter<double, bool> cond)
    Parameters
    Type Name Description
    Converter<Double, Double> fun

    Function to convert the elements of this vector

    SparseVector that

    Second vector, which must have the same size as this.

    Converter<Double, Boolean> cond

    Function to convert the elements of that vector to give the filter condition

    Returns
    Type Description
    Double

    The filtered and mapped sum

    Sum(Converter<Double, Double>, Vector, Converter<Double, Boolean>)

    Returns the sum of a function of this vector filtered by a function of a second vector.

    Declaration
    public override double Sum(Converter<double, double> fun, Vector that, Converter<double, bool> cond)
    Parameters
    Type Name Description
    Converter<Double, Double> fun

    Function to convert the elements of this vector

    Vector that

    Second vector, which must have the same size as this.

    Converter<Double, Boolean> cond

    Function to convert the elements of that vector to give the filter condition

    Returns
    Type Description
    Double

    The filtered and mapped sum

    Overrides
    Vector.Sum(Converter<Double, Double>, Vector, Converter<Double, Boolean>)

    SumI()

    Returns the sum of over zero-based index times element.

    Declaration
    public override double SumI()
    Returns
    Type Description
    Double
    Overrides
    Vector.SumI()

    SumISq()

    Returns the sum of over square of index^2 times element.

    Declaration
    public override double SumISq()
    Returns
    Type Description
    Double
    Overrides
    Vector.SumISq()

    ToArray()

    Converts this sparse vector to an array of doubles

    Declaration
    public override double[] ToArray()
    Returns
    Type Description
    Double[]
    Overrides
    Vector.ToArray()

    ToString(String, String)

    String representation of vector with a specified format and delimiter

    Declaration
    public override string ToString(string format, string delimiter)
    Parameters
    Type Name Description
    String format

    Format of each element value

    String delimiter

    Delimiter between sparse elements

    Returns
    Type Description
    String

    A string

    Overrides
    Vector.ToString(String, String)

    ToVector()

    Converts this sparse vector to an ordinary non-sparse vector

    Declaration
    public Vector ToVector()
    Returns
    Type Description
    Vector

    Zero(Int32)

    Create a sparse vector of given length with elements all 0.0

    Declaration
    public static SparseVector Zero(int count)
    Parameters
    Type Name Description
    Int32 count

    Number of elements in vector

    Returns
    Type Description
    SparseVector

    Explicit Interface Implementations

    IEnumerable.GetEnumerator()

    Gets an enumerator which yields the vector elements

    Declaration
    IEnumerator IEnumerable.GetEnumerator()
    Returns
    Type Description
    IEnumerator

    ICloneable.Clone()

    Clones this vector - return as an object

    Declaration
    object ICloneable.Clone()
    Returns
    Type Description
    Object

    Implements

    System.Collections.Generic.IReadOnlyList<T>
    System.Collections.Generic.IReadOnlyCollection<T>
    SettableToPower<T>
    SettableToProduct<T>
    SettableToProduct<T, U>
    SettableToWeightedSum<T>
    ISparseList<T>
    System.Collections.Generic.IList<T>
    System.Collections.Generic.ICollection<T>
    ISparseEnumerable<T>
    System.Collections.Generic.IEnumerable<T>
    System.Collections.IEnumerable
    System.ICloneable
    CanSetAllElementsTo<T>
    SettableTo<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.ToVector(IList<Double>)
    IListExtensions.SetTo<T>(IList<T>, IEnumerable<T>)
    IListExtensions.SetTo(IList<Double>, IEnumerable<Double>)
    IListExtensions.AsReadOnly<T>(IList<T>)
    ReadOnlyArray.ToReadOnlyArray<T>(IEnumerable<T>)
    In This Article
    Back to top Copyright © .NET Foundation. All rights reserved.