Types in MathNet.Numerics.LinearAlgebra.Double
Public Constructors
SparseVector(int length)
Create a new sparse vector with the given length.
All cells of the vector will be initialized to zero.
Create a new sparse vector straight from an initialized vector storage instance.
The storage is used directly without copying.
Intended for advanced scenarios where you're working directly with
storage for performance or interop reasons.
Public Static Functions
SparseVector Create(int length, double value)
Create a new sparse vector and initialize each value using the provided value.
SparseVector Create(int length, Func<int, double> init)
Create a new sparse vector and initialize each value using the provided init function.
SparseVector OfEnumerable(IEnumerable<double> enumerable)
Create a new sparse vector as a copy of the given enumerable.
This new vector will be independent from the enumerable.
A new memory block will be allocated for storing the vector.
SparseVector OfIndexedEnumerable(int length, IEnumerable<Tuple<int, double>> enumerable)
Create a new sparse vector as a copy of the given indexed enumerable.
Keys must be provided at most once, zero is assumed if a key is omitted.
This new vector will be independent from the enumerable.
A new memory block will be allocated for storing the vector.
Create a new sparse vector as a copy of the given other vector.
This new vector will be independent from the other vector.
A new memory block will be allocated for storing the vector.
SparseVector Parse(string value, IFormatProvider formatProvider)
Creates a double sparse vector based on a string. The string can be in the following formats (without the
quotes): 'n', 'n,n,..', '(n,n,..)', '[n,n,...]', where n is a double.
Parameters
string
value
IFormatProvider
formatProvider
Return
A double sparse vector containing the values specified by the given string.
bool TryParse(string value, IFormatProvider formatProvider, SparseVector& result)
bool TryParse(string value, SparseVector& result)
Public Methods
double AbsoluteMaximum()
Returns the value of the absolute maximum element.
Return
double
The value of the absolute maximum element.
int AbsoluteMaximumIndex()
Returns the index of the absolute maximum element.
Return
int
The index of absolute maximum element.
double AbsoluteMinimum()
Returns the value of the absolute minimum element.
Return
double
The value of the absolute minimum element.
int AbsoluteMinimumIndex()
Returns the index of the absolute minimum element.
Return
int
The index of absolute minimum element.
Adds another vector to this vector.
Return
A new vector containing the sum of both vectors.
Adds another vector to this vector and stores the result into the result vector.
Double[] AsArray()
Returns the internal array of this vector if, and only if, this vector is stored by such an array internally.
Otherwise returns null. Changes to the returned array and the vector will affect each other.
Use ToArray instead if you always need an independent array.
void At(int index, double value)
double At(int index)
Gets the value at the given
index without range checking..
Parameters
int
index
Return
double
The value of the vector at the given index.
void Clear()
Resets all values to zero.
void ClearSubVector(int index, int count)
Sets all values of a subvector to zero.
Returns a deep-copy clone of the vector.
Return
A deep-copy clone of the vector.
void CoerceZero(double threshold)
Set all values whose absolute value is smaller than the threshold to zero.
void CoerceZero(Func<double, bool> zeroPredicate)
Set all values that meet the predicate to zero, in-place.
void Conjugate(Vector<T> result)
Complex conjugates vector and save result to
result
Return vector with complex conjugate values of the source vector
double ConjugateDotProduct(Vector<T> other)
Computes the dot product between the conjugate of this vector and another vector.
Return
double
The sum of conj(a[i])*b[i] for all i.
void CopySubVectorTo(Vector<T> destination, int sourceIndex, int targetIndex, int count)
Copies the requested elements from this vector to another.
Parameters
int
sourceIndex
int
targetIndex
int
count
void CopyTo(Vector<T> target)
Copies the values of this vector into the target vector.
void DivideByThis(double scalar, Vector<T> result)
double DotProduct(Vector<T> other)
Computes the dot product between this vector and another vector.
Return
double
The sum of a[i]*b[i] for all i.
IEnumerable<double> Enumerate(Zeros zeros)
Returns an IEnumerable that can be used to iterate through all values of the vector.
IEnumerable<double> Enumerate()
Returns an IEnumerable that can be used to iterate through all values of the vector.
IEnumerable<ValueTuple<int, double>> EnumerateIndexed()
Returns an IEnumerable that can be used to iterate through all values of the vector and their index.
IEnumerable<ValueTuple<int, double>> EnumerateIndexed(Zeros zeros)
Returns an IEnumerable that can be used to iterate through all values of the vector and their index.
bool Equals(Vector<T> other)
Indicates whether the current object is equal to another object of the same type.
Return
bool
true
if the current object is equal to the other parameter; otherwise, false
.
bool Equals(object obj)
Determines whether the specified
Object is equal to this instance.
Parameters
object
obj
Return
bool
true
if the specified Object is equal to this instance; otherwise, false
.
bool Exists(Func<double, bool> predicate, Zeros zeros)
Returns true if at least one element satisfies a predicate.
Zero elements may be skipped on sparse data structures if allowed (default).
bool Exists2<TOther>(Func<double, TOther, bool> predicate, Vector<T> other, Zeros zeros)
Returns true if at least one element pairs of two vectors of the same size satisfies a predicate.
Zero elements may be skipped on sparse data structures if allowed (default).
Tuple<int, double> Find(Func<double, bool> predicate, Zeros zeros)
Returns a tuple with the index and value of the first element satisfying a predicate, or null if none is found.
Zero elements may be skipped on sparse data structures if allowed (default).
Tuple<int, double, TOther> Find2<TOther>(Func<double, TOther, bool> predicate, Vector<T> other, Zeros zeros)
Returns a tuple with the index and values of the first element pair of two vectors of the same size satisfying a predicate, or null if none is found.
Zero elements may be skipped on sparse data structures if allowed (default).
TState Fold2<TOther, TState>(Func<TState, double, TOther, TState> f, TState state, Vector<T> other, Zeros zeros)
Applies a function to update the status with each value pair of two vectors and returns the resulting status.
bool ForAll(Func<double, bool> predicate, Zeros zeros)
Returns true if all elements satisfy a predicate.
Zero elements may be skipped on sparse data structures if allowed (default).
bool ForAll2<TOther>(Func<double, TOther, bool> predicate, Vector<T> other, Zeros zeros)
Returns true if all element pairs of two vectors of the same size satisfy a predicate.
Zero elements may be skipped on sparse data structures if allowed (default).
int GetHashCode()
Returns a hash code for this instance.
Return
int
A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table.
double InfinityNorm()
Calculates the infinity norm of the vector.
Return
double
The maximum absolute value.
double L1Norm()
Calculates the L1 norm of the vector, also known as Manhattan norm.
Return
double
The sum of the absolute values.
double L2Norm()
Calculates the L2 norm of the vector, also known as Euclidean norm.
Return
double
The square root of the sum of the squared values.
void Map(Func<double, double> f, Vector<T> result, Zeros zeros)
Applies a function to each value of this vector and replaces the value in the result vector.
If forceMapZero is not set to true, zero values may or may not be skipped depending
on the actual data storage implementation (relevant mostly for sparse vectors).
Vector<T> Map<TU>(Func<double, TU> f, Zeros zeros)
Applies a function to each value of this vector and returns the results as a new vector.
If forceMapZero is not set to true, zero values may or may not be skipped depending
on the actual data storage implementation (relevant mostly for sparse vectors).
Vector<T> Map2(Func<double, double, double> f, Vector<T> other, Zeros zeros)
Applies a function to each value pair of two vectors and returns the results as a new vector.
void Map2(Func<double, double, double> f, Vector<T> other, Vector<T> result, Zeros zeros)
Applies a function to each value pair of two vectors and replaces the value in the result vector.
void MapConvert<TU>(Func<double, TU> f, Vector<T> result, Zeros zeros)
Applies a function to each value of this vector and replaces the value in the result vector.
If forceMapZero is not set to true, zero values may or may not be skipped depending
on the actual data storage implementation (relevant mostly for sparse vectors).
void MapIndexed(Func<int, double, double> f, Vector<T> result, Zeros zeros)
Applies a function to each value of this vector and replaces the value in the result vector.
The index of each value (zero-based) is passed as first argument to the function.
If forceMapZero is not set to true, zero values may or may not be skipped depending
on the actual data storage implementation (relevant mostly for sparse vectors).
Vector<T> MapIndexed<TU>(Func<int, double, TU> f, Zeros zeros)
Applies a function to each value of this vector and returns the results as a new vector.
The index of each value (zero-based) is passed as first argument to the function.
If forceMapZero is not set to true, zero values may or may not be skipped depending
on the actual data storage implementation (relevant mostly for sparse vectors).
void MapIndexedConvert<TU>(Func<int, double, TU> f, Vector<T> result, Zeros zeros)
Applies a function to each value of this vector and replaces the value in the result vector.
The index of each value (zero-based) is passed as first argument to the function.
If forceMapZero is not set to true, zero values may or may not be skipped depending
on the actual data storage implementation (relevant mostly for sparse vectors).
void MapIndexedInplace(Func<int, double, double> f, Zeros zeros)
Applies a function to each value of this vector and replaces the value with its result.
The index of each value (zero-based) is passed as first argument to the function.
If forceMapZero is not set to true, zero values may or may not be skipped depending
on the actual data storage implementation (relevant mostly for sparse vectors).
void MapInplace(Func<double, double> f, Zeros zeros)
Applies a function to each value of this vector and replaces the value with its result.
If forceMapZero is not set to true, zero values may or may not be skipped depending
on the actual data storage implementation (relevant mostly for sparse vectors).
double Maximum()
Returns the value of maximum element.
Return
double
The value of maximum element.
int MaximumIndex()
Returns the index of the maximum element.
Return
int
The index of maximum element.
double Minimum()
Returns the value of the minimum element.
Return
double
The value of the minimum element.
int MinimumIndex()
Returns the index of the minimum element.
Return
int
The index of minimum element.
void Modulus(double divisor, Vector<T> result)
void ModulusByThis(double dividend, Vector<T> result)
void Multiply(double scalar, Vector<T> result)
Returns a negated vector.
Return
The negated vector.
void Negate(Vector<T> result)
Negates vector and save result to
result
double Norm(double p)
Computes the p-Norm.
Parameters
double
p
Return
double
Scalar ret = ( ∑|this[i]|^p )^(1/p)
Vector<T> Normalize(double p)
Normalizes this vector to a unit vector with respect to the p-norm.
Parameters
double
p
Return
This vector normalized to a unit vector with respect to the p-norm.
Computes the outer product M[i,j] = u[i]*v[j] of this and another vector and stores the result in the result matrix.
Computes the outer product M[i,j] = u[i]*v[j] of this and another vector.
Pointwise applies the abs function to each value
void PointwiseAbs(Vector<T> result)
Pointwise applies the abs function to each value
void PointwiseAbsoluteMaximum(Vector<T> other, Vector<T> result)
Pointwise applies the absolute maximum with the values of another vector to each value.
Pointwise applies the absolute maximum with the values of another vector to each value.
Vector<T> PointwiseAbsoluteMaximum(double scalar)
void PointwiseAbsoluteMaximum(double scalar, Vector<T> result)
void PointwiseAbsoluteMinimum(double scalar, Vector<T> result)
Vector<T> PointwiseAbsoluteMinimum(double scalar)
Pointwise applies the absolute minimum with the values of another vector to each value.
void PointwiseAbsoluteMinimum(Vector<T> other, Vector<T> result)
Pointwise applies the absolute minimum with the values of another vector to each value.
void PointwiseAcos(Vector<T> result)
Pointwise applies the acos function to each value
Pointwise applies the acos function to each value
Pointwise applies the asin function to each value
void PointwiseAsin(Vector<T> result)
Pointwise applies the asin function to each value
Pointwise applies the atan function to each value
void PointwiseAtan(Vector<T> result)
Pointwise applies the atan function to each value
Pointwise applies the atan2 function to each value of the current
vector and a given other vector being the 'x' of atan2 and the
'this' vector being the 'y'
Pointwise applies the atan2 function to each value of the current
vector and a given other vector being the 'x' of atan2 and the
'this' vector being the 'y'
void PointwiseCeiling(Vector<T> result)
Pointwise applies the ceiling function to each value
Vector<T> PointwiseCeiling()
Pointwise applies the ceiling function to each value
void PointwiseCos(Vector<T> result)
Pointwise applies the cos function to each value
Pointwise applies the cos function to each value
Pointwise applies the cosh function to each value
void PointwiseCosh(Vector<T> result)
Pointwise applies the cosh function to each value
void PointwiseDivide(Vector<T> divisor, Vector<T> result)
Pointwise divide this vector with another vector and stores the result into the result vector.
Pointwise divide this vector with another vector.
Return
A new vector which is the pointwise division of the two vectors.
Pointwise applies the exponent function to each value.
void PointwiseExp(Vector<T> result)
Pointwise applies the exponent function to each value.
Pointwise applies the floor function to each value
void PointwiseFloor(Vector<T> result)
Pointwise applies the floor function to each value
Pointwise applies the natural logarithm function to each value.
void PointwiseLog(Vector<T> result)
Pointwise applies the natural logarithm function to each value.
Pointwise applies the log10 function to each value
void PointwiseLog10(Vector<T> result)
Pointwise applies the log10 function to each value
void PointwiseMaximum(double scalar, Vector<T> result)
void PointwiseMaximum(Vector<T> other, Vector<T> result)
Pointwise applies the maximum with the values of another vector to each value.
Pointwise applies the maximum with the values of another vector to each value.
void PointwiseMinimum(double scalar, Vector<T> result)
Pointwise applies the minimum with the values of another vector to each value.
void PointwiseMinimum(Vector<T> other, Vector<T> result)
Pointwise applies the minimum with the values of another vector to each value.
void PointwiseModulus(Vector<T> divisor, Vector<T> result)
Pointwise canonical modulus, where the result has the sign of the divisor,
of this vector with another vector and stores the result into the result vector.
Pointwise canonical modulus, where the result has the sign of the divisor,
of this vector with another vector.
void PointwiseMultiply(Vector<T> other, Vector<T> result)
Pointwise multiplies this vector with another vector and stores the result into the result vector.
Pointwise multiplies this vector with another vector.
Return
A new vector which is the pointwise multiplication of the two vectors.
void PointwisePower(Vector<T> exponent, Vector<T> result)
Pointwise raise this vector to an exponent.
Pointwise raise this vector to an exponent and store the result into the result vector.
void PointwisePower(double exponent, Vector<T> result)
void PointwiseRemainder(Vector<T> divisor, Vector<T> result)
Pointwise remainder (% operator), where the result has the sign of the dividend,
this vector with another vector and stores the result into the result vector.
Pointwise remainder (% operator), where the result has the sign of the dividend,
of this vector with another vector.
void PointwiseRound(Vector<T> result)
Pointwise applies the round function to each value
Pointwise applies the round function to each value
Pointwise applies the sign function to each value
void PointwiseSign(Vector<T> result)
Pointwise applies the sign function to each value
void PointwiseSin(Vector<T> result)
Pointwise applies the sin function to each value
Pointwise applies the sin function to each value
Pointwise applies the sinh function to each value
void PointwiseSinh(Vector<T> result)
Pointwise applies the sinh function to each value
Pointwise applies the sqrt function to each value
void PointwiseSqrt(Vector<T> result)
Pointwise applies the sqrt function to each value
Pointwise applies the tan function to each value
void PointwiseTan(Vector<T> result)
Pointwise applies the tan function to each value
Pointwise applies the tanh function to each value
void PointwiseTanh(Vector<T> result)
Pointwise applies the tanh function to each value
void Remainder(double divisor, Vector<T> result)
Vector<T> Remainder(double divisor)
void RemainderByThis(double dividend, Vector<T> result)
Vector<T> RemainderByThis(double dividend)
void SetSubVector(int index, int count, Vector<T> subVector)
Copies the values of a given vector into a region in this vector.
Parameters
int
index
int
count
void SetValues(Double[] values)
Subtracts another vector to this vector and stores the result into the result vector.
void Subtract(double scalar, Vector<T> result)
Subtracts another vector from this vector.
Return
A new vector containing the subtraction of the two vectors.
void SubtractFrom(double scalar, Vector<T> result)
Vector<T> SubVector(int index, int count)
Creates a vector containing specified elements.
Parameters
int
index
int
count
Return
A vector containing a copy of the specified elements.
double Sum()
Computes the sum of the vector's elements.
Return
double
The sum of the vector's elements.
double SumMagnitudes()
Computes the sum of the absolute value of the vector's elements.
Return
double
The sum of the absolute value of the vector's elements.
Double[] ToArray()
Returns the data contained in the vector as an array.
The returned array will be independent from this vector.
A new memory block will be allocated for the array.
Return
Double[]
The vector's data as an array.
Create a matrix based on this vector in column form (one single column).
Return
This vector as a column matrix.
Create a matrix based on this vector in row form (one single row).
Return
This vector as a row matrix.
string ToString(int maxPerColumn, int maxCharactersWidth, string format, IFormatProvider provider)
Returns a string that summarizes this vector, column by column and with a type header.
Parameters
int
maxPerColumn
int
maxCharactersWidth
string
format
IFormatProvider
provider
string ToString()
Returns a string that summarizes this vector.
The maximum number of cells can be configured in the
Control class.
string ToString(string format, IFormatProvider formatProvider)
Returns a string that summarizes this vector.
The maximum number of cells can be configured in the
Control class.
The format string is ignored.
string ToVectorString(int maxPerColumn, int maxCharactersWidth, string ellipsis, string columnSeparator, string rowSeparator, Func<double, string> formatValue)
Returns a string that represents the content of this vector, column by column.
Parameters
int
maxPerColumn
int
maxCharactersWidth
string
ellipsis
string
columnSeparator
string
rowSeparator
Func<double, string>
formatValue
string ToVectorString(int maxPerColumn, int maxCharactersWidth, string format, IFormatProvider provider)
Returns a string that represents the content of this vector, column by column.
Parameters
int
maxPerColumn
int
maxCharactersWidth
string
format
IFormatProvider
provider
string ToVectorString(string format, IFormatProvider provider)
Returns a string that represents the content of this vector, column by column.
Parameters
string
format
IFormatProvider
provider
String[,] ToVectorStringArray(int maxPerColumn, int maxCharactersWidth, int padding, string ellipsis, Func<double, string> formatValue)
Public Properties
int NonZerosCount get;
Gets the number of non zero elements in the vector.
Value: