# torch.linalg.vander¶

torch.linalg.vander(x, N=None)

Generates a Vandermonde matrix.

Returns the Vandermonde matrix $V$

$V = \begin{pmatrix} 1 & x_1 & x_1^2 & \dots & x_1^{N-1}\\ 1 & x_2 & x_2^2 & \dots & x_2^{N-1}\\ 1 & x_3 & x_3^2 & \dots & x_3^{N-1}\\ \vdots & \vdots & \vdots & \ddots &\vdots \\ 1 & x_n & x_n^2 & \dots & x_n^{N-1} \end{pmatrix}.$

for N > 1. If N= None, then N = x.size(-1) so that the output is a square matrix.

Supports inputs of float, double, cfloat, cdouble, and integral dtypes. Also supports batches of vectors, and if x is a batch of vectors then the output has the same batch dimensions.

Differences with numpy.vander:

• Unlike numpy.vander, this function returns the powers of x in ascending order. To get them in the reverse order call linalg.vander(x, N).flip(-1).

Parameters:

x (Tensor) – tensor of shape (*, n) where * is zero or more batch dimensions consisting of vectors.

Keyword Arguments:

N (int, optional) – Number of columns in the output. Default: x.size(-1)

Example:

>>> x = torch.tensor([1, 2, 3, 5])
>>> linalg.vander(x)
tensor([[  1,   1,   1,   1],
[  1,   2,   4,   8],
[  1,   3,   9,  27],
[  1,   5,  25, 125]])
>>> linalg.vander(x, N=3)
tensor([[ 1,  1,  1],
[ 1,  2,  4],
[ 1,  3,  9],
[ 1,  5, 25]])