# Mathematical properties

Extreme Numerics.NET provides access to all common mathematical properties of vectors. Because of the cost involved in computing these properties, in particular for large vectors, these properties have been implemented as methods.

## General properties

The Length property returns the number of elements in the vector.

The ToArray method returns an array containing the elements of a vector. This method always returns a new array.

The following example illustrates these properties:

C#
``````var v = Vector.Create(1.0, 2.0, 4.0, 8.0);
var length = v.Length; // 4
var elements = v.ToArray(); // [ 1.0, 2.0, 4.0, 8.0 ]``````

## Vector Norms

The norm of a vector is a measure for the size of the vector. Most common is the Euclidean or two-norm, defined as the square root of the sum of the squares of the elements. The Norm method, without arguments, returns the Euclidean norm. The NormSquared method returns the square of the two-norm, which is the same as the sum of the squares of the elements.

The one-norm of a vector is the sum of the absolute values of its elements. The OneNorm method returns this value.

Other norms can be defined. In general, the p-norm of a vector a with elements ai is defined as

The parameter p can be any real number. If p is negative and one of the elements is zero, then the norm is always zero. Two overloads of the Norm method provide optimized norm calculations. The most commonly used values of p, along with their meaning, are summarized in the table below:

Value of p

Meaning

Method call

0

Number of elements.

Norm or Length (property)

1

Sum of absolute values.

2

Euclidean norm.

Norm or Norm

+Infinity

Largest absolute value.

Norm

-Infinity

Smallest absolute value.

Norm

The following example illustrates the various norm methods:

C#
``````var v = Vector.Create(1.0, 2.0, 3.0, 4.0, 5.0);
// No arguments: the standard Euclidean norm:
var norm = v.Norm();
// norm -> 7.461...
var oneNorm = v.OneNorm();
var oneNorm2 = v.Norm(1);
// oneNorm -> 15
var maxNorm = v.Norm(Double.PositiveInfinity);
// maxNorm -> 5.0
var minNorm = v.Norm(Double.NegativeInfinity);
// minNorm -> 1.0
// "Zero" norm: the length of the vector
var norm0 = v.Norm(0);
// norm0 -> 5``````

## Extreme values

Methods for finding the smallest and largest elements of a vector, as well as the index of the element with the extreme value. The following table summarizes the methods that can be used to obtain the value or index of an extreme value:

Method (value)

Method (index)

Description

Max

MaxIndex

Element with largest value

Min

MinIndex

Element with smallest value

AbsoluteMax

AbsoluteMaxIndex

Element with largest absolute value

AbsoluteMin

AbsoluteMinIndex

Element with smallest absolute value