/// <summary> /// Returns True if two vectors contain the same entry values. /// </summary> public bool Equals(Vector other) { if (other == null) { return(false); } return(VectorFunctions.Equals(this.InnerArray, other.InnerArray)); }
/// <summary> /// Creates a deep copy of the vector. /// </summary> public virtual Vector CreateCopy() { return(new Vector(VectorFunctions.Clone(this.InnerArray))); }
/// <summary> /// Returns the projection of current vector onto another vector. /// </summary> public virtual Vector Projection(double[] other) { return(new Vector(VectorFunctions.Projection(this.InnerArray, other))); }
/// <summary> /// Returns the projection factor of current vector onto another vector. /// </summary> public virtual double ProjectionFactor(double[] other) { return(VectorFunctions.ProjectionFactor(this.InnerArray, other)); }
/// <summary> /// Subtracts another vector (right). /// </summary> public virtual Vector Subtract(double[] vector) { return(new Vector(VectorFunctions.Subtract(this.InnerArray, vector))); }
/// <summary> /// Adds another vector (right). /// </summary> public virtual Vector Add(double[] vector) { return(new Vector(VectorFunctions.Add(this.InnerArray, vector))); }
/// <summary> /// Cross product of current vector with another vector. /// </summary> public virtual Vector CrossProduct(double[] other) { return(new Linears.Vector(VectorFunctions.CrossProduct(this.InnerArray, other))); }
/// <summary> /// Generates random vector of n-dimensions where entries range from 0 to the specified max value. /// </summary> public static Vector GenerateRandomVector(int dimension, double maxValue) { return(new Vector(VectorFunctions.GenerateRandomVector(dimension, maxValue))); }
/// <summary> /// Dot product of current vector and another vector. /// </summary> public virtual double DotProduct(double[] other) { return(VectorFunctions.DotProduct(this.InnerArray, other)); }
/// <summary> /// Rounds vector entries to the nearest integeral value. /// </summary> public virtual Vector Round(int decimals) { return(new Vector(VectorFunctions.Round(this.InnerArray, decimals))); }
public override string ToString() { return(VectorFunctions.ToString(this.InnerArray)); }
/// <summary> /// Normalizes vector. /// </summary> public virtual Vector ToUnitVector() { return(new Vector(VectorFunctions.ToUnitVector(this.InnerArray))); }
/// <summary> /// Calculates magnitude/length of vector. /// </summary> public virtual double GetMagnitude() { return(VectorFunctions.GetMagnitude(this.InnerArray)); }
/// <summary> /// Converts vector to matrix. /// </summary> public virtual Matrix AsMatrix() { return(new Linears.Matrix(VectorFunctions.ToMatrix(this.InnerArray))); }
/// <summary> /// Multiplies/scales vector by a scalar input. /// </summary> public virtual Vector Scale(double scalar) { return(new Linears.Vector(VectorFunctions.Scale(scalar, this.InnerArray))); }
/// <summary> /// Returns angle in radians / degrees between two vectors. /// </summary> public virtual double AngleBetween(double[] other, AngleUnit unit) { return(VectorFunctions.AngleBetween(this.InnerArray, other, unit)); }
/// <summary> /// Converts 1 column / row matrix to vector. /// </summary> public static Vector FromMatrix(double[,] matrix) { return(new Vector(VectorFunctions.ToVector(matrix))); }