AUSTRA

Represents a dense vector of double values, of arbitrary size.

C#

```
public readonly struct DVector : IFormattable,
IEnumerable<double>, IEnumerable, IEquatable<DVector>,
IEqualityOperators<DVector, DVector, bool>, IAdditionOperators<DVector, DVector, DVector>,
IAdditionOperators<DVector, double, DVector>, ISubtractionOperators<DVector, DVector, DVector>,
ISubtractionOperators<DVector, double, DVector>, IMultiplyOperators<DVector, DVector, double>,
IMultiplyOperators<DVector, double, DVector>, IDivisionOperators<DVector, double, DVector>,
IUnaryNegationOperators<DVector, DVector>, IPointwiseOperators<DVector>,
ISafeIndexed, IVector, IIndexable
```

- Implements
- IIndexable, IPointwiseOperatorsDVector, ISafeIndexed, IVector, IEnumerableDouble, IEnumerable, IEquatableDVector, IFormattable, IAdditionOperatorsDVector, DVector, DVector, IAdditionOperatorsDVector, Double, DVector, IDivisionOperatorsDVector, Double, DVector, IEqualityOperatorsDVector, DVector, Boolean, IMultiplyOperatorsDVector, DVector, Double, IMultiplyOperatorsDVector, Double, DVector, ISubtractionOperatorsDVector, DVector, DVector, ISubtractionOperatorsDVector, Double, DVector, IUnaryNegationOperatorsDVector, DVector

DVector provides a thin wrapper around a single array. Most method operations are non destructive, and return a new vector, at the cost of extra memory allocation.

Methods like MultiplyAdd(DVector, DVector) save memory by reusing intermediate storage, and also time by using SIMD fused multiply-add instructions.

Most methods are hardware accelerated, either by using managed references, SIMD operations or both. Memory pinning has been reduced to the minimum, for easing the garbage collector's work.

DVector(Double) | Initializes a vector from an array. |

DVector(DVector) | Creates a vector by concatenating many vectors. |

DVector(Int32) | Creates a vector of a given size. |

DVector(Double, DVector) | Creates a vector by concatenating a new value with a suffix vector. |

DVector(DVector, DVector) | Creates a vector by concatenating two vectors. |

DVector(DVector, Double) | Creates a vector by concatenating a prefix vector with a new value. |

DVector(Int32, NormalRandom) | Creates a vector filled with a normal distribution generator. |

DVector(Int32, Double) | Initializes a vector from a scalar. |

DVector(Int32, FuncInt32, DVector, Double) | Creates a vector using a formula to fill its items. |

DVector(Int32, FuncInt32, Double) | Creates a vector using a formula to fill its items. |

DVector(Int32, Random) | Creates a vector filled with a uniform distribution generator. |

DVector(Int32, Random, Double, Double) | Creates a vector filled with a uniform distribution generator. |

First | Gets the first value in the vector. |

IsInitialized | Has the vector been properly initialized? |

ItemIndex | Gets or sets the component at a given index. |

ItemInt32 | Gets or sets the component at a given index. |

ItemRange | Extracts a slice from the vector. |

Last | Gets the last value in the vector. |

Length | Gets the dimensions of the vector. |

Abs | Gets the absolute values of the vector's items. |

ACF | Computes autocorrelation for all lags. |

All | Checks whether the predicate is satisfied by all items. |

AMax | Gets the cell with the maximum absolute value. |

AMin | Gets the cell with the minimum absolute value. |

Any | Checks whether the predicate is satisfied by at least one item. |

ARModel | Creates an AR model from a vector and a degree. |

AutoCorrelation | Computes the autocorrelation for a fixed lag. |

AutoRegression | Finds the coefficients for an autoregressive model. |

Clone | Creates an identical vector. |

Combine | Low-level method to linearly combine vectors with weights. |

Combine2 | Low-level method to linearly combine two vectors with weights. |

Contains | Checks if the vector contains the given value. |

Correlogram | Computes autocorrelation for a range of lags. |

Distance | Computes the maximum difference between cells. |

Distinct | Returns a new vector with the distinct values in the original one. |

Equals(DVector) | Checks if the provided argument is a vector with the same values. |

