### Syntax

`[m, asym] = sw_basismat(symop, r, tol)`

### Description

`[m, asym] = sw_basismat(symop, r, tol)`

determines the allowed tensor
elements compatible with a given point group symmetry. The tensor can
describe exchange interaction or single ion anisotropy. The function
applies the symmetry invariance of the classical energy
\(\mathbf{S}_i\cdot \mathcal{M}\cdot \mathbf{S}_j\). Thus this symmetry
analysis includes the transformation properties of spin operators as
well.

### Input Arguments

`symOp`

- Generators of the point group symmetry, in a matrix with dimensions of
\([3\times 3\times n_{sym}]\) where each
`symOp(:,:,ii)`

matrix defines a rotation. `r`

- Distance column vector between the two interacting atoms. For anisotropy \(r=0\).
`tol`

- Tolerance, optional, default value is \(10^{-5}\).

### Output Arguments

`M`

- Matrices, that span out the vector space of the symmetry allowed matrices, dimensions are \([3\times 3\times n_M]\). Any matrix is allowed that can be expressed as a linear combination of the symmetry allowed matrices.
`asym`

- Logical vector, for each \([3\times 3]\) matrix in \(M\), tells whether it is antisymmetric stored in a row vector with \(n_M\) elements.