# HashimotoOperator#

class graph_tool.spectral.HashimotoOperator(*args, **kwargs)[source]#

Bases: `LinearOperator`

A `scipy.sparse.linalg.LinearOperator` representing the hashimoto matrix of a graph. See `hashimoto()` for details.

Methods

 Hermitian adjoint. Matrix-matrix or matrix-vector multiplication. Matrix-matrix multiplication. Matrix-vector multiplication. Adjoint matrix-matrix multiplication. Adjoint matrix-vector multiplication. Transpose this linear operator.

Attributes

 `H` Hermitian adjoint. `T` Transpose this linear operator. `ndim`

Returns the Hermitian adjoint of self, aka the Hermitian conjugate or Hermitian transpose. For a complex matrix, the Hermitian adjoint is equal to the conjugate transpose.

Returns:
A_HLinearOperator

dot(x)#

Matrix-matrix or matrix-vector multiplication.

Parameters:
xarray_like

1-d or 2-d array, representing a vector or matrix.

Returns:
Axarray

1-d or 2-d array (depending on the shape of x) that represents the result of applying this linear operator on x.

matmat(X)#

Matrix-matrix multiplication.

Performs the operation y=A*X where A is an MxN linear operator and X dense N*K matrix or ndarray.

Parameters:
X{matrix, ndarray}

An array with shape (N,K).

Returns:
Y{matrix, ndarray}

A matrix or ndarray with shape (M,K) depending on the type of the X argument.

Notes

This matmat wraps any user-specified matmat routine or overridden _matmat method to ensure that y has the correct type.

matvec(x)#

Matrix-vector multiplication.

Performs the operation y=A*x where A is an MxN linear operator and x is a column vector or 1-d array.

Parameters:
x{matrix, ndarray}

An array with shape (N,) or (N,1).

Returns:
y{matrix, ndarray}

A matrix or ndarray with shape (M,) or (M,1) depending on the type and shape of the x argument.

Notes

This matvec wraps the user-specified matvec routine or overridden _matvec method to ensure that y has the correct shape and type.

rmatmat(X)#

Performs the operation y = A^H * x where A is an MxN linear operator and x is a column vector or 1-d array, or 2-d array. The default implementation defers to the adjoint.

Parameters:
X{matrix, ndarray}

A matrix or 2D array.

Returns:
Y{matrix, ndarray}

A matrix or 2D array depending on the type of the input.

Notes

This rmatmat wraps the user-specified rmatmat routine.

rmatvec(x)#

Performs the operation y = A^H * x where A is an MxN linear operator and x is a column vector or 1-d array.

Parameters:
x{matrix, ndarray}

An array with shape (M,) or (M,1).

Returns:
y{matrix, ndarray}

A matrix or ndarray with shape (N,) or (N,1) depending on the type and shape of the x argument.

Notes

This rmatvec wraps the user-specified rmatvec routine or overridden _rmatvec method to ensure that y has the correct shape and type.

transpose()#

Transpose this linear operator.

Returns a LinearOperator that represents the transpose of this one. Can be abbreviated self.T instead of self.transpose().

H#

Returns the Hermitian adjoint of self, aka the Hermitian conjugate or Hermitian transpose. For a complex matrix, the Hermitian adjoint is equal to the conjugate transpose.