Class DenseVector
1dimensional dense container of double precision data that supports vector operations.
Inherited Members
Namespace: Microsoft.ML.Probabilistic.Math
Assembly: Microsoft.ML.Probabilistic.dll
Syntax
public class DenseVector : Vector, IReadOnlyList<double>, CanSetAllElementsTo<double>, SettableToPower<Vector>, SettableToProduct<Vector>, SettableToProduct<Vector, Vector>, SettableToWeightedSum<Vector>, ICursor, ICloneable, SettableTo<Vector>
Fields
count
Declaration
protected readonly int count
Field Value
Type  Description 

Int32 
data
Declaration
protected double[] data
Field Value
Type  Description 

Double[] 
start
Declaration
protected int start
Field Value
Type  Description 

Int32 
Properties
Count
Number of elements in vector
Declaration
public override int Count { get; protected set; }
Property Value
Type  Description 

Int32 
Overrides
IsReadOnly
Is read only
Declaration
public override bool IsReadOnly { get; }
Property Value
Type  Description 

Boolean 
Overrides
Item[Int32]
Gets and sets an element.
Declaration
public override double this[int index] { get; set; }
Parameters
Type  Name  Description 

Int32  index 
Property Value
Type  Description 

Double 
Overrides
SourceArray
Gets/sets source array for the vector
Declaration
public double[] SourceArray { get; set; }
Property Value
Type  Description 

Double[] 
Start
Gets/sets the start index in the source array
Declaration
public int Start { get; set; }
Property Value
Type  Description 

Int32 
Methods
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
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
Any(DenseVector, Func<Double, Double, Boolean>)
Declaration
public bool Any(DenseVector that, Func<double, double, bool> fun)
Parameters
Type  Name  Description 

DenseVector  that  
Func<Double, Double, Boolean>  fun 
Returns
Type  Description 

Boolean 
Any(Vector, Func<Double, Double, Boolean>)
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
Append(DenseVector)
Returns a new vector which appends a second dense vector to this dense vector
Declaration
public DenseVector Append(DenseVector second)
Parameters
Type  Name  Description 

DenseVector  second  Second vector 
Returns
Type  Description 

DenseVector 
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
Append(Double)
Appends an item to a vector  returns a new vector
Declaration
public override Vector Append(double item)
Parameters
Type  Name  Description 

Double  item 
Returns
Type  Description 

Vector 
Overrides
Clone()
Clones this vector  return as a vector
Declaration
public override Vector Clone()
Returns
Type  Description 

Vector 
Overrides
Constant(Int32, Double)
Create a dense vector of given length with elements all equal to a specified value
Declaration
public static DenseVector 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 

DenseVector 
Contains(Double)
Returns true if the Vector contains the specified item value
Declaration
public override bool Contains(double item)
Parameters
Type  Name  Description 

Double  item 
Returns
Type  Description 

Boolean 
Overrides
Copy(Vector)
Creates a dense vector as a copy of another vector
Declaration
public static DenseVector Copy(Vector that)
Parameters
Type  Name  Description 

Vector  that  The source vector  can be dense or sparse 
Returns
Type  Description 

DenseVector 
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
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
CreateSourceArray(Int32)
Creates a source array with a given number of records
Declaration
public void CreateSourceArray(int nRecords)
Parameters
Type  Name  Description 

Int32  nRecords 
Equals(Object)
Determines object equality.
Declaration
public override bool Equals(object obj)
Parameters
Type  Name  Description 

Object  obj  Another (DenseVector) object. 
Returns
Type  Description 

Boolean  True if equal. 
Overrides
EqualsAll(Double)
Tests if all elements are equal to a given value.
Declaration
public override bool EqualsAll(double value)
Parameters
Type  Name  Description 

Double  value  The value to test against. 
Returns
Type  Description 

Boolean  True if all elements are equal to 
Overrides
FindAll(Converter<Double, Boolean>)
Returns an enumeration over the indices and values of all the 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
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 zerobased index of the first occurrence of an element that matches the conditions defined by match, if found; otherwise, –1. 
Overrides
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 zerobased index of the last occurrence of an element that matches the conditions defined by match, if found; otherwise, –1. 
Overrides
FromArray(Double[])
Constructs a dense vector from an array.
Declaration
public static DenseVector FromArray(params double[] data)
Parameters
Type  Name  Description 

