Vectors (Mathematics) - singa-bio/singa GitHub Wiki

Vectors

Vectors are mathematical constructs that contain multiple values, referenced by their indices.

A vector is a Ring, MultiDimensional, Divisible, and Metrizable.

The primary implementation for Vectors is the RegularVector. Additionally Scalar, Vector2D, and Vector3D handle general properties and operations of one, two and three dimensional vectors.

Vector

With the various implemented methods you can get a lot of information about the vectors. For example:

Vector vector = new Vector2D(20,-5);

Now there are methods like getMagnitude, getElement or getDimension to retrieve elements from the vector.

vector.getMagnitude();

result: 20.615528128088304

Further, there are methods that use two Vectors. Calculations and comparisons can be performed. For example:

Vector vector1 = new Vector2D(20,-5);
Vector vector2 = new Vector2D(41,17);

Creates two vectors.

With the vectors you can perform simple arithmetic operations like add, substract, divide, and so on. Additionally, you can retrieve the angle, the dot product or the dyadic product of two vectors.

Examples:

 double dotProduct = vector1.dotProduct(vector2);

Dot product: 715.0

 double distance = vector1.distanceTo(vector2);

Distance between: 29.732137494637012

 double angle = Math.toDegrees(vector1.angleTo(vector2));

Angle between: 37.061735476454515

 Matrix dyadicProduct = vector1.dyadicProduct(vector2);

Dyadic Product:

  800,00 340,00
 -200,00 -85,00 

Vectors

The class Vectors contains static utility methods to create and handle different vectors. The following table shows some methods an their function.

Method Function
generateRandomVector3D Generates a random 3D vector (a similar method is also available for 2D vectors).
getMedian Returns the median value for a given vector.
getStandardDeviation Returns the standard deviation of all elements in the vector.
getMaximalValueForIndex Compares all values of the given index for all given vectors and returns the largest value found (a similar method is also available for minimal value).
getCentroid Computes the centroid of all vectors in the collection by summing them and dividing by the number of vectors in the collection.
gramSchmidtProjection The projection for the (modified) Graham-Schmidt process.