# dgl.sparse.SparseMatrix.smaxο

SparseMatrix.smax(dim: = None)ο

Computes the maximum of non-zero values of the `input` sparse matrix along the given dimension `dim`.

The reduction does not count zero values. If the row or column to be reduced does not have any non-zero value, the result will be 0.

Parameters:
• input (SparseMatrix) β The input sparse matrix

• dim (int, optional) β

The dimension to reduce, must be either 0 (by rows) or 1 (by columns) or None (on both rows and columns simultaneously)

If `dim` is None, it reduces both the rows and the columns in the sparse matrix, producing a tensor of shape `input.val.shape[1:]`. Otherwise, it reduces on the row (`dim=0`) or column (`dim=1`) dimension, producing a tensor of shape `(input.shape[1],) + input.val.shape[1:]` or `(input.shape[0],) + input.val.shape[1:]`.

Returns:

Reduced tensor

Return type:

torch.Tensor

Examples

Case1: scalar-valued sparse matrix

```>>> indices = torch.tensor([[0, 1, 1], [0, 0, 2]])
>>> val = torch.tensor([1, 1, 2])
>>> A = dglsp.spmatrix(indices, val, shape=(4, 3))
>>> dglsp.smax(A)
tensor(2)
>>> dglsp.smax(A, 0)
tensor([1, 0, 2])
>>> dglsp.smax(A, 1)
tensor([1, 2, 0, 0])
```

Case2: vector-valued sparse matrix

```>>> indices = torch.tensor([[0, 1, 1], [0, 0, 2]])
>>> val = torch.tensor([[1, 2], [2, 1], [2, 2]])
>>> A = dglsp.spmatrix(indices, val, shape=(4, 3))
>>> dglsp.smax(A)
tensor([2, 2])
>>> dglsp.smax(A, 1)
tensor([[1, 2],
[2, 2],
[0, 0],
[0, 0]])
```