Double[]  data  1D array of elements. 
Returns
Type  Description 

DenseVector 
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 DenseVector 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 

DenseVector 
Remarks
Throws an exception if Data is null, start < 0, or count < 0.
FromArrayReference(Int32, Double[], Int32)
Constructs a vector by referencing an array.
Declaration
public static DenseVector FromArrayReference(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 

DenseVector 
Remarks
The vector will not copy the array but only reference it, so any numerical changes to the array will also apply to the vector. If the array grows larger, the extra elements are ignored. The array must not shrink or else the vector will become inconsistent.
Throws an exception if Data is null, start < 0, or count < 0.
GetEnumerator()
Gets a typed enumerator which yields the vector elements
Declaration
public override IEnumerator<double> GetEnumerator()
Returns
Type  Description 

IEnumerator<Double> 
Overrides
GetHashCode()
Gets a hash code for the instance.
Declaration
public override int GetHashCode()
Returns
Type  Description 

Int32  The code. 
Overrides
GreaterThan(DenseVector)
Tests if this dense vector is strictly greater than a second dense vector.
Declaration
public bool GreaterThan(DenseVector that)
Parameters
Type  Name  Description 

DenseVector  that  The value to test against. 
Returns
Type  Description 

Boolean  True if each element is strictly greater than the corresponding element of 
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 
Overrides
GreaterThan(Double)
Tests if all elements are strictly greater than a given value.
Declaration
public override bool GreaterThan(double value)
Parameters
Type  Name  Description 

Double  value  The value to test against. 
Returns
Type  Description 

Boolean  True if all elements are strictly greater than 
Overrides
GreaterThanOrEqual(DenseVector)
Tests if this dense vector is greater than or equal to a second dense vector.
Declaration
public bool GreaterThanOrEqual(DenseVector that)
Parameters
Type  Name  Description 

DenseVector  that  The value to test against. 
Returns
Type  Description 

Boolean  True if each element is greater than or equal to the corresponding element of 
GreaterThanOrEqual(Vector)
Tests if this vector is greater 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 
Overrides
GreaterThanOrEqual(Double)
Tests if all elements are greater than or equal to a given value.
Declaration
public override bool GreaterThanOrEqual(double value)
Parameters
Type  Name  Description 

Double  value  The value to test against. 
Returns
Type  Description 

Boolean  True if all elements are greater than or equal to 
Overrides
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 
Overrides
IndexOf(Double)
Returns the index of the first occurence of the given value in the vector. 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 vector 
Overrides
IndexOfMaximum()
Returns the index of the maximum element.
Declaration
public override int IndexOfMaximum()
Returns
Type  Description 

Int32  The index of the maximum element. 
Overrides
IndexOfMinimum()
Returns the index of the minimum element.
Declaration
public override int IndexOfMinimum()
Returns
Type  Description 

Int32  The index of the minimum element. 
Overrides
Inner(Converter<Double, Double>, DenseVector, Converter<Double, Double>)
Returns the inner product of a function of this dense vector with a function of a second dense vector.
Declaration
public double Inner(Converter<double, double> thisFun, DenseVector that, Converter<double, double> thatFun)
Parameters
Type  Name  Description 

Converter<Double, Double>  thisFun  Function to convert the elements of this vector 
DenseVector  that  Second vector, which must have the same size as 
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 
Converter<Double, Double>  thatFun  Function to convert the elements of that vector 
Returns
Type  Description 

Double  Their inner product. 
Overrides
Inner(DenseVector)
Returns the inner product of this dense vector with another dense vector.
Declaration
public double Inner(DenseVector that)
Parameters
Type  Name  Description 

DenseVector  that  Second vector, which must have the same size as 
Returns
Type  Description 

Double  Their inner product. 
Inner(DenseVector, Converter<Double, Double>)
Returns the inner product of this dense vector with a function of a second dense vector.
Declaration
public double Inner(DenseVector that, Converter<double, double> fun)
Parameters
Type  Name  Description 

DenseVector  that  Second vector, which must have the same size as 
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 
Returns
Type  Description 

Double  Their inner product. 
Overrides
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 
Converter<Double, Double>  fun  Function to convert the elements of the second vector 
Returns
Type  Description 

Double  Their inner product. 
Overrides
LessThan(DenseVector)
Tests if this dense vector is strictly less than a second dense vector.
Declaration
public bool LessThan(DenseVector that)
Parameters
Type  Name  Description 

DenseVector  that  The value to test against. 
Returns
Type  Description 

Boolean  True if each element is strictly less than the corresponding element of 
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 
Overrides
LessThan(Double)
Tests if all elements are strictly less than a given value.
Declaration
public override bool LessThan(double value)
Parameters
Type  Name  Description 

Double  value  The value to test against. 
Returns
Type  Description 

Boolean  True if all elements are strictly less than 
Overrides
LessThanOrEqual(DenseVector)
Tests if this dense vector is less than or equal to a second dense vector.
Declaration
public bool LessThanOrEqual(DenseVector that)
Parameters
Type  Name  Description 

DenseVector  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 
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 
Overrides
LessThanOrEqual(Double)
Tests if all elements are less than or equal to a given value.
Declaration
public override bool LessThanOrEqual(double value)
Parameters
Type  Name  Description 

Double  value  The value to test against. 
Returns
Type  Description 

Boolean  True if all elements are less than or equal to 
Overrides
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
Max()
Returns the maximum of the elements in the vector
Declaration
public override double Max()
Returns
Type  Description 

Double 
Overrides
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
MaxDiff(DenseVector)
Returns the maximum absolute difference between this dense vector and another dense vector.
Declaration
public double MaxDiff(DenseVector that)
Parameters
Type  Name  Description 

DenseVector  that  The second vector. 
Returns
Type  Description 

Double 

Remarks
This routine is typically used instead of Equals
, since Equals
is susceptible to roundoff errors.
MaxDiff(DenseVector, Double)
Returns the maximum relative difference between this dense vector and another.
Declaration
public double MaxDiff(DenseVector that, double rel)
Parameters
Type  Name  Description 

DenseVector  that  The second vector. 
Double  rel  An offset to avoid division by zero. 
Returns
Type  Description 

Double 

Remarks
This routine is typically used instead of Equals
, since Equals
is susceptible to roundoff errors.
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 

Overrides
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 

Overrides
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
Min()
Returns the minimum of the elements in the vector
Declaration
public override double Min()
Returns
Type  Description 

Double 
Overrides
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
Outer(DenseVector)
Returns the outer product of this dense vector with another dense vector.
Declaration
public PositiveDefiniteMatrix Outer(DenseVector that)
Parameters
Type  Name  Description 

DenseVector  that  Second vector. 
Returns
Type  Description 

PositiveDefiniteMatrix  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
PredivideBy(LowerTriangularMatrix)
Gets the solution to Ax=b, where A is a lower triangular matrix, and b is this vector. Equivalent to the leftdivision x = A\b.
Declaration
public override Vector PredivideBy(LowerTriangularMatrix A)
Parameters
Type  Name  Description 

LowerTriangularMatrix  A  A lower triangular matrix. 
Returns
Type  Description 

Vector 

Overrides
Remarks
this
is used as the righthand side vector b, and it also
receives the solution.
Throws an exception if A
is singular.
PredivideBy(PositiveDefiniteMatrix)
Premultiply this vector by the inverse of the given positive definite matrix
Declaration
public override Vector PredivideBy(PositiveDefiniteMatrix A)
Parameters
Type  Name  Description 

PositiveDefiniteMatrix  A 
Returns
Type  Description 

Vector 
Overrides
PredivideBy(UpperTriangularMatrix)
Gets the solution to Ax=b, where A is an upper triangular matrix, and b is this vector. Equivalent to the leftdivision x = A\b.
Declaration
public override Vector PredivideBy(UpperTriangularMatrix A)
Parameters
Type  Name  Description 

UpperTriangularMatrix  A  An upper triangular matrix. 
Returns
Type  Description 

Vector 

Overrides
Remarks
this
is used as the righthand side vector b, and it also
receives the solution.
Throws an exception if A
is singular.
PredivideByTranspose(LowerTriangularMatrix)
Gets the solution to A'x=b, where A is a lower triangular matrix, and b is this vector. Equivalent to the leftdivision x = A'\b.
Declaration
public override Vector PredivideByTranspose(LowerTriangularMatrix A)
Parameters
Type  Name  Description 

LowerTriangularMatrix  A  A lower triangular matrix. 
Returns
Type  Description 

Vector 

Overrides
Remarks
this
is used as the righthand side vector b, and it also
receives the solution.
Throws an exception if A
is singular.
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
Reduce(Double, DenseVector, Func<Double, Double, Double, Double>)
Reduce method. Operates on this vector and that vector
Declaration
public double Reduce(double initial, DenseVector that, Func<double, double, double, double> fun)
Parameters
Type  Name  Description 

Double  initial  Initial value 
DenseVector  that  A second vector 
Func<Double, Double, Double, Double>  fun  Reduction function taking partial result, current element, and current element of 
Returns
Type  Description 

Double 
Reduce(Double, Vector, Func<Double, Double, Double, Double>)
Reduce method. Operates on this dense vector and that dense 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 
Returns
Type  Description 

Double 
Overrides
Reduce(Double, Vector, Vector, Func<Double, Double, Double, Double, Double>)
Reduce method. Operates on this vector and two other vectors
Declaration
public override double Reduce(double initial, Vector a, Vector b, Func<double, double, double, double, double> fun)
Parameters
Type  Name  Description 

Double  initial  Initial value 
Vector  a  A second vector 
Vector  b  A third vector 
Func<Double, Double, Double, Double, Double>  fun  Reduction function 
Returns
Type  Description 

Double 
Overrides
ReferenceClone()
Creates a clone of this instance which references the source array
Declaration
public ICursor ReferenceClone()
Returns
Type  Description 

ICursor 
Scale(Double)
Multiplies this vector by a scalar.
Declaration
public override void Scale(double scale)
Parameters
Type  Name  Description 

Double  scale  The scalar. 
Overrides
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
SetSubvector(Int32, DenseVector)
Set a subvector of this to another vector.
Declaration
public void SetSubvector(int startIndex, DenseVector that)
Parameters
Type  Name  Description 

Int32  startIndex  The index of the first element of to copy to. 
DenseVector  that  A dense vector whose length is at most 
SetSubvector(Int32, Vector)
Set a subvector of this to another vector.
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 
Overrides
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
SetTo(DenseVector)
Copies values from a dense vector to this dense vector
Declaration
public void SetTo(DenseVector that)
Parameters
Type  Name  Description 

DenseVector  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
SetTo(Double[])
Copies values from an array.
Declaration
public override void SetTo(double[] values)
Parameters
Type  Name  Description 

Double[]  values  An array whose length matches 
Overrides
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
SetToDifference(DenseVector, DenseVector)
Sets this dense vector to the difference of two othe dense vectors
Declaration
public DenseVector SetToDifference(DenseVector a, DenseVector b)
Parameters
Type  Name  Description 

DenseVector  a  First vector, which must have the same size as 
DenseVector  b  Second vector, which must have the same size as 
Returns
Type  Description 

DenseVector 

Remarks
this
receives the difference, and must already be the correct size.
a
and/or b
may be the same object as this
.
If this
and a
/b
occupy distinct yet overlapping portions of the same source array, the results are undefined.
SetToDifference(DenseVector, Double)
Set this dense vector to another dense vector minus a constant
Declaration
public DenseVector SetToDifference(DenseVector a, double b)
Parameters
Type  Name  Description 

DenseVector  a  The other vector 
Double  b  The constant 
Returns
Type  Description 

DenseVector 
Remarks
Assumes the vectors are compatible
SetToDifference(Vector, Vector)
Sets this vector to the difference of two vectors
Declaration
public override Vector SetToDifference(Vector a, Vector b)
Parameters
Type  Name  Description 

Vector  a  First vector, which must have the same size as 
Vector  b  Second vector, which must have the same size as 
Returns
Type  Description 

Vector 

Overrides
Remarks
this
receives the difference, and must already be the correct size.
a
and/or b
may be the same object as this
.
If this
and a
/b
occupy distinct yet overlapping portions of the same source array, the results are undefined.
SetToDifference(Vector, Double)
Set this vector to another vector minus a constant
Declaration
public override Vector SetToDifference(Vector a, double b)
Parameters
Type  Name  Description 

Vector  a  The other vector 
Double  b  The constant 
Returns
Type  Description 

Vector 
Overrides
Remarks
Assumes the vectors are compatible
SetToDifference(Double, DenseVector)
Set this dense vector to a constant minus another dense vector
Declaration
public DenseVector SetToDifference(double a, DenseVector b)
Parameters
Type  Name  Description 

Double  a  The constant 
DenseVector  b  The other vector 
Returns
Type  Description 

DenseVector 
Remarks
Assumes the vectors are compatible
SetToDifference(Double, Vector)
Set this vector to a constant minus another vector
Declaration
public override Vector SetToDifference(double a, Vector b)
Parameters
Type  Name  Description 

Double  a  The constant 
Vector  b  The other vector 
Returns
Type  Description 

Vector 
Overrides
Remarks
Assumes the vectors are compatible
SetToFunction(DenseVector, Converter<Double, Double>)
Sets the elements of this vector to a function of the elements of a given vector
Declaration
public DenseVector SetToFunction(DenseVector that, Converter<double, double> fun)
Parameters
Type  Name  Description 

DenseVector  that  The given vector 
Converter<Double, Double>  fun  The function which maps doubles to doubles 
Returns
Type  Description 

DenseVector 
Remarks
Assumes the vectors are compatible
SetToFunction(DenseVector, DenseVector, Func<Double, Double, Double>)
Sets the elements of this vector to a function of the elements of two vectors
Declaration
public DenseVector SetToFunction(DenseVector a, DenseVector b, Func<double, double, double> fun)
Parameters
Type  Name  Description 

DenseVector  a  The first vector 
DenseVector  b  The second vector 
Func<Double, Double, Double>  fun  The function which maps two doubles to a double 
Returns
Type  Description 

DenseVector 
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
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
Remarks
Assumes the vectors are compatible
SetToLeastSquares(DenseVector, Matrix)
Solve Y = X*A
Declaration
public double SetToLeastSquares(DenseVector Y, Matrix X)
Parameters
Type  Name  Description 

DenseVector  Y  Vector of target values 
Matrix  X  Portrait matrix 
Returns
Type  Description 

Double  The smallest squared singular value of X. This is useful for detecting an illconditioned problem. 
SetToPower(DenseVector, Double)
Sets this vector to the elementwise power of another vector.
Declaration
public void SetToPower(DenseVector that, double exponent)
Parameters
Type  Name  Description 

DenseVector  that  A vector, which must have the same size as 
Double  exponent  A scalar. 
Remarks
this
receives the product, and must already be the correct size.
If this
and that
occupy distinct yet overlapping portions of the same source array, the results are undefined.
SetToPower(Vector, Double)
Sets this vector to the elementwise power of another vector.
Declaration
public override void SetToPower(Vector that, double exponent)
Parameters
Type  Name  Description 

Vector  that  A vector, which must have the same size as 
Double  exponent  A scalar. 
Overrides
Remarks
this
receives the product, and must already be the correct size.
If this
and that
occupy distinct yet overlapping portions of the same source array, the results are undefined.
SetToProduct(DenseVector, DenseVector)
Sets this dense vector to the elementwise product of two other dense vectors.
Declaration
public void SetToProduct(DenseVector a, DenseVector b)
Parameters
Type  Name  Description 

DenseVector  a  Must have the same size as 
DenseVector  b  Must have the same size as 
Remarks
this
receives the product, and must already be the correct size.
If this
and a
occupy distinct yet overlapping portions of the same source array, the results are undefined.
SetToProduct(DenseVector, Matrix)
Sets this dense vector to the product of a dense vector by a matrix (i.e. x*A).
Declaration
public DenseVector SetToProduct(DenseVector x, Matrix A)
Parameters
Type  Name  Description 

DenseVector  x  A vector. Cannot be 
Matrix  A  A matrix. 
Returns
Type  Description 

DenseVector 

Remarks
this
receives the product, and must already be the correct size.
If this
and A
/x
occupy overlapping portions of the same source array, the results are undefined.
SetToProduct(DenseVector, Double)
Sets this dense vector to a dense vector times a scalar.
Declaration
public DenseVector SetToProduct(DenseVector a, double b)
Parameters
Type  Name  Description 

DenseVector  a  A vector, which must have the same size as 
Double  b  A scalar. 
Returns
Type  Description 

DenseVector 

Remarks
this
receives the product, and must already be the correct size.
If this
and a
occupy distinct yet overlapping portions of the same source array, the results are undefined.
SetToProduct(Matrix, DenseVector)
Set this dense vector to the product of a matrix by a dense vector (i.e. A*x).
Declaration
public DenseVector SetToProduct(Matrix A, DenseVector x)
Parameters
Type  Name  Description 

Matrix  A  A matrix. 
DenseVector  x  A vector. Cannot be 
Returns
Type  Description 

DenseVector 

Remarks
this
receives the product, and must already be the correct size.
If this
and A
/x
occupy overlapping portions of the same source array, the results are undefined.
SetToProduct(Matrix, Vector)
Set this vector to the product of a matrix by a vector (i.e. A*x).
Declaration
public override Vector SetToProduct(Matrix A, Vector x)
Parameters
Type  Name  Description 

Matrix  A  A matrix. 
Vector  x  A vector. Cannot be 
Returns
Type  Description 

Vector 

Overrides
Remarks
this
receives the product, and must already be the correct size.
If this
and A
/x
occupy overlapping portions of the same source array, the results are undefined.
SetToProduct(Vector, Matrix)
Sets this vector to the product of a vector by a matrix (i.e. x*A).
Declaration
public override Vector SetToProduct(Vector x, Matrix A)
Parameters
Type  Name  Description 

Vector  x  A vector. Cannot be 
Matrix  A  A matrix. 
Returns
Type  Description 

Vector 

Overrides
Remarks
this
receives the product, and must already be the correct size.
If this
and A
/x
occupy overlapping portions of the same source array, the results are undefined.
SetToProduct(Vector, Vector)
Sets this dense vector to the elementwise product of two other vectors.
Declaration
public override void SetToProduct(Vector a, Vector b)
Parameters
Type  Name  Description 

Vector  a  Must have the same size as 
Vector  b  Must have the same size as 
Overrides
Remarks
this
receives the product, and must already be the correct size.
If this
and a
occupy distinct yet overlapping portions of the same source array, the results are undefined.
SetToProduct(Vector, Double)
Sets this vector to a vector times a scalar.
Declaration
public override Vector SetToProduct(Vector a, double b)
Parameters
Type  Name  Description 

Vector  a  A vector, which must have the same size as 
Double  b  A scalar. 
Returns
Type  Description 

Vector 

Overrides
Remarks
this
receives the product, and must already be the correct size.
If this
and a
occupy distinct yet overlapping portions of the same source array, the results are undefined.
SetToRatio(DenseVector, DenseVector)
Sets this dense vector to the elementwise ratio of two other dense vectors.
Declaration
public DenseVector SetToRatio(DenseVector a, DenseVector b)
Parameters
Type  Name  Description 

DenseVector  a  Must have the same size as 
DenseVector  b  Must have the same size as 
Returns
Type  Description 

DenseVector 

Remarks
this
receives the product, and must already be the correct size.
If this
and a
occupy distinct yet overlapping portions of the same source array, the results are undefined.
SetToRatio(Vector, Vector)
Sets this vector to the elementwise ratio of two other vectors.
Declaration
public override Vector SetToRatio(Vector a, Vector b)
Parameters
Type  Name  Description 

Vector  a  Must have the same size as 
Vector  b  Must have the same size as 
Returns
Type  Description 

Vector 

Overrides
Remarks
this
receives the product, and must already be the correct size.
If this
and a
occupy distinct yet overlapping portions of the same source array, the results are undefined.
SetToSubarray(Double[], Int32)
Copies values from an array.
Declaration
public override void SetToSubarray(double[] values, int startIndex)
Parameters
Type  Name  Description 

Double[]  values  An array whose length is at least 
Int32  startIndex  The index of the first value in 
Overrides
SetToSubvector(DenseVector, Int32)
Copies value from a vector.
Declaration
public void SetToSubvector(DenseVector that, int startIndex)
Parameters
Type  Name  Description 

DenseVector  that  A dense vector whose length is at least 
Int32  startIndex  The index of the first value in 
SetToSubvector(Vector, Int32)
Copies value from a vector.
Declaration
public override void SetToSubvector(Vector that, int startIndex)
Parameters
Type  Name  Description 

Vector  that  A vector whose length is at least 
Int32  startIndex  The index of the first value in 
Overrides
SetToSum(DenseVector, DenseVector)
Sets this dense vector to the elementwise sum of two other dense vectors.
Declaration
public DenseVector SetToSum(DenseVector a, DenseVector b)
Parameters
Type  Name  Description 

DenseVector  a  First vector, which must have the same size as 
DenseVector  b  Second vector, which must have the same size as 
Returns
Type  Description 

DenseVector 

Remarks
this
receives the sum, and must already be the correct size.
a
and/or b
may be the same object as this
.
If this
and a
/b
occupy distinct yet overlapping portions of the same source array, the results are undefined.
SetToSum(DenseVector, Double)
Sets this dense vector to another dense vector plus a scalar.
Declaration
public DenseVector SetToSum(DenseVector a, double b)
Parameters
Type  Name  Description 

DenseVector  a  A vector, which must have the same size as 
Double  b  A scalar. 
Returns
Type  Description 

DenseVector 

Remarks
this
receives the sum, and must already be the correct size.
If this
and a
occupy distinct yet overlapping portions of the same source array, the results are undefined.
SetToSum(Vector, Vector)
Sets this vector to the elementwise sum of two other vectors.
Declaration
public override Vector SetToSum(Vector a, Vector b)
Parameters
Type  Name  Description 

Vector  a  First vector, which must have the same size as 
Vector  b  Second vector, which must have the same size as 
Returns
Type  Description 

Vector 

Overrides
Remarks
this
receives the sum, and must already be the correct size.
a
and/or b
may be the same object as this
.
If this
and a
/b
occupy distinct yet overlapping portions of the same source array, the results are undefined.
SetToSum(Vector, Double)
Sets this vector to another vector plus a scalar.
Declaration
public override Vector SetToSum(Vector a, double b)
Parameters
Type  Name  Description 

Vector  a  A vector, which must have the same size as 
Double  b  A scalar. 
Returns
Type  Description 

Vector 

Overrides
Remarks
this
receives the sum, and must already be the correct size.
If this
and a
occupy distinct yet overlapping portions of the same source array, the results are undefined.
SetToSum(Double, DenseVector, Double, DenseVector)
Set this vector to a linear combination of two other vectors
Declaration
public void SetToSum(double aScale, DenseVector a, double bScale, DenseVector b)
Parameters
Type  Name  Description 

Double  aScale  The multiplier for vector a 
DenseVector  a  Vector a 
Double  bScale  The multiplier for vector b 
DenseVector  b  Vector b 
SetToSum(Double, Vector, Double, Vector)
Set this vector to a linear combination of two other vectors
Declaration
public override void SetToSum(double aScale, Vector a, double bScale, Vector b)
Parameters
Type  Name  Description 

Double  aScale  The multiplier for vector a 
Vector  a  Vector a 
Double  bScale  The multiplier for vector b 
Vector  b  Vector b 
Overrides
Subvector(Int32, Int32)
Create a subvector of this vector
Declaration
public override Vector Subvector(int startIndex, int count)
Parameters
Type  Name  Description 

Int32  startIndex  
Int32  count 
Returns
Type  Description 

Vector 
Overrides
Sum()
Returns the sum of all elements.
Declaration
public override double Sum()
Returns
Type  Description 

Double 
Overrides
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
Sum(Converter<Double, Double>, DenseVector, Converter<Double, Boolean>)
Returns the sum of a function of this dense vector filtered by a function of a second dense vector.
Declaration
public double Sum(Converter<double, double> fun, DenseVector that, Converter<double, bool> cond)
Parameters
Type  Name  Description 

Converter<Double, Double>  fun  Function to convert the elements of this vector 
DenseVector  that  Second vector, which must have the same size as 
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 
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
SumI()
Returns the sum of over zerobased index times element.
Declaration
public override double SumI()
Returns
Type  Description 

Double 
Overrides
SumISq()
Returns the sum of over square of index^2 times element.
Declaration
public override double SumISq()
Returns
Type  Description 

Double 
Overrides
ToArray()
Converts this vector to an array of doubles
Declaration
public override double[] ToArray()
Returns
Type  Description 

Double[] 
Overrides
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  
String  delimiter 
Returns
Type  Description 

String 
Overrides
ToString(String, String, Func<Int32, String>)
String representation of vector with a specified format and delimiter and a function for converting integers to display strings.
Declaration
public override string ToString(string format, string delimiter, Func<int, string> intToString)
Parameters
Type  Name  Description 

String  format  
String  delimiter  
Func<Int32, String>  intToString 
Returns
Type  Description 

String 
Overrides
Zero(Int32)
Create a dense vector of given length with elements all 0.0
Declaration
public static DenseVector Zero(int count)
Parameters
Type  Name  Description 

Int32  count  Number of elements in vector 
Returns
Type  Description 

DenseVector 