Equals(Object) | Checks if the provided argument is a vector with the same values. (Overrides ValueTypeEquals(Object)) |

Equals(DVector, DVector, Double) | Compares two vectors for equality within a tolerance. |

Fft | Computes the real discrete Fourier transform. |

Filter | Creates a new vector by filtering items with the given predicate. |

FilterMap | Creates a new vector by filtering and mapping at the same time. |

Find(Double) | Returns all indexes containing ocurrences of a value. |

Find(FuncDouble, Boolean) | Returns all indexes satisfying a condition. |

FullLinearModel | Creates a linear model a set of predictors. |

GetEnumerator | Retrieves an enumerator to iterate over components. |

GetHashCode | Returns the hashcode for this vector. (Overrides ValueTypeGetHashCode) |

GetType | Gets the Type of the current instance. (Inherited from Object) |

IndexOf(Double) | Returns the zero-based index of the first occurrence of a value. |

IndexOf(Double, Int32) | Returns the zero-based index of the first occurrence of a value. |

InplaceAdd | Inplace addition of two vectors. |

InplaceNegate | Inplace negation of the vector. |

InplaceSub | Inplace substraction of two vectors. |

LinearModel | Multilinear regression based in Ordinary Least Squares. |

MAModel | Creates an MA model from a vector and a degree. |

Map | Creates a new vector by transforming each item with the given function. |

Maximum | Gets the item with the maximum value. |

Mean | Computes the mean of the vector's items. |

Minimum | Gets the item with the minimum value. |

MovingAverage | Finds the coefficients for a moving average model. |

MultiplyAdd(Double, DVector) | Optimized vector multiplication and addition. |

MultiplyAdd(DVector, DVector) | Optimized vector multiplication and addition. |

MultiplySubtract(Double, DVector) | Optimized vector scaling and subtraction. |

MultiplySubtract(DVector, DVector) | Optimized vector multiplication and subtraction. |

Norm | Gets the Euclidean norm of this vector. |

PACF | Computes the partial autocorrelation for all lags. |

PACFRaw | Computes the partial autocorrelation for all lags. |

Plot | Creates a plot for this vector. |

PointwiseDivide | Pointwise division. |

PointwiseMultiply | Pointwise multiplication. |

Product | Calculates the product of the vector's items. |

Reduce | Creates an aggregate value by applying the reducer to each item. |

Reverse | Creates a reversed copy of the vector. |

SafeThis | Safe access to the vector's components. If the index is out of range, a zero is returned. |

Sort | Returns a new vector with sorted values. |

SortDescending | Returns a new vector with sorted values. |

Sqrt | Pointwise squared root. |

Squared | Gets the squared norm of this vector. |

Stats | Gets statistics on the vector values. |

SubtractMultiply | Optimized subtraction of scaled vector. |

Sum | Calculates the sum of the vector's items. |

ToString | Gets a textual representation of this vector. (Overrides ValueTypeToString) |

ToString(String, IFormatProvider) | Gets a textual representation of this vector. |

Zip | Combines the common prefix of two vectors. |

Addition(Double, DVector) | Adds a scalar to a vector. |

Addition(DVector, DVector) | Adds two vectors. |

Addition(DVector, Double) | Adds a scalar to a vector. |

Division(DVector, Double) | Divides a vector by a scalar value. |

Equality(DVector, DVector) | Compares two vectors for equality. |

ExclusiveOr(DVector, DVector) | The external product of two vectors. |

(DVector to Double) | Explicit conversion from vector to array. |

(Double to DVector) | Implicit conversion from an array to a vector. |

Inequality(DVector, DVector) | Compares two vectors for inequality. |

Multiply(Double, DVector) | Multiplies a vector by a scalar value. |

Multiply(DVector, DVector) | Dot product of two vectors. |

Multiply(DVector, Double) | Multiplies a vector by a scalar value. |

Subtraction(Double, DVector) | Subtracts a vector from a scalar. |

Subtraction(DVector, DVector) | Subtracts two vectors. |

Subtraction(DVector, Double) | Subtracts a scalar from a vector. |

UnaryNegation(DVector) | Negates a vector. |

CreateDiagonal | Creates a diagonal matrix given its diagonal. (Defined by Vec) |